Lines Matching refs:txdes

46 	struct ftmac100_txdes txdes[TX_QUEUE_ENTRIES];  member
172 offsetof(struct ftmac100_descs, txdes)); in ftmac100_start_hw()
459 static void ftmac100_txdes_reset(struct ftmac100_txdes *txdes) in ftmac100_txdes_reset() argument
462 txdes->txdes0 = 0; in ftmac100_txdes_reset()
463 txdes->txdes1 &= cpu_to_le32(FTMAC100_TXDES1_EDOTR); in ftmac100_txdes_reset()
464 txdes->txdes2 = 0; in ftmac100_txdes_reset()
465 txdes->txdes3 = 0; in ftmac100_txdes_reset()
468 static bool ftmac100_txdes_owned_by_dma(struct ftmac100_txdes *txdes) in ftmac100_txdes_owned_by_dma() argument
470 return txdes->txdes0 & cpu_to_le32(FTMAC100_TXDES0_TXDMA_OWN); in ftmac100_txdes_owned_by_dma()
473 static void ftmac100_txdes_set_dma_own(struct ftmac100_txdes *txdes) in ftmac100_txdes_set_dma_own() argument
480 txdes->txdes0 |= cpu_to_le32(FTMAC100_TXDES0_TXDMA_OWN); in ftmac100_txdes_set_dma_own()
483 static bool ftmac100_txdes_excessive_collision(struct ftmac100_txdes *txdes) in ftmac100_txdes_excessive_collision() argument
485 return txdes->txdes0 & cpu_to_le32(FTMAC100_TXDES0_TXPKT_EXSCOL); in ftmac100_txdes_excessive_collision()
488 static bool ftmac100_txdes_late_collision(struct ftmac100_txdes *txdes) in ftmac100_txdes_late_collision() argument
490 return txdes->txdes0 & cpu_to_le32(FTMAC100_TXDES0_TXPKT_LATECOL); in ftmac100_txdes_late_collision()
493 static void ftmac100_txdes_set_end_of_ring(struct ftmac100_txdes *txdes) in ftmac100_txdes_set_end_of_ring() argument
495 txdes->txdes1 |= cpu_to_le32(FTMAC100_TXDES1_EDOTR); in ftmac100_txdes_set_end_of_ring()
498 static void ftmac100_txdes_set_first_segment(struct ftmac100_txdes *txdes) in ftmac100_txdes_set_first_segment() argument
500 txdes->txdes1 |= cpu_to_le32(FTMAC100_TXDES1_FTS); in ftmac100_txdes_set_first_segment()
503 static void ftmac100_txdes_set_last_segment(struct ftmac100_txdes *txdes) in ftmac100_txdes_set_last_segment() argument
505 txdes->txdes1 |= cpu_to_le32(FTMAC100_TXDES1_LTS); in ftmac100_txdes_set_last_segment()
508 static void ftmac100_txdes_set_txint(struct ftmac100_txdes *txdes) in ftmac100_txdes_set_txint() argument
510 txdes->txdes1 |= cpu_to_le32(FTMAC100_TXDES1_TXIC); in ftmac100_txdes_set_txint()
513 static void ftmac100_txdes_set_buffer_size(struct ftmac100_txdes *txdes, in ftmac100_txdes_set_buffer_size() argument
516 txdes->txdes1 |= cpu_to_le32(FTMAC100_TXDES1_TXBUF_SIZE(len)); in ftmac100_txdes_set_buffer_size()
519 static void ftmac100_txdes_set_dma_addr(struct ftmac100_txdes *txdes, in ftmac100_txdes_set_dma_addr() argument
522 txdes->txdes2 = cpu_to_le32(addr); in ftmac100_txdes_set_dma_addr()
525 static dma_addr_t ftmac100_txdes_get_dma_addr(struct ftmac100_txdes *txdes) in ftmac100_txdes_get_dma_addr() argument
527 return le32_to_cpu(txdes->txdes2); in ftmac100_txdes_get_dma_addr()
534 static void ftmac100_txdes_set_skb(struct ftmac100_txdes *txdes, struct sk_buff *skb) in ftmac100_txdes_set_skb() argument
536 txdes->txdes3 = (unsigned int)skb; in ftmac100_txdes_set_skb()
539 static struct sk_buff *ftmac100_txdes_get_skb(struct ftmac100_txdes *txdes) in ftmac100_txdes_get_skb() argument
541 return (struct sk_buff *)txdes->txdes3; in ftmac100_txdes_get_skb()
564 return &priv->descs->txdes[priv->tx_pointer]; in ftmac100_current_txdes()
569 return &priv->descs->txdes[priv->tx_clean_pointer]; in ftmac100_current_clean_txdes()
575 struct ftmac100_txdes *txdes; in ftmac100_tx_complete_packet() local
582 txdes = ftmac100_current_clean_txdes(priv); in ftmac100_tx_complete_packet()
584 if (ftmac100_txdes_owned_by_dma(txdes)) in ftmac100_tx_complete_packet()
587 skb = ftmac100_txdes_get_skb(txdes); in ftmac100_tx_complete_packet()
588 map = ftmac100_txdes_get_dma_addr(txdes); in ftmac100_tx_complete_packet()
590 if (unlikely(ftmac100_txdes_excessive_collision(txdes) || in ftmac100_tx_complete_packet()
591 ftmac100_txdes_late_collision(txdes))) { in ftmac100_tx_complete_packet()
605 ftmac100_txdes_reset(txdes); in ftmac100_tx_complete_packet()
627 struct ftmac100_txdes *txdes; in ftmac100_xmit() local
630 txdes = ftmac100_current_txdes(priv); in ftmac100_xmit()
634 ftmac100_txdes_set_skb(txdes, skb); in ftmac100_xmit()
635 ftmac100_txdes_set_dma_addr(txdes, map); in ftmac100_xmit()
637 ftmac100_txdes_set_first_segment(txdes); in ftmac100_xmit()
638 ftmac100_txdes_set_last_segment(txdes); in ftmac100_xmit()
639 ftmac100_txdes_set_txint(txdes); in ftmac100_xmit()
640 ftmac100_txdes_set_buffer_size(txdes, len); in ftmac100_xmit()
648 ftmac100_txdes_set_dma_own(txdes); in ftmac100_xmit()
704 struct ftmac100_txdes *txdes = &priv->descs->txdes[i]; in ftmac100_free_buffers() local
705 struct sk_buff *skb = ftmac100_txdes_get_skb(txdes); in ftmac100_free_buffers()
706 dma_addr_t map = ftmac100_txdes_get_dma_addr(txdes); in ftmac100_free_buffers()
740 ftmac100_txdes_set_end_of_ring(&priv->descs->txdes[TX_QUEUE_ENTRIES - 1]); in ftmac100_alloc_buffers()