Lines Matching refs:dring
584 struct netsec_desc_ring *dring, u16 idx, in netsec_set_rx_de() argument
588 struct netsec_de *de = dring->vaddr + DESC_SZ * idx; in netsec_set_rx_de()
602 dring->desc[idx].dma_addr = desc->dma_addr; in netsec_set_rx_de()
603 dring->desc[idx].addr = desc->addr; in netsec_set_rx_de()
604 dring->desc[idx].len = desc->len; in netsec_set_rx_de()
605 dring->desc[idx].skb = skb; in netsec_set_rx_de()
609 struct netsec_desc_ring *dring, in netsec_get_rx_de() argument
616 memcpy(&de, dring->vaddr + DESC_SZ * idx, DESC_SZ); in netsec_get_rx_de()
624 *desc = dring->desc[idx]; in netsec_get_rx_de()
633 struct netsec_desc_ring *dring = &priv->desc_ring[NETSEC_RING_RX]; in netsec_get_rx_pkt_data() local
644 tail = dring->tail; in netsec_get_rx_pkt_data()
647 netsec_set_rx_de(priv, dring, tail, &dring->desc[tail], in netsec_get_rx_pkt_data()
648 dring->desc[tail].skb); in netsec_get_rx_pkt_data()
650 skb = netsec_get_rx_de(priv, dring, tail, rxpi, desc, len); in netsec_get_rx_pkt_data()
651 netsec_set_rx_de(priv, dring, tail, &td, tmp_skb); in netsec_get_rx_pkt_data()
655 dring->tail = (dring->tail + 1) % DESC_NUM; in netsec_get_rx_pkt_data()
662 struct netsec_desc_ring *dring = &priv->desc_ring[NETSEC_RING_TX]; in netsec_clean_tx_dring() local
665 dring->pkt_cnt += netsec_read(priv, NETSEC_REG_NRM_TX_DONE_PKTCNT); in netsec_clean_tx_dring()
667 if (dring->pkt_cnt < budget) in netsec_clean_tx_dring()
668 budget = dring->pkt_cnt; in netsec_clean_tx_dring()
678 tail = dring->tail; in netsec_clean_tx_dring()
681 dring->tail = (tail + 1) % DESC_NUM; in netsec_clean_tx_dring()
683 desc = &dring->desc[tail]; in netsec_clean_tx_dring()
684 entry = dring->vaddr + DESC_SZ * tail; in netsec_clean_tx_dring()
697 dring->pkt_cnt -= budget; in netsec_clean_tx_dring()
726 struct netsec_desc_ring *dring = &priv->desc_ring[NETSEC_RING_RX]; in netsec_process_rx() local
735 u16 idx = dring->tail; in netsec_process_rx()
736 struct netsec_de *de = dring->vaddr + (DESC_SZ * idx); in netsec_process_rx()
814 struct netsec_desc_ring *dring, in netsec_set_tx_de() argument
819 int idx = dring->head; in netsec_set_tx_de()
823 de = dring->vaddr + (DESC_SZ * idx); in netsec_set_tx_de()
842 dring->desc[idx] = *desc; in netsec_set_tx_de()
843 dring->desc[idx].skb = skb; in netsec_set_tx_de()
846 dring->head = (dring->head + 1) % DESC_NUM; in netsec_set_tx_de()
853 struct netsec_desc_ring *dring = &priv->desc_ring[NETSEC_RING_TX]; in netsec_netdev_start_xmit() local
860 if (dring->head >= dring->tail) in netsec_netdev_start_xmit()
861 filled = dring->head - dring->tail; in netsec_netdev_start_xmit()
863 filled = dring->head + DESC_NUM - dring->tail; in netsec_netdev_start_xmit()
911 netsec_set_tx_de(priv, dring, &tx_ctrl, &tx_desc, skb); in netsec_netdev_start_xmit()
919 struct netsec_desc_ring *dring = &priv->desc_ring[id]; in netsec_uninit_pkt_dring() local
923 if (!dring->vaddr || !dring->desc) in netsec_uninit_pkt_dring()
927 desc = &dring->desc[idx]; in netsec_uninit_pkt_dring()
937 memset(dring->desc, 0, sizeof(struct netsec_desc) * DESC_NUM); in netsec_uninit_pkt_dring()
938 memset(dring->vaddr, 0, DESC_SZ * DESC_NUM); in netsec_uninit_pkt_dring()
940 dring->head = 0; in netsec_uninit_pkt_dring()
941 dring->tail = 0; in netsec_uninit_pkt_dring()
942 dring->pkt_cnt = 0; in netsec_uninit_pkt_dring()
947 struct netsec_desc_ring *dring = &priv->desc_ring[id]; in netsec_free_dring() local
949 if (dring->vaddr) { in netsec_free_dring()
951 dring->vaddr, dring->desc_dma); in netsec_free_dring()
952 dring->vaddr = NULL; in netsec_free_dring()
955 kfree(dring->desc); in netsec_free_dring()
956 dring->desc = NULL; in netsec_free_dring()
961 struct netsec_desc_ring *dring = &priv->desc_ring[id]; in netsec_alloc_dring() local
964 dring->vaddr = dma_zalloc_coherent(priv->dev, DESC_SZ * DESC_NUM, in netsec_alloc_dring()
965 &dring->desc_dma, GFP_KERNEL); in netsec_alloc_dring()
966 if (!dring->vaddr) { in netsec_alloc_dring()
971 dring->desc = kcalloc(DESC_NUM, sizeof(*dring->desc), GFP_KERNEL); in netsec_alloc_dring()
972 if (!dring->desc) { in netsec_alloc_dring()
986 struct netsec_desc_ring *dring = &priv->desc_ring[NETSEC_RING_RX]; in netsec_setup_rx_dring() local
999 netsec_set_rx_de(priv, dring, n, &desc, skb); in netsec_setup_rx_dring()