summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
diff options
context:
space:
mode:
authorLuca Coelho <luciano.coelho@intel.com>2021-08-05 14:21:51 +0300
committerLuca Coelho <luciano.coelho@intel.com>2021-08-26 23:36:09 +0300
commit5bf7a9edddbb9d7c7deae58663aedd4dbc731a9e (patch)
treea31a97a522e199bc2dc684e6b8f3c8c79b0f7d19 /drivers/net/wireless/intel/iwlwifi/fw/acpi.h
parentde95c9288ae15b53be63e52097fe0d5b374e6a13 (diff)
iwlwifi: convert flat GEO profile table to a struct version
The GEO profiles have been stored in single-dimension arrays and the access has been done via a single index. We will soon need to support different revisions of this table, which will make the flat array even harder to handle. To prepare for that, convert the single-dimension array to a struct with substructures. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/iwlwifi.20210805141826.56f3506411a2.I600ed3708d19f2263a5a8d143f6711d08499bbb0@changeid Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/fw/acpi.h')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/fw/acpi.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.h b/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
index 85cf4cb1336e..030ea3efcc87 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
@@ -28,7 +28,6 @@
#define ACPI_SAR_PROFILE_NUM 4
-#define ACPI_GEO_TABLE_SIZE 6
#define ACPI_NUM_GEO_PROFILES 3
#define ACPI_GEO_PER_CHAIN_SIZE 3
@@ -39,6 +38,11 @@
#define ACPI_SAR_NUM_SUB_BANDS_REV1 11
#define ACPI_SAR_NUM_SUB_BANDS_REV2 11
+#define ACPI_GEO_NUM_CHAINS 2
+#define ACPI_GEO_NUM_BANDS_REV0 2
+#define ACPI_GEO_NUM_BANDS_REV1 2
+#define ACPI_GEO_NUM_BANDS_REV2 3
+
#define ACPI_WRDS_WIFI_DATA_SIZE_REV0 (ACPI_SAR_NUM_CHAINS_REV0 * \
ACPI_SAR_NUM_SUB_BANDS_REV0 + 2)
#define ACPI_WRDS_WIFI_DATA_SIZE_REV1 (ACPI_SAR_NUM_CHAINS_REV1 * \
@@ -90,8 +94,14 @@ struct iwl_sar_profile {
struct iwl_sar_profile_chain chains[ACPI_SAR_NUM_CHAINS_REV2];
};
+/* Same thing as with SAR, all revisions fit in revision 2 */
+struct iwl_geo_profile_band {
+ u8 max;
+ u8 chains[ACPI_GEO_NUM_CHAINS];
+};
+
struct iwl_geo_profile {
- u8 values[ACPI_GEO_TABLE_SIZE];
+ struct iwl_geo_profile_band bands[ACPI_GEO_NUM_BANDS_REV2];
};
enum iwl_dsm_funcs_rev_0 {