ath11k: Add bdf-addr in hw_params
authorAnilkumar Kolli <akolli@codeaurora.org>
Tue, 16 Jun 2020 14:00:48 +0000 (17:00 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 23 Jun 2020 07:51:45 +0000 (10:51 +0300)
bdf-addr is different for IPQ8074 and IPQ6018 so add it to hw_params.

No functional changes. Compile tested only.

Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1592316055-24958-6-git-send-email-kvalo@codeaurora.org
drivers/net/wireless/ath/ath11k/core.c
drivers/net/wireless/ath/ath11k/hw.h
drivers/net/wireless/ath/ath11k/qmi.c
drivers/net/wireless/ath/ath11k/qmi.h

index 089b46b..5232a35 100644 (file)
@@ -27,6 +27,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                        .cal_size =  IPQ8074_MAX_CAL_DATA_SZ,
                },
                .max_radios = 3,
+               .bdf_addr = 0x4B0C0000,
                .hw_ops = &ipq8074_ops,
        },
 };
index 2fb986b..78518e3 100644 (file)
@@ -112,6 +112,8 @@ struct ath11k_hw_params {
        const char *name;
        u16 hw_rev;
        u8 max_radios;
+       u32 bdf_addr;
+
        struct {
                const char *dir;
                size_t board_size;
index c00a99a..e4198d3 100644 (file)
@@ -1681,8 +1681,8 @@ static int ath11k_qmi_alloc_target_mem_chunk(struct ath11k_base *ab)
        for (i = 0, idx = 0; i < ab->qmi.mem_seg_count; i++) {
                switch (ab->qmi.target_mem[i].type) {
                case BDF_MEM_REGION_TYPE:
-                       ab->qmi.target_mem[idx].paddr = ATH11K_QMI_BDF_ADDRESS;
-                       ab->qmi.target_mem[idx].vaddr = ATH11K_QMI_BDF_ADDRESS;
+                       ab->qmi.target_mem[idx].paddr = ab->hw_params.bdf_addr;
+                       ab->qmi.target_mem[idx].vaddr = ab->hw_params.bdf_addr;
                        ab->qmi.target_mem[idx].size = ab->qmi.target_mem[i].size;
                        ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type;
                        idx++;
@@ -1854,7 +1854,7 @@ static int ath11k_qmi_load_bdf(struct ath11k_base *ab)
                return -ENOMEM;
        memset(&resp, 0, sizeof(resp));
 
-       bdf_addr = ioremap(ATH11K_QMI_BDF_ADDRESS, ATH11K_QMI_BDF_MAX_SIZE);
+       bdf_addr = ioremap(ab->hw_params.bdf_addr, ATH11K_QMI_BDF_MAX_SIZE);
        if (!bdf_addr) {
                ath11k_warn(ab, "qmi ioremap error for BDF\n");
                ret = -EIO;
index 3f7db64..a7a0a18 100644 (file)
@@ -12,7 +12,6 @@
 #define ATH11K_HOST_VERSION_STRING             "WIN"
 #define ATH11K_QMI_WLANFW_TIMEOUT_MS           5000
 #define ATH11K_QMI_MAX_BDF_FILE_NAME_SIZE      64
-#define ATH11K_QMI_BDF_ADDRESS                 0x4B0C0000
 #define ATH11K_QMI_BDF_MAX_SIZE                        (256 * 1024)
 #define ATH11K_QMI_CALDATA_OFFSET              (128 * 1024)
 #define ATH11K_QMI_WLANFW_MAX_BUILD_ID_LEN_V01 128