Lines Matching refs:f

75 static void bdx_rx_alloc_skbs(struct bdx_priv *priv, struct rxf_fifo *f);
77 static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget);
153 bdx_fifo_init(struct bdx_priv *priv, struct fifo *f, int fsz_type, in bdx_fifo_init() argument
158 memset(f, 0, sizeof(struct fifo)); in bdx_fifo_init()
160 f->va = dma_alloc_coherent(&priv->pdev->dev, memsz + FIFO_EXTRA_SPACE, in bdx_fifo_init()
161 &f->da, GFP_ATOMIC); in bdx_fifo_init()
162 if (!f->va) { in bdx_fifo_init()
166 f->reg_CFG0 = reg_CFG0; in bdx_fifo_init()
167 f->reg_CFG1 = reg_CFG1; in bdx_fifo_init()
168 f->reg_RPTR = reg_RPTR; in bdx_fifo_init()
169 f->reg_WPTR = reg_WPTR; in bdx_fifo_init()
170 f->rptr = 0; in bdx_fifo_init()
171 f->wptr = 0; in bdx_fifo_init()
172 f->memsz = memsz; in bdx_fifo_init()
173 f->size_mask = memsz - 1; in bdx_fifo_init()
174 WRITE_REG(priv, reg_CFG0, (u32) ((f->da & TX_RX_CFG0_BASE) | fsz_type)); in bdx_fifo_init()
175 WRITE_REG(priv, reg_CFG1, H32_64(f->da)); in bdx_fifo_init()
185 static void bdx_fifo_free(struct bdx_priv *priv, struct fifo *f) in bdx_fifo_free() argument
188 if (f->va) { in bdx_fifo_free()
190 f->memsz + FIFO_EXTRA_SPACE, f->va, f->da); in bdx_fifo_free()
191 f->va = NULL; in bdx_fifo_free()
1024 static void bdx_rx_free_skbs(struct bdx_priv *priv, struct rxf_fifo *f) in bdx_rx_free_skbs() argument
1042 f->m.pktsz, DMA_FROM_DEVICE); in bdx_rx_free_skbs()
1085 static void bdx_rx_alloc_skbs(struct bdx_priv *priv, struct rxf_fifo *f) in bdx_rx_alloc_skbs() argument
1096 skb = netdev_alloc_skb(priv->ndev, f->m.pktsz + NET_IP_ALIGN); in bdx_rx_alloc_skbs()
1105 f->m.pktsz, DMA_FROM_DEVICE); in bdx_rx_alloc_skbs()
1107 rxfd = (struct rxf_desc *)(f->m.va + f->m.wptr); in bdx_rx_alloc_skbs()
1112 rxfd->len = CPU_CHIP_SWAP32(f->m.pktsz); in bdx_rx_alloc_skbs()
1115 f->m.wptr += sizeof(struct rxf_desc); in bdx_rx_alloc_skbs()
1116 delta = f->m.wptr - f->m.memsz; in bdx_rx_alloc_skbs()
1118 f->m.wptr = delta; in bdx_rx_alloc_skbs()
1120 memcpy(f->m.va, f->m.va + f->m.memsz, delta); in bdx_rx_alloc_skbs()
1127 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_rx_alloc_skbs()
1151 struct rxf_fifo *f; in bdx_recycle_skb() local
1157 f = &priv->rxf_fifo0; in bdx_recycle_skb()
1159 DBG("db=%p f=%p\n", db, f); in bdx_recycle_skb()
1162 rxfd = (struct rxf_desc *)(f->m.va + f->m.wptr); in bdx_recycle_skb()
1167 rxfd->len = CPU_CHIP_SWAP32(f->m.pktsz); in bdx_recycle_skb()
1170 f->m.wptr += sizeof(struct rxf_desc); in bdx_recycle_skb()
1171 delta = f->m.wptr - f->m.memsz; in bdx_recycle_skb()
1173 f->m.wptr = delta; in bdx_recycle_skb()
1175 memcpy(f->m.va, f->m.va + f->m.memsz, delta); in bdx_recycle_skb()
1195 static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget) in bdx_rx_receive() argument
1214 f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_WR_PTR; in bdx_rx_receive()
1216 size = f->m.wptr - f->m.rptr; in bdx_rx_receive()
1218 size = f->m.memsz + size; /* size is negative :-) */ in bdx_rx_receive()
1222 rxdd = (struct rxd_desc *)(f->m.va + f->m.rptr); in bdx_rx_receive()
1237 f->m.rptr += tmp_len; in bdx_rx_receive()
1239 tmp_len = f->m.rptr - f->m.memsz; in bdx_rx_receive()
1241 f->m.rptr = tmp_len; in bdx_rx_receive()
1244 f->m.rptr, tmp_len); in bdx_rx_receive()
1245 memcpy(f->m.va + f->m.memsz, f->m.va, tmp_len); in bdx_rx_receive()
1297 WRITE_REG(priv, f->m.reg_RPTR, f->m.rptr & TXF_WPTR_WR_PTR); in bdx_rx_receive()
1570 struct txd_fifo *f = &priv->txd_fifo0; in bdx_tx_space() local
1573 f->m.rptr = READ_REG(priv, f->m.reg_RPTR) & TXF_WPTR_WR_PTR; in bdx_tx_space()
1574 fsize = f->m.rptr - f->m.wptr; in bdx_tx_space()
1576 fsize = f->m.memsz + fsize; in bdx_tx_space()
1594 struct txd_fifo *f = &priv->txd_fifo0; in bdx_tx_transmit() local
1611 BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */ in bdx_tx_transmit()
1612 txdd = (struct txd_desc *)(f->m.va + f->m.wptr); in bdx_tx_transmit()
1644 f->m.wptr += txd_sizes[nr_frags].bytes; in bdx_tx_transmit()
1645 len = f->m.wptr - f->m.memsz; in bdx_tx_transmit()
1647 f->m.wptr = len; in bdx_tx_transmit()
1649 BDX_ASSERT(len > f->m.memsz); in bdx_tx_transmit()
1650 memcpy(f->m.va, f->m.va + f->m.memsz, len); in bdx_tx_transmit()
1653 BDX_ASSERT(f->m.wptr >= f->m.memsz); /* finished with valid wptr */ in bdx_tx_transmit()
1663 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_transmit()
1667 WRITE_REG(priv, f->m.reg_WPTR, in bdx_tx_transmit()
1668 f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_transmit()
1676 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_transmit()
1704 struct txf_fifo *f = &priv->txf_fifo0; in bdx_tx_cleanup() local
1709 f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_MASK; in bdx_tx_cleanup()
1710 BDX_ASSERT(f->m.rptr >= f->m.memsz); /* started with valid rptr */ in bdx_tx_cleanup()
1712 while (f->m.wptr != f->m.rptr) { in bdx_tx_cleanup()
1713 f->m.rptr += BDX_TXF_DESC_SZ; in bdx_tx_cleanup()
1714 f->m.rptr &= f->m.size_mask; in bdx_tx_cleanup()
1733 BDX_ASSERT((f->m.wptr & TXF_WPTR_WR_PTR) >= f->m.memsz); in bdx_tx_cleanup()
1734 WRITE_REG(priv, f->m.reg_RPTR, f->m.rptr & TXF_WPTR_WR_PTR); in bdx_tx_cleanup()
1804 struct txd_fifo *f = &priv->txd_fifo0; in bdx_tx_push_desc() local
1805 int i = f->m.memsz - f->m.wptr; in bdx_tx_push_desc()
1811 memcpy(f->m.va + f->m.wptr, data, size); in bdx_tx_push_desc()
1812 f->m.wptr += size; in bdx_tx_push_desc()
1814 memcpy(f->m.va + f->m.wptr, data, i); in bdx_tx_push_desc()
1815 f->m.wptr = size - i; in bdx_tx_push_desc()
1816 memcpy(f->m.va, data + i, f->m.wptr); in bdx_tx_push_desc()
1818 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_push_desc()