From 9b7f47eac51a36d4bdde93f545eb7902c05ce921 Mon Sep 17 00:00:00 2001 From: Nandha Kishore Easwaran Date: Fri, 14 Oct 2016 15:22:05 +0530 Subject: [PATCH] qcacmn: CTL changes for Beeliner family For Beeliner family of chipsets, the number of values expected is 688 for 2G and 1540 for 5G Change-Id: I2c47ed98f639c09453687fce7f713946304a7036 CRs-fixed: 1071083 --- wmi_unified_non_tlv.c | 83 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 78 insertions(+), 5 deletions(-) diff --git a/wmi_unified_non_tlv.c b/wmi_unified_non_tlv.c index 65c5385db0..af3eb978c5 100644 --- a/wmi_unified_non_tlv.c +++ b/wmi_unified_non_tlv.c @@ -3709,6 +3709,27 @@ send_set_ctl_table_cmd_non_tlv(wmi_unified_t wmi_handle, #define WHAL_NUM_CTLS_2G 18 #define WHAL_NUM_BAND_EDGES_5G 8 #define WHAL_NUM_BAND_EDGES_2G 4 + +/*Beelinier 5G*/ +#define WHAL_NUM_CTLS_5G_11A 9 +#define WHAL_NUM_BAND_EDGES_5G_11A 25 +#define WHAL_NUM_CTLS_5G_HT20 24 +#define WHAL_NUM_BAND_EDGES_5G_HT20 25 +#define WHAL_NUM_CTLS_5G_HT40 18 +#define WHAL_NUM_BAND_EDGES_5G_HT40 12 +#define WHAL_NUM_CTLS_5G_HT80 18 +#define WHAL_NUM_BAND_EDGES_5G_HT80 6 +#define WHAL_NUM_CTLS_5G_HT160 9 +#define WHAL_NUM_BAND_EDGES_5G_HT160 2 + +/* Beeliner 2G */ +#define WHAL_NUM_CTLS_2G_11B 6 +#define WHAL_NUM_BAND_EDGES_2G_11B 9 +#define WHAL_NUM_CTLS_2G_20MHZ 30 +#define WHAL_NUM_BAND_EDGES_2G_20MHZ 11 +#define WHAL_NUM_CTLS_2G_40MHZ 18 +#define WHAL_NUM_BAND_EDGES_2G_40MHZ 6 + uint16_t len; wmi_buf_t buf; wmi_pdev_set_ctl_table_cmd *cmd; @@ -3716,11 +3737,63 @@ send_set_ctl_table_cmd_non_tlv(wmi_unified_t wmi_handle, if (!param->ctl_array) return QDF_STATUS_E_FAILURE; - if (!param->is_acfg_ctl && param->ctl_len != - WHAL_NUM_CTLS_2G * WHAL_NUM_BAND_EDGES_2G * 2 + - WHAL_NUM_CTLS_5G * WHAL_NUM_BAND_EDGES_5G * 2) { - qdf_print("CTL array len not correct\n"); - return QDF_STATUS_E_FAILURE; + /* CTL array length check for Beeliner family */ + if (param->target_type == TARGET_TYPE_AR900B || + param->target_type == TARGET_TYPE_QCA9984 || + param->target_type == TARGET_TYPE_IPQ4019 || + param->target_type == TARGET_TYPE_QCA9888) { + if (param->is_2g) { + /* For 2G, CTL array length should be 688*/ + if (!param->is_acfg_ctl && param->ctl_len != + (4 + (WHAL_NUM_CTLS_2G_11B * 2) + + (WHAL_NUM_BAND_EDGES_2G_11B * 3) + + 1 + (WHAL_NUM_CTLS_2G_11B * + WHAL_NUM_BAND_EDGES_2G_11B) + + (WHAL_NUM_CTLS_2G_20MHZ * 2) + + (WHAL_NUM_BAND_EDGES_2G_20MHZ * 3) + + 1 + (WHAL_NUM_CTLS_2G_20MHZ * + WHAL_NUM_BAND_EDGES_2G_20MHZ) + + (WHAL_NUM_CTLS_2G_40MHZ * 2) + + (WHAL_NUM_BAND_EDGES_2G_40MHZ * 3) + + (WHAL_NUM_CTLS_2G_40MHZ * + WHAL_NUM_BAND_EDGES_2G_40MHZ) + 4)) { + qdf_print("CTL array len not correct\n"); + return QDF_STATUS_E_FAILURE; + } + } else { + /* For 5G, CTL array length should be 1540 */ + if (!param->is_acfg_ctl && param->ctl_len != + (4 + (WHAL_NUM_CTLS_5G_11A * 2) + + (WHAL_NUM_BAND_EDGES_5G_11A * 3) + + 1 + (WHAL_NUM_CTLS_5G_11A * + WHAL_NUM_BAND_EDGES_5G_11A) + 1 + + (WHAL_NUM_CTLS_5G_HT20 * 2) + + (WHAL_NUM_BAND_EDGES_5G_HT20 * 3) + + 1 + (WHAL_NUM_CTLS_5G_HT20 * + WHAL_NUM_BAND_EDGES_5G_HT20) + + (WHAL_NUM_CTLS_5G_HT40 * 2) + + (WHAL_NUM_BAND_EDGES_5G_HT40 * 3) + + (WHAL_NUM_CTLS_5G_HT40 * + WHAL_NUM_BAND_EDGES_5G_HT40) + + (WHAL_NUM_CTLS_5G_HT80 * 2) + + (WHAL_NUM_BAND_EDGES_5G_HT80 * 3) + + (WHAL_NUM_CTLS_5G_HT80 * + WHAL_NUM_BAND_EDGES_5G_HT80) + + (WHAL_NUM_CTLS_5G_HT160 * 2) + + (WHAL_NUM_BAND_EDGES_5G_HT160 * 3) + + (WHAL_NUM_CTLS_5G_HT160 * + WHAL_NUM_BAND_EDGES_5G_HT160))) { + qdf_print("CTL array len not correct\n"); + return QDF_STATUS_E_FAILURE; + } + } + } else { + if (!param->is_acfg_ctl && param->ctl_len != + WHAL_NUM_CTLS_2G * WHAL_NUM_BAND_EDGES_2G * 2 + + WHAL_NUM_CTLS_5G * WHAL_NUM_BAND_EDGES_5G * 2) { + qdf_print("CTL array len not correct\n"); + return QDF_STATUS_E_FAILURE; + } } len = sizeof(wmi_pdev_set_ctl_table_cmd);