* [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI
@ 2025-01-13 7:48 Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 1/4] wifi: ath12k: Add support for obtaining the buffer type ACPI function bitmap Lingbo Kong
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Lingbo Kong @ 2025-01-13 7:48 UTC (permalink / raw)
To: ath12k; +Cc: linux-wireless, quic_lingbok
By reading ACPI tables, implement a method to obtain the ACPI functions
Bitmap, enable or disable specific features based on ACPI Bitflags and
download board data files based on ACPI board data filename extensions.
v4:
1.rebase to 0c5fcd9069dd
v3:
1.change some function name.
v2:
1.support functions for cases where CONFIG_ACPI is disabled
Lingbo Kong (4):
wifi: ath12k: Add support for obtaining the buffer type ACPI function
bitmap
wifi: ath12k: Add Support for enabling or disabling specific features
based on ACPI bitflag
wifi: ath12k: Adjust the timing to access ACPI table
wifi: ath12k: Add support for reading variant from ACPI to download
board data file
drivers/net/wireless/ath/ath12k/acpi.c | 200 +++++++++++++++++++------
drivers/net/wireless/ath/ath12k/acpi.h | 38 +++++
drivers/net/wireless/ath/ath12k/core.c | 8 +-
drivers/net/wireless/ath/ath12k/core.h | 7 +
drivers/net/wireless/ath/ath12k/mac.c | 3 +-
drivers/net/wireless/ath/ath12k/qmi.c | 9 ++
6 files changed, 217 insertions(+), 48 deletions(-)
base-commit: 0c5fcd9069dd5f984e39820629acbfbe0f1b4256
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 1/4] wifi: ath12k: Add support for obtaining the buffer type ACPI function bitmap
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
@ 2025-01-13 7:48 ` Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 2/4] wifi: ath12k: Add Support for enabling or disabling specific features based on ACPI bitflag Lingbo Kong
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lingbo Kong @ 2025-01-13 7:48 UTC (permalink / raw)
To: ath12k; +Cc: linux-wireless, quic_lingbok
Currently, ath12k does not support obtaining the buffer type ACPI function
bitmap.
To solve this issue, change the code to support obtaining the buffer type
ACPI function bitmap.
This patch will not affect QCN9274, because only WCN7850 supports ACPI.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
---
v4:
1.rebase to 0c5fcd9069dd
v3:
no change
v2:
no change
drivers/net/wireless/ath/ath12k/acpi.c | 16 +++++++++++++++-
drivers/net/wireless/ath/ath12k/acpi.h | 3 +++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath12k/acpi.c b/drivers/net/wireless/ath/ath12k/acpi.c
index 0555d35aab47..d83f7e58fb7a 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.c
+++ b/drivers/net/wireless/ath/ath12k/acpi.c
@@ -12,7 +12,7 @@ static int ath12k_acpi_dsm_get_data(struct ath12k_base *ab, int func)
{
union acpi_object *obj;
acpi_handle root_handle;
- int ret;
+ int ret, i;
root_handle = ACPI_HANDLE(ab->dev);
if (!root_handle) {
@@ -32,6 +32,20 @@ static int ath12k_acpi_dsm_get_data(struct ath12k_base *ab, int func)
ab->acpi.func_bit = obj->integer.value;
} else if (obj->type == ACPI_TYPE_BUFFER) {
switch (func) {
+ case ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS:
+ if (obj->buffer.length < ATH12K_ACPI_DSM_FUNC_MIN_BITMAP_SIZE ||
+ obj->buffer.length > ATH12K_ACPI_DSM_FUNC_MAX_BITMAP_SIZE) {
+ ath12k_warn(ab, "invalid ACPI DSM func size: %d\n",
+ obj->buffer.length);
+ ret = -EINVAL;
+ goto out;
+ }
+
+ ab->acpi.func_bit = 0;
+ for (i = 0; i < obj->buffer.length; i++)
+ ab->acpi.func_bit += obj->buffer.pointer[i] << (i * 8);
+
+ break;
case ATH12K_ACPI_DSM_FUNC_TAS_CFG:
if (obj->buffer.length != ATH12K_ACPI_DSM_TAS_CFG_SIZE) {
ath12k_warn(ab, "invalid ACPI DSM TAS config size: %d\n",
diff --git a/drivers/net/wireless/ath/ath12k/acpi.h b/drivers/net/wireless/ath/ath12k/acpi.h
index 39e003d86a48..7ec7a2e72e40 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.h
+++ b/drivers/net/wireless/ath/ath12k/acpi.h
@@ -48,6 +48,9 @@
#define ATH12K_ACPI_DSM_BAND_EDGE_DATA_SIZE 100
#define ATH12K_ACPI_DSM_TAS_CFG_SIZE 108
+#define ATH12K_ACPI_DSM_FUNC_MIN_BITMAP_SIZE 1
+#define ATH12K_ACPI_DSM_FUNC_MAX_BITMAP_SIZE 4
+
#define ATH12K_ACPI_DSM_GEO_OFFSET_DATA_SIZE (ATH12K_ACPI_GEO_OFFSET_DATA_OFFSET + \
ATH12K_ACPI_BIOS_SAR_GEO_OFFSET_LEN)
#define ATH12K_ACPI_DSM_BIOS_SAR_DATA_SIZE (ATH12K_ACPI_POWER_LIMIT_DATA_OFFSET + \
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 2/4] wifi: ath12k: Add Support for enabling or disabling specific features based on ACPI bitflag
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 1/4] wifi: ath12k: Add support for obtaining the buffer type ACPI function bitmap Lingbo Kong
@ 2025-01-13 7:48 ` Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 3/4] wifi: ath12k: Adjust the timing to access ACPI table Lingbo Kong
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lingbo Kong @ 2025-01-13 7:48 UTC (permalink / raw)
To: ath12k; +Cc: linux-wireless, quic_lingbok
Currently, ath12k does not support enable or disable specific features by
ACPI bitflag.
To address this issue, obtain the ACPI bitflag value and use it to
selectively enable or disable specific features.
This patch will not affect QCN9274, because only WCN7850 supports ACPI.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com>
---
v4:
1.rebase to 0c5fcd9069dd
v3:
1.change some function name
v2:
1.support functions for cases where CONFIG_ACPI is disabled
drivers/net/wireless/ath/ath12k/acpi.c | 41 ++++++++++++++++++++++++--
drivers/net/wireless/ath/ath12k/acpi.h | 18 +++++++++++
drivers/net/wireless/ath/ath12k/core.c | 3 ++
drivers/net/wireless/ath/ath12k/core.h | 3 ++
drivers/net/wireless/ath/ath12k/mac.c | 3 +-
5 files changed, 64 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/acpi.c b/drivers/net/wireless/ath/ath12k/acpi.c
index d83f7e58fb7a..a3f3d0712722 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.c
+++ b/drivers/net/wireless/ath/ath12k/acpi.c
@@ -29,7 +29,14 @@ static int ath12k_acpi_dsm_get_data(struct ath12k_base *ab, int func)
}
if (obj->type == ACPI_TYPE_INTEGER) {
- ab->acpi.func_bit = obj->integer.value;
+ switch (func) {
+ case ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS:
+ ab->acpi.func_bit = obj->integer.value;
+ break;
+ case ATH12K_ACPI_DSM_FUNC_DISABLE_FLAG:
+ ab->acpi.bit_flag = obj->integer.value;
+ break;
+ }
} else if (obj->type == ACPI_TYPE_BUFFER) {
switch (func) {
case ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS:
@@ -261,24 +268,52 @@ static int ath12k_acpi_set_tas_params(struct ath12k_base *ab)
return 0;
}
+bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab)
+{
+ return ab->acpi.acpi_disable_rfkill;
+}
+
+bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab)
+{
+ return ab->acpi.acpi_disable_11be;
+}
+
int ath12k_acpi_start(struct ath12k_base *ab)
{
acpi_status status;
u8 *buf;
int ret;
+ ab->acpi.acpi_tas_enable = false;
+ ab->acpi.acpi_disable_11be = false;
+ ab->acpi.acpi_disable_rfkill = false;
+
if (!ab->hw_params->acpi_guid)
/* not supported with this hardware */
return 0;
- ab->acpi.acpi_tas_enable = false;
-
ret = ath12k_acpi_dsm_get_data(ab, ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS);
if (ret) {
ath12k_dbg(ab, ATH12K_DBG_BOOT, "failed to get ACPI DSM data: %d\n", ret);
return ret;
}
+ if (ATH12K_ACPI_FUNC_BIT_VALID(ab->acpi, ATH12K_ACPI_FUNC_BIT_DISABLE_FLAG)) {
+ ret = ath12k_acpi_dsm_get_data(ab, ATH12K_ACPI_DSM_FUNC_DISABLE_FLAG);
+ if (ret) {
+ ath12k_warn(ab, "failed to get ACPI DISABLE FLAG: %d\n", ret);
+ return ret;
+ }
+
+ if (ATH12K_ACPI_CHEK_BIT_VALID(ab->acpi,
+ ATH12K_ACPI_DSM_DISABLE_11BE_BIT))
+ ab->acpi.acpi_disable_11be = true;
+
+ if (!ATH12K_ACPI_CHEK_BIT_VALID(ab->acpi,
+ ATH12K_ACPI_DSM_DISABLE_RFKILL_BIT))
+ ab->acpi.acpi_disable_rfkill = true;
+ }
+
if (ATH12K_ACPI_FUNC_BIT_VALID(ab->acpi, ATH12K_ACPI_FUNC_BIT_TAS_CFG)) {
ret = ath12k_acpi_dsm_get_data(ab, ATH12K_ACPI_DSM_FUNC_TAS_CFG);
if (ret) {
diff --git a/drivers/net/wireless/ath/ath12k/acpi.h b/drivers/net/wireless/ath/ath12k/acpi.h
index 7ec7a2e72e40..4b154cfdbd39 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.h
+++ b/drivers/net/wireless/ath/ath12k/acpi.h
@@ -9,6 +9,7 @@
#include <linux/acpi.h>
#define ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS 0
+#define ATH12K_ACPI_DSM_FUNC_DISABLE_FLAG 2
#define ATH12K_ACPI_DSM_FUNC_BIOS_SAR 4
#define ATH12K_ACPI_DSM_FUNC_GEO_OFFSET 5
#define ATH12K_ACPI_DSM_FUNC_INDEX_CCA 6
@@ -16,6 +17,7 @@
#define ATH12K_ACPI_DSM_FUNC_TAS_DATA 9
#define ATH12K_ACPI_DSM_FUNC_INDEX_BAND_EDGE 10
+#define ATH12K_ACPI_FUNC_BIT_DISABLE_FLAG BIT(1)
#define ATH12K_ACPI_FUNC_BIT_BIOS_SAR BIT(3)
#define ATH12K_ACPI_FUNC_BIT_GEO_OFFSET BIT(4)
#define ATH12K_ACPI_FUNC_BIT_CCA BIT(5)
@@ -25,6 +27,7 @@
#define ATH12K_ACPI_NOTIFY_EVENT 0x86
#define ATH12K_ACPI_FUNC_BIT_VALID(_acdata, _func) (((_acdata).func_bit) & (_func))
+#define ATH12K_ACPI_CHEK_BIT_VALID(_acdata, _func) (((_acdata).bit_flag) & (_func))
#define ATH12K_ACPI_TAS_DATA_VERSION 0x1
#define ATH12K_ACPI_TAS_DATA_ENABLE 0x1
@@ -51,6 +54,9 @@
#define ATH12K_ACPI_DSM_FUNC_MIN_BITMAP_SIZE 1
#define ATH12K_ACPI_DSM_FUNC_MAX_BITMAP_SIZE 4
+#define ATH12K_ACPI_DSM_DISABLE_11BE_BIT BIT(0)
+#define ATH12K_ACPI_DSM_DISABLE_RFKILL_BIT BIT(2)
+
#define ATH12K_ACPI_DSM_GEO_OFFSET_DATA_SIZE (ATH12K_ACPI_GEO_OFFSET_DATA_OFFSET + \
ATH12K_ACPI_BIOS_SAR_GEO_OFFSET_LEN)
#define ATH12K_ACPI_DSM_BIOS_SAR_DATA_SIZE (ATH12K_ACPI_POWER_LIMIT_DATA_OFFSET + \
@@ -62,6 +68,8 @@
int ath12k_acpi_start(struct ath12k_base *ab);
void ath12k_acpi_stop(struct ath12k_base *ab);
+bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab);
+bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab);
#else
@@ -74,6 +82,16 @@ static inline void ath12k_acpi_stop(struct ath12k_base *ab)
{
}
+static inline bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab)
+{
+ return false;
+}
+
+static inline bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab)
+{
+ return false;
+}
+
#endif /* CONFIG_ACPI */
#endif /* ATH12K_ACPI_H */
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 0c6b35aac96e..6c51c57778ec 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -36,6 +36,9 @@ static int ath12k_core_rfkill_config(struct ath12k_base *ab)
if (!(ab->target_caps.sys_cap_info & WMI_SYS_CAP_INFO_RFKILL))
return 0;
+ if (ath12k_acpi_get_disable_rfkill(ab))
+ return 0;
+
for (i = 0; i < ab->num_radios; i++) {
ar = ab->pdevs[i].ar;
diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
index 3dd01ad100c5..41a934c13fe7 100644
--- a/drivers/net/wireless/ath/ath12k/core.h
+++ b/drivers/net/wireless/ath/ath12k/core.h
@@ -1038,6 +1038,9 @@ struct ath12k_base {
u32 func_bit;
bool acpi_tas_enable;
bool acpi_bios_sar_enable;
+ bool acpi_disable_11be;
+ bool acpi_disable_rfkill;
+ u32 bit_flag;
u8 tas_cfg[ATH12K_ACPI_DSM_TAS_CFG_SIZE];
u8 tas_sar_power_table[ATH12K_ACPI_DSM_TAS_DATA_SIZE];
u8 bios_sar_data[ATH12K_ACPI_DSM_BIOS_SAR_DATA_SIZE];
diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 48d110e2a7de..60db3c060273 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -6668,7 +6668,8 @@ static void ath12k_mac_copy_eht_cap(struct ath12k *ar,
memset(eht_cap, 0, sizeof(struct ieee80211_sta_eht_cap));
- if (!(test_bit(WMI_TLV_SERVICE_11BE, ar->ab->wmi_ab.svc_map)))
+ if (!(test_bit(WMI_TLV_SERVICE_11BE, ar->ab->wmi_ab.svc_map)) ||
+ ath12k_acpi_get_disable_11be(ar->ab))
return;
eht_cap->has_eht = true;
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 3/4] wifi: ath12k: Adjust the timing to access ACPI table
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 1/4] wifi: ath12k: Add support for obtaining the buffer type ACPI function bitmap Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 2/4] wifi: ath12k: Add Support for enabling or disabling specific features based on ACPI bitflag Lingbo Kong
@ 2025-01-13 7:48 ` Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 4/4] wifi: ath12k: Add support for reading variant from ACPI to download board data file Lingbo Kong
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lingbo Kong @ 2025-01-13 7:48 UTC (permalink / raw)
To: ath12k; +Cc: linux-wireless, quic_lingbok
Currently, the timing for accessing the ACPI table is inappropriate.
Due to special ACPI requirements, the ACPI table must be obtained before
downloading the board data file. Therefore, adjust the timing for accessing
the ACPI table accordingly.
This patch will not affect QCN9274, because only WCN7850 supports ACPI.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
---
v4:
1.rebase to 0c5fcd9069dd
v3:
no change
v2:
no change
drivers/net/wireless/ath/ath12k/acpi.c | 98 ++++++++++++++++----------
drivers/net/wireless/ath/ath12k/acpi.h | 5 ++
drivers/net/wireless/ath/ath12k/core.c | 5 +-
drivers/net/wireless/ath/ath12k/core.h | 2 +
drivers/net/wireless/ath/ath12k/qmi.c | 5 ++
5 files changed, 72 insertions(+), 43 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/acpi.c b/drivers/net/wireless/ath/ath12k/acpi.c
index a3f3d0712722..fe6f051debda 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.c
+++ b/drivers/net/wireless/ath/ath12k/acpi.c
@@ -278,15 +278,69 @@ bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab)
return ab->acpi.acpi_disable_11be;
}
+void ath12k_acpi_set_dsm_func(struct ath12k_base *ab)
+{
+ int ret;
+ u8 *buf;
+
+ if (!ab->hw_params->acpi_guid)
+ /* not supported with this hardware */
+ return;
+
+ if (ab->acpi.acpi_tas_enable) {
+ ret = ath12k_acpi_set_tas_params(ab);
+ if (ret) {
+ ath12k_warn(ab, "failed to send ACPI TAS parameters: %d\n", ret);
+ return;
+ }
+ }
+
+ if (ab->acpi.acpi_bios_sar_enable) {
+ ret = ath12k_acpi_set_bios_sar_params(ab);
+ if (ret) {
+ ath12k_warn(ab, "failed to send ACPI BIOS SAR: %d\n", ret);
+ return;
+ }
+ }
+
+ if (ab->acpi.acpi_cca_enable) {
+ buf = ab->acpi.cca_data + ATH12K_ACPI_CCA_THR_OFFSET_DATA_OFFSET;
+ ret = ath12k_wmi_set_bios_cmd(ab,
+ WMI_BIOS_PARAM_CCA_THRESHOLD_TYPE,
+ buf,
+ ATH12K_ACPI_CCA_THR_OFFSET_LEN);
+ if (ret) {
+ ath12k_warn(ab, "failed to set ACPI DSM CCA threshold: %d\n",
+ ret);
+ return;
+ }
+ }
+
+ if (ab->acpi.acpi_band_edge_enable) {
+ ret = ath12k_wmi_set_bios_cmd(ab,
+ WMI_BIOS_PARAM_TYPE_BANDEDGE,
+ ab->acpi.band_edge_power,
+ sizeof(ab->acpi.band_edge_power));
+ if (ret) {
+ ath12k_warn(ab,
+ "failed to set ACPI DSM band edge channel power: %d\n",
+ ret);
+ return;
+ }
+ }
+}
+
int ath12k_acpi_start(struct ath12k_base *ab)
{
acpi_status status;
- u8 *buf;
int ret;
ab->acpi.acpi_tas_enable = false;
ab->acpi.acpi_disable_11be = false;
ab->acpi.acpi_disable_rfkill = false;
+ ab->acpi.acpi_bios_sar_enable = false;
+ ab->acpi.acpi_cca_enable = false;
+ ab->acpi.acpi_band_edge_enable = false;
if (!ab->hw_params->acpi_guid)
/* not supported with this hardware */
@@ -357,20 +411,6 @@ int ath12k_acpi_start(struct ath12k_base *ab)
ab->acpi.acpi_bios_sar_enable = true;
}
- if (ab->acpi.acpi_tas_enable) {
- ret = ath12k_acpi_set_tas_params(ab);
- if (ret) {
- ath12k_warn(ab, "failed to send ACPI parameters: %d\n", ret);
- return ret;
- }
- }
-
- if (ab->acpi.acpi_bios_sar_enable) {
- ret = ath12k_acpi_set_bios_sar_params(ab);
- if (ret)
- return ret;
- }
-
if (ATH12K_ACPI_FUNC_BIT_VALID(ab->acpi, ATH12K_ACPI_FUNC_BIT_CCA)) {
ret = ath12k_acpi_dsm_get_data(ab, ATH12K_ACPI_DSM_FUNC_INDEX_CCA);
if (ret) {
@@ -381,18 +421,8 @@ int ath12k_acpi_start(struct ath12k_base *ab)
if (ab->acpi.cca_data[0] == ATH12K_ACPI_CCA_THR_VERSION &&
ab->acpi.cca_data[ATH12K_ACPI_CCA_THR_OFFSET_DATA_OFFSET] ==
- ATH12K_ACPI_CCA_THR_ENABLE_FLAG) {
- buf = ab->acpi.cca_data + ATH12K_ACPI_CCA_THR_OFFSET_DATA_OFFSET;
- ret = ath12k_wmi_set_bios_cmd(ab,
- WMI_BIOS_PARAM_CCA_THRESHOLD_TYPE,
- buf,
- ATH12K_ACPI_CCA_THR_OFFSET_LEN);
- if (ret) {
- ath12k_warn(ab, "failed to set ACPI DSM CCA threshold: %d\n",
- ret);
- return ret;
- }
- }
+ ATH12K_ACPI_CCA_THR_ENABLE_FLAG)
+ ab->acpi.acpi_cca_enable = true;
}
if (ATH12K_ACPI_FUNC_BIT_VALID(ab->acpi,
@@ -405,18 +435,8 @@ int ath12k_acpi_start(struct ath12k_base *ab)
}
if (ab->acpi.band_edge_power[0] == ATH12K_ACPI_BAND_EDGE_VERSION &&
- ab->acpi.band_edge_power[1] == ATH12K_ACPI_BAND_EDGE_ENABLE_FLAG) {
- ret = ath12k_wmi_set_bios_cmd(ab,
- WMI_BIOS_PARAM_TYPE_BANDEDGE,
- ab->acpi.band_edge_power,
- sizeof(ab->acpi.band_edge_power));
- if (ret) {
- ath12k_warn(ab,
- "failed to set ACPI DSM band edge channel power: %d\n",
- ret);
- return ret;
- }
- }
+ ab->acpi.band_edge_power[1] == ATH12K_ACPI_BAND_EDGE_ENABLE_FLAG)
+ ab->acpi.acpi_band_edge_enable = true;
}
status = acpi_install_notify_handler(ACPI_HANDLE(ab->dev),
diff --git a/drivers/net/wireless/ath/ath12k/acpi.h b/drivers/net/wireless/ath/ath12k/acpi.h
index 4b154cfdbd39..7c18a3f60e3f 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.h
+++ b/drivers/net/wireless/ath/ath12k/acpi.h
@@ -70,6 +70,7 @@ int ath12k_acpi_start(struct ath12k_base *ab);
void ath12k_acpi_stop(struct ath12k_base *ab);
bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab);
bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab);
+void ath12k_acpi_set_dsm_func(struct ath12k_base *ab);
#else
@@ -92,6 +93,10 @@ static inline bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab)
return false;
}
+static inline void ath12k_acpi_set_dsm_func(struct ath12k_base *ab)
+{
+}
+
#endif /* CONFIG_ACPI */
#endif /* ATH12K_ACPI_H */
diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 6c51c57778ec..de7fb84d69cd 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -839,10 +839,7 @@ static int ath12k_core_start(struct ath12k_base *ab,
goto err_reo_cleanup;
}
- ret = ath12k_acpi_start(ab);
- if (ret)
- /* ACPI is optional so continue in case of an error */
- ath12k_dbg(ab, ATH12K_DBG_BOOT, "acpi failed: %d\n", ret);
+ ath12k_acpi_set_dsm_func(ab);
if (!test_bit(ATH12K_FLAG_RECOVERY, &ab->dev_flags))
/* Indicate the core start in the appropriate group */
diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
index 41a934c13fe7..c11c8c03b357 100644
--- a/drivers/net/wireless/ath/ath12k/core.h
+++ b/drivers/net/wireless/ath/ath12k/core.h
@@ -1040,6 +1040,8 @@ struct ath12k_base {
bool acpi_bios_sar_enable;
bool acpi_disable_11be;
bool acpi_disable_rfkill;
+ bool acpi_cca_enable;
+ bool acpi_band_edge_enable;
u32 bit_flag;
u8 tas_cfg[ATH12K_ACPI_DSM_TAS_CFG_SIZE];
u8 tas_sar_power_table[ATH12K_ACPI_DSM_TAS_DATA_SIZE];
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index 5c3563383fab..86d055c45ace 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -2740,6 +2740,11 @@ int ath12k_qmi_request_target_cap(struct ath12k_base *ab)
if (r)
ath12k_dbg(ab, ATH12K_DBG_QMI, "SMBIOS bdf variant name not set.\n");
+ r = ath12k_acpi_start(ab);
+ if (r)
+ /* ACPI is optional so continue in case of an error */
+ ath12k_dbg(ab, ATH12K_DBG_BOOT, "acpi failed: %d\n", r);
+
out:
return ret;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 4/4] wifi: ath12k: Add support for reading variant from ACPI to download board data file
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
` (2 preceding siblings ...)
2025-01-13 7:48 ` [PATCH v4 3/4] wifi: ath12k: Adjust the timing to access ACPI table Lingbo Kong
@ 2025-01-13 7:48 ` Lingbo Kong
2025-01-13 9:06 ` [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Aditya Kumar Singh
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Lingbo Kong @ 2025-01-13 7:48 UTC (permalink / raw)
To: ath12k; +Cc: linux-wireless, quic_lingbok
Currently, ath12k does not support reading variant from ACPI board data
filename extension for downloading board data file.
To address this issue, obtain the string of the ACPI data filename
extension and use it as part of the string to search for the board data
file from board-2.bin.
This patch will not affect QCN9274, because only WCN7850 supports ACPI.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
---
v4:
1.rebase to 0c5fcd9069dd
v3:
no change
v2:
1.support functions for cases where CONFIG_ACPI is disabled
drivers/net/wireless/ath/ath12k/acpi.c | 45 ++++++++++++++++++++++++++
drivers/net/wireless/ath/ath12k/acpi.h | 12 +++++++
drivers/net/wireless/ath/ath12k/core.h | 2 ++
drivers/net/wireless/ath/ath12k/qmi.c | 4 +++
4 files changed, 63 insertions(+)
diff --git a/drivers/net/wireless/ath/ath12k/acpi.c b/drivers/net/wireless/ath/ath12k/acpi.c
index fe6f051debda..cf28b5dd049a 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.c
+++ b/drivers/net/wireless/ath/ath12k/acpi.c
@@ -37,6 +37,24 @@ static int ath12k_acpi_dsm_get_data(struct ath12k_base *ab, int func)
ab->acpi.bit_flag = obj->integer.value;
break;
}
+ } else if (obj->type == ACPI_TYPE_STRING) {
+ switch (func) {
+ case ATH12K_ACPI_DSM_FUNC_BDF_EXT:
+ if (obj->string.length <= ATH12K_ACPI_BDF_ANCHOR_STRING_LEN ||
+ obj->string.length > ATH12K_ACPI_BDF_MAX_LEN ||
+ memcmp(obj->string.pointer, ATH12K_ACPI_BDF_ANCHOR_STRING,
+ ATH12K_ACPI_BDF_ANCHOR_STRING_LEN)) {
+ ath12k_warn(ab, "invalid ACPI DSM BDF size: %d\n",
+ obj->string.length);
+ ret = -EINVAL;
+ goto out;
+ }
+
+ memcpy(ab->acpi.bdf_string, obj->string.pointer,
+ obj->buffer.length);
+
+ break;
+ }
} else if (obj->type == ACPI_TYPE_BUFFER) {
switch (func) {
case ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS:
@@ -341,6 +359,8 @@ int ath12k_acpi_start(struct ath12k_base *ab)
ab->acpi.acpi_bios_sar_enable = false;
ab->acpi.acpi_cca_enable = false;
ab->acpi.acpi_band_edge_enable = false;
+ ab->acpi.acpi_enable_bdf = false;
+ ab->acpi.bdf_string[0] = '\0';
if (!ab->hw_params->acpi_guid)
/* not supported with this hardware */
@@ -368,6 +388,16 @@ int ath12k_acpi_start(struct ath12k_base *ab)
ab->acpi.acpi_disable_rfkill = true;
}
+ if (ATH12K_ACPI_FUNC_BIT_VALID(ab->acpi, ATH12K_ACPI_FUNC_BIT_BDF_EXT)) {
+ ret = ath12k_acpi_dsm_get_data(ab, ATH12K_ACPI_DSM_FUNC_BDF_EXT);
+ if (ret || ab->acpi.bdf_string[0] == '\0') {
+ ath12k_warn(ab, "failed to get ACPI BDF EXT: %d\n", ret);
+ return ret;
+ }
+
+ ab->acpi.acpi_enable_bdf = true;
+ }
+
if (ATH12K_ACPI_FUNC_BIT_VALID(ab->acpi, ATH12K_ACPI_FUNC_BIT_TAS_CFG)) {
ret = ath12k_acpi_dsm_get_data(ab, ATH12K_ACPI_DSM_FUNC_TAS_CFG);
if (ret) {
@@ -452,6 +482,21 @@ int ath12k_acpi_start(struct ath12k_base *ab)
return 0;
}
+int ath12k_acpi_check_bdf_variant_name(struct ath12k_base *ab)
+{
+ size_t max_len = sizeof(ab->qmi.target.bdf_ext);
+
+ if (!ab->acpi.acpi_enable_bdf)
+ return -ENODATA;
+
+ if (strscpy(ab->qmi.target.bdf_ext, ab->acpi.bdf_string + 4, max_len) < 0)
+ ath12k_dbg(ab, ATH12K_DBG_BOOT,
+ "acpi bdf variant longer than the buffer (variant: %s)\n",
+ ab->acpi.bdf_string);
+
+ return 0;
+}
+
void ath12k_acpi_stop(struct ath12k_base *ab)
{
if (!ab->acpi.started)
diff --git a/drivers/net/wireless/ath/ath12k/acpi.h b/drivers/net/wireless/ath/ath12k/acpi.h
index 7c18a3f60e3f..24f5a367a299 100644
--- a/drivers/net/wireless/ath/ath12k/acpi.h
+++ b/drivers/net/wireless/ath/ath12k/acpi.h
@@ -10,6 +10,7 @@
#define ATH12K_ACPI_DSM_FUNC_SUPPORT_FUNCS 0
#define ATH12K_ACPI_DSM_FUNC_DISABLE_FLAG 2
+#define ATH12K_ACPI_DSM_FUNC_BDF_EXT 3
#define ATH12K_ACPI_DSM_FUNC_BIOS_SAR 4
#define ATH12K_ACPI_DSM_FUNC_GEO_OFFSET 5
#define ATH12K_ACPI_DSM_FUNC_INDEX_CCA 6
@@ -18,6 +19,7 @@
#define ATH12K_ACPI_DSM_FUNC_INDEX_BAND_EDGE 10
#define ATH12K_ACPI_FUNC_BIT_DISABLE_FLAG BIT(1)
+#define ATH12K_ACPI_FUNC_BIT_BDF_EXT BIT(2)
#define ATH12K_ACPI_FUNC_BIT_BIOS_SAR BIT(3)
#define ATH12K_ACPI_FUNC_BIT_GEO_OFFSET BIT(4)
#define ATH12K_ACPI_FUNC_BIT_CCA BIT(5)
@@ -57,6 +59,10 @@
#define ATH12K_ACPI_DSM_DISABLE_11BE_BIT BIT(0)
#define ATH12K_ACPI_DSM_DISABLE_RFKILL_BIT BIT(2)
+#define ATH12K_ACPI_BDF_ANCHOR_STRING_LEN 3
+#define ATH12K_ACPI_BDF_ANCHOR_STRING "BDF"
+#define ATH12K_ACPI_BDF_MAX_LEN 100
+
#define ATH12K_ACPI_DSM_GEO_OFFSET_DATA_SIZE (ATH12K_ACPI_GEO_OFFSET_DATA_OFFSET + \
ATH12K_ACPI_BIOS_SAR_GEO_OFFSET_LEN)
#define ATH12K_ACPI_DSM_BIOS_SAR_DATA_SIZE (ATH12K_ACPI_POWER_LIMIT_DATA_OFFSET + \
@@ -71,6 +77,7 @@ void ath12k_acpi_stop(struct ath12k_base *ab);
bool ath12k_acpi_get_disable_rfkill(struct ath12k_base *ab);
bool ath12k_acpi_get_disable_11be(struct ath12k_base *ab);
void ath12k_acpi_set_dsm_func(struct ath12k_base *ab);
+int ath12k_acpi_check_bdf_variant_name(struct ath12k_base *ab);
#else
@@ -97,6 +104,11 @@ static inline void ath12k_acpi_set_dsm_func(struct ath12k_base *ab)
{
}
+static inline int ath12k_acpi_check_bdf_variant_name(struct ath12k_base *ab)
+{
+ return 0;
+}
+
#endif /* CONFIG_ACPI */
#endif /* ATH12K_ACPI_H */
diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
index c11c8c03b357..eacf377e2efa 100644
--- a/drivers/net/wireless/ath/ath12k/core.h
+++ b/drivers/net/wireless/ath/ath12k/core.h
@@ -1042,7 +1042,9 @@ struct ath12k_base {
bool acpi_disable_rfkill;
bool acpi_cca_enable;
bool acpi_band_edge_enable;
+ bool acpi_enable_bdf;
u32 bit_flag;
+ char bdf_string[ATH12K_ACPI_BDF_MAX_LEN];
u8 tas_cfg[ATH12K_ACPI_DSM_TAS_CFG_SIZE];
u8 tas_sar_power_table[ATH12K_ACPI_DSM_TAS_DATA_SIZE];
u8 bios_sar_data[ATH12K_ACPI_DSM_BIOS_SAR_DATA_SIZE];
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index 86d055c45ace..f97f38899d55 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -2745,6 +2745,10 @@ int ath12k_qmi_request_target_cap(struct ath12k_base *ab)
/* ACPI is optional so continue in case of an error */
ath12k_dbg(ab, ATH12K_DBG_BOOT, "acpi failed: %d\n", r);
+ r = ath12k_acpi_check_bdf_variant_name(ab);
+ if (r)
+ ath12k_dbg(ab, ATH12K_DBG_BOOT, "ACPI bdf variant name not set.\n");
+
out:
return ret;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
` (3 preceding siblings ...)
2025-01-13 7:48 ` [PATCH v4 4/4] wifi: ath12k: Add support for reading variant from ACPI to download board data file Lingbo Kong
@ 2025-01-13 9:06 ` Aditya Kumar Singh
2025-01-30 16:36 ` Jeff Johnson
2025-01-27 8:17 ` Lingbo Kong
2025-02-03 22:49 ` Jeff Johnson
6 siblings, 1 reply; 9+ messages in thread
From: Aditya Kumar Singh @ 2025-01-13 9:06 UTC (permalink / raw)
To: Lingbo Kong, ath12k; +Cc: linux-wireless
On 1/13/25 13:18, Lingbo Kong wrote:
> By reading ACPI tables, implement a method to obtain the ACPI functions
> Bitmap, enable or disable specific features based on ACPI Bitflags and
> download board data files based on ACPI board data filename extensions.
>
> v4:
> 1.rebase to 0c5fcd9069dd
>
> v3:
> 1.change some function name.
>
> v2:
> 1.support functions for cases where CONFIG_ACPI is disabled
>
> Lingbo Kong (4):
> wifi: ath12k: Add support for obtaining the buffer type ACPI function
> bitmap
> wifi: ath12k: Add Support for enabling or disabling specific features
> based on ACPI bitflag
> wifi: ath12k: Adjust the timing to access ACPI table
> wifi: ath12k: Add support for reading variant from ACPI to download
> board data file
>
> drivers/net/wireless/ath/ath12k/acpi.c | 200 +++++++++++++++++++------
> drivers/net/wireless/ath/ath12k/acpi.h | 38 +++++
> drivers/net/wireless/ath/ath12k/core.c | 8 +-
> drivers/net/wireless/ath/ath12k/core.h | 7 +
> drivers/net/wireless/ath/ath12k/mac.c | 3 +-
> drivers/net/wireless/ath/ath12k/qmi.c | 9 ++
> 6 files changed, 217 insertions(+), 48 deletions(-)
>
* drivers/net/wireless/ath/ath12k/acpi.c: 2025 copyright missing
* drivers/net/wireless/ath/ath12k/acpi.h: 2025 copyright missing
* drivers/net/wireless/ath/ath12k/core.c: 2025 copyright missing
* drivers/net/wireless/ath/ath12k/core.h: 2025 copyright missing
* drivers/net/wireless/ath/ath12k/mac.c: 2025 copyright missing
* drivers/net/wireless/ath/ath12k/qmi.c: 2025 copyright missing
No need to respin just because of this.
>
> base-commit: 0c5fcd9069dd5f984e39820629acbfbe0f1b4256
--
Aditya
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
` (4 preceding siblings ...)
2025-01-13 9:06 ` [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Aditya Kumar Singh
@ 2025-01-27 8:17 ` Lingbo Kong
2025-02-03 22:49 ` Jeff Johnson
6 siblings, 0 replies; 9+ messages in thread
From: Lingbo Kong @ 2025-01-27 8:17 UTC (permalink / raw)
To: ath12k, Jeff Johnson; +Cc: linux-wireless
On 2025/1/13 15:48, Lingbo Kong wrote:
> By reading ACPI tables, implement a method to obtain the ACPI functions
> Bitmap, enable or disable specific features based on ACPI Bitflags and
> download board data files based on ACPI board data filename extensions.
>
> v4:
> 1.rebase to 0c5fcd9069dd
>
> v3:
> 1.change some function name.
>
> v2:
> 1.support functions for cases where CONFIG_ACPI is disabled
>
> Lingbo Kong (4):
> wifi: ath12k: Add support for obtaining the buffer type ACPI function
> bitmap
> wifi: ath12k: Add Support for enabling or disabling specific features
> based on ACPI bitflag
> wifi: ath12k: Adjust the timing to access ACPI table
> wifi: ath12k: Add support for reading variant from ACPI to download
> board data file
>
> drivers/net/wireless/ath/ath12k/acpi.c | 200 +++++++++++++++++++------
> drivers/net/wireless/ath/ath12k/acpi.h | 38 +++++
> drivers/net/wireless/ath/ath12k/core.c | 8 +-
> drivers/net/wireless/ath/ath12k/core.h | 7 +
> drivers/net/wireless/ath/ath12k/mac.c | 3 +-
> drivers/net/wireless/ath/ath12k/qmi.c | 9 ++
> 6 files changed, 217 insertions(+), 48 deletions(-)
>
>
> base-commit: 0c5fcd9069dd5f984e39820629acbfbe0f1b4256
hi jeff,
do you have any updates on this patchset?🙂
/lingbo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI
2025-01-13 9:06 ` [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Aditya Kumar Singh
@ 2025-01-30 16:36 ` Jeff Johnson
0 siblings, 0 replies; 9+ messages in thread
From: Jeff Johnson @ 2025-01-30 16:36 UTC (permalink / raw)
To: Aditya Kumar Singh, Lingbo Kong, ath12k; +Cc: linux-wireless
On 1/13/2025 1:06 AM, Aditya Kumar Singh wrote:
> On 1/13/25 13:18, Lingbo Kong wrote:
>> By reading ACPI tables, implement a method to obtain the ACPI functions
>> Bitmap, enable or disable specific features based on ACPI Bitflags and
>> download board data files based on ACPI board data filename extensions.
>>
>> v4:
>> 1.rebase to 0c5fcd9069dd
>>
>> v3:
>> 1.change some function name.
>>
>> v2:
>> 1.support functions for cases where CONFIG_ACPI is disabled
>>
>> Lingbo Kong (4):
>> wifi: ath12k: Add support for obtaining the buffer type ACPI function
>> bitmap
>> wifi: ath12k: Add Support for enabling or disabling specific features
>> based on ACPI bitflag
>> wifi: ath12k: Adjust the timing to access ACPI table
>> wifi: ath12k: Add support for reading variant from ACPI to download
>> board data file
>>
>> drivers/net/wireless/ath/ath12k/acpi.c | 200 +++++++++++++++++++------
>> drivers/net/wireless/ath/ath12k/acpi.h | 38 +++++
>> drivers/net/wireless/ath/ath12k/core.c | 8 +-
>> drivers/net/wireless/ath/ath12k/core.h | 7 +
>> drivers/net/wireless/ath/ath12k/mac.c | 3 +-
>> drivers/net/wireless/ath/ath12k/qmi.c | 9 ++
>> 6 files changed, 217 insertions(+), 48 deletions(-)
>>
>
> * drivers/net/wireless/ath/ath12k/acpi.c: 2025 copyright missing
> * drivers/net/wireless/ath/ath12k/acpi.h: 2025 copyright missing
> * drivers/net/wireless/ath/ath12k/core.c: 2025 copyright missing
> * drivers/net/wireless/ath/ath12k/core.h: 2025 copyright missing
> * drivers/net/wireless/ath/ath12k/mac.c: 2025 copyright missing
> * drivers/net/wireless/ath/ath12k/qmi.c: 2025 copyright missing
>
> No need to respin just because of this.
Some of these were already updated by other commits, adjusted the following in 'pending':
* drivers/net/wireless/ath/ath12k/acpi.c
* drivers/net/wireless/ath/ath12k/acpi.h
https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?h=pending&id=caf84aa5266eae44823b736c5c77a39b92d26199
* drivers/net/wireless/ath/ath12k/qmi.c
https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?h=pending&id=856d8cd0fe08679af8cb3b9ac98848b1a79ec4b2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
` (5 preceding siblings ...)
2025-01-27 8:17 ` Lingbo Kong
@ 2025-02-03 22:49 ` Jeff Johnson
6 siblings, 0 replies; 9+ messages in thread
From: Jeff Johnson @ 2025-02-03 22:49 UTC (permalink / raw)
To: ath12k, Lingbo Kong; +Cc: linux-wireless
On Mon, 13 Jan 2025 15:48:06 +0800, Lingbo Kong wrote:
> By reading ACPI tables, implement a method to obtain the ACPI functions
> Bitmap, enable or disable specific features based on ACPI Bitflags and
> download board data files based on ACPI board data filename extensions.
>
> v4:
> 1.rebase to 0c5fcd9069dd
>
> [...]
Applied, thanks!
[1/4] wifi: ath12k: Add support for obtaining the buffer type ACPI function bitmap
commit: b59d1f8207de4e2ec763a5e58f95811d0eb2272c
[2/4] wifi: ath12k: Add Support for enabling or disabling specific features based on ACPI bitflag
commit: c6a7c0b09d5f430c36f860af1032e9dfa2dfcdc5
[3/4] wifi: ath12k: Adjust the timing to access ACPI table
commit: 33fdeb544ea5966abe247b9eb96a8017f7b9b2f2
[4/4] wifi: ath12k: Add support for reading variant from ACPI to download board data file
commit: 0a43c3a520e96d086d0aee492bbcf73ba737a637
Best regards,
--
Jeff Johnson <jeff.johnson@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-02-03 22:49 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-13 7:48 [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 1/4] wifi: ath12k: Add support for obtaining the buffer type ACPI function bitmap Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 2/4] wifi: ath12k: Add Support for enabling or disabling specific features based on ACPI bitflag Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 3/4] wifi: ath12k: Adjust the timing to access ACPI table Lingbo Kong
2025-01-13 7:48 ` [PATCH v4 4/4] wifi: ath12k: Add support for reading variant from ACPI to download board data file Lingbo Kong
2025-01-13 9:06 ` [PATCH v4 0/4] wifi: ath12k: Add new features to ACPI Aditya Kumar Singh
2025-01-30 16:36 ` Jeff Johnson
2025-01-27 8:17 ` Lingbo Kong
2025-02-03 22:49 ` Jeff Johnson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox