Lines Matching refs:txq
382 il->txq[il->cmd_queue].meta[cmd_idx].flags &= ~CMD_WANT_SKB; in il_send_cmd_sync()
2724 il_txq_update_write_ptr(struct il_priv *il, struct il_tx_queue *txq) in il_txq_update_write_ptr() argument
2727 int txq_id = txq->q.id; in il_txq_update_write_ptr()
2729 if (txq->need_update == 0) in il_txq_update_write_ptr()
2747 il_wr(il, HBUS_TARG_WRPTR, txq->q.write_ptr | (txq_id << 8)); in il_txq_update_write_ptr()
2755 _il_wr(il, HBUS_TARG_WRPTR, txq->q.write_ptr | (txq_id << 8)); in il_txq_update_write_ptr()
2756 txq->need_update = 0; in il_txq_update_write_ptr()
2766 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_unmap() local
2767 struct il_queue *q = &txq->q; in il_tx_queue_unmap()
2773 il->ops->txq_free_tfd(il, txq); in il_tx_queue_unmap()
2790 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_free() local
2798 kfree(txq->cmd[i]); in il_tx_queue_free()
2801 if (txq->q.n_bd) in il_tx_queue_free()
2802 dma_free_coherent(dev, il->hw_params.tfd_size * txq->q.n_bd, in il_tx_queue_free()
2803 txq->tfds, txq->q.dma_addr); in il_tx_queue_free()
2806 kfree(txq->skbs); in il_tx_queue_free()
2807 txq->skbs = NULL; in il_tx_queue_free()
2810 kfree(txq->cmd); in il_tx_queue_free()
2811 kfree(txq->meta); in il_tx_queue_free()
2812 txq->cmd = NULL; in il_tx_queue_free()
2813 txq->meta = NULL; in il_tx_queue_free()
2816 memset(txq, 0, sizeof(*txq)); in il_tx_queue_free()
2826 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_cmd_queue_unmap() local
2827 struct il_queue *q = &txq->q; in il_cmd_queue_unmap()
2836 if (txq->meta[i].flags & CMD_MAPPED) { in il_cmd_queue_unmap()
2838 dma_unmap_addr(&txq->meta[i], mapping), in il_cmd_queue_unmap()
2839 dma_unmap_len(&txq->meta[i], len), in il_cmd_queue_unmap()
2841 txq->meta[i].flags = 0; in il_cmd_queue_unmap()
2848 if (txq->meta[i].flags & CMD_MAPPED) { in il_cmd_queue_unmap()
2850 dma_unmap_addr(&txq->meta[i], mapping), in il_cmd_queue_unmap()
2851 dma_unmap_len(&txq->meta[i], len), in il_cmd_queue_unmap()
2853 txq->meta[i].flags = 0; in il_cmd_queue_unmap()
2869 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_cmd_queue_free() local
2877 kfree(txq->cmd[i]); in il_cmd_queue_free()
2880 if (txq->q.n_bd) in il_cmd_queue_free()
2881 dma_free_coherent(dev, il->hw_params.tfd_size * txq->q.n_bd, in il_cmd_queue_free()
2882 txq->tfds, txq->q.dma_addr); in il_cmd_queue_free()
2885 kfree(txq->cmd); in il_cmd_queue_free()
2886 kfree(txq->meta); in il_cmd_queue_free()
2887 txq->cmd = NULL; in il_cmd_queue_free()
2888 txq->meta = NULL; in il_cmd_queue_free()
2891 memset(txq, 0, sizeof(*txq)); in il_cmd_queue_free()
2975 il_tx_queue_alloc(struct il_priv *il, struct il_tx_queue *txq, u32 id) in il_tx_queue_alloc() argument
2983 txq->skbs = kcalloc(TFD_QUEUE_SIZE_MAX, in il_tx_queue_alloc()
2986 if (!txq->skbs) { in il_tx_queue_alloc()
2991 txq->skbs = NULL; in il_tx_queue_alloc()
2995 txq->tfds = in il_tx_queue_alloc()
2996 dma_alloc_coherent(dev, tfd_sz, &txq->q.dma_addr, GFP_KERNEL); in il_tx_queue_alloc()
2997 if (!txq->tfds) in il_tx_queue_alloc()
3000 txq->q.id = id; in il_tx_queue_alloc()
3005 kfree(txq->skbs); in il_tx_queue_alloc()
3006 txq->skbs = NULL; in il_tx_queue_alloc()
3019 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_init() local
3037 txq->meta = in il_tx_queue_init()
3039 txq->cmd = in il_tx_queue_init()
3042 if (!txq->meta || !txq->cmd) in il_tx_queue_init()
3051 txq->cmd[i] = kmalloc(len, GFP_KERNEL); in il_tx_queue_init()
3052 if (!txq->cmd[i]) in il_tx_queue_init()
3057 ret = il_tx_queue_alloc(il, txq, txq_id); in il_tx_queue_init()
3061 txq->need_update = 0; in il_tx_queue_init()
3069 il_set_swq_id(txq, txq_id, txq_id); in il_tx_queue_init()
3072 il_queue_init(il, &txq->q, slots, txq_id); in il_tx_queue_init()
3075 il->ops->txq_init(il, txq); in il_tx_queue_init()
3080 kfree(txq->cmd[i]); in il_tx_queue_init()
3082 kfree(txq->meta); in il_tx_queue_init()
3083 kfree(txq->cmd); in il_tx_queue_init()
3093 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_reset() local
3103 memset(txq->meta, 0, sizeof(struct il_cmd_meta) * actual_slots); in il_tx_queue_reset()
3104 txq->need_update = 0; in il_tx_queue_reset()
3107 il_queue_init(il, &txq->q, slots, txq_id); in il_tx_queue_reset()
3110 il->ops->txq_init(il, txq); in il_tx_queue_reset()
3128 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_enqueue_hcmd() local
3129 struct il_queue *q = &txq->q; in il_enqueue_hcmd()
3167 out_cmd = txq->cmd[idx]; in il_enqueue_hcmd()
3168 out_meta = &txq->meta[idx]; in il_enqueue_hcmd()
3226 txq->need_update = 1; in il_enqueue_hcmd()
3230 il->ops->txq_update_byte_cnt_tbl(il, txq, 0); in il_enqueue_hcmd()
3232 il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, fix_size, 1, in il_enqueue_hcmd()
3237 il_txq_update_write_ptr(il, txq); in il_enqueue_hcmd()
3254 struct il_tx_queue *txq = &il->txq[txq_id]; in il_hcmd_queue_reclaim() local
3255 struct il_queue *q = &txq->q; in il_hcmd_queue_reclaim()
3296 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_tx_cmd_complete() local
3305 txq_id, il->cmd_queue, sequence, il->txq[il->cmd_queue].q.read_ptr, in il_tx_cmd_complete()
3306 il->txq[il->cmd_queue].q.write_ptr)) { in il_tx_cmd_complete()
3311 cmd_idx = il_get_cmd_idx(&txq->q, idx, huge); in il_tx_cmd_complete()
3312 cmd = txq->cmd[cmd_idx]; in il_tx_cmd_complete()
3313 meta = &txq->meta[cmd_idx]; in il_tx_cmd_complete()
3315 txq->time_stamp = jiffies; in il_tx_cmd_complete()
4647 if (!il->txq) in il_alloc_txq_mem()
4648 il->txq = in il_alloc_txq_mem()
4651 if (!il->txq) { in il_alloc_txq_mem()
4662 kfree(il->txq); in il_free_txq_mem()
4663 il->txq = NULL; in il_free_txq_mem()
4770 if (il->txq == NULL) in il_mac_flush()
4779 q = &il->txq[i].q; in il_mac_flush()
4803 struct il_tx_queue *txq = &il->txq[cnt]; in il_check_stuck_queue() local
4804 struct il_queue *q = &txq->q; in il_check_stuck_queue()
4810 txq->time_stamp = now; in il_check_stuck_queue()
4815 txq->time_stamp + in il_check_stuck_queue()
4820 jiffies_to_msecs(now - txq->time_stamp)); in il_check_stuck_queue()