Commit 792eb357 authored by Miri Korenblit's avatar Miri Korenblit
Browse files

wifi: iwlwifi: mvm: support ROC command version 6



This was suppsed to be supported only in iwlmld, but turns out that it
will be needed also in iwlmvm. Add support for it.

Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://patch.msgid.link/20250430155443.d118ee63aca4.I12ea349ca6587d8ea606f6ece4a9f3c0c2bb1494@changeid
parent bd795a65
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -771,15 +771,17 @@ static void iwl_mvm_cancel_session_protection(struct iwl_mvm *mvm,

static void iwl_mvm_roc_rm_cmd(struct iwl_mvm *mvm, u32 activity)
{
	struct iwl_roc_req_v5 roc_cmd = {
	struct iwl_roc_req roc_cmd = {
		.action = cpu_to_le32(FW_CTXT_ACTION_REMOVE),
		.activity = cpu_to_le32(activity),
	};
	u8 ver = iwl_fw_lookup_cmd_ver(mvm->fw, WIDE_ID(MAC_CONF_GROUP, ROC_CMD), 0);
	u16 cmd_len = ver < 6 ? sizeof(struct iwl_roc_req_v5) : sizeof(roc_cmd);
	int ret;

	lockdep_assert_held(&mvm->mutex);
	ret = iwl_mvm_send_cmd_pdu(mvm, WIDE_ID(MAC_CONF_GROUP, ROC_CMD), 0,
				   sizeof(roc_cmd), &roc_cmd);
				   cmd_len, &roc_cmd);
	if (ret)
		IWL_ERR(mvm, "Couldn't send the ROC_CMD: %d\n", ret);
}
@@ -1102,11 +1104,13 @@ int iwl_mvm_roc_add_cmd(struct iwl_mvm *mvm,
{
	int res;
	u32 duration_tu, delay;
	struct iwl_roc_req_v5 roc_req = {
	struct iwl_roc_req roc_req = {
		.action = cpu_to_le32(FW_CTXT_ACTION_ADD),
		.activity = cpu_to_le32(activity),
		.sta_id = cpu_to_le32(mvm->aux_sta.sta_id),
	};
	u8 ver = iwl_fw_lookup_cmd_ver(mvm->fw, WIDE_ID(MAC_CONF_GROUP, ROC_CMD), 0);
	u16 cmd_len = ver < 6 ? sizeof(struct iwl_roc_req_v5) : sizeof(roc_req);
	struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);

	lockdep_assert_held(&mvm->mutex);
@@ -1136,7 +1140,7 @@ int iwl_mvm_roc_add_cmd(struct iwl_mvm *mvm,
	memcpy(roc_req.node_addr, vif->addr, ETH_ALEN);

	res = iwl_mvm_send_cmd_pdu(mvm, WIDE_ID(MAC_CONF_GROUP, ROC_CMD),
				   0, sizeof(roc_req), &roc_req);
				   0, cmd_len, &roc_req);
	if (!res)
		mvmvif->roc_activity = activity;