Browse Source

qcacld-3.0: Pass mac ctx to get RSSI and SNR by BSSID

Modify the hdd_get_rssi_snr_by_bssid() API to take mac ctx as
function argument directly instead of adapter, so as to save the
RSSI in link info and avoid having adapter in the calling function.

Change-Id: Id783f84266205ac948b4e7d98c37eeea264e0335
CRs-Fixed: 3517698
Vinod Kumar Pirla 2 years ago
parent
commit
9dd4f4a2ee

+ 2 - 2
core/hdd/inc/wlan_hdd_main.h

@@ -4218,14 +4218,14 @@ void hdd_update_ie_allowlist_attr(struct probe_req_allowlist_attr *ie_allowlist,
 
 /**
  * hdd_get_rssi_snr_by_bssid() - gets the rssi and snr by bssid from scan cache
- * @adapter: adapter handle
+ * @mac_handle: MAC handle
  * @bssid: bssid to look for in scan cache
  * @rssi: rssi value found
  * @snr: snr value found
  *
  * Return: QDF_STATUS
  */
-int hdd_get_rssi_snr_by_bssid(struct hdd_adapter *adapter, const uint8_t *bssid,
+int hdd_get_rssi_snr_by_bssid(mac_handle_t mac_handle, const uint8_t *bssid,
 			      int8_t *rssi, int8_t *snr);
 
 /**

+ 2 - 1
core/hdd/src/wlan_hdd_cm_connect.c

@@ -200,7 +200,8 @@ void hdd_cm_update_rssi_snr_by_bssid(struct hdd_adapter *adapter)
 	int8_t snr = 0;
 
 	sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter->deflink);
-	hdd_get_rssi_snr_by_bssid(adapter, sta_ctx->conn_info.bssid.bytes,
+	hdd_get_rssi_snr_by_bssid(hdd_adapter_get_mac_handle(adapter),
+				  sta_ctx->conn_info.bssid.bytes,
 				  &adapter->deflink->rssi, &snr);
 
 	/* If RSSi is reported as positive then it is invalid */

+ 2 - 9
core/hdd/src/wlan_hdd_main.c

@@ -20175,20 +20175,13 @@ wlan_hdd_get_link_info_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
 	return link_info;
 }
 
-int hdd_get_rssi_snr_by_bssid(struct hdd_adapter *adapter, const uint8_t *bssid,
+int hdd_get_rssi_snr_by_bssid(mac_handle_t mac_handle, const uint8_t *bssid,
 			      int8_t *rssi, int8_t *snr)
 {
 	QDF_STATUS status;
-	mac_handle_t mac_handle;
-
-	mac_handle = hdd_adapter_get_mac_handle(adapter);
-	if (!mac_handle) {
-		hdd_err("mac context NULL");
-		return -EINVAL;
-	}
 
 	status = sme_get_rssi_snr_by_bssid(mac_handle, bssid, rssi, snr);
-	if (QDF_STATUS_SUCCESS != status) {
+	if (QDF_IS_STATUS_ERROR(status)) {
 		hdd_debug("sme_get_rssi_snr_by_bssid failed");
 		return -EINVAL;
 	}

+ 2 - 1
core/hdd/src/wlan_hdd_stats.c

@@ -6293,13 +6293,14 @@ static void wlan_hdd_update_rssi(struct hdd_adapter *adapter,
 {
 	struct hdd_station_ctx *sta_ctx;
 	int8_t snr;
+	mac_handle_t mac_handle = hdd_adapter_get_mac_handle(adapter);
 
 	sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter->deflink);
 	snr = adapter->deflink->snr;
 
 	/* for new connection there might be no valid previous RSSI */
 	if (!adapter->deflink->rssi) {
-		hdd_get_rssi_snr_by_bssid(adapter,
+		hdd_get_rssi_snr_by_bssid(mac_handle,
 					  sta_ctx->conn_info.bssid.bytes,
 					  &adapter->deflink->rssi, &snr);
 	}