summaryrefslogtreecommitdiff
path: root/src/include/sar.h
diff options
context:
space:
mode:
authorJeremy Compostella <jeremy.compostella@intel.com>2024-10-31 13:08:44 -0700
committerJérémy Compostella <jeremy.compostella@intel.com>2024-11-27 21:28:34 +0000
commit1e8c6819b16ef5e21b2f3f0137a6027367387298 (patch)
tree1aab94bdb4e0cbd03564d89be358d756cfa14830 /src/include/sar.h
parentc8ab1db0c65f4ffbdebd384abba455af005bd0a5 (diff)
drivers/wifi: Support Wi-Fi PHY Filter Configuration
This feature provides ability to provide Wi-Fi PHY filter Configuration. A well-defined dedicated filter on particular platform can be used to perform the maximum Wi-Fi performance. The implementation follows document 559910 Intel Connectivity Platforms BIOS Guideline revision 9.2 specification. BUG=b:346600091 TEST=WPFC method is added to the wifi device and return the data supplied by the SAR binary blob Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e270 Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84948 Reviewed-by: Kapil Porwal <kapilporwal@google.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/include/sar.h')
-rw-r--r--src/include/sar.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/include/sar.h b/src/include/sar.h
index 44fcd1e322..d0d312ebd9 100644
--- a/src/include/sar.h
+++ b/src/include/sar.h
@@ -9,7 +9,7 @@
#define MAX_DENYLIST_ENTRY 16
#define MAX_DSAR_SET_COUNT 3
#define MAX_GEO_OFFSET_REVISION 3
-#define MAX_PROFILE_COUNT 14
+#define MAX_PROFILE_COUNT 15
#define MAX_SAR_REVISION 2
#define MAX_BSAR_REVISION 2
#define WBEM_REVISION 0
@@ -20,6 +20,7 @@
#define BUCS_REVISION 1
#define BDMM_REVISION 1
#define EBRD_REVISION 1
+#define WPFC_REVISION 0
#define REVISION_SIZE 1
#define SAR_REV0_CHAINS_COUNT 2
#define SAR_REV0_SUBBANDS_COUNT 5
@@ -144,6 +145,14 @@ struct ebrd_profile {
} sar_table_sets[3];
} __packed;
+struct wpfc_profile {
+ uint8_t revision;
+ uint8_t filter_cfg_chain_a;
+ uint8_t filter_cfg_chain_b;
+ uint8_t filter_cfg_chain_c;
+ uint8_t filter_cfg_chain_d;
+} __packed;
+
struct sar_header {
char marker[SAR_STR_PREFIX_SIZE];
uint8_t version;
@@ -167,6 +176,7 @@ union wifi_sar_limits {
struct bucs_profile *bucs;
struct bdmm_profile *bdmm;
struct ebrd_profile *ebrd;
+ struct wpfc_profile *wpfc;
};
void *profile[MAX_PROFILE_COUNT];
};