prima: extscan: Fix to avoid compatibility issues
Ext scan structures are changed as part of ext scan enhancements.
Add check for feature capability EXT_SCAN_ENHANCED from firmware
before sending enhanced structure to avoid compatibility issues
between host and firmware.
Change-Id: Iaa00a2f9873b8276901a0d7ea308d68aa7e3a748
CRs-Fixed: 921922
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index a3d7bd8..47fbe38 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -3462,7 +3462,8 @@
}
/* check the EXTScan Capability */
if ( (TRUE != pHddCtx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -3561,7 +3562,8 @@
}
/* check the EXTScan Capability */
if ( (TRUE != pHddCtx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -3682,7 +3684,8 @@
}
/* check the EXTScan Capability */
if ( (TRUE != pHddCtx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -3897,7 +3900,8 @@
/* check the EXTScan Capability */
if ( (TRUE != hdd_ctx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -4104,7 +4108,8 @@
/* check the EXTScan Capability */
if ( (TRUE != hdd_ctx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(LOGE,
FL("EXTScan not enabled/supported by Firmware"));
@@ -4574,7 +4579,8 @@
}
/* check the EXTScan Capability */
if ( (TRUE != pHddCtx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -4765,7 +4771,8 @@
}
/* check the EXTScan Capability */
if ( (TRUE != pHddCtx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -4870,7 +4877,8 @@
}
/* check the EXTScan Capability */
if ( (TRUE != pHddCtx->cfg_ini->fEnableEXTScan) ||
- (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)))
+ (TRUE != sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) ||
+ (TRUE != sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)))
{
hddLog(VOS_TRACE_LEVEL_ERROR,
FL("EXTScan not enabled/supported by Firmware"));
@@ -5499,8 +5507,9 @@
#ifdef WLAN_FEATURE_EXTSCAN
if ((TRUE == pHddCtx->cfg_ini->fEnableEXTScan) &&
- sme_IsFeatureSupportedByFW(EXTENDED_SCAN)) {
- hddLog(LOG1, FL("EXTScan is supported by firmware"));
+ sme_IsFeatureSupportedByFW(EXTENDED_SCAN) &&
+ sme_IsFeatureSupportedByFW(EXT_SCAN_ENHANCED)) {
+ hddLog(LOG1, FL("Enhanced EXTScan is supported by firmware"));
fset |= WIFI_FEATURE_EXTSCAN;
}
#endif
diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h
index 2b041b8..bb605f9 100644
--- a/CORE/MAC/src/include/sirParams.h
+++ b/CORE/MAC/src/include/sirParams.h
@@ -130,6 +130,11 @@
MGMT_FRAME_LOGGING = 53,
ENHANCED_TXBD_COMPLETION = 54,
LOGGING_ENHANCEMENT = 55,
+
+#ifdef WLAN_FEATURE_EXTSCAN
+ EXT_SCAN_ENHANCED = 56,
+#endif
+
MEMORY_DUMP_SUPPORTED = 57,
PER_PKT_STATS_SUPPORTED = 58,
//MAX_FEATURE_SUPPORTED = 128
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 8d27c2d..c683252 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -204,7 +204,11 @@
,MGMT_FRAME_LOGGING //53
,ENHANCED_TXBD_COMPLETION //54
,LOGGING_ENHANCEMENT //55
- ,FEATURE_NOT_SUPPORTED //56
+#ifdef WLAN_FEATURE_EXTSCAN
+ ,EXT_SCAN_ENHANCED //56
+#else
+ ,FEATURE_NOT_SUPPORTED //56
+#endif
,MEMORY_DUMP_SUPPORTED //57
,PER_PKT_STATS_SUPPORTED //58
};
@@ -1471,6 +1475,9 @@
case EXTENDED_SCAN: snprintf(pCapStr, sizeof("EXTENDED_SCAN"), "%s", "EXTENDED_SCAN");
pCapStr += strlen("EXTENDED_SCAN");
break;
+ case EXT_SCAN_ENHANCED: snprintf(pCapStr, sizeof("EXT_SCAN_ENHANCED"), "%s", "EXT_SCAN_ENHANCED");
+ pCapStr += strlen("EXT_SCAN_ENHANCED");
+ break;
#endif
case MU_MIMO: snprintf(pCapStr, sizeof("MU_MIMO"), "%s", "MU_MIMO");
pCapStr += strlen("MU_MIMO");
diff --git a/riva/inc/wlan_hal_msg.h b/riva/inc/wlan_hal_msg.h
index 27dc4d3..cafff2c 100644
--- a/riva/inc/wlan_hal_msg.h
+++ b/riva/inc/wlan_hal_msg.h
@@ -6803,6 +6803,7 @@
MGMT_FRAME_LOGGING = 53,
ENHANCED_TXBD_COMPLETION = 54,
LOGGING_ENHANCEMENT = 55,
+ EXT_SCAN_ENHANCED = 56,
MEMORY_DUMP_SUPPORTED = 57,
PER_PKT_STATS_SUPPORTED = 58,
MAX_FEATURE_SUPPORTED = 128,