drivers/wifi: Support Bluetooth Dual Mac Mode

This feature provides ability to set the Bluetooth Dual Mac Mode
setting.

The implementation follows document 559910 Intel Connectivity
Platforms BIOS Guideline revision 9.2 specification.

BUG=b:346600091
TEST=BDMM method is added to the bluetooth companion device and
     return the data supplied by the SAR binary blob

Change-Id: Iebe95815c944d045f4cf686abcd1874a8a45e240
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84946
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
This commit is contained in:
Jeremy Compostella 2024-10-29 14:17:48 -07:00 committed by Jérémy Compostella
commit 386b5a9ddf
3 changed files with 53 additions and 1 deletions

View file

@ -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 12
#define MAX_PROFILE_COUNT 13
#define MAX_SAR_REVISION 2
#define BSAR_REVISION 1
#define WBEM_REVISION 0
@ -18,6 +18,7 @@
#define BDCM_REVISION 1
#define BBSM_REVISION 1
#define BUCS_REVISION 1
#define BDMM_REVISION 1
#define REVISION_SIZE 1
#define SAR_REV0_CHAINS_COUNT 2
#define SAR_REV0_SUBBANDS_COUNT 5
@ -111,6 +112,11 @@ struct bucs_profile {
uint32_t uhb_country_selection;
} __packed;
struct bdmm_profile {
uint8_t revision;
uint8_t dual_mac_enable;
} __packed;
struct sar_header {
char marker[SAR_STR_PREFIX_SIZE];
uint8_t version;
@ -132,6 +138,7 @@ union wifi_sar_limits {
struct bdcm_profile *bdcm;
struct bbsm_profile *bbsm;
struct bucs_profile *bucs;
struct bdmm_profile *bdmm;
};
void *profile[MAX_PROFILE_COUNT];
};