162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2017 Intel Deutschland GmbH
462306a36Sopenharmony_ci * Copyright (C) 2018-2023 Intel Corporation
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci#ifndef __iwl_fw_acpi__
762306a36Sopenharmony_ci#define __iwl_fw_acpi__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/acpi.h>
1062306a36Sopenharmony_ci#include "fw/api/commands.h"
1162306a36Sopenharmony_ci#include "fw/api/power.h"
1262306a36Sopenharmony_ci#include "fw/api/phy.h"
1362306a36Sopenharmony_ci#include "fw/api/nvm-reg.h"
1462306a36Sopenharmony_ci#include "fw/api/config.h"
1562306a36Sopenharmony_ci#include "fw/img.h"
1662306a36Sopenharmony_ci#include "iwl-trans.h"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define ACPI_WRDS_METHOD	"WRDS"
2062306a36Sopenharmony_ci#define ACPI_EWRD_METHOD	"EWRD"
2162306a36Sopenharmony_ci#define ACPI_WGDS_METHOD	"WGDS"
2262306a36Sopenharmony_ci#define ACPI_WRDD_METHOD	"WRDD"
2362306a36Sopenharmony_ci#define ACPI_SPLC_METHOD	"SPLC"
2462306a36Sopenharmony_ci#define ACPI_ECKV_METHOD	"ECKV"
2562306a36Sopenharmony_ci#define ACPI_PPAG_METHOD	"PPAG"
2662306a36Sopenharmony_ci#define ACPI_WTAS_METHOD	"WTAS"
2762306a36Sopenharmony_ci#define ACPI_WPFC_METHOD	"WPFC"
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci#define ACPI_WIFI_DOMAIN	(0x07)
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci#define ACPI_SAR_PROFILE_NUM		4
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#define ACPI_NUM_GEO_PROFILES		3
3462306a36Sopenharmony_ci#define ACPI_NUM_GEO_PROFILES_REV3	8
3562306a36Sopenharmony_ci#define ACPI_GEO_PER_CHAIN_SIZE		3
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#define ACPI_SAR_NUM_CHAINS_REV0	2
3862306a36Sopenharmony_ci#define ACPI_SAR_NUM_CHAINS_REV1	2
3962306a36Sopenharmony_ci#define ACPI_SAR_NUM_CHAINS_REV2	4
4062306a36Sopenharmony_ci#define ACPI_SAR_NUM_SUB_BANDS_REV0	5
4162306a36Sopenharmony_ci#define ACPI_SAR_NUM_SUB_BANDS_REV1	11
4262306a36Sopenharmony_ci#define ACPI_SAR_NUM_SUB_BANDS_REV2	11
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci#define ACPI_WRDS_WIFI_DATA_SIZE_REV0	(ACPI_SAR_NUM_CHAINS_REV0 * \
4562306a36Sopenharmony_ci					 ACPI_SAR_NUM_SUB_BANDS_REV0 + 2)
4662306a36Sopenharmony_ci#define ACPI_WRDS_WIFI_DATA_SIZE_REV1	(ACPI_SAR_NUM_CHAINS_REV1 * \
4762306a36Sopenharmony_ci					 ACPI_SAR_NUM_SUB_BANDS_REV1 + 2)
4862306a36Sopenharmony_ci#define ACPI_WRDS_WIFI_DATA_SIZE_REV2	(ACPI_SAR_NUM_CHAINS_REV2 * \
4962306a36Sopenharmony_ci					 ACPI_SAR_NUM_SUB_BANDS_REV2 + 2)
5062306a36Sopenharmony_ci#define ACPI_EWRD_WIFI_DATA_SIZE_REV0	((ACPI_SAR_PROFILE_NUM - 1) * \
5162306a36Sopenharmony_ci					 ACPI_SAR_NUM_CHAINS_REV0 * \
5262306a36Sopenharmony_ci					 ACPI_SAR_NUM_SUB_BANDS_REV0 + 3)
5362306a36Sopenharmony_ci#define ACPI_EWRD_WIFI_DATA_SIZE_REV1	((ACPI_SAR_PROFILE_NUM - 1) * \
5462306a36Sopenharmony_ci					 ACPI_SAR_NUM_CHAINS_REV1 * \
5562306a36Sopenharmony_ci					 ACPI_SAR_NUM_SUB_BANDS_REV1 + 3)
5662306a36Sopenharmony_ci#define ACPI_EWRD_WIFI_DATA_SIZE_REV2	((ACPI_SAR_PROFILE_NUM - 1) * \
5762306a36Sopenharmony_ci					 ACPI_SAR_NUM_CHAINS_REV2 * \
5862306a36Sopenharmony_ci					 ACPI_SAR_NUM_SUB_BANDS_REV2 + 3)
5962306a36Sopenharmony_ci#define ACPI_WPFC_WIFI_DATA_SIZE	5 /* domain and 4 filter config words */
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci/* revision 0 and 1 are identical, except for the semantics in the FW */
6262306a36Sopenharmony_ci#define ACPI_GEO_NUM_BANDS_REV0		2
6362306a36Sopenharmony_ci#define ACPI_GEO_NUM_BANDS_REV2		3
6462306a36Sopenharmony_ci#define ACPI_GEO_NUM_CHAINS		2
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci#define ACPI_WRDD_WIFI_DATA_SIZE	2
6762306a36Sopenharmony_ci#define ACPI_SPLC_WIFI_DATA_SIZE	2
6862306a36Sopenharmony_ci#define ACPI_ECKV_WIFI_DATA_SIZE	2
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci/*
7162306a36Sopenharmony_ci * TAS size: 1 elelment for type,
7262306a36Sopenharmony_ci *	     1 element for enabled field,
7362306a36Sopenharmony_ci *	     1 element for block list size,
7462306a36Sopenharmony_ci *	     16 elements for block list array
7562306a36Sopenharmony_ci */
7662306a36Sopenharmony_ci#define APCI_WTAS_BLACK_LIST_MAX	16
7762306a36Sopenharmony_ci#define ACPI_WTAS_WIFI_DATA_SIZE	(3 + APCI_WTAS_BLACK_LIST_MAX)
7862306a36Sopenharmony_ci#define ACPI_WTAS_ENABLED_MSK		0x1
7962306a36Sopenharmony_ci#define ACPI_WTAS_OVERRIDE_IEC_MSK	0x2
8062306a36Sopenharmony_ci#define ACPI_WTAS_ENABLE_IEC_MSK	0x4
8162306a36Sopenharmony_ci#define ACPI_WTAS_OVERRIDE_IEC_POS	0x1
8262306a36Sopenharmony_ci#define ACPI_WTAS_ENABLE_IEC_POS	0x2
8362306a36Sopenharmony_ci#define ACPI_WTAS_USA_UHB_MSK		BIT(16)
8462306a36Sopenharmony_ci#define ACPI_WTAS_USA_UHB_POS		16
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci#define ACPI_PPAG_WIFI_DATA_SIZE_V1	((IWL_NUM_CHAIN_LIMITS * \
8862306a36Sopenharmony_ci					  IWL_NUM_SUB_BANDS_V1) + 2)
8962306a36Sopenharmony_ci#define ACPI_PPAG_WIFI_DATA_SIZE_V2	((IWL_NUM_CHAIN_LIMITS * \
9062306a36Sopenharmony_ci					  IWL_NUM_SUB_BANDS_V2) + 2)
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci/* PPAG gain value bounds in 1/8 dBm */
9362306a36Sopenharmony_ci#define ACPI_PPAG_MIN_LB -16
9462306a36Sopenharmony_ci#define ACPI_PPAG_MAX_LB 24
9562306a36Sopenharmony_ci#define ACPI_PPAG_MIN_HB -16
9662306a36Sopenharmony_ci#define ACPI_PPAG_MAX_HB 40
9762306a36Sopenharmony_ci#define ACPI_PPAG_MASK 3
9862306a36Sopenharmony_ci#define IWL_PPAG_ETSI_MASK BIT(0)
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci#define IWL_SAR_ENABLE_MSK		BIT(0)
10162306a36Sopenharmony_ci#define IWL_REDUCE_POWER_FLAGS_POS	1
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci/*
10462306a36Sopenharmony_ci * The profile for revision 2 is a superset of revision 1, which is in
10562306a36Sopenharmony_ci * turn a superset of revision 0.  So we can store all revisions
10662306a36Sopenharmony_ci * inside revision 2, which is what we represent here.
10762306a36Sopenharmony_ci */
10862306a36Sopenharmony_cistruct iwl_sar_profile_chain {
10962306a36Sopenharmony_ci	u8 subbands[ACPI_SAR_NUM_SUB_BANDS_REV2];
11062306a36Sopenharmony_ci};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_cistruct iwl_sar_profile {
11362306a36Sopenharmony_ci	bool enabled;
11462306a36Sopenharmony_ci	struct iwl_sar_profile_chain chains[ACPI_SAR_NUM_CHAINS_REV2];
11562306a36Sopenharmony_ci};
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci/* Same thing as with SAR, all revisions fit in revision 2 */
11862306a36Sopenharmony_cistruct iwl_geo_profile_band {
11962306a36Sopenharmony_ci	u8 max;
12062306a36Sopenharmony_ci	u8 chains[ACPI_GEO_NUM_CHAINS];
12162306a36Sopenharmony_ci};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_cistruct iwl_geo_profile {
12462306a36Sopenharmony_ci	struct iwl_geo_profile_band bands[ACPI_GEO_NUM_BANDS_REV2];
12562306a36Sopenharmony_ci};
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci/* Same thing as with SAR, all revisions fit in revision 2 */
12862306a36Sopenharmony_cistruct iwl_ppag_chain {
12962306a36Sopenharmony_ci	s8 subbands[ACPI_SAR_NUM_SUB_BANDS_REV2];
13062306a36Sopenharmony_ci};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_cienum iwl_dsm_funcs_rev_0 {
13362306a36Sopenharmony_ci	DSM_FUNC_QUERY = 0,
13462306a36Sopenharmony_ci	DSM_FUNC_DISABLE_SRD = 1,
13562306a36Sopenharmony_ci	DSM_FUNC_ENABLE_INDONESIA_5G2 = 2,
13662306a36Sopenharmony_ci	DSM_FUNC_ENABLE_6E = 3,
13762306a36Sopenharmony_ci	DSM_FUNC_11AX_ENABLEMENT = 6,
13862306a36Sopenharmony_ci	DSM_FUNC_ENABLE_UNII4_CHAN = 7,
13962306a36Sopenharmony_ci	DSM_FUNC_ACTIVATE_CHANNEL = 8,
14062306a36Sopenharmony_ci	DSM_FUNC_FORCE_DISABLE_CHANNELS = 9
14162306a36Sopenharmony_ci};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_cienum iwl_dsm_values_srd {
14462306a36Sopenharmony_ci	DSM_VALUE_SRD_ACTIVE,
14562306a36Sopenharmony_ci	DSM_VALUE_SRD_PASSIVE,
14662306a36Sopenharmony_ci	DSM_VALUE_SRD_DISABLE,
14762306a36Sopenharmony_ci	DSM_VALUE_SRD_MAX
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_cienum iwl_dsm_values_indonesia {
15162306a36Sopenharmony_ci	DSM_VALUE_INDONESIA_DISABLE,
15262306a36Sopenharmony_ci	DSM_VALUE_INDONESIA_ENABLE,
15362306a36Sopenharmony_ci	DSM_VALUE_INDONESIA_RESERVED,
15462306a36Sopenharmony_ci	DSM_VALUE_INDONESIA_MAX
15562306a36Sopenharmony_ci};
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci/* DSM RFI uses a different GUID, so need separate definitions */
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci#define DSM_RFI_FUNC_ENABLE 3
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_cienum iwl_dsm_values_rfi {
16262306a36Sopenharmony_ci	DSM_VALUE_RFI_ENABLE,
16362306a36Sopenharmony_ci	DSM_VALUE_RFI_DISABLE,
16462306a36Sopenharmony_ci	DSM_VALUE_RFI_MAX
16562306a36Sopenharmony_ci};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci#ifdef CONFIG_ACPI
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_cistruct iwl_fw_runtime;
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciextern const guid_t iwl_guid;
17262306a36Sopenharmony_ciextern const guid_t iwl_rfi_guid;
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ciint iwl_acpi_get_dsm_u8(struct device *dev, int rev, int func,
17562306a36Sopenharmony_ci			const guid_t *guid, u8 *value);
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ciint iwl_acpi_get_dsm_u32(struct device *dev, int rev, int func,
17862306a36Sopenharmony_ci			 const guid_t *guid, u32 *value);
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci/**
18162306a36Sopenharmony_ci * iwl_acpi_get_mcc - read MCC from ACPI, if available
18262306a36Sopenharmony_ci *
18362306a36Sopenharmony_ci * @dev: the struct device
18462306a36Sopenharmony_ci * @mcc: output buffer (3 bytes) that will get the MCC
18562306a36Sopenharmony_ci *
18662306a36Sopenharmony_ci * This function tries to read the current MCC from ACPI if available.
18762306a36Sopenharmony_ci */
18862306a36Sopenharmony_ciint iwl_acpi_get_mcc(struct device *dev, char *mcc);
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ciu64 iwl_acpi_get_pwr_limit(struct device *dev);
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci/*
19362306a36Sopenharmony_ci * iwl_acpi_get_eckv - read external clock validation from ACPI, if available
19462306a36Sopenharmony_ci *
19562306a36Sopenharmony_ci * @dev: the struct device
19662306a36Sopenharmony_ci * @extl_clk: output var (2 bytes) that will get the clk indication.
19762306a36Sopenharmony_ci *
19862306a36Sopenharmony_ci * This function tries to read the external clock indication
19962306a36Sopenharmony_ci * from ACPI if available.
20062306a36Sopenharmony_ci */
20162306a36Sopenharmony_ciint iwl_acpi_get_eckv(struct device *dev, u32 *extl_clk);
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ciint iwl_sar_select_profile(struct iwl_fw_runtime *fwrt,
20462306a36Sopenharmony_ci			   __le16 *per_chain, u32 n_tables, u32 n_subbands,
20562306a36Sopenharmony_ci			   int prof_a, int prof_b);
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ciint iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt);
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ciint iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt);
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ciint iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt);
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_cibool iwl_sar_geo_support(struct iwl_fw_runtime *fwrt);
21462306a36Sopenharmony_ci
21562306a36Sopenharmony_ciint iwl_sar_geo_init(struct iwl_fw_runtime *fwrt,
21662306a36Sopenharmony_ci		     struct iwl_per_chain_offset *table,
21762306a36Sopenharmony_ci		     u32 n_bands, u32 n_profiles);
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ciint iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
22062306a36Sopenharmony_ci		     union iwl_tas_config_cmd *cmd, int fw_ver);
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci__le32 iwl_acpi_get_lari_config_bitmap(struct iwl_fw_runtime *fwrt);
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ciint iwl_acpi_get_ppag_table(struct iwl_fw_runtime *fwrt);
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ciint iwl_read_ppag_table(struct iwl_fw_runtime *fwrt, union iwl_ppag_table_cmd *cmd,
22762306a36Sopenharmony_ci			int *cmd_size);
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_cibool iwl_acpi_is_ppag_approved(struct iwl_fw_runtime *fwrt);
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_civoid iwl_acpi_get_phy_filters(struct iwl_fw_runtime *fwrt,
23262306a36Sopenharmony_ci			      struct iwl_phy_specific_cfg *filters);
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci#else /* CONFIG_ACPI */
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_cistatic inline void *iwl_acpi_get_dsm_object(struct device *dev, int rev,
23762306a36Sopenharmony_ci					    int func, union acpi_object *args)
23862306a36Sopenharmony_ci{
23962306a36Sopenharmony_ci	return ERR_PTR(-ENOENT);
24062306a36Sopenharmony_ci}
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_cistatic inline int iwl_acpi_get_dsm_u8(struct device *dev, int rev, int func,
24362306a36Sopenharmony_ci				      const guid_t *guid, u8 *value)
24462306a36Sopenharmony_ci{
24562306a36Sopenharmony_ci	return -ENOENT;
24662306a36Sopenharmony_ci}
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_cistatic inline int iwl_acpi_get_dsm_u32(struct device *dev, int rev, int func,
24962306a36Sopenharmony_ci				       const guid_t *guid, u32 *value)
25062306a36Sopenharmony_ci{
25162306a36Sopenharmony_ci	return -ENOENT;
25262306a36Sopenharmony_ci}
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_cistatic inline int iwl_acpi_get_mcc(struct device *dev, char *mcc)
25562306a36Sopenharmony_ci{
25662306a36Sopenharmony_ci	return -ENOENT;
25762306a36Sopenharmony_ci}
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_cistatic inline u64 iwl_acpi_get_pwr_limit(struct device *dev)
26062306a36Sopenharmony_ci{
26162306a36Sopenharmony_ci	return 0;
26262306a36Sopenharmony_ci}
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_cistatic inline int iwl_acpi_get_eckv(struct device *dev, u32 *extl_clk)
26562306a36Sopenharmony_ci{
26662306a36Sopenharmony_ci	return -ENOENT;
26762306a36Sopenharmony_ci}
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_cistatic inline int iwl_sar_select_profile(struct iwl_fw_runtime *fwrt,
27062306a36Sopenharmony_ci			   __le16 *per_chain, u32 n_tables, u32 n_subbands,
27162306a36Sopenharmony_ci			   int prof_a, int prof_b)
27262306a36Sopenharmony_ci{
27362306a36Sopenharmony_ci	return -ENOENT;
27462306a36Sopenharmony_ci}
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_cistatic inline int iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt)
27762306a36Sopenharmony_ci{
27862306a36Sopenharmony_ci	return -ENOENT;
27962306a36Sopenharmony_ci}
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_cistatic inline int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt)
28262306a36Sopenharmony_ci{
28362306a36Sopenharmony_ci	return -ENOENT;
28462306a36Sopenharmony_ci}
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_cistatic inline int iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt)
28762306a36Sopenharmony_ci{
28862306a36Sopenharmony_ci	return 1;
28962306a36Sopenharmony_ci}
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_cistatic inline bool iwl_sar_geo_support(struct iwl_fw_runtime *fwrt)
29262306a36Sopenharmony_ci{
29362306a36Sopenharmony_ci	return false;
29462306a36Sopenharmony_ci}
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_cistatic inline int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
29762306a36Sopenharmony_ci				   union iwl_tas_config_cmd *cmd, int fw_ver)
29862306a36Sopenharmony_ci{
29962306a36Sopenharmony_ci	return -ENOENT;
30062306a36Sopenharmony_ci}
30162306a36Sopenharmony_ci
30262306a36Sopenharmony_cistatic inline __le32 iwl_acpi_get_lari_config_bitmap(struct iwl_fw_runtime *fwrt)
30362306a36Sopenharmony_ci{
30462306a36Sopenharmony_ci	return 0;
30562306a36Sopenharmony_ci}
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_cistatic inline int iwl_acpi_get_ppag_table(struct iwl_fw_runtime *fwrt)
30862306a36Sopenharmony_ci{
30962306a36Sopenharmony_ci	return -ENOENT;
31062306a36Sopenharmony_ci}
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_cistatic inline int iwl_read_ppag_table(struct iwl_fw_runtime *fwrt,
31362306a36Sopenharmony_ci				    union iwl_ppag_table_cmd *cmd, int *cmd_size)
31462306a36Sopenharmony_ci{
31562306a36Sopenharmony_ci	return -ENOENT;
31662306a36Sopenharmony_ci}
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_cistatic inline bool iwl_acpi_is_ppag_approved(struct iwl_fw_runtime *fwrt)
31962306a36Sopenharmony_ci{
32062306a36Sopenharmony_ci	return false;
32162306a36Sopenharmony_ci}
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_cistatic inline void iwl_acpi_get_phy_filters(struct iwl_fw_runtime *fwrt,
32462306a36Sopenharmony_ci					    struct iwl_phy_specific_cfg *filters)
32562306a36Sopenharmony_ci{
32662306a36Sopenharmony_ci}
32762306a36Sopenharmony_ci
32862306a36Sopenharmony_ci#endif /* CONFIG_ACPI */
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci#endif /* __iwl_fw_acpi__ */
331