Browse Source

qcacld-3.0: Add new hw mode unit test cmd

Add unit test command for 2x2 5g + 1x1 2g DBS mode
and 2x2 2g + 1x1 5g DBS.

Change-Id: I80535880dadaef21c2c2e610b3dd272d3babbed0
CRs-Fixed: 2341342
Liangwei Dong 7 years ago
parent
commit
509c347011
1 changed files with 69 additions and 30 deletions
  1. 69 30
      core/hdd/src/wlan_hdd_wext.c

+ 69 - 30
core/hdd/src/wlan_hdd_wext.c

@@ -2411,6 +2411,8 @@
  *
  * @INPUT: hw_mode
  *     0:single mac     1:dual mac
+ *     2: 2x2 5g + 1x1 2g dbs mode
+ *     3: 2x2 2g + 1x1 5g dbs mode
  *
  * @OUTPUT: None
  *
@@ -7008,6 +7010,65 @@ static int iw_setnone_getnone(struct net_device *dev,
 }
 
 #ifdef MPC_UT_FRAMEWORK
+static void
+hdd_policy_mgr_set_hw_mode_ut(struct hdd_context *hdd_ctx,
+			      struct hdd_adapter *adapter, int cmd)
+{
+	enum hw_mode_ss_config mac0_ss;
+	enum hw_mode_bandwidth mac0_bw;
+	enum hw_mode_ss_config mac1_ss;
+	enum hw_mode_bandwidth mac1_bw;
+	enum hw_mode_mac_band_cap mac0_band_cap;
+	enum hw_mode_dbs_capab dbs;
+
+	switch (cmd) {
+	case 0:
+		hdd_debug("set hw mode for single mac");
+		mac0_ss = HW_MODE_SS_2x2;
+		mac0_bw = HW_MODE_80_MHZ;
+		mac1_ss = HW_MODE_SS_0x0;
+		mac1_bw = HW_MODE_BW_NONE;
+		mac0_band_cap = HW_MODE_MAC_BAND_NONE;
+		dbs = HW_MODE_DBS_NONE;
+		break;
+	case 1:
+		hdd_debug("set hw mode for dual mac");
+		mac0_ss = HW_MODE_SS_1x1;
+		mac0_bw = HW_MODE_80_MHZ;
+		mac1_ss = HW_MODE_SS_1x1;
+		mac1_bw = HW_MODE_40_MHZ;
+		mac0_band_cap = HW_MODE_MAC_BAND_NONE;
+		dbs = HW_MODE_DBS;
+		break;
+	case 2:
+		hdd_debug("set hw mode for 2x2 5g + 1x1 2g");
+		mac0_ss = HW_MODE_SS_2x2;
+		mac0_bw = HW_MODE_80_MHZ;
+		mac1_ss = HW_MODE_SS_1x1;
+		mac1_bw = HW_MODE_40_MHZ;
+		mac0_band_cap = HW_MODE_MAC_BAND_5G;
+		dbs = HW_MODE_DBS;
+		break;
+	case 3:
+		hdd_debug("set hw mode for 2x2 2g + 1x1 5g");
+		mac0_ss = HW_MODE_SS_2x2;
+		mac0_bw = HW_MODE_40_MHZ;
+		mac1_ss = HW_MODE_SS_1x1;
+		mac1_bw = HW_MODE_40_MHZ;
+		mac0_band_cap = HW_MODE_MAC_BAND_2G;
+		dbs = HW_MODE_DBS;
+		break;
+	default:
+		hdd_err("unknown cmd %d", cmd);
+		return;
+	}
+	policy_mgr_pdev_set_hw_mode(hdd_ctx->psoc, adapter->session_id,
+				    mac0_ss, mac0_bw, mac1_ss, mac1_bw,
+				    mac0_band_cap, dbs, HW_MODE_AGILE_DFS_NONE,
+				    HW_MODE_SBS_NONE,
+				    POLICY_MGR_UPDATE_REASON_UT, PM_NOP);
+}
+
 static int iw_get_policy_manager_ut_ops(struct hdd_context *hdd_ctx,
 			struct hdd_adapter *adapter, int sub_cmd, int *apps_args)
 {
@@ -7066,7 +7127,8 @@ static int iw_get_policy_manager_ut_ops(struct hdd_context *hdd_ctx,
 
 		if (apps_args[1] >= PM_THROUGHPUT &&
 			apps_args[1] <= PM_LATENCY) {
-			pr_info("setting system pref to [%d]\n", apps_args[1]);
+			hdd_debug("setting system pref to [%d]\n",
+				  apps_args[1]);
 			ucfg_policy_mgr_set_sys_pref(hdd_ctx->psoc,
 						     apps_args[1]);
 		}
@@ -7088,40 +7150,17 @@ static int iw_get_policy_manager_ut_ops(struct hdd_context *hdd_ctx,
 		policy_mgr_get_pcl(hdd_ctx->psoc, apps_args[0],
 				pcl, &pcl_len,
 				weight_list, QDF_ARRAY_SIZE(weight_list));
-		pr_info("PCL list for role[%d] is {", apps_args[0]);
+		hdd_debug("PCL list for role[%d] is {", apps_args[0]);
 		for (i = 0 ; i < pcl_len; i++)
-			pr_info(" %d, ", pcl[i]);
-		pr_info("}--------->\n");
+			hdd_debug(" %d, ", pcl[i]);
+		hdd_debug("}--------->\n");
 	}
 	break;
 
 	case WE_POLICY_SET_HW_MODE_CMD:
 	{
-		if (apps_args[0] == 0) {
-			hdd_err("set hw mode for single mac");
-			policy_mgr_pdev_set_hw_mode(hdd_ctx->psoc,
-					adapter->session_id,
-					HW_MODE_SS_2x2,
-					HW_MODE_80_MHZ,
-					HW_MODE_SS_0x0, HW_MODE_BW_NONE,
-					HW_MODE_MAC_BAND_NONE,
-					HW_MODE_DBS_NONE,
-					HW_MODE_AGILE_DFS_NONE,
-					HW_MODE_SBS_NONE,
-					POLICY_MGR_UPDATE_REASON_UT, PM_NOP);
-		} else if (apps_args[0] == 1) {
-			hdd_err("set hw mode for dual mac");
-			policy_mgr_pdev_set_hw_mode(hdd_ctx->psoc,
-					adapter->session_id,
-					HW_MODE_SS_1x1,
-					HW_MODE_80_MHZ,
-					HW_MODE_SS_1x1, HW_MODE_40_MHZ,
-					HW_MODE_MAC_BAND_NONE,
-					HW_MODE_DBS,
-					HW_MODE_AGILE_DFS_NONE,
-					HW_MODE_SBS_NONE,
-					POLICY_MGR_UPDATE_REASON_UT, PM_NOP);
-		}
+		hdd_debug("pm_set_hw_mode cmd %d", apps_args[0]);
+		hdd_policy_mgr_set_hw_mode_ut(hdd_ctx, adapter, apps_args[0]);
 	}
 	break;
 
@@ -7151,7 +7190,7 @@ static int iw_get_policy_manager_ut_ops(struct hdd_context *hdd_ctx,
 		}
 		allow = policy_mgr_allow_concurrency(hdd_ctx->psoc,
 				apps_args[0], apps_args[1], apps_args[2]);
-		pr_info("allow %d {0 = don't allow, 1 = allow}", allow);
+		hdd_debug("allow %d {0 = don't allow, 1 = allow}", allow);
 	}
 	break;