Skip to content

Commit

Permalink
ath11k: add caldata file for multiple radios
Browse files Browse the repository at this point in the history
If multiple PCI cards are attached, each needs its own caldata file.

Added new Caldata file name,
PCI Bus:
        cal-pci-0001:01:00.0.bin
        cal-pci-0000:01:00.0.bin
AHB Bus:
	cal-ahb-c000000.wifi1.bin

Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00009-QCAHKSWPL_SILICONZ-1
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01838-QCAHKSWPL_SILICONZ-1

Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210721201927.100369-4-jouni@codeaurora.org
  • Loading branch information
Anilkumar Kolli authored and Kalle Valo committed Sep 28, 2021
1 parent 336e7b5 commit e82dfe7
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions drivers/net/wireless/ath/ath11k/qmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -2033,6 +2033,7 @@ static int ath11k_qmi_load_file_target_mem(struct ath11k_base *ab,

static int ath11k_qmi_load_bdf_qmi(struct ath11k_base *ab)
{
struct device *dev = ab->dev;
char filename[ATH11K_QMI_MAX_BDF_FILE_NAME_SIZE];
const struct firmware *fw_entry;
struct ath11k_board_data bd;
Expand Down Expand Up @@ -2067,6 +2068,14 @@ static int ath11k_qmi_load_bdf_qmi(struct ath11k_base *ab)
goto out;

file_type = ATH11K_QMI_FILE_TYPE_CALDATA;

/* cal-<bus>-<id>.bin */
snprintf(filename, sizeof(filename), "cal-%s-%s.bin",
ath11k_bus_str(ab->hif.bus), dev_name(dev));
fw_entry = ath11k_core_firmware_request(ab, filename);
if (!IS_ERR(fw_entry))
goto success;

fw_entry = ath11k_core_firmware_request(ab, ATH11K_DEFAULT_CAL_FILE);
if (IS_ERR(fw_entry)) {
ret = PTR_ERR(fw_entry);
Expand All @@ -2076,15 +2085,15 @@ static int ath11k_qmi_load_bdf_qmi(struct ath11k_base *ab)
goto out;
}

success:
fw_size = min_t(u32, ab->hw_params.fw.board_size, fw_entry->size);
ret = ath11k_qmi_load_file_target_mem(ab, fw_entry->data, fw_size, file_type);
if (ret < 0) {
ath11k_warn(ab, "qmi failed to load caldata\n");
goto out_qmi_cal;
}

ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi caldata downloaded: type: %u\n",
file_type);
ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi caldata type: %u\n", file_type);

out_qmi_cal:
release_firmware(fw_entry);
Expand Down

0 comments on commit e82dfe7

Please sign in to comment.