ath10k: wmi: add hw params entry for wcn3990
authorRakesh Pillai <pillair@qti.qualcomm.com>
Mon, 11 Dec 2017 14:22:55 +0000 (19:52 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 14 Dec 2017 15:33:24 +0000 (17:33 +0200)
Add hw params entry for wcn3990 and populate various
target specific values for wcn3990.

Signed-off-by: Rakesh Pillai <pillair@qti.qualcomm.com>
Signed-off-by: Govind Singh <govinds@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath10k/hw.c
drivers/net/wireless/ath/ath10k/hw.h

index 762012d6c78ff7677e7a4b27ac296f774783d735..6d065f8d7f78c90f83314026a0b2d2e99fc09dde 100644 (file)
@@ -405,6 +405,24 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
                .ast_skid_limit = 0x10,
                .num_wds_entries = 0x20,
        },
+       {
+               .id = WCN3990_HW_1_0_DEV_VERSION,
+               .dev_id = 0,
+               .name = "wcn3990 hw1.0",
+               .continuous_frag_desc = true,
+               .tx_chain_mask = 0x7,
+               .rx_chain_mask = 0x7,
+               .max_spatial_stream = 4,
+               .fw = {
+                       .dir = WCN3990_HW_1_0_FW_DIR,
+               },
+               .sw_decrypt_mcast_mgmt = true,
+               .hw_ops = &wcn3990_ops,
+               .decap_align_bytes = 1,
+               .num_peers = TARGET_HL_10_TLV_NUM_PEERS,
+               .ast_skid_limit = TARGET_HL_10_TLV_AST_SKID_LIMIT,
+               .num_wds_entries = TARGET_HL_10_TLV_NUM_WDS_ENTRIES,
+       },
 };
 
 static const char *const ath10k_core_fw_feature_str[] = {
index 88955bbe20bd3d0350878cac6d1a6af023f24cdb..c31eea63277773d8de18cc58a897834f958ac9d7 100644 (file)
@@ -931,3 +931,5 @@ const struct ath10k_hw_ops qca6174_ops = {
        .set_coverage_class = ath10k_hw_qca988x_set_coverage_class,
        .enable_pll_clk = ath10k_hw_qca6174_enable_pll_clock,
 };
+
+const struct ath10k_hw_ops wcn3990_ops = {};
index fedb6c799374ef7154f055cf33a52856391c48d1..90ad39bdeec43282904e9a5a1b436c0a48c187ee 100644 (file)
@@ -128,6 +128,10 @@ enum qca9377_chip_id_rev {
 #define QCA4019_HW_1_0_BOARD_DATA_FILE "board.bin"
 #define QCA4019_HW_1_0_PATCH_LOAD_ADDR  0x1234
 
+/* WCN3990 1.0 definitions */
+#define WCN3990_HW_1_0_DEV_VERSION     ATH10K_HW_WCN3990
+#define WCN3990_HW_1_0_FW_DIR          ATH10K_FW_DIR "/WCN3990/hw3.0"
+
 #define ATH10K_FW_FILE_BASE            "firmware"
 #define ATH10K_FW_API_MAX              6
 #define ATH10K_FW_API_MIN              2
@@ -571,6 +575,7 @@ struct ath10k_hw_ops {
 extern const struct ath10k_hw_ops qca988x_ops;
 extern const struct ath10k_hw_ops qca99x0_ops;
 extern const struct ath10k_hw_ops qca6174_ops;
+extern const struct ath10k_hw_ops wcn3990_ops;
 
 extern const struct ath10k_hw_clk_params qca6174_clk[];
 
@@ -667,6 +672,11 @@ ath10k_rx_desc_get_l3_pad_bytes(struct ath10k_hw_params *hw,
 #define TARGET_TLV_NUM_MSDU_DESC               (1024 + 32)
 #define TARGET_TLV_NUM_WOW_PATTERNS            22
 
+/* Target specific defines for WMI-HL-1.0 firmware */
+#define TARGET_HL_10_TLV_NUM_PEERS             14
+#define TARGET_HL_10_TLV_AST_SKID_LIMIT                6
+#define TARGET_HL_10_TLV_NUM_WDS_ENTRIES       2
+
 /* Diagnostic Window */
 #define CE_DIAG_PIPE   7