17 #define DOMAIN_TYPE_WIFI 0x7
20 #define MAX_DSM_FUNCS 2
28 #define WIFI_ACPI_NAME_MAX_LEN 5
31 #define ACPI_DSM_OEM_WIFI_UUID "F21202BF-8F78-4DC6-A5B3-1F738E285ADE"
34 #define ACPI_DSD_DMA_PROPERTY_UUID "70D24161-6DD5-4C9E-8070-705531292865"
37 #define ACPI_DSM_RFIM_WIFI_UUID "7266172C-220B-4B29-814F-75E4DD26B5FD"
157 const bool is_cnvi_ddr_rfim_enabled = *(
bool *)ptr;
191 for (i = 1; i <
count; i++)
222 size_t package_size, table_size;
249 package_size = 1 + 1 + table_size;
255 for (i = 0; i < table_size; i++)
265 size_t package_size, set_num, table_size;
311 for (i = 0; i < table_size; i++)
326 size_t package_size, set_num;
383 for (set_num = 0; set_num < wgds->
chains_count; set_num++) {
396 size_t package_size, set_num;
427 for (set_num = 0; set_num < ppag->
chains_count; set_num++) {
538 bool is_cnvi_ddr_rfim_enabled =
config &&
config->enable_cnvi_ddr_rfim;
549 if (
config->is_untrusted) {
562 if (
CONFIG(HAVE_REGULATORY_DOMAIN)) {
604 if (is_cnvi_ddr_rfim_enabled) {
608 dsm_ids[dsm_count].
arg = &is_cnvi_ddr_rfim_enabled;
639 snprintf(wifi_acpi_name,
sizeof(wifi_acpi_name),
"WF%02X",
641 return wifi_acpi_name;
void acpi_device_write_uid(const struct device *dev)
struct acpi_dp * acpi_dp_add_package(struct acpi_dp *dp, struct acpi_dp *package)
const char * acpi_device_path(const struct device *dev)
struct acpi_dp * acpi_dp_add_integer(struct acpi_dp *dp, const char *name, uint64_t value)
void acpi_dp_write(struct acpi_dp *table)
struct acpi_dp * acpi_dp_new_table(const char *name)
void acpigen_write_dword(unsigned int data)
void acpigen_write_return_integer(uint64_t arg)
void acpigen_write_integer(uint64_t data)
void acpigen_write_PRW(u32 wake, u32 level)
void acpigen_pop_len(void)
void acpigen_write_scope(const char *name)
void acpigen_write_dsm_uuid_arr(struct dsm_uuid *ids, size_t count)
char * acpigen_write_package(int nr_el)
void acpigen_write_dsm(const char *uuid, void(**callbacks)(void *), size_t count, void *arg)
void acpigen_write_word(unsigned int data)
void acpigen_write_byte(unsigned int data)
void acpigen_write_device(const char *name)
void acpigen_write_name(const char *name)
void acpigen_write_name_string(const char *name, const char *string)
void acpigen_write_ADR_pci_device(const struct device *dev)
void * memcpy(void *dest, const void *src, size_t n)
#define printk(level,...)
u32 dev_path_encode(const struct device *dev)
Encode the device path into 3 bytes for logging to CMOS.
const char * dev_path(const struct device *dev)
#define ACPI_DSD_DMA_PROPERTY_UUID
static const uint8_t * sar_fetch_set(const struct sar_profile *sar, size_t set_num)
static const uint8_t * wgds_fetch_set(struct geo_profile *wgds, size_t set_num)
static void(* wifi_dsm2_callbacks[])(void *)
static void wifi_dsm_unii4_control_enable(void *args)
static void wifi_dsm_supported_ultra_high_band(void *args)
__weak int get_wifi_sar_limits(union wifi_sar_limits *sar_limits)
void wifi_cnvi_fill_ssdt(const struct device *dev)
static void sar_emit_ewrd(const struct sar_profile *sar)
static void wifi_dsm_uart_configurations(void *args)
const char * wifi_pcie_acpi_name(const struct device *dev)
static void wifi_dsm_ddrrfim_func3_cb(void *ptr)
static void wifi_ssdt_write_properties(const struct device *dev, const char *scope)
void wifi_pcie_fill_ssdt(const struct device *dev)
static void wifi_dsm_srd_active_channels(void *args)
static void wifi_dsm_indonasia_5Ghz_band_enable(void *args)
static void wifi_dsm_regulatory_configurations(void *args)
#define ACPI_DSM_OEM_WIFI_UUID
void wifi_emit_dsm(struct dsm_profile *dsm)
#define ACPI_DSM_RFIM_WIFI_UUID
static void sar_emit_wrds(const struct sar_profile *sar)
#define WIFI_ACPI_NAME_MAX_LEN
static void wifi_dsm_ukrane_russia_11ax_enable(void *args)
static void sar_emit_ppag(struct gain_profile *ppag)
static void(* wifi_dsm_callbacks[])(void *)
static void sar_emit_wtas(struct avg_profile *wtas)
static const uint8_t * ppag_fetch_set(struct gain_profile *ppag, size_t set_num)
static void sar_emit_wgds(struct geo_profile *wgds)
static void wifi_ssdt_write_device(const struct device *dev, const char *path)
static void emit_sar_acpi_structures(const struct device *dev, struct dsm_profile *dsm)
void acpigen_write_package_end(void)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.
#define MAX_DSAR_SET_COUNT
#define MAX_GEO_OFFSET_REVISION
#define MAX_ANT_GAINS_REVISION
#define MAX_DENYLIST_ENTRY
const struct smm_save_state_ops *legacy_ops __weak
uint16_t deny_list_entry[MAX_DENYLIST_ENTRY]
DEVTREE_CONST struct device * children
DEVTREE_CONST struct device * dev
enum device_path_type type
struct chip_operations * chip_ops
DEVTREE_CONST struct bus * bus
DEVTREE_CONST struct bus * link_list
DEVTREE_CONST void * chip_info
struct drivers_wifi_generic_config - Data structure to contain generic wifi config @wake: Wake pin fo...
uint32_t disable_active_sdr_channels
uint32_t support_indonesia_5g_band
uint32_t uart_configurations
uint32_t support_ultra_high_band
uint32_t supported_functions
uint32_t regulatory_configurations
void(** callbacks)(void *)
struct avg_profile * wtas
struct geo_profile * wgds
struct gain_profile * ppag
int snprintf(char *buf, size_t size, const char *fmt,...)
Note: This file is only for POSIX compatibility, and is meant to be chain-included via string....
uint16_t wifi_regulatory_domain(void)
typedef void(X86APIP X86EMU_intrFuncs)(int num)