Lines Matching refs:pool
687 static int rx_give (amb_dev * dev, rx_in * rx, unsigned char pool) { in rx_give() argument
688 amb_rxq * rxq = &dev->rxq[pool]; in rx_give()
691 PRINTD (DBG_FLOW|DBG_RX, "rx_give %p[%hu]", dev, pool); in rx_give()
702 wr_mem (dev, offsetof(amb_mem, mb.adapter.rx_address[pool]), virt_to_bus (rxq->in.ptr)); in rx_give()
712 static int rx_take (amb_dev * dev, unsigned char pool) { in rx_take() argument
713 amb_rxq * rxq = &dev->rxq[pool]; in rx_take()
716 PRINTD (DBG_FLOW|DBG_RX, "rx_take %p[%hu]", dev, pool); in rx_take()
745 static void drain_rx_pool (amb_dev * dev, unsigned char pool) { in drain_rx_pool() argument
746 amb_rxq * rxq = &dev->rxq[pool]; in drain_rx_pool()
748 PRINTD (DBG_FLOW|DBG_POOL, "drain_rx_pool %p %hu", dev, pool); in drain_rx_pool()
759 cmd.args.flush.flags = cpu_to_be32 (pool << SRB_POOL_SHIFT); in drain_rx_pool()
764 if (rx_take (dev, pool)) in drain_rx_pool()
772 unsigned char pool; in drain_rx_pools() local
776 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in drain_rx_pools()
777 drain_rx_pool (dev, pool); in drain_rx_pools()
780 static void fill_rx_pool (amb_dev * dev, unsigned char pool, in fill_rx_pool() argument
786 PRINTD (DBG_FLOW|DBG_POOL, "fill_rx_pool %p %hu %x", dev, pool, priority); in fill_rx_pool()
791 rxq = &dev->rxq[pool]; in fill_rx_pool()
796 PRINTD (DBG_SKB|DBG_POOL, "failed to allocate skb for RX pool %hu", pool); in fill_rx_pool()
808 if (rx_give (dev, &rx, pool)) in fill_rx_pool()
818 unsigned char pool; in fill_rx_pools() local
822 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in fill_rx_pools()
823 fill_rx_pool (dev, pool, GFP_ATOMIC); in fill_rx_pools()
867 unsigned char pool; in interrupt_handler() local
868 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in interrupt_handler()
869 while (!rx_take (dev, pool)) in interrupt_handler()
1026 unsigned char pool = -1; // hush gcc in amb_open() local
1106 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in amb_open()
1107 if ((unsigned int) rxtp->max_sdu <= dev->rxq[pool].buffer_size) { in amb_open()
1109 pool, rxtp->max_sdu, dev->rxq[pool].buffer_size); in amb_open()
1112 if (pool == NUM_RX_POOLS) { in amb_open()
1169 ( (AMB_VCC(dev->rxer[vci])->rx_info.pool << SRB_POOL_SHIFT) in amb_open()
1189 vcc->rx_info.pool = pool; in amb_open()
1193 if (!dev->rxq[pool].buffers_wanted) in amb_open()
1194 dev->rxq[pool].buffers_wanted = rx_lats; in amb_open()
1195 dev->rxq[pool].buffers_wanted += 1; in amb_open()
1196 fill_rx_pool (dev, pool, GFP_KERNEL); in amb_open()
1204 ( (pool << SRB_POOL_SHIFT) in amb_open()
1210 cmd.args.open.flags = cpu_to_be32 (pool << SRB_POOL_SHIFT); in amb_open()
1265 unsigned char pool = vcc->rx_info.pool; in amb_close() local
1289 dev->rxq[pool].buffers_wanted -= 1; in amb_close()
1290 if (dev->rxq[pool].buffers_wanted == rx_lats) { in amb_close()
1291 dev->rxq[pool].buffers_wanted = 0; in amb_close()
1292 drain_rx_pool (dev, pool); in amb_close()
1391 unsigned char pool = vcc->rx_info.pool;
1409 if (!rx_give (dev, &rx, pool)) {
1411 PRINTD (DBG_SKB|DBG_POOL, "recycled skb for pool %hu", pool);
1427 unsigned char pool; in amb_proc_read() local
1457 for (pool = 0; pool < NUM_RX_POOLS; ++pool) { in amb_proc_read()
1458 amb_rxq * r = &dev->rxq[pool]; in amb_proc_read()
1468 for (pool = 0; pool < NUM_RX_POOLS; ++pool) { in amb_proc_read()
1469 amb_rxq * r = &dev->rxq[pool]; in amb_proc_read()
1513 unsigned char pool; in create_queues() local
1524 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in create_queues()
1525 total += rxs[pool] * (sizeof(rx_in) + sizeof(rx_out)); in create_queues()
1587 for (pool = 0; pool < NUM_RX_POOLS; ++pool) { in create_queues()
1590 amb_rxq * rxq = &dev->rxq[pool]; in create_queues()
1592 rxq->buffer_size = rx_buffer_sizes[pool]; in create_queues()
1596 rxq->low = rxs[pool] - 1; in create_queues()
1598 rxq->maximum = rxs[pool] - 1; in create_queues()
1602 rxq->in.limit = in + rxs[pool]; in create_queues()
1609 rxq->out.limit = out + rxs[pool]; in create_queues()
1989 unsigned char pool; in amb_talk() local
2001 for (pool = 0; pool < NUM_RX_POOLS; ++pool) { in amb_talk()
2003 a.rec_struct[pool].buffer_start = bus_addr (dev->rxq[pool].in.start); in amb_talk()
2004 a.rec_struct[pool].buffer_end = bus_addr (dev->rxq[pool].in.limit); in amb_talk()
2005 a.rec_struct[pool].rx_start = bus_addr (dev->rxq[pool].out.start); in amb_talk()
2006 a.rec_struct[pool].rx_end = bus_addr (dev->rxq[pool].out.limit); in amb_talk()
2007 a.rec_struct[pool].buffer_size = cpu_to_be32 (dev->rxq[pool].buffer_size); in amb_talk()
2141 unsigned char pool; in setup_dev() local
2169 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in setup_dev()
2170 spin_lock_init (&dev->rxq[pool].lock); in setup_dev()
2316 unsigned char pool; in amb_check_args() local
2334 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in amb_check_args()
2335 if (rxs[pool] < MIN_QUEUE_SIZE) in amb_check_args()
2337 pool, rxs[pool] = MIN_QUEUE_SIZE); in amb_check_args()
2341 for (pool = 0; pool < NUM_RX_POOLS; ++pool) in amb_check_args()
2342 if (rxs_bs[pool] <= max_rx_size) in amb_check_args()
2344 pool, rxs_bs[pool]); in amb_check_args()
2346 max_rx_size = rxs_bs[pool]; in amb_check_args()