qcacmn: Fix enum wlan_phymode to include proper phymode value

Few phymode are missing from enum wlan_phymode and many are not
valid phymode, e.g for 5ghz 40minus and 40plus are not valid.

So add the missing enums and remove invalid enums from enum
wlan_phymode.

Change-Id: Id6a1fb4cf0d629cc410bd262a048b5050d05ed5d
CRs-fixed: 2505422
diff --git a/umac/cmn_services/inc/wlan_cmn.h b/umac/cmn_services/inc/wlan_cmn.h
index df9b84e..e23330b 100644
--- a/umac/cmn_services/inc/wlan_cmn.h
+++ b/umac/cmn_services/inc/wlan_cmn.h
@@ -327,83 +327,110 @@
 } WLAN_DEV_TYPE;
 
 /**
- *  enum wlan_phymode - phy mode
- *  @WLAN_PHYMODE_AUTO:           autoselect
- *  @WLAN_PHYMODE_11A:            5GHz, OFDM
- *  @WLAN_PHYMODE_11B:            2GHz, CCK
- *  @WLAN_PHYMODE_11G:            2GHz, OFDM
- *  @WLAN_PHYMODE_11NA_HT20:      5Ghz, HT20
- *  @WLAN_PHYMODE_11NG_HT20:      2Ghz, HT20
- *  @WLAN_PHYMODE_11NA_HT40PLUS:  5Ghz, HT40 (ext ch +1)
- *  @WLAN_PHYMODE_11NA_HT40MINUS: 5Ghz, HT40 (ext ch -1)
- *  @WLAN_PHYMODE_11NG_HT40PLUS:  2Ghz, HT40 (ext ch +1)
- *  @WLAN_PHYMODE_11NG_HT40MINUS: 2Ghz, HT40 (ext ch -1)
- *  @WLAN_PHYMODE_11NG_HT40:      2Ghz, Auto HT40
- *  @WLAN_PHYMODE_11NA_HT40:      5Ghz, Auto HT40
- *  @WLAN_PHYMODE_11AC_VHT20:     5Ghz, VHT20
- *  @WLAN_PHYMODE_11AC_VHT40PLUS: 5Ghz, VHT40 (Ext ch +1)
- *  @WLAN_PHYMODE_11AC_VHT40MINUS:5Ghz  VHT40 (Ext ch -1)
- *  @WLAN_PHYMODE_11AC_VHT40:     5Ghz, VHT40
- *  @WLAN_PHYMODE_11AC_VHT80:     5Ghz, VHT80
- *  @WLAN_PHYMODE_11AC_VHT160:    5Ghz, VHT160
- *  @WLAN_PHYMODE_11AC_VHT80_80:  5Ghz, VHT80_80
- *  @WLAN_PHYMODE_11AXA_HE20:     5GHz, HE20
- *  @WLAN_PHYMODE_11AXG_HE20:     2GHz, HE20
- *  @WLAN_PHYMODE_11AXA_HE40PLUS: 5GHz, HE40 (ext ch +1)
- *  @WLAN_PHYMODE_11AXA_HE40MINUS:5GHz, HE40 (ext ch -1)
- *  @WLAN_PHYMODE_11AXG_HE40PLUS: 2GHz, HE40 (ext ch +1)
- *  @WLAN_PHYMODE_11AXG_HE40MINUS:2GHz, HE40 (ext ch -1)
- *  @WLAN_PHYMODE_11AXA_HE40:     5GHz, HE40
- *  @WLAN_PHYMODE_11AXG_HE40:     2GHz, HE40
- *  @WLAN_PHYMODE_11AXA_HE80:     5GHz, HE80
- *  @WLAN_PHYMODE_11AXA_HE160:    5GHz, HE160
- *  @WLAN_PHYMODE_11AXA_HE80_80:  5GHz, HE80_80
+ * enum wlan_phymode - phy mode
+ * @WLAN_PHYMODE_AUTO:           autoselect
+ * @WLAN_PHYMODE_11A:            5GHz, OFDM
+ * @WLAN_PHYMODE_11B:            2GHz, CCK
+ * @WLAN_PHYMODE_11G:            2GHz, OFDM
+ * @WLAN_PHYMODE_11G_ONLY:       2GHz only
+ * @WLAN_PHYMODE_11NA_HT20:      5Ghz, HT20
+ * @WLAN_PHYMODE_11NG_HT20:      2Ghz, HT20
+ * @WLAN_PHYMODE_11NA_HT40:      5Ghz, Auto HT40
+ * @WLAN_PHYMODE_11NG_HT40PLUS:  2Ghz, HT40 (ext ch +1)
+ * @WLAN_PHYMODE_11NG_HT40MINUS: 2Ghz, HT40 (ext ch -1)
+ * @WLAN_PHYMODE_11NG_HT40:      2Ghz, Auto HT40
+ * @WLAN_PHYMODE_11AC_VHT20:     5Ghz, VHT20
+ * @WLAN_PHYMODE_11AC_VHT20_2G:  2Ghz, VHT20
+ * @WLAN_PHYMODE_11AC_VHT40:     5Ghz, VHT40
+ * @WLAN_PHYMODE_11AC_VHT40PLUS_2G:  2Ghz, VHT40 (ext ch +1)
+ * @WLAN_PHYMODE_11AC_VHT40MINUS_2G:  2Ghz, VHT40 (ext ch -1)
+ * @WLAN_PHYMODE_11AC_VHT40_2G:  2Ghz, VHT40
+ * @WLAN_PHYMODE_11AC_VHT80:     5Ghz, VHT80
+ * @WLAN_PHYMODE_11AC_VHT80_2G:  2Ghz, VHT80
+ * @WLAN_PHYMODE_11AC_VHT160:    5Ghz, VHT160
+ * @WLAN_PHYMODE_11AC_VHT80_80:  5Ghz, VHT80_80
+ * @WLAN_PHYMODE_11AXA_HE20:     5GHz, HE20
+ * @WLAN_PHYMODE_11AXG_HE20:     2GHz, HE20
+ * @WLAN_PHYMODE_11AXA_HE40:     5GHz, HE40
+ * @WLAN_PHYMODE_11AXG_HE40PLUS: 2GHz, HE40 (ext ch +1)
+ * @WLAN_PHYMODE_11AXG_HE40MINUS:2GHz, HE40 (ext ch -1)
+ * @WLAN_PHYMODE_11AXG_HE40:     2GHz, HE40
+ * @WLAN_PHYMODE_11AXA_HE80:     5GHz, HE80
+ * @WLAN_PHYMODE_11AXG_HE80:     2GHz, HE80
+ * @WLAN_PHYMODE_11AXA_HE160:    5GHz, HE160
+ * @WLAN_PHYMODE_11AXA_HE80_80:  5GHz, HE80_80
+ * @WLAN_PHYMODE_MAX: Max phymode
  */
 enum wlan_phymode {
-	WLAN_PHYMODE_AUTO             = 0,
-	WLAN_PHYMODE_11A              = 1,
-	WLAN_PHYMODE_11B              = 2,
-	WLAN_PHYMODE_11G              = 3,
-	WLAN_PHYMODE_11NA_HT20        = 4,
-	WLAN_PHYMODE_11NG_HT20        = 5,
-	WLAN_PHYMODE_11NA_HT40PLUS    = 6,
-	WLAN_PHYMODE_11NA_HT40MINUS   = 7,
-	WLAN_PHYMODE_11NG_HT40PLUS    = 8,
-	WLAN_PHYMODE_11NG_HT40MINUS   = 9,
-	WLAN_PHYMODE_11NG_HT40        = 10,
-	WLAN_PHYMODE_11NA_HT40        = 11,
-	WLAN_PHYMODE_11AC_VHT20       = 12,
-	WLAN_PHYMODE_11AC_VHT40PLUS   = 13,
-	WLAN_PHYMODE_11AC_VHT40MINUS  = 14,
-	WLAN_PHYMODE_11AC_VHT40       = 15,
-	WLAN_PHYMODE_11AC_VHT80       = 16,
-	WLAN_PHYMODE_11AC_VHT160      = 17,
-	WLAN_PHYMODE_11AC_VHT80_80    = 18,
-	WLAN_PHYMODE_11AXA_HE20       = 19,
-	WLAN_PHYMODE_11AXG_HE20       = 20,
-	WLAN_PHYMODE_11AXA_HE40PLUS   = 21,
-	WLAN_PHYMODE_11AXA_HE40MINUS  = 22,
-	WLAN_PHYMODE_11AXG_HE40PLUS   = 23,
-	WLAN_PHYMODE_11AXG_HE40MINUS  = 24,
-	WLAN_PHYMODE_11AXA_HE40       = 25,
-	WLAN_PHYMODE_11AXG_HE40       = 26,
-	WLAN_PHYMODE_11AXA_HE80       = 27,
-	WLAN_PHYMODE_11AXA_HE160      = 28,
-	WLAN_PHYMODE_11AXA_HE80_80    = 29,
+	WLAN_PHYMODE_AUTO               = 0,
+	WLAN_PHYMODE_11A                = 1,
+	WLAN_PHYMODE_11B                = 2,
+	WLAN_PHYMODE_11G                = 3,
+	WLAN_PHYMODE_11G_ONLY           = 4,
+	WLAN_PHYMODE_11NA_HT20          = 5,
+	WLAN_PHYMODE_11NG_HT20          = 6,
+	WLAN_PHYMODE_11NA_HT40          = 7,
+	WLAN_PHYMODE_11NG_HT40PLUS      = 8,
+	WLAN_PHYMODE_11NG_HT40MINUS     = 9,
+	WLAN_PHYMODE_11NG_HT40          = 10,
+	WLAN_PHYMODE_11AC_VHT20         = 11,
+	WLAN_PHYMODE_11AC_VHT20_2G      = 12,
+	WLAN_PHYMODE_11AC_VHT40         = 13,
+	WLAN_PHYMODE_11AC_VHT40PLUS_2G  = 14,
+	WLAN_PHYMODE_11AC_VHT40MINUS_2G = 15,
+	WLAN_PHYMODE_11AC_VHT40_2G      = 16,
+	WLAN_PHYMODE_11AC_VHT80         = 17,
+	WLAN_PHYMODE_11AC_VHT80_2G      = 18,
+	WLAN_PHYMODE_11AC_VHT160        = 19,
+	WLAN_PHYMODE_11AC_VHT80_80      = 20,
+	WLAN_PHYMODE_11AXA_HE20         = 21,
+	WLAN_PHYMODE_11AXG_HE20         = 22,
+	WLAN_PHYMODE_11AXA_HE40         = 23,
+	WLAN_PHYMODE_11AXG_HE40PLUS     = 24,
+	WLAN_PHYMODE_11AXG_HE40MINUS    = 25,
+	WLAN_PHYMODE_11AXG_HE40         = 26,
+	WLAN_PHYMODE_11AXA_HE80         = 27,
+	WLAN_PHYMODE_11AXG_HE80         = 28,
+	WLAN_PHYMODE_11AXA_HE160        = 29,
+	WLAN_PHYMODE_11AXA_HE80_80      = 30,
+	WLAN_PHYMODE_MAX
 };
 
