@@ -1178,6 +1178,22 @@ static int ath11k_core_create_chip_id_board_name(struct ath11k_base *ab, char *n
ATH11K_BDF_NAME_CHIP_ID);
}
+void ath11k_core_create_firmware_path(struct ath11k_base *ab,
+ const char *filename,
+ void *buf, size_t buf_len)
+{ const char *board_name = NULL;
+
+ of_property_read_string(ab->dev->of_node, "firmware-name", &board_name);
+
+ if (board_name)
+ snprintf(buf, buf_len, "%s/%s/%s/%s", ATH11K_FW_DIR,
+ ab->hw_params.fw.dir, board_name, filename);
+ else
+ snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR,
+ ab->hw_params.fw.dir, filename);
+}
+EXPORT_SYMBOL(ath11k_core_create_firmware_path);
+
const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab,
const char *file)
{
@@ -1249,6 +1249,9 @@ bool ath11k_core_coldboot_cal_support(struct ath11k_base *ab);
const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab,
const char *filename);
+void ath11k_core_create_firmware_path(struct ath11k_base *ab,
+ const char *filename,
+ void *buf, size_t buf_len);
static inline const char *ath11k_scan_state_str(enum ath11k_scan_state state)
{
@@ -1295,14 +1298,6 @@ static inline struct ath11k *ath11k_ab_to_ar(struct ath11k_base *ab,
return ab->pdevs[ath11k_hw_mac_id_to_pdev_id(&ab->hw_params, mac_id)].ar;
}
-static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab,
- const char *filename,
- void *buf, size_t buf_len)
-{
- snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR,
- ab->hw_params.fw.dir, filename);
-}
-
static inline const char *ath11k_bus_str(enum ath11k_bus bus)
{
switch (bus) {
QCA6698AQ IP core is the same as WCN6855 hw2.1, but it has different RF, IPA, thermal, RAM size and etc, so new firmware files used. This change allows board DT files to override the subdir of the firmware directory used to lookup the amss.bin and m3.bin. For example: - ath11k/WCN6855/hw2.1/amss.bin, ath11k/WCN6855/hw2.1/m3.bin: main firmware files, used by default - ath11k/WCN6855/hw2.1/qca6698aq/amss.bin, ath11k/WCN6855/hw2.1/qca6698aq/m3.bin Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04402-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1 Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com> --- drivers/net/wireless/ath/ath11k/core.c | 16 ++++++++++++++++ drivers/net/wireless/ath/ath11k/core.h | 11 +++-------- 2 files changed, 19 insertions(+), 8 deletions(-)