|
@@ -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);
|