-#define WLAN_PHYMODE_MAX      (WLAN_PHYMODE_11AXA_HE80_80 + 1)
+#define IS_WLAN_PHYMODE_160MHZ(_mode) ({typeof(_mode) mode = (_mode); \
+	((mode) == WLAN_PHYMODE_11AC_VHT80_80) || \
+	((mode) == WLAN_PHYMODE_11AC_VHT160)     || \
+	((mode) == WLAN_PHYMODE_11AXA_HE80_80)  || \
+	((mode) == WLAN_PHYMODE_11AXA_HE160); })
+
+#define IS_WLAN_PHYMODE_80MHZ(_mode) ({typeof(_mode) mode = (_mode); \
+	((mode) == WLAN_PHYMODE_11AC_VHT80) || \
+	((mode) == WLAN_PHYMODE_11AC_VHT80_2G)     || \
+	((mode) == WLAN_PHYMODE_11AXA_HE80)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE80); })
+
+#define IS_WLAN_PHYMODE_40MHZ(_mode) ({typeof(_mode) mode = (_mode); \
+	((mode) == WLAN_PHYMODE_11NG_HT40) || \
+	((mode) == WLAN_PHYMODE_11NG_HT40PLUS)     || \
+	((mode) == WLAN_PHYMODE_11NG_HT40MINUS)  || \
+	((mode) == WLAN_PHYMODE_11NA_HT40)  || \
+	((mode) == WLAN_PHYMODE_11AC_VHT40)  || \
+	((mode) == WLAN_PHYMODE_11AC_VHT40_2G)  || \
+	((mode) == WLAN_PHYMODE_11AC_VHT40PLUS_2G)  || \
+	((mode) == WLAN_PHYMODE_11AC_VHT40MINUS_2G)  || \
+	((mode) == WLAN_PHYMODE_11AXA_HE40)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE40)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE40PLUS)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE40MINUS); })
 
 #define IS_WLAN_PHYMODE_HE(_mode) ({typeof(_mode) mode = (_mode); \
 	((mode) == WLAN_PHYMODE_11AXA_HE20) || \
 	((mode) == WLAN_PHYMODE_11AXG_HE20)     || \
