ath10k: enable QCA6174 hw3.2 SDIO hardware
authorWen Gong <wgong@codeaurora.org>
Fri, 26 Apr 2019 06:41:11 +0000 (09:41 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 29 Apr 2019 14:37:54 +0000 (17:37 +0300)
After implementing PN replay check we can enable SDIO support on QCA6174.
Tested with client mode on all security modes, and fragmentation as well. AP
mode does not work yet.

Also tone down the warning about SDIO being not ready yet.

Tested on QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00007-QCARMSWP-1. AP mode
is not working yet.

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath10k/hw.h
drivers/net/wireless/ath/ath10k/sdio.c

index cfd7bb29a1ec58cc2e678040151d6324d47bef05..525a7ff87bf4d7ed55c40b6fa72fecaba7f392b9 100644 (file)
@@ -153,6 +153,33 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
                .hw_filter_reset_required = true,
                .fw_diag_ce_download = false,
        },
+       {
+               .id = QCA6174_HW_3_2_VERSION,
+               .dev_id = QCA6174_3_2_DEVICE_ID,
+               .bus = ATH10K_BUS_SDIO,
+               .name = "qca6174 hw3.2 sdio",
+               .patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR,
+               .uart_pin = 19,
+               .otp_exe_param = 0,
+               .channel_counters_freq_hz = 88000,
+               .max_probe_resp_desc_thres = 0,
+               .cal_data_len = 0,
+               .fw = {
+                       .dir = QCA6174_HW_3_0_FW_DIR,
+                       .board = QCA6174_HW_3_0_BOARD_DATA_FILE,
+                       .board_size = QCA6174_BOARD_DATA_SZ,
+                       .board_ext_size = QCA6174_BOARD_EXT_DATA_SZ,
+               },
+               .hw_ops = &qca6174_ops,
+               .hw_clk = qca6174_clk,
+               .target_cpu_freq = 176000000,
+               .decap_align_bytes = 4,
+               .n_cipher_suites = 8,
+               .num_peers = 10,
+               .ast_skid_limit = 0x10,
+               .num_wds_entries = 0x20,
+               .uart_pin_workaround = true,
+       },
        {
                .id = QCA6174_HW_2_1_VERSION,
                .dev_id = QCA6164_2_1_DEVICE_ID,
index a92fce1bb6f0f187060c97df720a43182df94ce7..248cfb4e53c321c9a954e0614f50626f906e1c36 100644 (file)
@@ -24,6 +24,7 @@ enum ath10k_bus {
 #define QCA988X_2_0_DEVICE_ID   (0x003c)
 #define QCA6164_2_1_DEVICE_ID   (0x0041)
 #define QCA6174_2_1_DEVICE_ID   (0x003e)
+#define QCA6174_3_2_DEVICE_ID   (0x0042)
 #define QCA99X0_2_0_DEVICE_ID   (0x0040)
 #define QCA9888_2_0_DEVICE_ID  (0x0056)
 #define QCA9984_1_0_DEVICE_ID  (0x0046)
index 30102090e2827ffe14df36afdb38b096d01ba640..a2c1bad67b5b114e875bc1bfdbff9c37a779cd86 100644 (file)
@@ -2059,7 +2059,7 @@ static int ath10k_sdio_probe(struct sdio_func *func,
        }
 
        /* TODO: remove this once SDIO support is fully implemented */
-       ath10k_warn(ar, "WARNING: ath10k SDIO support is incomplete, don't expect anything to work!\n");
+       ath10k_warn(ar, "WARNING: ath10k SDIO support is work-in-progress, problems may arise!\n");
 
        return 0;