18e99ea8dSJohannes Berg /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
28e99ea8dSJohannes Berg /*
38e99ea8dSJohannes Berg * Copyright (C) 2017 Intel Deutschland GmbH
409396a4fSJohannes Berg * Copyright (C) 2018-2023 Intel Corporation
58e99ea8dSJohannes Berg */
6813df5ceSLuca Coelho #ifndef __iwl_fw_acpi__
7813df5ceSLuca Coelho #define __iwl_fw_acpi__
8813df5ceSLuca Coelho
9813df5ceSLuca Coelho #include <linux/acpi.h>
1039c1a972SIhab Zhaika #include "fw/api/commands.h"
1139c1a972SIhab Zhaika #include "fw/api/power.h"
1239c1a972SIhab Zhaika #include "fw/api/phy.h"
1328dd7ccdSMordechay Goodstein #include "fw/api/nvm-reg.h"
14c4c95454SJohannes Berg #include "fw/api/config.h"
1539c1a972SIhab Zhaika #include "fw/img.h"
1639c1a972SIhab Zhaika #include "iwl-trans.h"
1739c1a972SIhab Zhaika
18813df5ceSLuca Coelho
191c73acf5SLuca Coelho #define ACPI_WRDS_METHOD "WRDS"
201c73acf5SLuca Coelho #define ACPI_EWRD_METHOD "EWRD"
211c73acf5SLuca Coelho #define ACPI_WGDS_METHOD "WGDS"
221c73acf5SLuca Coelho #define ACPI_WRDD_METHOD "WRDD"
231c73acf5SLuca Coelho #define ACPI_SPLC_METHOD "SPLC"
2448e775e6SHaim Dreyfuss #define ACPI_ECKV_METHOD "ECKV"
256ce1e5c0SGil Adam #define ACPI_PPAG_METHOD "PPAG"
2628dd7ccdSMordechay Goodstein #define ACPI_WTAS_METHOD "WTAS"
27c4c95454SJohannes Berg #define ACPI_WPFC_METHOD "WPFC"
281c73acf5SLuca Coelho
291c73acf5SLuca Coelho #define ACPI_WIFI_DOMAIN (0x07)
301c73acf5SLuca Coelho
31e7a3b8d8SLuca Coelho #define ACPI_SAR_PROFILE_NUM 4
32e7a3b8d8SLuca Coelho
33e7a3b8d8SLuca Coelho #define ACPI_NUM_GEO_PROFILES 3
3497f8a3d1SAyala Barazani #define ACPI_NUM_GEO_PROFILES_REV3 8
35e7a3b8d8SLuca Coelho #define ACPI_GEO_PER_CHAIN_SIZE 3
36e7a3b8d8SLuca Coelho
372a808414SLuca Coelho #define ACPI_SAR_NUM_CHAINS_REV0 2
382a808414SLuca Coelho #define ACPI_SAR_NUM_CHAINS_REV1 2
392a808414SLuca Coelho #define ACPI_SAR_NUM_CHAINS_REV2 4
402a808414SLuca Coelho #define ACPI_SAR_NUM_SUB_BANDS_REV0 5
412a808414SLuca Coelho #define ACPI_SAR_NUM_SUB_BANDS_REV1 11
422a808414SLuca Coelho #define ACPI_SAR_NUM_SUB_BANDS_REV2 11
43e7a3b8d8SLuca Coelho
442a808414SLuca Coelho #define ACPI_WRDS_WIFI_DATA_SIZE_REV0 (ACPI_SAR_NUM_CHAINS_REV0 * \
452a808414SLuca Coelho ACPI_SAR_NUM_SUB_BANDS_REV0 + 2)
462a808414SLuca Coelho #define ACPI_WRDS_WIFI_DATA_SIZE_REV1 (ACPI_SAR_NUM_CHAINS_REV1 * \
472a808414SLuca Coelho ACPI_SAR_NUM_SUB_BANDS_REV1 + 2)
482a808414SLuca Coelho #define ACPI_WRDS_WIFI_DATA_SIZE_REV2 (ACPI_SAR_NUM_CHAINS_REV2 * \
492a808414SLuca Coelho ACPI_SAR_NUM_SUB_BANDS_REV2 + 2)
5051266c11SLuca Coelho #define ACPI_EWRD_WIFI_DATA_SIZE_REV0 ((ACPI_SAR_PROFILE_NUM - 1) * \
512a808414SLuca Coelho ACPI_SAR_NUM_CHAINS_REV0 * \
522a808414SLuca Coelho ACPI_SAR_NUM_SUB_BANDS_REV0 + 3)
5351266c11SLuca Coelho #define ACPI_EWRD_WIFI_DATA_SIZE_REV1 ((ACPI_SAR_PROFILE_NUM - 1) * \
5451266c11SLuca Coelho ACPI_SAR_NUM_CHAINS_REV1 * \
5551266c11SLuca Coelho ACPI_SAR_NUM_SUB_BANDS_REV1 + 3)
5651266c11SLuca Coelho #define ACPI_EWRD_WIFI_DATA_SIZE_REV2 ((ACPI_SAR_PROFILE_NUM - 1) * \
5751266c11SLuca Coelho ACPI_SAR_NUM_CHAINS_REV2 * \
5851266c11SLuca Coelho ACPI_SAR_NUM_SUB_BANDS_REV2 + 3)
59*45eacd73SJohannes Berg #define ACPI_WPFC_WIFI_DATA_SIZE 5 /* domain and 4 filter config words */
60664c011bSLuca Coelho
61664c011bSLuca Coelho /* revision 0 and 1 are identical, except for the semantics in the FW */
62664c011bSLuca Coelho #define ACPI_GEO_NUM_BANDS_REV0 2
63664c011bSLuca Coelho #define ACPI_GEO_NUM_BANDS_REV2 3
64664c011bSLuca Coelho #define ACPI_GEO_NUM_CHAINS 2
65664c011bSLuca Coelho
66ed1a962dSLuca Coelho #define ACPI_WRDD_WIFI_DATA_SIZE 2
6745a5c6f6SLuca Coelho #define ACPI_SPLC_WIFI_DATA_SIZE 2
6848e775e6SHaim Dreyfuss #define ACPI_ECKV_WIFI_DATA_SIZE 2
6945a5c6f6SLuca Coelho
7028dd7ccdSMordechay Goodstein /*
717c530588SMiri Korenblit * TAS size: 1 elelment for type,
727c530588SMiri Korenblit * 1 element for enabled field,
737c530588SMiri Korenblit * 1 element for block list size,
747c530588SMiri Korenblit * 16 elements for block list array
7528dd7ccdSMordechay Goodstein */
7628dd7ccdSMordechay Goodstein #define APCI_WTAS_BLACK_LIST_MAX 16
7728dd7ccdSMordechay Goodstein #define ACPI_WTAS_WIFI_DATA_SIZE (3 + APCI_WTAS_BLACK_LIST_MAX)
787c530588SMiri Korenblit #define ACPI_WTAS_ENABLED_MSK 0x1
797c530588SMiri Korenblit #define ACPI_WTAS_OVERRIDE_IEC_MSK 0x2
807c530588SMiri Korenblit #define ACPI_WTAS_ENABLE_IEC_MSK 0x4
817c530588SMiri Korenblit #define ACPI_WTAS_OVERRIDE_IEC_POS 0x1
827c530588SMiri Korenblit #define ACPI_WTAS_ENABLE_IEC_POS 0x2
836da7ba3aSAyala Barazani #define ACPI_WTAS_USA_UHB_MSK BIT(16)
846da7ba3aSAyala Barazani #define ACPI_WTAS_USA_UHB_POS 16
857c530588SMiri Korenblit
8628dd7ccdSMordechay Goodstein
87e12cfc7bSMiri Korenblit #define ACPI_PPAG_WIFI_DATA_SIZE_V1 ((IWL_NUM_CHAIN_LIMITS * \
88e12cfc7bSMiri Korenblit IWL_NUM_SUB_BANDS_V1) + 2)
89f2134f66SGil Adam #define ACPI_PPAG_WIFI_DATA_SIZE_V2 ((IWL_NUM_CHAIN_LIMITS * \
90f9a78edbSLuca Coelho IWL_NUM_SUB_BANDS_V2) + 2)
916ce1e5c0SGil Adam
926ce1e5c0SGil Adam /* PPAG gain value bounds in 1/8 dBm */
936ce1e5c0SGil Adam #define ACPI_PPAG_MIN_LB -16
946ce1e5c0SGil Adam #define ACPI_PPAG_MAX_LB 24
956ce1e5c0SGil Adam #define ACPI_PPAG_MIN_HB -16
966ce1e5c0SGil Adam #define ACPI_PPAG_MAX_HB 40
97e8e10a37SMatt Chen #define ACPI_PPAG_MASK 3
98e8e10a37SMatt Chen #define IWL_PPAG_ETSI_MASK BIT(0)
996ce1e5c0SGil Adam
100b0aa02b3SAyala Barazani #define IWL_SAR_ENABLE_MSK BIT(0)
101b0aa02b3SAyala Barazani #define IWL_REDUCE_POWER_FLAGS_POS 1
102b0aa02b3SAyala Barazani
1032a808414SLuca Coelho /*
1042a808414SLuca Coelho * The profile for revision 2 is a superset of revision 1, which is in
1052a808414SLuca Coelho * turn a superset of revision 0. So we can store all revisions
1062a808414SLuca Coelho * inside revision 2, which is what we represent here.
1072a808414SLuca Coelho */
10881870d13SLuca Coelho struct iwl_sar_profile_chain {
1092a808414SLuca Coelho u8 subbands[ACPI_SAR_NUM_SUB_BANDS_REV2];
11081870d13SLuca Coelho };
11181870d13SLuca Coelho
11239c1a972SIhab Zhaika struct iwl_sar_profile {
11339c1a972SIhab Zhaika bool enabled;
1142a808414SLuca Coelho struct iwl_sar_profile_chain chains[ACPI_SAR_NUM_CHAINS_REV2];
11539c1a972SIhab Zhaika };
11639c1a972SIhab Zhaika
1175bf7a9edSLuca Coelho /* Same thing as with SAR, all revisions fit in revision 2 */
1185bf7a9edSLuca Coelho struct iwl_geo_profile_band {
1195bf7a9edSLuca Coelho u8 max;
1205bf7a9edSLuca Coelho u8 chains[ACPI_GEO_NUM_CHAINS];
1215bf7a9edSLuca Coelho };
1225bf7a9edSLuca Coelho
12339c1a972SIhab Zhaika struct iwl_geo_profile {
1245bf7a9edSLuca Coelho struct iwl_geo_profile_band bands[ACPI_GEO_NUM_BANDS_REV2];
12539c1a972SIhab Zhaika };
12639c1a972SIhab Zhaika
1278bdc52b9SMiri Korenblit /* Same thing as with SAR, all revisions fit in revision 2 */
1288bdc52b9SMiri Korenblit struct iwl_ppag_chain {
1298bdc52b9SMiri Korenblit s8 subbands[ACPI_SAR_NUM_SUB_BANDS_REV2];
1308bdc52b9SMiri Korenblit };
1318bdc52b9SMiri Korenblit
1329db93491SGil Adam enum iwl_dsm_funcs_rev_0 {
1339db93491SGil Adam DSM_FUNC_QUERY = 0,
1349db93491SGil Adam DSM_FUNC_DISABLE_SRD = 1,
1359db93491SGil Adam DSM_FUNC_ENABLE_INDONESIA_5G2 = 2,
136698b166eSLuca Coelho DSM_FUNC_ENABLE_6E = 3,
137d2bfda8aSMiri Korenblit DSM_FUNC_11AX_ENABLEMENT = 6,
1381f578d4fSMiri Korenblit DSM_FUNC_ENABLE_UNII4_CHAN = 7,
1398f323d06SAyala Barazani DSM_FUNC_ACTIVATE_CHANNEL = 8,
1408f323d06SAyala Barazani DSM_FUNC_FORCE_DISABLE_CHANNELS = 9
1419db93491SGil Adam };
1429db93491SGil Adam
14302d31e9bSGil Adam enum iwl_dsm_values_srd {
14402d31e9bSGil Adam DSM_VALUE_SRD_ACTIVE,
14502d31e9bSGil Adam DSM_VALUE_SRD_PASSIVE,
14602d31e9bSGil Adam DSM_VALUE_SRD_DISABLE,
14702d31e9bSGil Adam DSM_VALUE_SRD_MAX
14802d31e9bSGil Adam };
14902d31e9bSGil Adam
15002d31e9bSGil Adam enum iwl_dsm_values_indonesia {
15102d31e9bSGil Adam DSM_VALUE_INDONESIA_DISABLE,
15202d31e9bSGil Adam DSM_VALUE_INDONESIA_ENABLE,
15302d31e9bSGil Adam DSM_VALUE_INDONESIA_RESERVED,
15402d31e9bSGil Adam DSM_VALUE_INDONESIA_MAX
15502d31e9bSGil Adam };
15602d31e9bSGil Adam
1574e8fe214SGregory Greenman /* DSM RFI uses a different GUID, so need separate definitions */
1584e8fe214SGregory Greenman
1594e8fe214SGregory Greenman #define DSM_RFI_FUNC_ENABLE 3
1604e8fe214SGregory Greenman
1614e8fe214SGregory Greenman enum iwl_dsm_values_rfi {
1624e8fe214SGregory Greenman DSM_VALUE_RFI_ENABLE,
1634e8fe214SGregory Greenman DSM_VALUE_RFI_DISABLE,
1644e8fe214SGregory Greenman DSM_VALUE_RFI_MAX
1654e8fe214SGregory Greenman };
1664e8fe214SGregory Greenman
167e7a3b8d8SLuca Coelho #ifdef CONFIG_ACPI
168e7a3b8d8SLuca Coelho
16939c1a972SIhab Zhaika struct iwl_fw_runtime;
17039c1a972SIhab Zhaika
1714e8fe214SGregory Greenman extern const guid_t iwl_guid;
1724e8fe214SGregory Greenman extern const guid_t iwl_rfi_guid;
1734e8fe214SGregory Greenman
1744e8fe214SGregory Greenman int iwl_acpi_get_dsm_u8(struct device *dev, int rev, int func,
1754e8fe214SGregory Greenman const guid_t *guid, u8 *value);
1769db93491SGil Adam
1777119f02bSMiri Korenblit int iwl_acpi_get_dsm_u32(struct device *dev, int rev, int func,
1787119f02bSMiri Korenblit const guid_t *guid, u32 *value);
1797119f02bSMiri Korenblit
18045f65569SLuca Coelho /**
18145f65569SLuca Coelho * iwl_acpi_get_mcc - read MCC from ACPI, if available
18245f65569SLuca Coelho *
18345f65569SLuca Coelho * @dev: the struct device
18445f65569SLuca Coelho * @mcc: output buffer (3 bytes) that will get the MCC
18545f65569SLuca Coelho *
18645f65569SLuca Coelho * This function tries to read the current MCC from ACPI if available.
18745f65569SLuca Coelho */
18845f65569SLuca Coelho int iwl_acpi_get_mcc(struct device *dev, char *mcc);
18945f65569SLuca Coelho
1901184611eSLuca Coelho u64 iwl_acpi_get_pwr_limit(struct device *dev);
1911184611eSLuca Coelho
19248e775e6SHaim Dreyfuss /*
19348e775e6SHaim Dreyfuss * iwl_acpi_get_eckv - read external clock validation from ACPI, if available
19448e775e6SHaim Dreyfuss *
19548e775e6SHaim Dreyfuss * @dev: the struct device
19648e775e6SHaim Dreyfuss * @extl_clk: output var (2 bytes) that will get the clk indication.
19748e775e6SHaim Dreyfuss *
19848e775e6SHaim Dreyfuss * This function tries to read the external clock indication
19948e775e6SHaim Dreyfuss * from ACPI if available.
20048e775e6SHaim Dreyfuss */
20148e775e6SHaim Dreyfuss int iwl_acpi_get_eckv(struct device *dev, u32 *extl_clk);
20248e775e6SHaim Dreyfuss
20339c1a972SIhab Zhaika int iwl_sar_select_profile(struct iwl_fw_runtime *fwrt,
2049c08cef8SLuca Coelho __le16 *per_chain, u32 n_tables, u32 n_subbands,
20539c1a972SIhab Zhaika int prof_a, int prof_b);
20639c1a972SIhab Zhaika
20739c1a972SIhab Zhaika int iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt);
20839c1a972SIhab Zhaika
20939c1a972SIhab Zhaika int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt);
21039c1a972SIhab Zhaika
21139c1a972SIhab Zhaika int iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt);
21239c1a972SIhab Zhaika
21339c1a972SIhab Zhaika bool iwl_sar_geo_support(struct iwl_fw_runtime *fwrt);
21439c1a972SIhab Zhaika
2150433ae55SGolan Ben Ami int iwl_sar_geo_init(struct iwl_fw_runtime *fwrt,
21697f8a3d1SAyala Barazani struct iwl_per_chain_offset *table,
21797f8a3d1SAyala Barazani u32 n_bands, u32 n_profiles);
2180433ae55SGolan Ben Ami
2197c530588SMiri Korenblit int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
2206da7ba3aSAyala Barazani union iwl_tas_config_cmd *cmd, int fw_ver);
22128dd7ccdSMordechay Goodstein
222f21afabaSHarish Mitty __le32 iwl_acpi_get_lari_config_bitmap(struct iwl_fw_runtime *fwrt);
223d2bfda8aSMiri Korenblit
224e8e10a37SMatt Chen int iwl_acpi_get_ppag_table(struct iwl_fw_runtime *fwrt);
225e8e10a37SMatt Chen
226e8e10a37SMatt Chen int iwl_read_ppag_table(struct iwl_fw_runtime *fwrt, union iwl_ppag_table_cmd *cmd,
227e8e10a37SMatt Chen int *cmd_size);
228e8e10a37SMatt Chen
229e8e10a37SMatt Chen bool iwl_acpi_is_ppag_approved(struct iwl_fw_runtime *fwrt);
230e8e10a37SMatt Chen
231c4c95454SJohannes Berg void iwl_acpi_get_phy_filters(struct iwl_fw_runtime *fwrt,
232c4c95454SJohannes Berg struct iwl_phy_specific_cfg *filters);
233c4c95454SJohannes Berg
234813df5ceSLuca Coelho #else /* CONFIG_ACPI */
235813df5ceSLuca Coelho
iwl_acpi_get_dsm_object(struct device * dev,int rev,int func,union acpi_object * args)2369db93491SGil Adam static inline void *iwl_acpi_get_dsm_object(struct device *dev, int rev,
2379db93491SGil Adam int func, union acpi_object *args)
2389db93491SGil Adam {
2399db93491SGil Adam return ERR_PTR(-ENOENT);
2409db93491SGil Adam }
2419db93491SGil Adam
iwl_acpi_get_dsm_u8(struct device * dev,int rev,int func,const guid_t * guid,u8 * value)2424e8fe214SGregory Greenman static inline int iwl_acpi_get_dsm_u8(struct device *dev, int rev, int func,
2434e8fe214SGregory Greenman const guid_t *guid, u8 *value)
2449db93491SGil Adam {
2459db93491SGil Adam return -ENOENT;
2469db93491SGil Adam }
2479db93491SGil Adam
iwl_acpi_get_dsm_u32(struct device * dev,int rev,int func,const guid_t * guid,u32 * value)2487119f02bSMiri Korenblit static inline int iwl_acpi_get_dsm_u32(struct device *dev, int rev, int func,
2497119f02bSMiri Korenblit const guid_t *guid, u32 *value)
2507119f02bSMiri Korenblit {
2517119f02bSMiri Korenblit return -ENOENT;
2527119f02bSMiri Korenblit }
2537119f02bSMiri Korenblit
iwl_acpi_get_mcc(struct device * dev,char * mcc)25445f65569SLuca Coelho static inline int iwl_acpi_get_mcc(struct device *dev, char *mcc)
25545f65569SLuca Coelho {
25645f65569SLuca Coelho return -ENOENT;
25745f65569SLuca Coelho }
25845f65569SLuca Coelho
iwl_acpi_get_pwr_limit(struct device * dev)2591184611eSLuca Coelho static inline u64 iwl_acpi_get_pwr_limit(struct device *dev)
2601184611eSLuca Coelho {
2611184611eSLuca Coelho return 0;
2621184611eSLuca Coelho }
2631184611eSLuca Coelho
iwl_acpi_get_eckv(struct device * dev,u32 * extl_clk)26448e775e6SHaim Dreyfuss static inline int iwl_acpi_get_eckv(struct device *dev, u32 *extl_clk)
26548e775e6SHaim Dreyfuss {
26648e775e6SHaim Dreyfuss return -ENOENT;
26748e775e6SHaim Dreyfuss }
26848e775e6SHaim Dreyfuss
iwl_sar_select_profile(struct iwl_fw_runtime * fwrt,__le16 * per_chain,u32 n_tables,u32 n_subbands,int prof_a,int prof_b)26939c1a972SIhab Zhaika static inline int iwl_sar_select_profile(struct iwl_fw_runtime *fwrt,
2709c08cef8SLuca Coelho __le16 *per_chain, u32 n_tables, u32 n_subbands,
27139c1a972SIhab Zhaika int prof_a, int prof_b)
27239c1a972SIhab Zhaika {
27339c1a972SIhab Zhaika return -ENOENT;
27439c1a972SIhab Zhaika }
27539c1a972SIhab Zhaika
iwl_sar_get_wrds_table(struct iwl_fw_runtime * fwrt)27639c1a972SIhab Zhaika static inline int iwl_sar_get_wrds_table(struct iwl_fw_runtime *fwrt)
27739c1a972SIhab Zhaika {
27839c1a972SIhab Zhaika return -ENOENT;
27939c1a972SIhab Zhaika }
28039c1a972SIhab Zhaika
iwl_sar_get_ewrd_table(struct iwl_fw_runtime * fwrt)28139c1a972SIhab Zhaika static inline int iwl_sar_get_ewrd_table(struct iwl_fw_runtime *fwrt)
28239c1a972SIhab Zhaika {
28339c1a972SIhab Zhaika return -ENOENT;
28439c1a972SIhab Zhaika }
28539c1a972SIhab Zhaika
iwl_sar_get_wgds_table(struct iwl_fw_runtime * fwrt)28639c1a972SIhab Zhaika static inline int iwl_sar_get_wgds_table(struct iwl_fw_runtime *fwrt)
28739c1a972SIhab Zhaika {
28878a19d52SMiri Korenblit return 1;
28939c1a972SIhab Zhaika }
29039c1a972SIhab Zhaika
iwl_sar_geo_support(struct iwl_fw_runtime * fwrt)29139c1a972SIhab Zhaika static inline bool iwl_sar_geo_support(struct iwl_fw_runtime *fwrt)
29239c1a972SIhab Zhaika {
29339c1a972SIhab Zhaika return false;
29439c1a972SIhab Zhaika }
29539c1a972SIhab Zhaika
iwl_acpi_get_tas(struct iwl_fw_runtime * fwrt,union iwl_tas_config_cmd * cmd,int fw_ver)29628dd7ccdSMordechay Goodstein static inline int iwl_acpi_get_tas(struct iwl_fw_runtime *fwrt,
2976da7ba3aSAyala Barazani union iwl_tas_config_cmd *cmd, int fw_ver)
29828dd7ccdSMordechay Goodstein {
29928dd7ccdSMordechay Goodstein return -ENOENT;
30028dd7ccdSMordechay Goodstein }
301d2bfda8aSMiri Korenblit
iwl_acpi_get_lari_config_bitmap(struct iwl_fw_runtime * fwrt)302f21afabaSHarish Mitty static inline __le32 iwl_acpi_get_lari_config_bitmap(struct iwl_fw_runtime *fwrt)
303d2bfda8aSMiri Korenblit {
304d2bfda8aSMiri Korenblit return 0;
305d2bfda8aSMiri Korenblit }
306d2bfda8aSMiri Korenblit
iwl_acpi_get_ppag_table(struct iwl_fw_runtime * fwrt)307e8e10a37SMatt Chen static inline int iwl_acpi_get_ppag_table(struct iwl_fw_runtime *fwrt)
308e8e10a37SMatt Chen {
309e8e10a37SMatt Chen return -ENOENT;
310e8e10a37SMatt Chen }
311e8e10a37SMatt Chen
iwl_read_ppag_table(struct iwl_fw_runtime * fwrt,union iwl_ppag_table_cmd * cmd,int * cmd_size)312e8e10a37SMatt Chen static inline int iwl_read_ppag_table(struct iwl_fw_runtime *fwrt,
313e8e10a37SMatt Chen union iwl_ppag_table_cmd *cmd, int *cmd_size)
314e8e10a37SMatt Chen {
315e8e10a37SMatt Chen return -ENOENT;
316e8e10a37SMatt Chen }
317e8e10a37SMatt Chen
iwl_acpi_is_ppag_approved(struct iwl_fw_runtime * fwrt)318e8e10a37SMatt Chen static inline bool iwl_acpi_is_ppag_approved(struct iwl_fw_runtime *fwrt)
319e8e10a37SMatt Chen {
320e8e10a37SMatt Chen return false;
321e8e10a37SMatt Chen }
322e8e10a37SMatt Chen
iwl_acpi_get_phy_filters(struct iwl_fw_runtime * fwrt,struct iwl_phy_specific_cfg * filters)323c4c95454SJohannes Berg static inline void iwl_acpi_get_phy_filters(struct iwl_fw_runtime *fwrt,
324c4c95454SJohannes Berg struct iwl_phy_specific_cfg *filters)
325c4c95454SJohannes Berg {
326c4c95454SJohannes Berg }
327c4c95454SJohannes Berg
328813df5ceSLuca Coelho #endif /* CONFIG_ACPI */
32997f8a3d1SAyala Barazani
330813df5ceSLuca Coelho #endif /* __iwl_fw_acpi__ */
331