iwlwifi: mvm: read 6E enablement flags from DSM and pass to FW
authorLuca Coelho <luciano.coelho@intel.com>
Sun, 24 Oct 2021 15:20:28 +0000 (18:20 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 28 Oct 2021 09:04:10 +0000 (12:04 +0300)
We need to call a new DSM function and pass the values to the firmware
in order to allow enablement of 6E support by the OEMs via ACPI.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211024181719.2fa34d31383c.I6504005c60882c94e6e58f64cab4e42e6481ce08@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/acpi.h
drivers/net/wireless/intel/iwlwifi/mvm/fw.c

index a30b95a0114405e622e64f7971af435f6a2bb613..4aaa8a6b071ba941ec0a0709eab5524a1fd771ec 100644 (file)
@@ -109,6 +109,7 @@ enum iwl_dsm_funcs_rev_0 {
        DSM_FUNC_QUERY = 0,
        DSM_FUNC_DISABLE_SRD = 1,
        DSM_FUNC_ENABLE_INDONESIA_5G2 = 2,
+       DSM_FUNC_ENABLE_6E = 3,
        DSM_FUNC_11AX_ENABLEMENT = 6,
        DSM_FUNC_ENABLE_UNII4_CHAN = 7,
        DSM_FUNC_ACTIVATE_CHANNEL = 8
index e64b6468d1a118f955ad9a73a26fc61efecccd30..6063b2ffe2665459dac17a33e3de59ff4ca88743 100644 (file)
@@ -1177,7 +1177,6 @@ static void iwl_mvm_lari_cfg(struct iwl_mvm *mvm)
                                   &iwl_guid, &value);
        if (!ret)
                cmd.oem_11ax_allow_bitmap = cpu_to_le32(value);
-       /* apply more config masks here */
 
        ret = iwl_acpi_get_dsm_u32((&mvm->fwrt)->dev, 0,
                                   DSM_FUNC_ENABLE_UNII4_CHAN,
@@ -1191,7 +1190,14 @@ static void iwl_mvm_lari_cfg(struct iwl_mvm *mvm)
        if (!ret)
                cmd.chan_state_active_bitmap = cpu_to_le32(value);
 
+       ret = iwl_acpi_get_dsm_u32(mvm->fwrt.dev, 0,
+                                  DSM_FUNC_ENABLE_6E,
+                                  &iwl_guid, &value);
+       if (!ret)
+               cmd.oem_uhb_allow_bitmap = cpu_to_le32(value);
+
        if (cmd.config_bitmap ||
+           cmd.oem_uhb_allow_bitmap ||
            cmd.oem_11ax_allow_bitmap ||
            cmd.oem_unii4_allow_bitmap ||
            cmd.chan_state_active_bitmap) {
@@ -1219,6 +1225,9 @@ static void iwl_mvm_lari_cfg(struct iwl_mvm *mvm)
                                le32_to_cpu(cmd.oem_unii4_allow_bitmap),
                                le32_to_cpu(cmd.chan_state_active_bitmap),
                                cmd_ver);
+               IWL_DEBUG_RADIO(mvm,
+                               "sending LARI_CONFIG_CHANGE, oem_uhb_allow_bitmap=0x%x\n",
+                               le32_to_cpu(cmd.oem_uhb_allow_bitmap));
                ret = iwl_mvm_send_cmd_pdu(mvm,
                                           WIDE_ID(REGULATORY_AND_NVM_GROUP,
                                                   LARI_CONFIG_CHANGE),