Эх сурвалжийг харах

qcacmn: Use pdev specific WMI handle for TWT cmds

While pushing WMI cmds for TWT enable/disable, use separate
CE instance for each pdev.

Change-Id: I63e77996f9face7e319fbd8abf580d13ce1c05a1
CRs-Fixed: 3162042
Manoj Ekbote 3 жил өмнө
parent
commit
3ba452b700

+ 24 - 2
target_if/twt/src/target_if_twt_cmd.c

@@ -29,15 +29,24 @@ target_if_twt_enable_req(struct wlan_objmgr_psoc *psoc,
 {
 	QDF_STATUS ret;
 	struct wmi_unified *wmi_handle;
+	struct wlan_objmgr_pdev *pdev;
 
 	if (!psoc) {
 		target_if_err("null psoc");
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
+	pdev = wlan_objmgr_get_pdev_by_id(psoc, req->pdev_id,
+					  WLAN_TWT_ID);
+	if (!pdev) {
+		target_if_err("null pdev");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	wmi_handle = get_wmi_unified_hdl_from_pdev(pdev);
 	if (!wmi_handle) {
 		target_if_err("null wmi handle");
+		wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
 		return QDF_STATUS_E_FAILURE;
 	}
 
@@ -45,6 +54,8 @@ target_if_twt_enable_req(struct wlan_objmgr_psoc *psoc,
 	if (QDF_IS_STATUS_ERROR(ret))
 		target_if_err("Failed to enable TWT(ret=%d)", ret);
 
+	wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
+
 	return ret;
 }
 
@@ -54,15 +65,24 @@ target_if_twt_disable_req(struct wlan_objmgr_psoc *psoc,
 {
 	QDF_STATUS ret;
 	struct wmi_unified *wmi_handle;
+	struct wlan_objmgr_pdev *pdev;
 
 	if (!psoc) {
 		target_if_err("null psoc");
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
+	pdev = wlan_objmgr_get_pdev_by_id(psoc, req->pdev_id,
+					  WLAN_TWT_ID);
+	if (!pdev) {
+		target_if_err("null pdev");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	wmi_handle = get_wmi_unified_hdl_from_pdev(pdev);
 	if (!wmi_handle) {
 		target_if_err("null wmi handle");
+		wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
 		return QDF_STATUS_E_FAILURE;
 	}
 
@@ -70,6 +90,8 @@ target_if_twt_disable_req(struct wlan_objmgr_psoc *psoc,
 	if (QDF_IS_STATUS_ERROR(ret))
 		target_if_err("Failed to disable TWT(ret=%d)", ret);
 
+	wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
+
 	return ret;
 }