summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShahar Tzarfati <shahar.tzarfati@intel.com>2026-05-31 13:53:06 +0300
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>2026-06-03 17:02:55 +0300
commit18bf30892cd9716947c41c629c7dc7a6355edadc (patch)
tree05c9cf1fead448ff9e703469d669934f2b42e0d8
parentd947b22fd075a336be514ef428377bb757e0848c (diff)
downloadlinux-18bf30892cd9716947c41c629c7dc7a6355edadc.tar.xz
wifi: iwlwifi: mld: drop TLC config cmd v4/v5 compat code
FW core102 bumped TLC_MNG_CONFIG_CMD_API_S from version 5 to version 6. The v4 and v5 compatibility paths in iwl_mld_send_tlc_cmd() are no longer reachable on any supported firmware. Signed-off-by: Shahar Tzarfati <shahar.tzarfati@intel.com> Link: https://patch.msgid.link/20260531135036.c0e2dbfd0569.I44f8eb4d985bb9590b65b77e9a3dd157e4bd5e79@changeid Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
-rw-r--r--drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/fw/api/rs.h31
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mld/tlc.c74
3 files changed, 1 insertions, 106 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h b/drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
index e494e5b18d22..c8eb016e1a7e 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h
@@ -57,7 +57,7 @@ enum iwl_data_path_subcmd_ids {
/**
* @TLC_MNG_CONFIG_CMD: &struct iwl_tlc_config_cmd_v4 or
- * &struct iwl_tlc_config_cmd_v5 or &struct iwl_tlc_config_cmd.
+ * &struct iwl_tlc_config_cmd.
*/
TLC_MNG_CONFIG_CMD = 0xF,
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h b/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h
index f90e743caa7e..f1254546cc9d 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h
@@ -207,37 +207,6 @@ struct iwl_tlc_config_cmd_v4 {
} __packed; /* TLC_MNG_CONFIG_CMD_API_S_VER_4 */
/**
- * struct iwl_tlc_config_cmd_v5 - TLC configuration
- * @sta_id: station id
- * @reserved1: reserved
- * @max_ch_width: max supported channel width from &enum iwl_tlc_mng_cfg_cw
- * @mode: &enum iwl_tlc_mng_cfg_mode
- * @chains: bitmask of &enum iwl_tlc_mng_cfg_chains
- * @sgi_ch_width_supp: bitmap of SGI support per channel width
- * use BIT(&enum iwl_tlc_mng_cfg_cw)
- * @flags: bitmask of &enum iwl_tlc_mng_cfg_flags
- * @non_ht_rates: bitmap of supported legacy rates
- * @ht_rates: bitmap of &enum iwl_tlc_mng_ht_rates, per <nss, channel-width>
- * pair (0 - 80mhz width and below, 1 - 160mhz, 2 - 320mhz).
- * @max_mpdu_len: max MPDU length, in bytes
- * @max_tx_op: max TXOP in uSecs for all AC (BK, BE, VO, VI),
- * set zero for no limit.
- */
-struct iwl_tlc_config_cmd_v5 {
- u8 sta_id;
- u8 reserved1[3];
- u8 max_ch_width;
- u8 mode;
- u8 chains;
- u8 sgi_ch_width_supp;
- __le16 flags;
- __le16 non_ht_rates;
- __le32 ht_rates[IWL_TLC_NSS_MAX][IWL_TLC_MCS_PER_BW_NUM_V4];
- __le16 max_mpdu_len;
- __le16 max_tx_op;
-} __packed; /* TLC_MNG_CONFIG_CMD_API_S_VER_5 */
-
-/**
* struct iwl_tlc_config_cmd - TLC configuration
* @sta_mask: station mask (in NAN we can have multiple logical stations of
* the same peer (with the same TLC configuration)).
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/tlc.c b/drivers/net/wireless/intel/iwlwifi/mld/tlc.c
index edf9c735dd67..b6c2fa3664cb 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/tlc.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/tlc.c
@@ -467,65 +467,6 @@ iwl_mld_fill_supp_rates(struct iwl_mld *mld,
}
}
-static int iwl_mld_convert_tlc_cmd_to_v5(struct iwl_tlc_config_cmd *cmd,
- struct iwl_tlc_config_cmd_v5 *cmd_v5)
-{
- if (WARN_ON_ONCE(hweight32(le32_to_cpu(cmd->sta_mask)) != 1))
- return -EINVAL;
-
- /* Convert sta_mask to sta_id */
- cmd_v5->sta_id = __ffs(le32_to_cpu(cmd->sta_mask));
-
- /* Copy all the rest */
- cmd_v5->max_ch_width = cmd->max_ch_width;
- cmd_v5->mode = cmd->mode;
- cmd_v5->chains = cmd->chains;
- cmd_v5->sgi_ch_width_supp = cmd->sgi_ch_width_supp;
- cmd_v5->flags = cmd->flags;
- cmd_v5->non_ht_rates = cmd->non_ht_rates;
-
- BUILD_BUG_ON(sizeof(cmd_v5->ht_rates) != sizeof(cmd->ht_rates));
- memcpy(cmd_v5->ht_rates, cmd->ht_rates, sizeof(cmd->ht_rates));
-
- cmd_v5->max_mpdu_len = cmd->max_mpdu_len;
- cmd_v5->max_tx_op = cmd->max_tx_op;
-
- return 0;
-}
-
-static int iwl_mld_convert_tlc_cmd_to_v4(struct iwl_tlc_config_cmd *cmd,
- struct iwl_tlc_config_cmd_v4 *cmd_v4)
-{
- if (WARN_ON_ONCE(hweight32(le32_to_cpu(cmd->sta_mask)) != 1))
- return -EINVAL;
-
- /* Convert sta_mask to sta_id */
- cmd_v4->sta_id = __ffs(le32_to_cpu(cmd->sta_mask));
-
- /* Copy everything until ht_rates */
- cmd_v4->max_ch_width = cmd->max_ch_width;
- cmd_v4->mode = cmd->mode;
- cmd_v4->chains = cmd->chains;
- cmd_v4->sgi_ch_width_supp = cmd->sgi_ch_width_supp;
- cmd_v4->flags = cmd->flags;
- cmd_v4->non_ht_rates = cmd->non_ht_rates;
-
- /* Convert ht_rates from __le32 to __le16 */
- BUILD_BUG_ON(ARRAY_SIZE(cmd_v4->ht_rates) != ARRAY_SIZE(cmd->ht_rates));
- BUILD_BUG_ON(ARRAY_SIZE(cmd_v4->ht_rates[0]) != ARRAY_SIZE(cmd->ht_rates[0]));
-
- for (int nss = 0; nss < ARRAY_SIZE(cmd->ht_rates); nss++)
- for (int bw = 0; bw < ARRAY_SIZE(cmd->ht_rates[nss]); bw++)
- cmd_v4->ht_rates[nss][bw] =
- cpu_to_le16(le32_to_cpu(cmd->ht_rates[nss][bw]));
-
- /* Copy the rest */
- cmd_v4->max_mpdu_len = cmd->max_mpdu_len;
- cmd_v4->max_tx_op = cmd->max_tx_op;
-
- return 0;
-}
-
static void iwl_mld_send_tlc_cmd(struct iwl_mld *mld,
struct ieee80211_vif *vif,
struct iwl_mld_sta *mld_sta,
@@ -544,8 +485,6 @@ static void iwl_mld_send_tlc_cmd(struct iwl_mld *mld,
};
u32 cmd_id = WIDE_ID(DATA_PATH_GROUP, TLC_MNG_CONFIG_CMD);
u8 cmd_ver = iwl_fw_lookup_cmd_ver(mld->fw, cmd_id, 0);
- struct iwl_tlc_config_cmd_v5 cmd_v5 = {};
- struct iwl_tlc_config_cmd_v4 cmd_v4 = {};
void *cmd_ptr;
u8 cmd_size;
int ret;
@@ -558,19 +497,6 @@ static void iwl_mld_send_tlc_cmd(struct iwl_mld *mld,
if (cmd_ver == 6) {
cmd_ptr = &cmd;
cmd_size = sizeof(cmd);
- } else if (cmd_ver == 5) {
- /* TODO: remove support once FW moves to version 6 */
- ret = iwl_mld_convert_tlc_cmd_to_v5(&cmd, &cmd_v5);
- if (ret)
- return;
- cmd_ptr = &cmd_v5;
- cmd_size = sizeof(cmd_v5);
- } else if (cmd_ver == 4) {
- ret = iwl_mld_convert_tlc_cmd_to_v4(&cmd, &cmd_v4);
- if (ret)
- return;
- cmd_ptr = &cmd_v4;
- cmd_size = sizeof(cmd_v4);
} else {
IWL_ERR(mld, "Unsupported TLC config cmd version %d\n",
cmd_ver);