]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: add a macro for max FW links
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Sat, 21 Mar 2026 17:29:15 +0000 (19:29 +0200)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 25 Mar 2026 09:31:58 +0000 (11:31 +0200)
Currently we use IWL_FW_MAX_LINK_ID + 1 to indicate the maximum number
of link that the fw supports. This is a bit confusing.
Add a macro that indicates the number if maximum links that the FW
supports and use it instead.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260321192637.8da9f991526f.I72709f1db90036265c98c5d45682bcf5f36be7ba@changeid
drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h
drivers/net/wireless/intel/iwlwifi/fw/api/stats.h
drivers/net/wireless/intel/iwlwifi/iwl-drv.c
drivers/net/wireless/intel/iwlwifi/mld/mld.h
drivers/net/wireless/intel/iwlwifi/mld/sta.c
drivers/net/wireless/intel/iwlwifi/mld/sta.h
drivers/net/wireless/intel/iwlwifi/mld/tests/utils.c

index 180eb82275821b6cf7dc17f7bfc24d56f2ccc753..25c57753ff34021f27df2652276f1b4f06929538 100644 (file)
@@ -709,6 +709,7 @@ struct iwl_link_config_cmd {
  */
 #define IWL_FW_MAX_ACTIVE_LINKS_NUM 2
 #define IWL_FW_MAX_LINK_ID 3
+#define IWL_FW_MAX_LINKS IWL_FW_MAX_LINK_ID + 1
 
 /**
  * enum iwl_fw_sta_type - FW station types
index 8d9a5058d5a54996616c3956b245fdd244809cb1..68983f6a002661250dea1c50d09073641be04686 100644 (file)
@@ -598,7 +598,6 @@ struct iwl_stats_ntfy_per_sta {
 } __packed; /* STATISTICS_NTFY_PER_STA_API_S_VER_1 */
 
 #define IWL_STATS_MAX_PHY_OPERATIONAL 3
-#define IWL_STATS_MAX_FW_LINKS (IWL_FW_MAX_LINK_ID + 1)
 
 /**
  * struct iwl_system_statistics_notif_oper - statistics notification
@@ -610,7 +609,7 @@ struct iwl_stats_ntfy_per_sta {
  */
 struct iwl_system_statistics_notif_oper {
        __le32 time_stamp;
-       struct iwl_stats_ntfy_per_link per_link[IWL_STATS_MAX_FW_LINKS];
+       struct iwl_stats_ntfy_per_link per_link[IWL_FW_MAX_LINKS];
        struct iwl_stats_ntfy_per_phy per_phy[IWL_STATS_MAX_PHY_OPERATIONAL];
        struct iwl_stats_ntfy_per_sta per_sta[IWL_STATION_COUNT_MAX];
 } __packed; /* STATISTICS_FW_NTFY_OPERATIONAL_API_S_VER_3 */
@@ -624,7 +623,7 @@ struct iwl_system_statistics_notif_oper {
  */
 struct iwl_system_statistics_part1_notif_oper {
        __le32 time_stamp;
-       struct iwl_stats_ntfy_part1_per_link per_link[IWL_STATS_MAX_FW_LINKS];
+       struct iwl_stats_ntfy_part1_per_link per_link[IWL_FW_MAX_LINKS];
        __le32 per_phy_crc_error_stats[IWL_STATS_MAX_PHY_OPERATIONAL];
 } __packed; /* STATISTICS_FW_NTFY_OPERATIONAL_PART1_API_S_VER_4 */
 
index 4cdd0fe1b788f41a2e80c81e2e1d12ba2c6a0313..d5ded4d3a30b7ce73cb3c68e484d27776ca4938c 100644 (file)
@@ -1315,7 +1315,7 @@ static int iwl_parse_tlv_firmware(struct iwl_drv *drv,
                        if (tlv_len != sizeof(u32))
                                goto invalid_tlv_len;
                        if (le32_to_cpup((const __le32 *)tlv_data) >
-                           IWL_FW_MAX_LINK_ID + 1) {
+                           IWL_FW_MAX_LINKS) {
                                IWL_ERR(drv,
                                        "%d is an invalid number of links\n",
                                        le32_to_cpup((const __le32 *)tlv_data));
index ea3d1fab6f4600150f295b8dadf5ff6d1bcb2e4e..606cb64f8ea4fd63748623081007fb7d9f9fc32b 100644 (file)
 struct iwl_mld {
        /* Add here fields that need clean up on restart */
        struct_group(zeroed_on_hw_restart,
-               struct ieee80211_bss_conf __rcu *fw_id_to_bss_conf[IWL_FW_MAX_LINK_ID + 1];
+               struct ieee80211_bss_conf __rcu *fw_id_to_bss_conf[IWL_FW_MAX_LINKS];
                struct ieee80211_vif __rcu *fw_id_to_vif[NUM_MAC_INDEX_DRIVER];
                struct ieee80211_txq __rcu *fw_id_to_txq[IWL_MAX_TVQM_QUEUES];
                u8 used_phy_ids: NUM_PHY_CTX;
index eda2cbbb3b30c0457194f48938bb08ec2396293f..4c97d12ce2d01722be0897779b4dbc018ed3dc2d 100644 (file)
@@ -938,7 +938,7 @@ static void iwl_mld_count_mpdu(struct ieee80211_link_sta *link_sta, int queue,
        if (!(mld_vif->emlsr.blocked_reasons & IWL_MLD_EMLSR_BLOCKED_TPT))
                goto unlock;
 
-       for (int i = 0; i <= IWL_FW_MAX_LINK_ID; i++)
+       for (int i = 0; i < IWL_FW_MAX_LINKS; i++)
                total_mpdus += tx ? queue_counter->per_link[i].tx :
                                    queue_counter->per_link[i].rx;
 
index 5f6c440bf058e56dd6cc0107319d23d6c9a0e92e..36288c2fb38c5e43a1b4faa7f2a24e2c2d751a04 100644 (file)
@@ -89,7 +89,7 @@ struct iwl_mld_per_link_mpdu_counter {
  */
 struct iwl_mld_per_q_mpdu_counter {
        spinlock_t lock;
-       struct iwl_mld_per_link_mpdu_counter per_link[IWL_FW_MAX_LINK_ID + 1];
+       struct iwl_mld_per_link_mpdu_counter per_link[IWL_FW_MAX_LINKS];
        unsigned long window_start_time;
 } ____cacheline_aligned_in_smp;
 
index 176dbbf4c6431e4589052e7b45d83ae2c53c709d..dce7472701672a63b82a3f33dcef52608aa20e33 100644 (file)
@@ -42,7 +42,7 @@ int iwlmld_kunit_test_init(struct kunit *test)
        iwl_construct_mld(mld, trans, cfg, fw, hw, NULL);
 
        fw->ucode_capa.num_stations = IWL_STATION_COUNT_MAX;
-       fw->ucode_capa.num_links = IWL_FW_MAX_LINK_ID + 1;
+       fw->ucode_capa.num_links = IWL_FW_MAX_LINKS;
 
        mld->fwrt.trans = trans;
        mld->fwrt.fw = fw;