-	((mode) == WLAN_PHYMODE_11AXA_HE40PLUS)     || \
-	((mode) == WLAN_PHYMODE_11AXA_HE40MINUS)  || \
-	((mode) == WLAN_PHYMODE_11AXG_HE40PLUS)    || \
-	((mode) == WLAN_PHYMODE_11AXG_HE40MINUS)  || \
 	((mode) == WLAN_PHYMODE_11AXA_HE40)  || \
 	((mode) == WLAN_PHYMODE_11AXG_HE40)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE40PLUS)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE40MINUS)  || \
 	((mode) == WLAN_PHYMODE_11AXA_HE80)  || \
+	((mode) == WLAN_PHYMODE_11AXG_HE80)  || \
 	((mode) == WLAN_PHYMODE_11AXA_HE160)  || \
 	((mode) == WLAN_PHYMODE_11AXA_HE80_80); })
 
diff --git a/umac/scan/core/src/wlan_scan_bss_score.c b/umac/scan/core/src/wlan_scan_bss_score.c
index db7f46b..7fe93d0 100644
--- a/umac/scan/core/src/wlan_scan_bss_score.c
+++ b/umac/scan/core/src/wlan_scan_bss_score.c
@@ -396,20 +396,11 @@
 		cbmode = score_config->cb_mode_5G;
 	}
 
