• Home
  • Raw
  • Download

Lines Matching refs:q

66 static int iwl_queue_space(const struct iwl_queue *q)  in iwl_queue_space()  argument
68 int s = q->read_ptr - q->write_ptr; in iwl_queue_space()
70 if (q->read_ptr > q->write_ptr) in iwl_queue_space()
71 s -= q->n_bd; in iwl_queue_space()
74 s += q->n_window; in iwl_queue_space()
85 static int iwl_queue_init(struct iwl_queue *q, int count, int slots_num, u32 id) in iwl_queue_init() argument
87 q->n_bd = count; in iwl_queue_init()
88 q->n_window = slots_num; in iwl_queue_init()
89 q->id = id; in iwl_queue_init()
101 q->low_mark = q->n_window / 4; in iwl_queue_init()
102 if (q->low_mark < 4) in iwl_queue_init()
103 q->low_mark = 4; in iwl_queue_init()
105 q->high_mark = q->n_window / 8; in iwl_queue_init()
106 if (q->high_mark < 2) in iwl_queue_init()
107 q->high_mark = 2; in iwl_queue_init()
109 q->write_ptr = 0; in iwl_queue_init()
110 q->read_ptr = 0; in iwl_queue_init()
142 struct iwl_queue *q = &txq->q; in iwl_pcie_txq_stuck_timer() local
146 SCD_TX_STTS_QUEUE_OFFSET(txq->q.id); in iwl_pcie_txq_stuck_timer()
152 if (txq->q.read_ptr == txq->q.write_ptr) { in iwl_pcie_txq_stuck_timer()
158 IWL_ERR(trans, "Queue %d stuck for %u ms.\n", txq->q.id, in iwl_pcie_txq_stuck_timer()
161 txq->q.read_ptr, txq->q.write_ptr); in iwl_pcie_txq_stuck_timer()
189 SCD_QUEUE_RDPTR(i)) & (txq->q.n_bd - 1), in iwl_pcie_txq_stuck_timer()
193 for (i = q->read_ptr; i != q->write_ptr; in iwl_pcie_txq_stuck_timer()
194 i = iwl_queue_inc_wrap(i, q->n_bd)) in iwl_pcie_txq_stuck_timer()
209 int write_ptr = txq->q.write_ptr; in iwl_pcie_txq_update_byte_cnt_tbl()
210 int txq_id = txq->q.id; in iwl_pcie_txq_update_byte_cnt_tbl()
216 (void *) txq->entries[txq->q.write_ptr].cmd->payload; in iwl_pcie_txq_update_byte_cnt_tbl()
255 int txq_id = txq->q.id; in iwl_pcie_txq_inval_byte_cnt_tbl()
256 int read_ptr = txq->q.read_ptr; in iwl_pcie_txq_inval_byte_cnt_tbl()
260 (void *)txq->entries[txq->q.read_ptr].cmd->payload; in iwl_pcie_txq_inval_byte_cnt_tbl()
281 int txq_id = txq->q.id; in iwl_pcie_txq_inc_wr_ptr()
289 txq->q.write_ptr | (txq_id << 8)); in iwl_pcie_txq_inc_wr_ptr()
310 txq->q.write_ptr); in iwl_pcie_txq_inc_wr_ptr()
313 txq->q.write_ptr | (txq_id << 8)); in iwl_pcie_txq_inc_wr_ptr()
322 txq->q.write_ptr | (txq_id << 8)); in iwl_pcie_txq_inc_wr_ptr()
406 int rd_ptr = txq->q.read_ptr; in iwl_pcie_txq_free_tfd()
407 int idx = get_cmd_index(&txq->q, rd_ptr); in iwl_pcie_txq_free_tfd()
434 struct iwl_queue *q; in iwl_pcie_txq_build_tfd() local
438 q = &txq->q; in iwl_pcie_txq_build_tfd()
440 tfd = &tfd_tmp[q->write_ptr]; in iwl_pcie_txq_build_tfd()
482 txq->q.n_window = slots_num; in iwl_pcie_txq_alloc()
503 &txq->q.dma_addr, GFP_KERNEL); in iwl_pcie_txq_alloc()
520 txq->q.id = txq_id; in iwl_pcie_txq_alloc()
524 dma_free_coherent(trans->dev, tfd_sz, txq->tfds, txq->q.dma_addr); in iwl_pcie_txq_alloc()
548 ret = iwl_queue_init(&txq->q, TFD_QUEUE_SIZE_MAX, slots_num, in iwl_pcie_txq_init()
560 txq->q.dma_addr >> 8); in iwl_pcie_txq_init()
572 struct iwl_queue *q = &txq->q; in iwl_pcie_txq_unmap() local
574 if (!q->n_bd) in iwl_pcie_txq_unmap()
578 while (q->write_ptr != q->read_ptr) { in iwl_pcie_txq_unmap()
580 q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd); in iwl_pcie_txq_unmap()
607 for (i = 0; i < txq->q.n_window; i++) { in iwl_pcie_txq_free()
613 if (txq->q.n_bd) { in iwl_pcie_txq_free()
615 txq->q.n_bd, txq->tfds, txq->q.dma_addr); in iwl_pcie_txq_free()
616 txq->q.dma_addr = 0; in iwl_pcie_txq_free()
619 sizeof(*txq->scratchbufs) * txq->q.n_window, in iwl_pcie_txq_free()
707 txq->q.dma_addr >> 8); in iwl_trans_pcie_tx_reset()
709 txq->q.read_ptr = 0; in iwl_trans_pcie_tx_reset()
710 txq->q.write_ptr = 0; in iwl_trans_pcie_tx_reset()
907 if (txq->q.read_ptr == txq->q.write_ptr) in iwl_pcie_txq_progress()
920 int tfd_num = ssn & (txq->q.n_bd - 1); in iwl_trans_pcie_reclaim()
921 struct iwl_queue *q = &txq->q; in iwl_trans_pcie_reclaim() local
930 if (txq->q.read_ptr == tfd_num) in iwl_trans_pcie_reclaim()
934 txq_id, txq->q.read_ptr, tfd_num, ssn); in iwl_trans_pcie_reclaim()
938 last_to_free = iwl_queue_dec_wrap(tfd_num, q->n_bd); in iwl_trans_pcie_reclaim()
940 if (!iwl_queue_used(q, last_to_free)) { in iwl_trans_pcie_reclaim()
943 __func__, txq_id, last_to_free, q->n_bd, in iwl_trans_pcie_reclaim()
944 q->write_ptr, q->read_ptr); in iwl_trans_pcie_reclaim()
952 q->read_ptr != tfd_num; in iwl_trans_pcie_reclaim()
953 q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd)) { in iwl_trans_pcie_reclaim()
955 if (WARN_ON_ONCE(txq->entries[txq->q.read_ptr].skb == NULL)) in iwl_trans_pcie_reclaim()
958 __skb_queue_tail(skbs, txq->entries[txq->q.read_ptr].skb); in iwl_trans_pcie_reclaim()
960 txq->entries[txq->q.read_ptr].skb = NULL; in iwl_trans_pcie_reclaim()
969 if (iwl_queue_space(&txq->q) > txq->q.low_mark) in iwl_trans_pcie_reclaim()
986 struct iwl_queue *q = &txq->q; in iwl_pcie_cmdq_reclaim() local
991 if ((idx >= q->n_bd) || (!iwl_queue_used(q, idx))) { in iwl_pcie_cmdq_reclaim()
994 __func__, txq_id, idx, q->n_bd, in iwl_pcie_cmdq_reclaim()
995 q->write_ptr, q->read_ptr); in iwl_pcie_cmdq_reclaim()
999 for (idx = iwl_queue_inc_wrap(idx, q->n_bd); q->read_ptr != idx; in iwl_pcie_cmdq_reclaim()
1000 q->read_ptr = iwl_queue_inc_wrap(q->read_ptr, q->n_bd)) { in iwl_pcie_cmdq_reclaim()
1004 idx, q->write_ptr, q->read_ptr); in iwl_pcie_cmdq_reclaim()
1083 trans_pcie->txq[txq_id].q.read_ptr = (ssn & 0xff); in iwl_trans_pcie_txq_enable()
1084 trans_pcie->txq[txq_id].q.write_ptr = (ssn & 0xff); in iwl_trans_pcie_txq_enable()
1148 struct iwl_queue *q = &txq->q; in iwl_pcie_enqueue_hcmd() local
1234 if (iwl_queue_space(q) < ((cmd->flags & CMD_ASYNC) ? 2 : 1)) { in iwl_pcie_enqueue_hcmd()
1243 idx = get_cmd_index(q, q->write_ptr); in iwl_pcie_enqueue_hcmd()
1257 INDEX_TO_SEQ(q->write_ptr)); in iwl_pcie_enqueue_hcmd()
1292 cmd_size, q->write_ptr, idx, trans_pcie->cmd_queue); in iwl_pcie_enqueue_hcmd()
1296 memcpy(&txq->scratchbufs[q->write_ptr], &out_cmd->hdr, scratch_size); in iwl_pcie_enqueue_hcmd()
1298 iwl_pcie_get_scratchbuf_dma(txq, q->write_ptr), in iwl_pcie_enqueue_hcmd()
1309 &txq->tfds[q->write_ptr]); in iwl_pcie_enqueue_hcmd()
1333 &txq->tfds[q->write_ptr]); in iwl_pcie_enqueue_hcmd()
1351 if (q->read_ptr == q->write_ptr && trans_pcie->wd_timeout) in iwl_pcie_enqueue_hcmd()
1355 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd); in iwl_pcie_enqueue_hcmd()
1395 trans_pcie->txq[trans_pcie->cmd_queue].q.read_ptr, in iwl_pcie_hcmd_complete()
1396 trans_pcie->txq[trans_pcie->cmd_queue].q.write_ptr)) { in iwl_pcie_hcmd_complete()
1403 cmd_index = get_cmd_index(&txq->q, index); in iwl_pcie_hcmd_complete()
1498 struct iwl_queue *q = &txq->q; in iwl_pcie_send_hcmd_sync() local
1507 q->read_ptr, q->write_ptr); in iwl_pcie_send_hcmd_sync()
1588 struct iwl_queue *q; in iwl_trans_pcie_tx() local
1598 q = &txq->q; in iwl_trans_pcie_tx()
1615 ((wifi_seq & 0xff) != q->write_ptr), in iwl_trans_pcie_tx()
1617 txq_id, wifi_seq, q->write_ptr); in iwl_trans_pcie_tx()
1621 txq->entries[q->write_ptr].skb = skb; in iwl_trans_pcie_tx()
1622 txq->entries[q->write_ptr].cmd = dev_cmd; in iwl_trans_pcie_tx()
1627 INDEX_TO_SEQ(q->write_ptr))); in iwl_trans_pcie_tx()
1629 tb0_phys = iwl_pcie_get_scratchbuf_dma(txq, q->write_ptr); in iwl_trans_pcie_tx()
1637 out_meta = &txq->entries[q->write_ptr].meta; in iwl_trans_pcie_tx()
1654 memcpy(&txq->scratchbufs[q->write_ptr], &dev_cmd->hdr, in iwl_trans_pcie_tx()
1680 &txq->tfds[q->write_ptr]); in iwl_trans_pcie_tx()
1690 &txq->tfds[txq->q.write_ptr], in iwl_trans_pcie_tx()
1705 if (txq->need_update && q->read_ptr == q->write_ptr && in iwl_trans_pcie_tx()
1710 q->write_ptr = iwl_queue_inc_wrap(q->write_ptr, q->n_bd); in iwl_trans_pcie_tx()
1719 if (iwl_queue_space(q) < q->high_mark) { in iwl_trans_pcie_tx()