Commit 925c6a40 authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: iwlwifi: mvm: convert TID to FW value on queue remove



On queue remove, we should convert the TID value to the
firmware value (8 -> 15) just like we do on queue add.
Otherwise, the firmware will not be able to find the
correct queue to remove.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230413102635.6651077eaec3.Ia6868c8fc1a92063609bb057b6a618726712d0bb@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 0aa27be5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -268,6 +268,9 @@ static int iwl_mvm_mld_disable_txq(struct iwl_mvm *mvm, int sta_id,
	int queue = *queueptr;
	int ret = 0;

	if (tid == IWL_MAX_TID_COUNT)
		tid = IWL_MGMT_TID;

	if (mvm->sta_remove_requires_queue_remove) {
		u32 cmd_id = WIDE_ID(DATA_PATH_GROUP,
				     SCD_QUEUE_CONFIG_CMD);
+5 −1
Original line number Diff line number Diff line
@@ -356,10 +356,14 @@ static int iwl_mvm_disable_txq(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
					     SCD_QUEUE_CONFIG_CMD);
			struct iwl_scd_queue_cfg_cmd remove_cmd = {
				.operation = cpu_to_le32(IWL_SCD_QUEUE_REMOVE),
				.u.remove.tid = cpu_to_le32(tid),
				.u.remove.sta_mask = cpu_to_le32(BIT(sta_id)),
			};

			if (tid == IWL_MAX_TID_COUNT)
				tid = IWL_MGMT_TID;

			remove_cmd.u.remove.tid = cpu_to_le32(tid);

			ret = iwl_mvm_send_cmd_pdu(mvm, cmd_id, 0,
						   sizeof(remove_cmd),
						   &remove_cmd);