-	if (entry->phy_mode == WLAN_PHYMODE_11AC_VHT80_80 ||
-	    entry->phy_mode == WLAN_PHYMODE_11AC_VHT160)
+	if (IS_WLAN_PHYMODE_160MHZ(entry->phy_mode))
 		ch_width_index = SCM_160MHZ_BW_INDEX;
-	else if (entry->phy_mode == WLAN_PHYMODE_11AC_VHT80)
-		 ch_width_index = SCM_80MHZ_BW_INDEX;
-	else if (entry->phy_mode == WLAN_PHYMODE_11NA_HT40PLUS ||
-		 entry->phy_mode == WLAN_PHYMODE_11NA_HT40MINUS ||
-		 entry->phy_mode == WLAN_PHYMODE_11NG_HT40PLUS ||
-		 entry->phy_mode == WLAN_PHYMODE_11NG_HT40MINUS ||
-		 entry->phy_mode == WLAN_PHYMODE_11NG_HT40 ||
-		 entry->phy_mode == WLAN_PHYMODE_11NA_HT40 ||
-		 entry->phy_mode == WLAN_PHYMODE_11AC_VHT40PLUS ||
-		 entry->phy_mode == WLAN_PHYMODE_11AC_VHT40MINUS ||
-		 entry->phy_mode == WLAN_PHYMODE_11AC_VHT40)
+	else if (IS_WLAN_PHYMODE_80MHZ(entry->phy_mode))
+		ch_width_index = SCM_80MHZ_BW_INDEX;
+	else if (IS_WLAN_PHYMODE_40MHZ(entry->phy_mode))
 		ch_width_index = SCM_40MHZ_BW_INDEX;
 	else
 		ch_width_index = SCM_20MHZ_BW_INDEX;
