Lines Matching refs:txq
364 il->txq[il->cmd_queue].meta[cmd_idx].flags &= ~CMD_WANT_SKB; in il_send_cmd_sync()
2709 il_txq_update_write_ptr(struct il_priv *il, struct il_tx_queue *txq) in il_txq_update_write_ptr() argument
2712 int txq_id = txq->q.id; in il_txq_update_write_ptr()
2714 if (txq->need_update == 0) in il_txq_update_write_ptr()
2732 il_wr(il, HBUS_TARG_WRPTR, txq->q.write_ptr | (txq_id << 8)); in il_txq_update_write_ptr()
2740 _il_wr(il, HBUS_TARG_WRPTR, txq->q.write_ptr | (txq_id << 8)); in il_txq_update_write_ptr()
2741 txq->need_update = 0; in il_txq_update_write_ptr()
2751 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_unmap() local
2752 struct il_queue *q = &txq->q; in il_tx_queue_unmap()
2758 il->ops->txq_free_tfd(il, txq); in il_tx_queue_unmap()
2775 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_free() local
2782 if (txq->cmd) { in il_tx_queue_free()
2784 kfree(txq->cmd[i]); in il_tx_queue_free()
2788 if (txq->q.n_bd) in il_tx_queue_free()
2789 dma_free_coherent(dev, il->hw_params.tfd_size * txq->q.n_bd, in il_tx_queue_free()
2790 txq->tfds, txq->q.dma_addr); in il_tx_queue_free()
2793 kfree(txq->skbs); in il_tx_queue_free()
2794 txq->skbs = NULL; in il_tx_queue_free()
2797 kfree(txq->cmd); in il_tx_queue_free()
2798 kfree(txq->meta); in il_tx_queue_free()
2799 txq->cmd = NULL; in il_tx_queue_free()
2800 txq->meta = NULL; in il_tx_queue_free()
2803 memset(txq, 0, sizeof(*txq)); in il_tx_queue_free()
2813 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_cmd_queue_unmap() local
2814 struct il_queue *q = &txq->q; in il_cmd_queue_unmap()
2823 if (txq->meta[i].flags & CMD_MAPPED) { in il_cmd_queue_unmap()
2825 dma_unmap_addr(&txq->meta[i], mapping), in il_cmd_queue_unmap()
2826 dma_unmap_len(&txq->meta[i], len), in il_cmd_queue_unmap()
2828 txq->meta[i].flags = 0; in il_cmd_queue_unmap()
2835 if (txq->meta[i].flags & CMD_MAPPED) { in il_cmd_queue_unmap()
2837 dma_unmap_addr(&txq->meta[i], mapping), in il_cmd_queue_unmap()
2838 dma_unmap_len(&txq->meta[i], len), in il_cmd_queue_unmap()
2840 txq->meta[i].flags = 0; in il_cmd_queue_unmap()
2855 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_cmd_queue_free() local
2862 if (txq->cmd) { in il_cmd_queue_free()
2864 kfree(txq->cmd[i]); in il_cmd_queue_free()
2868 if (txq->q.n_bd) in il_cmd_queue_free()
2869 dma_free_coherent(dev, il->hw_params.tfd_size * txq->q.n_bd, in il_cmd_queue_free()
2870 txq->tfds, txq->q.dma_addr); in il_cmd_queue_free()
2873 kfree(txq->cmd); in il_cmd_queue_free()
2874 kfree(txq->meta); in il_cmd_queue_free()
2875 txq->cmd = NULL; in il_cmd_queue_free()
2876 txq->meta = NULL; in il_cmd_queue_free()
2879 memset(txq, 0, sizeof(*txq)); in il_cmd_queue_free()
2963 il_tx_queue_alloc(struct il_priv *il, struct il_tx_queue *txq, u32 id) in il_tx_queue_alloc() argument
2971 txq->skbs = kcalloc(TFD_QUEUE_SIZE_MAX, in il_tx_queue_alloc()
2974 if (!txq->skbs) { in il_tx_queue_alloc()
2979 txq->skbs = NULL; in il_tx_queue_alloc()
2983 txq->tfds = in il_tx_queue_alloc()
2984 dma_alloc_coherent(dev, tfd_sz, &txq->q.dma_addr, GFP_KERNEL); in il_tx_queue_alloc()
2985 if (!txq->tfds) in il_tx_queue_alloc()
2988 txq->q.id = id; in il_tx_queue_alloc()
2993 kfree(txq->skbs); in il_tx_queue_alloc()
2994 txq->skbs = NULL; in il_tx_queue_alloc()
3007 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_init() local
3025 txq->meta = in il_tx_queue_init()
3027 txq->cmd = in il_tx_queue_init()
3030 if (!txq->meta || !txq->cmd) in il_tx_queue_init()
3039 txq->cmd[i] = kmalloc(len, GFP_KERNEL); in il_tx_queue_init()
3040 if (!txq->cmd[i]) in il_tx_queue_init()
3045 ret = il_tx_queue_alloc(il, txq, txq_id); in il_tx_queue_init()
3049 txq->need_update = 0; in il_tx_queue_init()
3057 il_set_swq_id(txq, txq_id, txq_id); in il_tx_queue_init()
3060 il_queue_init(il, &txq->q, slots, txq_id); in il_tx_queue_init()
3063 il->ops->txq_init(il, txq); in il_tx_queue_init()
3068 kfree(txq->cmd[i]); in il_tx_queue_init()
3070 kfree(txq->meta); in il_tx_queue_init()
3071 txq->meta = NULL; in il_tx_queue_init()
3072 kfree(txq->cmd); in il_tx_queue_init()
3073 txq->cmd = NULL; in il_tx_queue_init()
3083 struct il_tx_queue *txq = &il->txq[txq_id]; in il_tx_queue_reset() local
3093 memset(txq->meta, 0, sizeof(struct il_cmd_meta) * actual_slots); in il_tx_queue_reset()
3094 txq->need_update = 0; in il_tx_queue_reset()
3097 il_queue_init(il, &txq->q, slots, txq_id); in il_tx_queue_reset()
3100 il->ops->txq_init(il, txq); in il_tx_queue_reset()
3118 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_enqueue_hcmd() local
3119 struct il_queue *q = &txq->q; in il_enqueue_hcmd()
3156 out_cmd = txq->cmd[idx]; in il_enqueue_hcmd()
3157 out_meta = &txq->meta[idx]; in il_enqueue_hcmd()
3212 txq->need_update = 1; in il_enqueue_hcmd()
3216 il->ops->txq_update_byte_cnt_tbl(il, txq, 0); in il_enqueue_hcmd()
3218 il->ops->txq_attach_buf_to_tfd(il, txq, phys_addr, fix_size, 1, in il_enqueue_hcmd()
3223 il_txq_update_write_ptr(il, txq); in il_enqueue_hcmd()
3240 struct il_tx_queue *txq = &il->txq[txq_id]; in il_hcmd_queue_reclaim() local
3241 struct il_queue *q = &txq->q; in il_hcmd_queue_reclaim()
3282 struct il_tx_queue *txq = &il->txq[il->cmd_queue]; in il_tx_cmd_complete() local
3291 txq_id, il->cmd_queue, sequence, il->txq[il->cmd_queue].q.read_ptr, in il_tx_cmd_complete()
3292 il->txq[il->cmd_queue].q.write_ptr)) { in il_tx_cmd_complete()
3297 cmd_idx = il_get_cmd_idx(&txq->q, idx, huge); in il_tx_cmd_complete()
3298 cmd = txq->cmd[cmd_idx]; in il_tx_cmd_complete()
3299 meta = &txq->meta[cmd_idx]; in il_tx_cmd_complete()
3301 txq->time_stamp = jiffies; in il_tx_cmd_complete()
4633 if (!il->txq) in il_alloc_txq_mem()
4634 il->txq = in il_alloc_txq_mem()
4638 if (!il->txq) { in il_alloc_txq_mem()
4649 kfree(il->txq); in il_free_txq_mem()
4650 il->txq = NULL; in il_free_txq_mem()
4757 if (il->txq == NULL) in il_mac_flush()
4766 q = &il->txq[i].q; in il_mac_flush()
4790 struct il_tx_queue *txq = &il->txq[cnt]; in il_check_stuck_queue() local
4791 struct il_queue *q = &txq->q; in il_check_stuck_queue()
4797 txq->time_stamp = now; in il_check_stuck_queue()
4802 txq->time_stamp + in il_check_stuck_queue()
4807 jiffies_to_msecs(now - txq->time_stamp)); in il_check_stuck_queue()