|
@@ -72,11 +72,6 @@ static QDF_STATUS tgt_vdev_mgr_start_response_handler(
|
|
|
}
|
|
|
|
|
|
vdev_rsp = &vdev_mlme->vdev_rt;
|
|
|
- if (!vdev_rsp) {
|
|
|
- mlme_err("VDEV_%d: Invalid response", rsp->vdev_id);
|
|
|
- goto tgt_vdev_mgr_start_response_handler_end;
|
|
|
- }
|
|
|
-
|
|
|
tx_ops = target_if_vdev_mgr_get_tx_ops(psoc);
|
|
|
if (rsp->resp_type == RESTART_RESPONSE)
|
|
|
status = tx_ops->vdev_mgr_rsp_timer_stop(vdev, vdev_rsp,
|
|
@@ -127,11 +122,6 @@ static QDF_STATUS tgt_vdev_mgr_stop_response_handler(
|
|
|
}
|
|
|
|
|
|
vdev_rsp = &vdev_mlme->vdev_rt;
|
|
|
- if (!vdev_rsp) {
|
|
|
- mlme_err("VDEV_%d: Invalid response", rsp->vdev_id);
|
|
|
- goto tgt_vdev_mgr_stop_response_handler_end;
|
|
|
- }
|
|
|
-
|
|
|
tx_ops = target_if_vdev_mgr_get_tx_ops(psoc);
|
|
|
status = tx_ops->vdev_mgr_rsp_timer_stop(vdev, vdev_rsp,
|
|
|
STOP_RESPONSE_BIT);
|
|
@@ -149,7 +139,7 @@ tgt_vdev_mgr_stop_response_handler_end:
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
-QDF_STATUS tgt_vdev_mgr_delete_response_handler(
|
|
|
+static QDF_STATUS tgt_vdev_mgr_delete_response_handler(
|
|
|
struct wlan_objmgr_psoc *psoc,
|
|
|
struct vdev_delete_response *rsp)
|
|
|
{
|
|
@@ -179,11 +169,6 @@ QDF_STATUS tgt_vdev_mgr_delete_response_handler(
|
|
|
}
|
|
|
|
|
|
vdev_rsp = &vdev_mlme->vdev_rt;
|
|
|
- if (!vdev_rsp) {
|
|
|
- mlme_err("VDEV_%d: Invalid response", rsp->vdev_id);
|
|
|
- goto tgt_vdev_mgr_delete_response_handler_end;
|
|
|
- }
|
|
|
-
|
|
|
tx_ops = target_if_vdev_mgr_get_tx_ops(psoc);
|
|
|
status = tx_ops->vdev_mgr_rsp_timer_stop(vdev, vdev_rsp,
|
|
|
DELETE_RESPONSE_BIT);
|
|
@@ -203,6 +188,55 @@ tgt_vdev_mgr_delete_response_handler_end:
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
+static QDF_STATUS tgt_vdev_mgr_peer_delete_all_response_handler(
|
|
|
+ struct wlan_objmgr_psoc *psoc,
|
|
|
+ struct peer_delete_all_response *rsp)
|
|
|
+{
|
|
|
+ QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
|
|
+ struct vdev_mlme_obj *vdev_mlme;
|
|
|
+ struct wlan_objmgr_vdev *vdev;
|
|
|
+ struct vdev_response_timer *vdev_rsp;
|
|
|
+ struct wlan_lmac_if_mlme_tx_ops *tx_ops;
|
|
|
+
|
|
|
+ if (!rsp || !psoc) {
|
|
|
+ mlme_err("Invalid input");
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc,
|
|
|
+ rsp->vdev_id,
|
|
|
+ WLAN_VDEV_TARGET_IF_ID);
|
|
|
+ if (!vdev) {
|
|
|
+ mlme_err("VDEV is NULL");
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+ vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
|
|
+ if (!vdev_mlme) {
|
|
|
+ mlme_err("VDEV_%d: VDEV_MLME is NULL", rsp->vdev_id);
|
|
|
+ goto tgt_vdev_mgr_peer_delete_all_response_handler_end;
|
|
|
+ }
|
|
|
+
|
|
|
+ vdev_rsp = &vdev_mlme->vdev_rt;
|
|
|
+ tx_ops = target_if_vdev_mgr_get_tx_ops(psoc);
|
|
|
+ status = tx_ops->vdev_mgr_rsp_timer_stop(vdev, vdev_rsp,
|
|
|
+ PEER_DELETE_ALL_RESPONSE_BIT);
|
|
|
+ if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
+ mlme_err("VDEV_%d: Unexpected response", rsp->vdev_id);
|
|
|
+ goto tgt_vdev_mgr_peer_delete_all_response_handler_end;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((vdev_mlme->ops) &&
|
|
|
+ vdev_mlme->ops->mlme_vdev_ext_peer_delete_all_rsp)
|
|
|
+ status = vdev_mlme->ops->mlme_vdev_ext_peer_delete_all_rsp(
|
|
|
+ vdev_mlme,
|
|
|
+ rsp);
|
|
|
+
|
|
|
+tgt_vdev_mgr_peer_delete_all_response_handler_end:
|
|
|
+ wlan_objmgr_vdev_release_ref(vdev, WLAN_VDEV_TARGET_IF_ID);
|
|
|
+ return status;
|
|
|
+}
|
|
|
+
|
|
|
static QDF_STATUS
|
|
|
tgt_vdev_mgr_offload_bcn_tx_status_event_handler(uint32_t vdev_id,
|
|
|
uint32_t tx_status)
|
|
@@ -272,6 +306,8 @@ void tgt_vdev_mgr_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
|
|
|
tgt_vdev_mgr_stop_response_handler;
|
|
|
mlme_rx_ops->vdev_mgr_delete_response =
|
|
|
tgt_vdev_mgr_delete_response_handler;
|
|
|
+ mlme_rx_ops->vdev_mgr_peer_delete_all_response =
|
|
|
+ tgt_vdev_mgr_peer_delete_all_response_handler;
|
|
|
mlme_rx_ops->vdev_mgr_get_response_timer_info =
|
|
|
tgt_vdev_mgr_get_response_timer_info;
|
|
|
|