Browse Source

qcacld-3.0: Refactor wlan_spectral_update_rx_chainmask() API

To update per link chainmask in corresponding VDEV, modify the
API to take link info pointer as function argument.
Existing callers moved to deflink pointer.

Change-Id: I1f9e9b9c79c2a7237656c00076febb3f5413849c
CRs-Fixed: 3521632
Vinod Kumar Pirla 2 years ago
parent
commit
1d8b3d1f93
2 changed files with 16 additions and 13 deletions
  1. 5 4
      core/hdd/inc/wlan_hdd_spectralscan.h
  2. 11 9
      core/hdd/src/wlan_hdd_spectralscan.c

+ 5 - 4
core/hdd/inc/wlan_hdd_spectralscan.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -255,13 +255,14 @@ void spectral_scan_deactivate_service(void);
 /**
  * wlan_spectral_update_rx_chainmask() - API to update rx chainmask before
  * start spectral gen3
- * @adapter: pointer to adapter
+ * @link_info: Link info pointer in HDD adapter.
  *
  * API to update rx chainmask before start spectral gen3.
  *
  * Return: QDF_STATUS_SUCCESS or non-zero on failure
  */
-QDF_STATUS wlan_spectral_update_rx_chainmask(struct hdd_adapter *adapter);
+QDF_STATUS
+wlan_spectral_update_rx_chainmask(struct wlan_hdd_link_info *link_info);
 #else
 static inline void spectral_scan_activate_service(struct hdd_context *hdd_ctx)
 {
@@ -273,7 +274,7 @@ static inline void spectral_scan_deactivate_service(void)
 
 #ifdef WLAN_CONV_SPECTRAL_ENABLE
 static inline QDF_STATUS
-wlan_spectral_update_rx_chainmask(struct hdd_adapter *adapter)
+wlan_spectral_update_rx_chainmask(struct wlan_hdd_link_info *link_info)
 {
 	return QDF_STATUS_SUCCESS;
 }

+ 11 - 9
core/hdd/src/wlan_hdd_spectralscan.c

@@ -88,10 +88,10 @@ static int __wlan_hdd_cfg80211_spectral_scan_start(struct wiphy *wiphy,
 		hdd_err("can't get vdev");
 		return -EINVAL;
 	}
-	wlan_spectral_update_rx_chainmask(adapter);
-	ret = wlan_cfg80211_spectral_scan_config_and_start(
-						wiphy, hdd_ctx->pdev,
-						vdev, data, data_len);
+	wlan_spectral_update_rx_chainmask(adapter->deflink);
+	ret = wlan_cfg80211_spectral_scan_config_and_start(wiphy, hdd_ctx->pdev,
+							   vdev, data,
+							   data_len);
 	hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_SPECTRAL_ID);
 	hdd_exit();
 
@@ -622,7 +622,8 @@ void spectral_scan_deactivate_service(void)
 	deregister_cld_cmd_cb(WLAN_NL_MSG_SPECTRAL_SCAN);
 }
 
-QDF_STATUS wlan_spectral_update_rx_chainmask(struct hdd_adapter *adapter)
+QDF_STATUS
+wlan_spectral_update_rx_chainmask(struct wlan_hdd_link_info *link_info)
 {
 	uint32_t chainmask_2g = 0;
 	uint32_t chainmask_5g = 0;
@@ -630,9 +631,10 @@ QDF_STATUS wlan_spectral_update_rx_chainmask(struct hdd_adapter *adapter)
 	qdf_freq_t home_chan_freq;
 	uint8_t pdev_id;
 	struct wlan_objmgr_vdev *vdev;
+	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
 
-	home_chan_freq = hdd_get_link_info_home_channel(adapter->deflink);
-	pdev_id = wlan_objmgr_pdev_get_pdev_id(adapter->hdd_ctx->pdev);
+	home_chan_freq = hdd_get_link_info_home_channel(link_info);
+	pdev_id = wlan_objmgr_pdev_get_pdev_id(hdd_ctx->pdev);
 	wma_get_rx_chainmask(pdev_id, &chainmask_2g, &chainmask_5g);
 	chainmask = chainmask_5g;
 
@@ -640,10 +642,10 @@ QDF_STATUS wlan_spectral_update_rx_chainmask(struct hdd_adapter *adapter)
 		chainmask = chainmask_2g;
 
 	hdd_debug("chan freq %d chainmask %d", home_chan_freq, chainmask);
-	vdev = hdd_objmgr_get_vdev_by_user(adapter->deflink,
-					   WLAN_OSIF_SPECTRAL_ID);
+	vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_OSIF_SPECTRAL_ID);
 	if (!vdev)
 		return QDF_STATUS_E_FAILURE;
+
 	wlan_vdev_mlme_set_rxchainmask(vdev, chainmask);
 	hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_SPECTRAL_ID);