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/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;
}