Lines Matching refs:f
79 static void bdx_rx_alloc_skbs(struct bdx_priv *priv, struct rxf_fifo *f);
81 static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget);
154 bdx_fifo_init(struct bdx_priv *priv, struct fifo *f, int fsz_type, in bdx_fifo_init() argument
159 memset(f, 0, sizeof(struct fifo)); in bdx_fifo_init()
161 f->va = pci_alloc_consistent(priv->pdev, in bdx_fifo_init()
162 memsz + FIFO_EXTRA_SPACE, &f->da); in bdx_fifo_init()
163 if (!f->va) { in bdx_fifo_init()
167 f->reg_CFG0 = reg_CFG0; in bdx_fifo_init()
168 f->reg_CFG1 = reg_CFG1; in bdx_fifo_init()
169 f->reg_RPTR = reg_RPTR; in bdx_fifo_init()
170 f->reg_WPTR = reg_WPTR; in bdx_fifo_init()
171 f->rptr = 0; in bdx_fifo_init()
172 f->wptr = 0; in bdx_fifo_init()
173 f->memsz = memsz; in bdx_fifo_init()
174 f->size_mask = memsz - 1; in bdx_fifo_init()
175 WRITE_REG(priv, reg_CFG0, (u32) ((f->da & TX_RX_CFG0_BASE) | fsz_type)); in bdx_fifo_init()
176 WRITE_REG(priv, reg_CFG1, H32_64(f->da)); in bdx_fifo_init()
186 static void bdx_fifo_free(struct bdx_priv *priv, struct fifo *f) in bdx_fifo_free() argument
189 if (f->va) { in bdx_fifo_free()
191 f->memsz + FIFO_EXTRA_SPACE, f->va, f->da); in bdx_fifo_free()
192 f->va = NULL; in bdx_fifo_free()
1031 static void bdx_rx_free_skbs(struct bdx_priv *priv, struct rxf_fifo *f) in bdx_rx_free_skbs() argument
1049 dm->dma, f->m.pktsz, in bdx_rx_free_skbs()
1093 static void bdx_rx_alloc_skbs(struct bdx_priv *priv, struct rxf_fifo *f) in bdx_rx_alloc_skbs() argument
1104 skb = netdev_alloc_skb(priv->ndev, f->m.pktsz + NET_IP_ALIGN); in bdx_rx_alloc_skbs()
1113 skb->data, f->m.pktsz, in bdx_rx_alloc_skbs()
1116 rxfd = (struct rxf_desc *)(f->m.va + f->m.wptr); in bdx_rx_alloc_skbs()
1121 rxfd->len = CPU_CHIP_SWAP32(f->m.pktsz); in bdx_rx_alloc_skbs()
1124 f->m.wptr += sizeof(struct rxf_desc); in bdx_rx_alloc_skbs()
1125 delta = f->m.wptr - f->m.memsz; in bdx_rx_alloc_skbs()
1127 f->m.wptr = delta; in bdx_rx_alloc_skbs()
1129 memcpy(f->m.va, f->m.va + f->m.memsz, delta); in bdx_rx_alloc_skbs()
1136 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_rx_alloc_skbs()
1160 struct rxf_fifo *f; in bdx_recycle_skb() local
1167 f = &priv->rxf_fifo0; in bdx_recycle_skb()
1169 DBG("db=%p f=%p\n", db, f); in bdx_recycle_skb()
1173 rxfd = (struct rxf_desc *)(f->m.va + f->m.wptr); in bdx_recycle_skb()
1178 rxfd->len = CPU_CHIP_SWAP32(f->m.pktsz); in bdx_recycle_skb()
1181 f->m.wptr += sizeof(struct rxf_desc); in bdx_recycle_skb()
1182 delta = f->m.wptr - f->m.memsz; in bdx_recycle_skb()
1184 f->m.wptr = delta; in bdx_recycle_skb()
1186 memcpy(f->m.va, f->m.va + f->m.memsz, delta); in bdx_recycle_skb()
1206 static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget) in bdx_rx_receive() argument
1225 f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_WR_PTR; in bdx_rx_receive()
1227 size = f->m.wptr - f->m.rptr; in bdx_rx_receive()
1229 size = f->m.memsz + size; /* size is negative :-) */ in bdx_rx_receive()
1233 rxdd = (struct rxd_desc *)(f->m.va + f->m.rptr); in bdx_rx_receive()
1248 f->m.rptr += tmp_len; in bdx_rx_receive()
1250 tmp_len = f->m.rptr - f->m.memsz; in bdx_rx_receive()
1252 f->m.rptr = tmp_len; in bdx_rx_receive()
1255 f->m.rptr, tmp_len); in bdx_rx_receive()
1256 memcpy(f->m.va + f->m.memsz, f->m.va, tmp_len); in bdx_rx_receive()
1309 WRITE_REG(priv, f->m.reg_RPTR, f->m.rptr & TXF_WPTR_WR_PTR); in bdx_rx_receive()
1594 struct txd_fifo *f = &priv->txd_fifo0; in bdx_tx_space() local
1597 f->m.rptr = READ_REG(priv, f->m.reg_RPTR) & TXF_WPTR_WR_PTR; in bdx_tx_space()
1598 fsize = f->m.rptr - f->m.wptr; in bdx_tx_space()
1600 fsize = f->m.memsz + fsize; in bdx_tx_space()
1619 struct txd_fifo *f = &priv->txd_fifo0; in bdx_tx_transmit() local
1641 BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */ in bdx_tx_transmit()
1642 txdd = (struct txd_desc *)(f->m.va + f->m.wptr); in bdx_tx_transmit()
1674 f->m.wptr += txd_sizes[nr_frags].bytes; in bdx_tx_transmit()
1675 len = f->m.wptr - f->m.memsz; in bdx_tx_transmit()
1677 f->m.wptr = len; in bdx_tx_transmit()
1679 BDX_ASSERT(len > f->m.memsz); in bdx_tx_transmit()
1680 memcpy(f->m.va, f->m.va + f->m.memsz, len); in bdx_tx_transmit()
1683 BDX_ASSERT(f->m.wptr >= f->m.memsz); /* finished with valid wptr */ in bdx_tx_transmit()
1693 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_transmit()
1697 WRITE_REG(priv, f->m.reg_WPTR, in bdx_tx_transmit()
1698 f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_transmit()
1706 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_transmit()
1734 struct txf_fifo *f = &priv->txf_fifo0; in bdx_tx_cleanup() local
1739 f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_MASK; in bdx_tx_cleanup()
1740 BDX_ASSERT(f->m.rptr >= f->m.memsz); /* started with valid rptr */ in bdx_tx_cleanup()
1742 while (f->m.wptr != f->m.rptr) { in bdx_tx_cleanup()
1743 f->m.rptr += BDX_TXF_DESC_SZ; in bdx_tx_cleanup()
1744 f->m.rptr &= f->m.size_mask; in bdx_tx_cleanup()
1763 BDX_ASSERT((f->m.wptr & TXF_WPTR_WR_PTR) >= f->m.memsz); in bdx_tx_cleanup()
1764 WRITE_REG(priv, f->m.reg_RPTR, f->m.rptr & TXF_WPTR_WR_PTR); in bdx_tx_cleanup()
1832 struct txd_fifo *f = &priv->txd_fifo0; in bdx_tx_push_desc() local
1833 int i = f->m.memsz - f->m.wptr; in bdx_tx_push_desc()
1839 memcpy(f->m.va + f->m.wptr, data, size); in bdx_tx_push_desc()
1840 f->m.wptr += size; in bdx_tx_push_desc()
1842 memcpy(f->m.va + f->m.wptr, data, i); in bdx_tx_push_desc()
1843 f->m.wptr = size - i; in bdx_tx_push_desc()
1844 memcpy(f->m.va, data + i, f->m.wptr); in bdx_tx_push_desc()
1846 WRITE_REG(priv, f->m.reg_WPTR, f->m.wptr & TXF_WPTR_WR_PTR); in bdx_tx_push_desc()