1

wifi: iwlwifi: allow only CN mcc from WRDD

Block other mcc expect CN from WRDD ACPI.

Signed-off-by: Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240808232017.fe6ea7aa4b39.I86004687a2963fe26f990770aca103e2f5cb1628@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Anjaneyulu 2024-08-08 23:22:49 +03:00 committed by Johannes Berg
parent 1c7e1068a7
commit ff5aabe7c2
4 changed files with 8 additions and 3 deletions

View File

@ -357,6 +357,11 @@ int iwl_acpi_get_mcc(struct iwl_fw_runtime *fwrt, char *mcc)
} }
mcc_val = wifi_pkg->package.elements[1].integer.value; mcc_val = wifi_pkg->package.elements[1].integer.value;
if (mcc_val != BIOS_MCC_CHINA) {
ret = -EINVAL;
IWL_DEBUG_RADIO(fwrt, "ACPI WRDD is supported only for CN\n");
goto out_free;
}
mcc[0] = (mcc_val >> 8) & 0xff; mcc[0] = (mcc_val >> 8) & 0xff;
mcc[1] = mcc_val & 0xff; mcc[1] = mcc_val & 0xff;

View File

@ -45,6 +45,8 @@
#define IWL_WTAS_ENABLE_IEC_MSK 0x4 #define IWL_WTAS_ENABLE_IEC_MSK 0x4
#define IWL_WTAS_USA_UHB_MSK BIT(16) #define IWL_WTAS_USA_UHB_MSK BIT(16)
#define BIOS_MCC_CHINA 0x434e
/* /*
* The profile for revision 2 is a superset of revision 1, which is in * The profile for revision 2 is a superset of revision 1, which is in
* turn a superset of revision 0. So we can store all revisions * turn a superset of revision 0. So we can store all revisions

View File

@ -638,7 +638,7 @@ int iwl_uefi_get_mcc(struct iwl_fw_runtime *fwrt, char *mcc)
goto out; goto out;
} }
if (data->mcc != UEFI_MCC_CHINA) { if (data->mcc != BIOS_MCC_CHINA) {
ret = -EINVAL; ret = -EINVAL;
IWL_DEBUG_RADIO(fwrt, "UEFI WRDD is supported only for CN\n"); IWL_DEBUG_RADIO(fwrt, "UEFI WRDD is supported only for CN\n");
goto out; goto out;

View File

@ -151,8 +151,6 @@ struct uefi_cnv_var_splc {
u32 default_pwr_limit; u32 default_pwr_limit;
} __packed; } __packed;
#define UEFI_MCC_CHINA 0x434e
/* struct uefi_cnv_var_wrdd - WRDD table as defined in UEFI /* struct uefi_cnv_var_wrdd - WRDD table as defined in UEFI
* @revision: the revision of the table * @revision: the revision of the table
* @mcc: country identifier as defined in ISO/IEC 3166-1 Alpha 2 code * @mcc: country identifier as defined in ISO/IEC 3166-1 Alpha 2 code