]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
mac80211: ath12k: support fetching regdb from board-2.bin
authorMantas Pucka <mantas@8devices.com>
Thu, 27 Mar 2025 15:28:46 +0000 (17:28 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Sat, 12 Apr 2025 08:38:52 +0000 (10:38 +0200)
In board-2.bin available at linux-firmare regdb is stored with
board-id=255. This change is needed to properly use it.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
package/kernel/mac80211/patches/ath12k/002-wifi-ath12k-Fetch-regdb.bin-file-from-board-2.bin.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/ath12k/002-wifi-ath12k-Fetch-regdb.bin-file-from-board-2.bin.patch b/package/kernel/mac80211/patches/ath12k/002-wifi-ath12k-Fetch-regdb.bin-file-from-board-2.bin.patch
new file mode 100644 (file)
index 0000000..67d62f9
--- /dev/null
@@ -0,0 +1,67 @@
+From 24f587572acf7509127dbdfcbf1b681ef84eeba0 Mon Sep 17 00:00:00 2001
+From: Aaradhana Sahu <quic_aarasahu@quicinc.com>
+Date: Thu, 16 Jan 2025 08:58:35 +0530
+Subject: [PATCH] wifi: ath12k: Fetch regdb.bin file from board-2.bin
+
+Currently, ath12k_core_fetch_regdb() finds regdb.bin file through
+board id's but in board-2.bin file regdb.bin file is present with
+default board id because of which regdb.bin is not fetched.
+
+Add support to fetch regdb.bin file from board-2.bin through
+default board id.
+
+Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
+
+Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
+Reviewed-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
+Link: https://patch.msgid.link/20250116032835.118397-1-quic_aarasahu@quicinc.com
+Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
+---
+ drivers/net/wireless/ath/ath12k/core.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath12k/core.c
++++ b/drivers/net/wireless/ath/ath12k/core.c
+@@ -161,7 +161,7 @@ EXPORT_SYMBOL(ath12k_core_resume);
+ static int __ath12k_core_create_board_name(struct ath12k_base *ab, char *name,
+                                          size_t name_len, bool with_variant,
+-                                         bool bus_type_mode)
++                                         bool bus_type_mode, bool with_default)
+ {
+       /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */
+       char variant[9 + ATH12K_QMI_BDF_EXT_STR_LENGTH] = { 0 };
+@@ -192,7 +192,9 @@ static int __ath12k_core_create_board_na
+                         "bus=%s,qmi-chip-id=%d,qmi-board-id=%d%s",
+                         ath12k_bus_str(ab->hif.bus),
+                         ab->qmi.target.chip_id,
+-                        ab->qmi.target.board_id, variant);
++                        with_default ?
++                        ATH12K_BOARD_ID_DEFAULT : ab->qmi.target.board_id,
++                        variant);
+               break;
+       }
+@@ -204,19 +206,19 @@ static int __ath12k_core_create_board_na
+ static int ath12k_core_create_board_name(struct ath12k_base *ab, char *name,
+                                        size_t name_len)
+ {
+-      return __ath12k_core_create_board_name(ab, name, name_len, true, false);
++      return __ath12k_core_create_board_name(ab, name, name_len, true, false, false);
+ }
+ static int ath12k_core_create_fallback_board_name(struct ath12k_base *ab, char *name,
+                                                 size_t name_len)
+ {
+-      return __ath12k_core_create_board_name(ab, name, name_len, false, false);
++      return __ath12k_core_create_board_name(ab, name, name_len, false, false, true);
+ }
+ static int ath12k_core_create_bus_type_board_name(struct ath12k_base *ab, char *name,
+                                                 size_t name_len)
+ {
+-      return __ath12k_core_create_board_name(ab, name, name_len, false, true);
++      return __ath12k_core_create_board_name(ab, name, name_len, false, true, true);
+ }
+ const struct firmware *ath12k_core_firmware_request(struct ath12k_base *ab,