Lines Matching refs:rxq

673   amb_rxq * rxq = &dev->rxq[pool];  in rx_give()  local
678 spin_lock_irqsave (&rxq->lock, flags); in rx_give()
680 if (rxq->pending < rxq->maximum) { in rx_give()
681 PRINTD (DBG_RX, "RX in slot %p", rxq->in.ptr); in rx_give()
683 *rxq->in.ptr = *rx; in rx_give()
684 rxq->pending++; in rx_give()
685 rxq->in.ptr = NEXTQ (rxq->in.ptr, rxq->in.start, rxq->in.limit); in rx_give()
687 wr_mem (dev, offsetof(amb_mem, mb.adapter.rx_address[pool]), virt_to_bus (rxq->in.ptr)); in rx_give()
689 spin_unlock_irqrestore (&rxq->lock, flags); in rx_give()
692 spin_unlock_irqrestore (&rxq->lock, flags); in rx_give()
698 amb_rxq * rxq = &dev->rxq[pool]; in rx_take() local
703 spin_lock_irqsave (&rxq->lock, flags); in rx_take()
705 if (rxq->pending && (rxq->out.ptr->status || rxq->out.ptr->length)) { in rx_take()
707 rx_complete (dev, rxq->out.ptr); in rx_take()
709 rxq->out.ptr->status = 0; in rx_take()
710 rxq->out.ptr->length = 0; in rx_take()
712 rxq->pending--; in rx_take()
713 rxq->out.ptr = NEXTQ (rxq->out.ptr, rxq->out.start, rxq->out.limit); in rx_take()
715 if (rxq->pending < rxq->low) in rx_take()
716 rxq->low = rxq->pending; in rx_take()
717 spin_unlock_irqrestore (&rxq->lock, flags); in rx_take()
720 if (!rxq->pending && rxq->buffers_wanted) in rx_take()
721 rxq->emptied++; in rx_take()
722 spin_unlock_irqrestore (&rxq->lock, flags); in rx_take()
731 amb_rxq * rxq = &dev->rxq[pool]; in drain_rx_pool() local
741 if (rxq->pending > rxq->buffers_wanted) { in drain_rx_pool()
748 while (rxq->pending > rxq->buffers_wanted) in drain_rx_pool()
769 amb_rxq * rxq; in fill_rx_pool() local
776 rxq = &dev->rxq[pool]; in fill_rx_pool()
777 while (rxq->pending < rxq->maximum && rxq->pending < rxq->buffers_wanted) { in fill_rx_pool()
779 struct sk_buff * skb = alloc_skb (rxq->buffer_size, priority); in fill_rx_pool()
1092 if ((unsigned int) rxtp->max_sdu <= dev->rxq[pool].buffer_size) { in amb_open()
1094 pool, rxtp->max_sdu, dev->rxq[pool].buffer_size); in amb_open()
1178 if (!dev->rxq[pool].buffers_wanted) in amb_open()
1179 dev->rxq[pool].buffers_wanted = rx_lats; in amb_open()
1180 dev->rxq[pool].buffers_wanted += 1; in amb_open()
1274 dev->rxq[pool].buffers_wanted -= 1; in amb_close()
1275 if (dev->rxq[pool].buffers_wanted == rx_lats) { in amb_close()
1276 dev->rxq[pool].buffers_wanted = 0; in amb_close()
1443 amb_rxq * r = &dev->rxq[pool]; in amb_proc_read()
1454 amb_rxq * r = &dev->rxq[pool]; in amb_proc_read()
1575 amb_rxq * rxq = &dev->rxq[pool]; in create_queues() local
1577 rxq->buffer_size = rx_buffer_sizes[pool]; in create_queues()
1578 rxq->buffers_wanted = 0; in create_queues()
1580 rxq->pending = 0; in create_queues()
1581 rxq->low = rxs[pool] - 1; in create_queues()
1582 rxq->emptied = 0; in create_queues()
1583 rxq->maximum = rxs[pool] - 1; in create_queues()
1585 rxq->in.start = in; in create_queues()
1586 rxq->in.ptr = in; in create_queues()
1587 rxq->in.limit = in + rxs[pool]; in create_queues()
1589 memory = rxq->in.limit; in create_queues()
1592 rxq->out.start = out; in create_queues()
1593 rxq->out.ptr = out; in create_queues()
1594 rxq->out.limit = out + rxs[pool]; in create_queues()
1596 memory = rxq->out.limit; in create_queues()
1988 a.rec_struct[pool].buffer_start = bus_addr (dev->rxq[pool].in.start); in amb_talk()
1989 a.rec_struct[pool].buffer_end = bus_addr (dev->rxq[pool].in.limit); in amb_talk()
1990 a.rec_struct[pool].rx_start = bus_addr (dev->rxq[pool].out.start); in amb_talk()
1991 a.rec_struct[pool].rx_end = bus_addr (dev->rxq[pool].out.limit); in amb_talk()
1992 a.rec_struct[pool].buffer_size = cpu_to_be32 (dev->rxq[pool].buffer_size); in amb_talk()
2155 spin_lock_init (&dev->rxq[pool].lock); in setup_dev()