Lines Matching refs:desc

27 #define PRESTERA_SDMA_RX_DESC_PKT_LEN(desc) \  argument
28 ((le32_to_cpu((desc)->word2) >> 16) & GENMASK(13, 0))
30 #define PRESTERA_SDMA_RX_DESC_OWNER(desc) \ argument
31 ((le32_to_cpu((desc)->word1) & BIT(31)) >> 31)
33 #define PRESTERA_SDMA_RX_DESC_IS_RCVD(desc) \ argument
34 (PRESTERA_SDMA_RX_DESC_OWNER(desc) == PRESTERA_SDMA_RX_DESC_CPU_OWN)
46 #define PRESTERA_SDMA_TX_DESC_OWNER(desc) \ argument
47 ((le32_to_cpu((desc)->word1) & BIT(31)) >> 31)
52 #define PRESTERA_SDMA_TX_DESC_IS_SENT(desc) \ argument
53 (PRESTERA_SDMA_TX_DESC_OWNER(desc) == PRESTERA_SDMA_TX_DESC_CPU_OWN)
73 struct prestera_sdma_desc *desc; member
113 struct prestera_sdma_desc *desc; in prestera_sdma_buf_init() local
116 desc = dma_pool_alloc(sdma->desc_pool, GFP_DMA | GFP_KERNEL, &dma); in prestera_sdma_buf_init()
117 if (!desc) in prestera_sdma_buf_init()
122 buf->desc = desc; in prestera_sdma_buf_init()
134 struct prestera_sdma_desc *desc, in prestera_sdma_rx_desc_init() argument
137 u32 word = le32_to_cpu(desc->word2); in prestera_sdma_rx_desc_init()
140 desc->word2 = cpu_to_le32(word); in prestera_sdma_rx_desc_init()
142 desc->buff = cpu_to_le32(prestera_sdma_map(sdma, buf)); in prestera_sdma_rx_desc_init()
147 desc->word1 = cpu_to_le32(0xA0000000); in prestera_sdma_rx_desc_init()
151 struct prestera_sdma_desc *desc, in prestera_sdma_rx_desc_set_next() argument
154 desc->next = cpu_to_le32(prestera_sdma_map(sdma, next)); in prestera_sdma_rx_desc_set_next()
207 prestera_sdma_rx_desc_init(sdma, buf->desc, buf->buf_dma); in prestera_sdma_rx_skb_get()
292 struct prestera_sdma_desc *desc; in prestera_sdma_rx_poll() local
298 desc = buf->desc; in prestera_sdma_rx_poll()
300 if (PRESTERA_SDMA_RX_DESC_IS_RCVD(desc)) { in prestera_sdma_rx_poll()
309 __skb_trim(buf->skb, PRESTERA_SDMA_RX_DESC_PKT_LEN(desc)); in prestera_sdma_rx_poll()
352 dma_pool_free(sdma->desc_pool, buf->desc, in prestera_sdma_rx_fini()
402 prestera_sdma_rx_desc_init(sdma, next->desc, in prestera_sdma_rx_init()
405 prestera_sdma_rx_desc_set_next(sdma, prev->desc, in prestera_sdma_rx_init()
413 prestera_sdma_rx_desc_set_next(sdma, tail->desc, head->desc_dma); in prestera_sdma_rx_init()
429 struct prestera_sdma_desc *desc) in prestera_sdma_tx_desc_init() argument
431 desc->word1 = cpu_to_le32(PRESTERA_SDMA_TX_DESC_INIT); in prestera_sdma_tx_desc_init()
432 desc->word2 = 0; in prestera_sdma_tx_desc_init()
436 struct prestera_sdma_desc *desc, in prestera_sdma_tx_desc_set_next() argument
439 desc->next = cpu_to_le32(prestera_sdma_map(sdma, next)); in prestera_sdma_tx_desc_set_next()
443 struct prestera_sdma_desc *desc, in prestera_sdma_tx_desc_set_buf() argument
446 u32 word = le32_to_cpu(desc->word2); in prestera_sdma_tx_desc_set_buf()
450 desc->buff = cpu_to_le32(prestera_sdma_map(sdma, buf)); in prestera_sdma_tx_desc_set_buf()
451 desc->word2 = cpu_to_le32(word); in prestera_sdma_tx_desc_set_buf()
454 static void prestera_sdma_tx_desc_xmit(struct prestera_sdma_desc *desc) in prestera_sdma_tx_desc_xmit() argument
456 u32 word = le32_to_cpu(desc->word1); in prestera_sdma_tx_desc_xmit()
463 desc->word1 = cpu_to_le32(word); in prestera_sdma_tx_desc_xmit()
508 if (!PRESTERA_SDMA_TX_DESC_IS_SENT(buf->desc)) in prestera_sdma_tx_recycle_work_fn()
552 prestera_sdma_tx_desc_init(sdma, next->desc); in prestera_sdma_tx_init()
554 prestera_sdma_tx_desc_set_next(sdma, prev->desc, in prestera_sdma_tx_init()
562 prestera_sdma_tx_desc_set_next(sdma, tail->desc, head->desc_dma); in prestera_sdma_tx_init()
587 if (buf->desc) in prestera_sdma_tx_fini()
588 dma_pool_free(sdma->desc_pool, buf->desc, in prestera_sdma_tx_fini()
739 prestera_sdma_tx_desc_set_buf(sdma, buf->desc, buf->buf_dma, skb->len); in prestera_sdma_xmit()
755 prestera_sdma_tx_desc_xmit(buf->desc); in prestera_sdma_xmit()