|
@@ -1078,6 +1078,10 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, u16 ssn,
|
|
if (cfg) {
|
|
if (cfg) {
|
|
fifo = cfg->fifo;
|
|
fifo = cfg->fifo;
|
|
|
|
|
|
|
|
+ /* Disable the scheduler prior configuring the cmd queue */
|
|
|
|
+ if (txq_id == trans_pcie->cmd_queue)
|
|
|
|
+ iwl_scd_enable_set_active(trans, 0);
|
|
|
|
+
|
|
/* Stop this Tx queue before configuring it */
|
|
/* Stop this Tx queue before configuring it */
|
|
iwl_scd_txq_set_inactive(trans, txq_id);
|
|
iwl_scd_txq_set_inactive(trans, txq_id);
|
|
|
|
|
|
@@ -1135,6 +1139,10 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, u16 ssn,
|
|
(cfg->fifo << SCD_QUEUE_STTS_REG_POS_TXF) |
|
|
(cfg->fifo << SCD_QUEUE_STTS_REG_POS_TXF) |
|
|
(1 << SCD_QUEUE_STTS_REG_POS_WSL) |
|
|
(1 << SCD_QUEUE_STTS_REG_POS_WSL) |
|
|
SCD_QUEUE_STTS_REG_MSK);
|
|
SCD_QUEUE_STTS_REG_MSK);
|
|
|
|
+
|
|
|
|
+ /* enable the scheduler for this queue (only) */
|
|
|
|
+ if (txq_id == trans_pcie->cmd_queue)
|
|
|
|
+ iwl_scd_enable_set_active(trans, BIT(txq_id));
|
|
}
|
|
}
|
|
|
|
|
|
trans_pcie->txq[txq_id].active = true;
|
|
trans_pcie->txq[txq_id].active = true;
|