Lines Matching refs:txdes

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