|
@@ -29,15 +29,24 @@ target_if_twt_enable_req(struct wlan_objmgr_psoc *psoc,
|
|
{
|
|
{
|
|
QDF_STATUS ret;
|
|
QDF_STATUS ret;
|
|
struct wmi_unified *wmi_handle;
|
|
struct wmi_unified *wmi_handle;
|
|
|
|
+ struct wlan_objmgr_pdev *pdev;
|
|
|
|
|
|
if (!psoc) {
|
|
if (!psoc) {
|
|
target_if_err("null psoc");
|
|
target_if_err("null psoc");
|
|
return QDF_STATUS_E_FAILURE;
|
|
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) {
|
|
if (!wmi_handle) {
|
|
target_if_err("null wmi handle");
|
|
target_if_err("null wmi handle");
|
|
|
|
+ wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
|
|
return QDF_STATUS_E_FAILURE;
|
|
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))
|
|
if (QDF_IS_STATUS_ERROR(ret))
|
|
target_if_err("Failed to enable TWT(ret=%d)", ret);
|
|
target_if_err("Failed to enable TWT(ret=%d)", ret);
|
|
|
|
|
|
|
|
+ wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
|
|
|
|
+
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -54,15 +65,24 @@ target_if_twt_disable_req(struct wlan_objmgr_psoc *psoc,
|
|
{
|
|
{
|
|
QDF_STATUS ret;
|
|
QDF_STATUS ret;
|
|
struct wmi_unified *wmi_handle;
|
|
struct wmi_unified *wmi_handle;
|
|
|
|
+ struct wlan_objmgr_pdev *pdev;
|
|
|
|
|
|
if (!psoc) {
|
|
if (!psoc) {
|
|
target_if_err("null psoc");
|
|
target_if_err("null psoc");
|
|
return QDF_STATUS_E_FAILURE;
|
|
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) {
|
|
if (!wmi_handle) {
|
|
target_if_err("null wmi handle");
|
|
target_if_err("null wmi handle");
|
|
|
|
+ wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
|
|
return QDF_STATUS_E_FAILURE;
|
|
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))
|
|
if (QDF_IS_STATUS_ERROR(ret))
|
|
target_if_err("Failed to disable TWT(ret=%d)", ret);
|
|
target_if_err("Failed to disable TWT(ret=%d)", ret);
|
|
|
|
|
|
|
|
+ wlan_objmgr_pdev_release_ref(pdev, WLAN_TWT_ID);
|
|
|
|
+
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|