Lines Matching refs:rxq

688   amb_rxq * rxq = &dev->rxq[pool];  in rx_give()  local
693 spin_lock_irqsave (&rxq->lock, flags); in rx_give()
695 if (rxq->pending < rxq->maximum) { in rx_give()
696 PRINTD (DBG_RX, "RX in slot %p", rxq->in.ptr); in rx_give()
698 *rxq->in.ptr = *rx; in rx_give()
699 rxq->pending++; in rx_give()
700 rxq->in.ptr = NEXTQ (rxq->in.ptr, rxq->in.start, rxq->in.limit); in rx_give()
702 wr_mem (dev, offsetof(amb_mem, mb.adapter.rx_address[pool]), virt_to_bus (rxq->in.ptr)); in rx_give()
704 spin_unlock_irqrestore (&rxq->lock, flags); in rx_give()
707 spin_unlock_irqrestore (&rxq->lock, flags); in rx_give()
713 amb_rxq * rxq = &dev->rxq[pool]; in rx_take() local
718 spin_lock_irqsave (&rxq->lock, flags); in rx_take()
720 if (rxq->pending && (rxq->out.ptr->status || rxq->out.ptr->length)) { in rx_take()
722 rx_complete (dev, rxq->out.ptr); in rx_take()
724 rxq->out.ptr->status = 0; in rx_take()
725 rxq->out.ptr->length = 0; in rx_take()
727 rxq->pending--; in rx_take()
728 rxq->out.ptr = NEXTQ (rxq->out.ptr, rxq->out.start, rxq->out.limit); in rx_take()
730 if (rxq->pending < rxq->low) in rx_take()
731 rxq->low = rxq->pending; in rx_take()
732 spin_unlock_irqrestore (&rxq->lock, flags); in rx_take()
735 if (!rxq->pending && rxq->buffers_wanted) in rx_take()
736 rxq->emptied++; in rx_take()
737 spin_unlock_irqrestore (&rxq->lock, flags); in rx_take()
746 amb_rxq * rxq = &dev->rxq[pool]; in drain_rx_pool() local
756 if (rxq->pending > rxq->buffers_wanted) { in drain_rx_pool()
763 while (rxq->pending > rxq->buffers_wanted) in drain_rx_pool()
784 amb_rxq * rxq; in fill_rx_pool() local
791 rxq = &dev->rxq[pool]; in fill_rx_pool()
792 while (rxq->pending < rxq->maximum && rxq->pending < rxq->buffers_wanted) { in fill_rx_pool()
794 struct sk_buff * skb = alloc_skb (rxq->buffer_size, priority); in fill_rx_pool()
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()
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()
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()
1458 amb_rxq * r = &dev->rxq[pool]; in amb_proc_read()
1469 amb_rxq * r = &dev->rxq[pool]; in amb_proc_read()
1590 amb_rxq * rxq = &dev->rxq[pool]; in create_queues() local
1592 rxq->buffer_size = rx_buffer_sizes[pool]; in create_queues()
1593 rxq->buffers_wanted = 0; in create_queues()
1595 rxq->pending = 0; in create_queues()
1596 rxq->low = rxs[pool] - 1; in create_queues()
1597 rxq->emptied = 0; in create_queues()
1598 rxq->maximum = rxs[pool] - 1; in create_queues()
1600 rxq->in.start = in; in create_queues()
1601 rxq->in.ptr = in; in create_queues()
1602 rxq->in.limit = in + rxs[pool]; in create_queues()
1604 memory = rxq->in.limit; in create_queues()
1607 rxq->out.start = out; in create_queues()
1608 rxq->out.ptr = out; in create_queues()
1609 rxq->out.limit = out + rxs[pool]; in create_queues()
1611 memory = rxq->out.limit; in create_queues()
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()
2170 spin_lock_init (&dev->rxq[pool].lock); in setup_dev()