浏览代码

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
Nandha Kishore Easwaran 8 年之前
父节点
当前提交
9d81d219e2
共有 2 个文件被更改,包括 80 次插入5 次删除
  1. 2 0
      wmi/inc/wmi_unified_param.h
  2. 78 5
      wmi/src/wmi_unified_non_tlv.c

+ 2 - 0
wmi/inc/wmi_unified_param.h

@@ -3939,6 +3939,8 @@ struct ctl_table_params {
 	uint8_t *ctl_array;
 	uint16_t ctl_len;
 	bool is_acfg_ctl;
+	uint32_t target_type;
+	bool is_2g;
 };
 
 /**

+ 78 - 5
wmi/src/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);