acpi.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /* SPDX-License-Identifier: BSD-3-Clause-Clear */
  2. /*
  3. * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef ATH12K_ACPI_H
  7. #define ATH12K_ACPI_H
  8. #include <linux/acpi.h>
  9. #define ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS 0
  10. #define ATH12K_ACPI_DSM_FUNC_DISABLE_FLAG 2
  11. #define ATH12K_ACPI_DSM_FUNC_BDF_EXT 3
  12. #define ATH12K_ACPI_DSM_FUNC_BIOS_SAR 4
  13. #define ATH12K_ACPI_DSM_FUNC_GEO_OFFSET 5
  14. #define ATH12K_ACPI_DSM_FUNC_INDEX_CCA 6
  15. #define ATH12K_ACPI_DSM_FUNC_TAS_CFG 8
  16. #define ATH12K_ACPI_DSM_FUNC_TAS_DATA 9
  17. #define ATH12K_ACPI_DSM_FUNC_INDEX_BAND_EDGE 10
  18. #define ATH12K_ACPI_FUNC_BIT_DISABLE_FLAG BIT(1)
  19. #define ATH12K_ACPI_FUNC_BIT_BDF_EXT BIT(2)
  20. #define ATH12K_ACPI_FUNC_BIT_BIOS_SAR BIT(3)
  21. #define ATH12K_ACPI_FUNC_BIT_GEO_OFFSET BIT(4)
  22. #define ATH12K_ACPI_FUNC_BIT_CCA BIT(5)
  23. #define ATH12K_ACPI_FUNC_BIT_TAS_CFG BIT(7)
  24. #define ATH12K_ACPI_FUNC_BIT_TAS_DATA BIT(8)
  25. #define ATH12K_ACPI_FUNC_BIT_BAND_EDGE_CHAN_POWER BIT(9)
  26. #define ATH12K_ACPI_NOTIFY_EVENT 0x86
  27. #define ATH12K_ACPI_FUNC_BIT_VALID(_acdata, _func) (((_acdata).func_bit) & (_func))
  28. #define ATH12K_ACPI_CHEK_BIT_VALID(_acdata, _func) (((_acdata).bit_flag) & (_func))
  29. #define ATH12K_ACPI_TAS_DATA_VERSION 0x1
  30. #define ATH12K_ACPI_TAS_DATA_ENABLE 0x1
  31. #define ATH12K_ACPI_POWER_LIMIT_VERSION 0x1
  32. #define ATH12K_ACPI_POWER_LIMIT_ENABLE_FLAG 0x1
  33. #define ATH12K_ACPI_CCA_THR_VERSION 0x1
  34. #define ATH12K_ACPI_CCA_THR_ENABLE_FLAG 0x1
  35. #define ATH12K_ACPI_BAND_EDGE_VERSION 0x1
  36. #define ATH12K_ACPI_BAND_EDGE_ENABLE_FLAG 0x1
  37. #define ATH12K_ACPI_GEO_OFFSET_DATA_OFFSET 1
  38. #define ATH12K_ACPI_DBS_BACKOFF_DATA_OFFSET 2
  39. #define ATH12K_ACPI_CCA_THR_OFFSET_DATA_OFFSET 5
  40. #define ATH12K_ACPI_BIOS_SAR_DBS_BACKOFF_LEN 10
  41. #define ATH12K_ACPI_POWER_LIMIT_DATA_OFFSET 12
  42. #define ATH12K_ACPI_BIOS_SAR_GEO_OFFSET_LEN 18
  43. #define ATH12K_ACPI_BIOS_SAR_TABLE_LEN 22
  44. #define ATH12K_ACPI_CCA_THR_OFFSET_LEN 36
  45. #define ATH12K_ACPI_DSM_TAS_DATA_SIZE 69
  46. #define ATH12K_ACPI_DSM_BAND_EDGE_DATA_SIZE 100
  47. #define ATH12K_ACPI_DSM_TAS_CFG_SIZE 108
  48. #define ATH12K_ACPI_DSM_FUNC_MIN_BITMAP_SIZE 1
  49. #define ATH12K_ACPI_DSM_FUNC_MAX_BITMAP_SIZE 4
  50. #define ATH12K_ACPI_DSM_DISABLE_11BE_BIT BIT(0)
  51. #define ATH12K_ACPI_DSM_DISABLE_RFKILL_BIT BIT(2)
  52. #define ATH12K_ACPI_BDF_ANCHOR_STRING_LEN 3
  53. #define ATH12K_ACPI_BDF_ANCHOR_STRING "BDF"
  54. #define ATH12K_ACPI_BDF_MAX_LEN 100
  55. #define ATH12K_ACPI_DSM_GEO_OFFSET_DATA_SIZE (ATH12K_ACPI_GEO_OFFSET_DATA_OFFSET + \
  56. ATH12K_ACPI_BIOS_SAR_GEO_OFFSET_LEN)
  57. #define ATH12K_ACPI_DSM_BIOS_SAR_DATA_SIZE (ATH12K_ACPI_POWER_LIMIT_DATA_OFFSET + \
  58. ATH12K_ACPI_BIOS_SAR_TABLE_LEN)
  59. #define ATH12K_ACPI_DSM_CCA_DATA_SIZE (ATH12K_ACPI_CCA_THR_OFFSET_DATA_OFFSET + \
  60. ATH12K_ACPI_CCA_THR_OFFSET_LEN)
  61. #ifdef CONFIG_ACPI
  62. int ath12k_acpi_start(struct ath12k_base *ab);
  63. void ath12k_acpi_stop(struct ath12k_base *ab);
  64. bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab);
  65. bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab);
  66. void ath12k_acpi_set_dsm_func(struct ath12k_base *ab);
  67. int ath12k_acpi_check_bdf_variant_name(struct ath12k_base *ab);
  68. #else
  69. static inline int ath12k_acpi_start(struct ath12k_base *ab)
  70. {
  71. return 0;
  72. }
  73. static inline void ath12k_acpi_stop(struct ath12k_base *ab)
  74. {
  75. }
  76. static inline bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab)
  77. {
  78. return false;
  79. }
  80. static inline bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab)
  81. {
  82. return false;
  83. }
  84. static inline void ath12k_acpi_set_dsm_func(struct ath12k_base *ab)
  85. {
  86. }
  87. static inline int ath12k_acpi_check_bdf_variant_name(struct ath12k_base *ab)
  88. {
  89. return 0;
  90. }
  91. #endif /* CONFIG_ACPI */
  92. #endif /* ATH12K_ACPI_H */