diff --git a/umac/scan/dispatcher/src/wlan_scan_utils_api.c b/umac/scan/dispatcher/src/wlan_scan_utils_api.c
index 3d5d4f4..d949717 100644
--- a/umac/scan/dispatcher/src/wlan_scan_utils_api.c
+++ b/umac/scan/dispatcher/src/wlan_scan_utils_api.c
@@ -205,14 +205,8 @@
 	if (util_scan_entry_vhtcap(scan_params) && vhtop) {
 		switch (vhtop->vht_op_chwidth) {
 		case WLAN_VHTOP_CHWIDTH_2040:
-			if ((ht_cap & WLAN_HTCAP_C_CHWIDTH40) &&
-			   (htinfo->hi_extchoff ==
-			   WLAN_HTINFO_EXTOFFSET_ABOVE))
-				phymode = WLAN_PHYMODE_11AC_VHT40PLUS;
-			else if ((ht_cap & WLAN_HTCAP_C_CHWIDTH40) &&
-			   (htinfo->hi_extchoff ==
-			   WLAN_HTINFO_EXTOFFSET_BELOW))
-				phymode = WLAN_PHYMODE_11AC_VHT40MINUS;
+			if (ht_cap & WLAN_HTCAP_C_CHWIDTH40)
+				phymode = WLAN_PHYMODE_11AC_VHT40;
 			else
 				phymode = WLAN_PHYMODE_11AC_VHT20;
 			break;
@@ -233,16 +227,14 @@
 		default:
 			scm_err("bad channel: %d",
 					vhtop->vht_op_chwidth);
+			phymode = WLAN_PHYMODE_11AC_VHT20;
 			break;
 		}
-	} else if ((ht_cap & WLAN_HTCAP_C_CHWIDTH40) &&
-	   (htinfo->hi_extchoff == WLAN_HTINFO_EXTOFFSET_ABOVE))
-		phymode = WLAN_PHYMODE_11NA_HT40PLUS;
-	else if ((ht_cap & WLAN_HTCAP_C_CHWIDTH40) &&
-	   (htinfo->hi_extchoff == WLAN_HTINFO_EXTOFFSET_BELOW))
-		phymode = WLAN_PHYMODE_11NA_HT40MINUS;
-	else
+	} else if (ht_cap & WLAN_HTCAP_C_CHWIDTH40) {
+		phymode = WLAN_PHYMODE_11NA_HT40;
+	} else {
 		phymode = WLAN_PHYMODE_11NA_HT20;
+	}
 
 	return phymode;
 }
@@ -291,6 +283,25 @@
 		}
 	}
 
+	if (util_scan_entry_vhtcap(scan_params) && vhtop) {
+		switch (vhtop->vht_op_chwidth) {
+		case WLAN_VHTOP_CHWIDTH_2040:
+			if (phymode == WLAN_PHYMODE_11NG_HT40PLUS)
+				phymode = WLAN_PHYMODE_11AC_VHT40PLUS_2G;
+			else if (phymode == WLAN_PHYMODE_11NG_HT40MINUS)
+				phymode = WLAN_PHYMODE_11AC_VHT40MINUS_2G;
+			else
+				phymode = WLAN_PHYMODE_11AC_VHT20_2G;
+
+			break;
+		default:
+			scm_info("bad vht_op_chwidth: %d",
+				 vhtop->vht_op_chwidth);
+			phymode = WLAN_PHYMODE_11AC_VHT20_2G;
+			break;
+		}
+	}
+
 	return phymode;
 }