Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 097129c9 authored by Liad Kaufman's avatar Liad Kaufman Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: move cmd queue to be #0 in dqa mode



Change the CMD queue to be queue #0 (rather than queue #9)
when working in DQA mode.

Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 0e0e4420
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ enum {
/*
 * DQA queue numbers
 *
 * @IWL_MVM_DQA_CMD_QUEUE: a queue reserved for sending HCMDs to the FW
 * @IWL_MVM_DQA_GCAST_QUEUE: a queue reserved for P2P GO/SoftAP GCAST frames
 * @IWL_MVM_DQA_BSS_CLIENT_QUEUE: a queue reserved for BSS activity, to ensure
 *	that we are never left without the possibility to connect to an AP.
@@ -103,6 +104,7 @@ enum {
 * @IWL_MVM_DQA_MAX_DATA_QUEUE: last TXQ in pool for DATA frames
 */
enum iwl_mvm_dqa_txq {
	IWL_MVM_DQA_CMD_QUEUE = 0,
	IWL_MVM_DQA_GCAST_QUEUE = 3,
	IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4,
	IWL_MVM_DQA_MIN_MGMT_QUEUE = 5,
+4 −1
Original line number Diff line number Diff line
@@ -652,6 +652,9 @@ static int iwl_mvm_load_ucode_wait_alive(struct iwl_mvm *mvm,
	 */

	memset(&mvm->queue_info, 0, sizeof(mvm->queue_info));
	if (iwl_mvm_is_dqa_supported(mvm))
		mvm->queue_info[IWL_MVM_DQA_CMD_QUEUE].hw_queue_refcount = 1;
	else
		mvm->queue_info[IWL_MVM_CMD_QUEUE].hw_queue_refcount = 1;

	for (i = 0; i < IEEE80211_MAX_QUEUES; i++)
+6 −2
Original line number Diff line number Diff line
@@ -252,10 +252,14 @@ unsigned long iwl_mvm_get_used_hw_queues(struct iwl_mvm *mvm,
		.exclude_vif = exclude_vif,
		.used_hw_queues =
			BIT(IWL_MVM_OFFCHANNEL_QUEUE) |
			BIT(mvm->aux_queue) |
			BIT(IWL_MVM_CMD_QUEUE),
			BIT(mvm->aux_queue),
	};

	if (iwl_mvm_is_dqa_supported(mvm))
		data.used_hw_queues |= BIT(IWL_MVM_DQA_CMD_QUEUE);
	else
		data.used_hw_queues |= BIT(IWL_MVM_CMD_QUEUE);

	lockdep_assert_held(&mvm->mutex);

	/* mark all VIF used hw queues */
+4 −1
Original line number Diff line number Diff line
@@ -619,6 +619,9 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
	trans_cfg.command_groups = iwl_mvm_groups;
	trans_cfg.command_groups_size = ARRAY_SIZE(iwl_mvm_groups);

	if (iwl_mvm_is_dqa_supported(mvm))
		trans_cfg.cmd_queue = IWL_MVM_DQA_CMD_QUEUE;
	else
		trans_cfg.cmd_queue = IWL_MVM_CMD_QUEUE;
	trans_cfg.cmd_fifo = IWL_MVM_TX_FIFO_CMD;
	trans_cfg.scd_set_active = true;