Lines Matching refs:rxq

3451 				      struct ipw_rx_queue *rxq)  in ipw_rx_queue_reset()  argument
3456 spin_lock_irqsave(&rxq->lock, flags); in ipw_rx_queue_reset()
3458 INIT_LIST_HEAD(&rxq->rx_free); in ipw_rx_queue_reset()
3459 INIT_LIST_HEAD(&rxq->rx_used); in ipw_rx_queue_reset()
3465 if (rxq->pool[i].skb != NULL) { in ipw_rx_queue_reset()
3466 pci_unmap_single(priv->pci_dev, rxq->pool[i].dma_addr, in ipw_rx_queue_reset()
3468 dev_kfree_skb(rxq->pool[i].skb); in ipw_rx_queue_reset()
3469 rxq->pool[i].skb = NULL; in ipw_rx_queue_reset()
3471 list_add_tail(&rxq->pool[i].list, &rxq->rx_used); in ipw_rx_queue_reset()
3476 rxq->read = rxq->write = 0; in ipw_rx_queue_reset()
3477 rxq->free_count = 0; in ipw_rx_queue_reset()
3478 spin_unlock_irqrestore(&rxq->lock, flags); in ipw_rx_queue_reset()
3545 if (!priv->rxq) in ipw_load()
3546 priv->rxq = ipw_rx_queue_alloc(priv); in ipw_load()
3548 ipw_rx_queue_reset(priv, priv->rxq); in ipw_load()
3549 if (!priv->rxq) { in ipw_load()
3668 ipw_write32(priv, IPW_RX_READ_INDEX, priv->rxq->read); in ipw_load()
3679 if (priv->rxq) { in ipw_load()
3680 ipw_rx_queue_free(priv, priv->rxq); in ipw_load()
3681 priv->rxq = NULL; in ipw_load()
5164 struct ipw_rx_queue *rxq = priv->rxq; in ipw_rx_queue_restock() local
5170 spin_lock_irqsave(&rxq->lock, flags); in ipw_rx_queue_restock()
5171 write = rxq->write; in ipw_rx_queue_restock()
5172 while ((ipw_rx_queue_space(rxq) > 0) && (rxq->free_count)) { in ipw_rx_queue_restock()
5173 element = rxq->rx_free.next; in ipw_rx_queue_restock()
5177 ipw_write32(priv, IPW_RFDS_TABLE_LOWER + rxq->write * RFD_SIZE, in ipw_rx_queue_restock()
5179 rxq->queue[rxq->write] = rxb; in ipw_rx_queue_restock()
5180 rxq->write = (rxq->write + 1) % RX_QUEUE_SIZE; in ipw_rx_queue_restock()
5181 rxq->free_count--; in ipw_rx_queue_restock()
5183 spin_unlock_irqrestore(&rxq->lock, flags); in ipw_rx_queue_restock()
5187 if (rxq->free_count <= RX_LOW_WATERMARK) in ipw_rx_queue_restock()
5191 if (write != rxq->write) in ipw_rx_queue_restock()
5192 ipw_write32(priv, IPW_RX_WRITE_INDEX, rxq->write); in ipw_rx_queue_restock()
5204 struct ipw_rx_queue *rxq = priv->rxq; in ipw_rx_queue_replenish() local
5209 spin_lock_irqsave(&rxq->lock, flags); in ipw_rx_queue_replenish()
5210 while (!list_empty(&rxq->rx_used)) { in ipw_rx_queue_replenish()
5211 element = rxq->rx_used.next; in ipw_rx_queue_replenish()
5228 list_add_tail(&rxb->list, &rxq->rx_free); in ipw_rx_queue_replenish()
5229 rxq->free_count++; in ipw_rx_queue_replenish()
5231 spin_unlock_irqrestore(&rxq->lock, flags); in ipw_rx_queue_replenish()
5250 static void ipw_rx_queue_free(struct ipw_priv *priv, struct ipw_rx_queue *rxq) in ipw_rx_queue_free() argument
5254 if (!rxq) in ipw_rx_queue_free()
5258 if (rxq->pool[i].skb != NULL) { in ipw_rx_queue_free()
5259 pci_unmap_single(priv->pci_dev, rxq->pool[i].dma_addr, in ipw_rx_queue_free()
5261 dev_kfree_skb(rxq->pool[i].skb); in ipw_rx_queue_free()
5265 kfree(rxq); in ipw_rx_queue_free()
5270 struct ipw_rx_queue *rxq; in ipw_rx_queue_alloc() local
5273 rxq = kzalloc(sizeof(*rxq), GFP_KERNEL); in ipw_rx_queue_alloc()
5274 if (unlikely(!rxq)) { in ipw_rx_queue_alloc()
5278 spin_lock_init(&rxq->lock); in ipw_rx_queue_alloc()
5279 INIT_LIST_HEAD(&rxq->rx_free); in ipw_rx_queue_alloc()
5280 INIT_LIST_HEAD(&rxq->rx_used); in ipw_rx_queue_alloc()
5284 list_add_tail(&rxq->pool[i].list, &rxq->rx_used); in ipw_rx_queue_alloc()
5288 rxq->read = rxq->write = 0; in ipw_rx_queue_alloc()
5289 rxq->free_count = 0; in ipw_rx_queue_alloc()
5291 return rxq; in ipw_rx_queue_alloc()
8286 i = priv->rxq->read; in ipw_rx()
8288 if (ipw_rx_queue_space (priv->rxq) > (RX_QUEUE_SIZE / 2)) in ipw_rx()
8292 rxb = priv->rxq->queue[i]; in ipw_rx()
8297 priv->rxq->queue[i] = NULL; in ipw_rx()
8455 list_add_tail(&rxb->list, &priv->rxq->rx_used); in ipw_rx()
8462 priv->rxq->read = i; in ipw_rx()
8468 priv->rxq->read = i; in ipw_rx()
11818 if (priv->rxq) { in ipw_pci_remove()
11819 ipw_rx_queue_free(priv, priv->rxq); in ipw_pci_remove()
11820 priv->rxq = NULL; in ipw_pci_remove()