|
@@ -33,6 +33,7 @@
|
|
#include "wlan_cfg80211_spectral.h"
|
|
#include "wlan_cfg80211_spectral.h"
|
|
#include "wlan_hdd_spectralscan.h"
|
|
#include "wlan_hdd_spectralscan.h"
|
|
#include <wlan_spectral_ucfg_api.h>
|
|
#include <wlan_spectral_ucfg_api.h>
|
|
|
|
+#include "wma.h"
|
|
#ifdef CNSS_GENL
|
|
#ifdef CNSS_GENL
|
|
#include <net/cnss_nl.h>
|
|
#include <net/cnss_nl.h>
|
|
#endif
|
|
#endif
|
|
@@ -73,6 +74,7 @@ static int __wlan_hdd_cfg80211_spectral_scan_start(struct wiphy *wiphy,
|
|
if (wlan_hdd_validate_vdev_id(adapter->vdev_id))
|
|
if (wlan_hdd_validate_vdev_id(adapter->vdev_id))
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
|
|
+ wlan_spectral_update_rx_chainmask(adapter);
|
|
ret = wlan_cfg80211_spectral_scan_config_and_start(wiphy,
|
|
ret = wlan_cfg80211_spectral_scan_config_and_start(wiphy,
|
|
hdd_ctx->pdev,
|
|
hdd_ctx->pdev,
|
|
data, data_len);
|
|
data, data_len);
|
|
@@ -567,4 +569,27 @@ void spectral_scan_deactivate_service(void)
|
|
{
|
|
{
|
|
deregister_cld_cmd_cb(WLAN_NL_MSG_SPECTRAL_SCAN);
|
|
deregister_cld_cmd_cb(WLAN_NL_MSG_SPECTRAL_SCAN);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+QDF_STATUS wlan_spectral_update_rx_chainmask(struct hdd_adapter *adapter)
|
|
|
|
+{
|
|
|
|
+ uint32_t version;
|
|
|
|
+ uint32_t sub_version;
|
|
|
|
+ uint32_t chainmask_2g = 0;
|
|
|
|
+ uint32_t chainmask_5g = 0;
|
|
|
|
+ uint32_t chainmask;
|
|
|
|
+ uint8_t home_chan;
|
|
|
|
+ uint8_t pdev_id;
|
|
|
|
+
|
|
|
|
+ spectral_get_version(adapter->hdd_ctx->pdev, &version, &sub_version);
|
|
|
|
+ if (version != SPECTRAL_VERSION_3)
|
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
|
+
|
|
|
|
+ home_chan = hdd_get_adapter_home_channel(adapter);
|
|
|
|
+ pdev_id = wlan_objmgr_pdev_get_pdev_id(adapter->hdd_ctx->pdev);
|
|
|
|
+ wma_get_rx_chainmask(pdev_id, &chainmask_2g, &chainmask_5g);
|
|
|
|
+ chainmask = home_chan > MAX_24GHZ_CHANNEL ? chainmask_5g : chainmask_2g;
|
|
|
|
+ wlan_vdev_mlme_set_rxchainmask(adapter->vdev, chainmask);
|
|
|
|
+
|
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
|
+}
|
|
#endif
|
|
#endif
|