wifi: iwlwifi: cfg: disable STBC for BL step A devices
authorLuca Coelho <luciano.coelho@intel.com>
Wed, 2 Nov 2022 14:59:50 +0000 (16:59 +0200)
committerGregory Greenman <gregory.greenman@intel.com>
Thu, 10 Nov 2022 11:26:41 +0000 (13:26 +0200)
The A step of BL devices doesn't support STBC, so we need to disable
it.

Create new HT params and a macro to use specifically with BL A-step
devices where STBC is disabled.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20221102165239.806dbfa53f40.I4b14a8be30795bdcd73686bd1f9222e7ab93b505@changeid
drivers/net/wireless/intel/iwlwifi/cfg/22000.c

index b46f65b6d595fca6e67cc27c746f9b6daec6f847..ec6198f1b38ce3275a2a689931ed37cb11735221 100644 (file)
@@ -172,6 +172,13 @@ static const struct iwl_ht_params iwl_22000_ht_params = {
                      BIT(NL80211_BAND_6GHZ),
 };
 
+static const struct iwl_ht_params iwl_gl_a_ht_params = {
+       .stbc = false, /* we explicitly disable STBC for GL step A */
+       .ldpc = true,
+       .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ) |
+                     BIT(NL80211_BAND_6GHZ),
+};
+
 #define IWL_DEVICE_22000_COMMON                                                \
        .ucode_api_max = IWL_22000_UCODE_API_MAX,                       \
        .ucode_api_min = IWL_22000_UCODE_API_MIN,                       \
@@ -249,7 +256,7 @@ static const struct iwl_ht_params iwl_22000_ht_params = {
                },                                                      \
        }
 
-#define IWL_DEVICE_BZ                                                  \
+#define IWL_DEVICE_BZ_COMMON                                           \
        .ucode_api_max = IWL_22000_UCODE_API_MAX,                       \
        .ucode_api_min = IWL_22000_UCODE_API_MIN,                       \
        .led_mode = IWL_LED_RF_STATE,                                   \
@@ -265,7 +272,6 @@ static const struct iwl_ht_params iwl_22000_ht_params = {
        .trans.mq_rx_supported = true,                                  \
        .vht_mu_mimo_supported = true,                                  \
        .mac_addr_from_csr = 0x30,                                      \
-       .ht_params = &iwl_22000_ht_params,                              \
        .nvm_ver = IWL_22000_NVM_VERSION,                               \
        .trans.use_tfh = true,                                          \
        .trans.rf_id = true,                                            \
@@ -312,6 +318,14 @@ static const struct iwl_ht_params iwl_22000_ht_params = {
                },                                                      \
        }
 
+#define IWL_DEVICE_BZ                                                  \
+       IWL_DEVICE_BZ_COMMON,                                           \
+       .ht_params = &iwl_22000_ht_params
+
+#define IWL_DEVICE_GL_A                                                        \
+       IWL_DEVICE_BZ_COMMON,                                           \
+       .ht_params = &iwl_gl_a_ht_params
+
 const struct iwl_cfg_trans_params iwl_qnj_trans_cfg = {
        .mq_rx_supported = true,
        .use_tfh = true,
@@ -947,7 +961,7 @@ const struct iwl_cfg iwl_cfg_bz_a0_fm4_a0 = {
 const struct iwl_cfg iwl_cfg_gl_a0_fm_a0 = {
        .fw_name_pre = IWL_GL_A_FM_A_FW_PRE,
        .uhb_supported = true,
-       IWL_DEVICE_BZ,
+       IWL_DEVICE_GL_A,
        .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM,
        .num_rbds = IWL_NUM_RBDS_AX210_HE,
 };