Revert "qcacld-3.0: Block NDP_END_ALL req till last NDP_END is received"

This reverts commit 54c2fe240a.

Change-Id: Ic0028674e4728b951215bf7b4d9a7535b8b49efe
CRs-Fixed: 3523826
Этот коммит содержится в:
Rahul Gusain
2023-06-08 11:39:02 +05:30
коммит произвёл Rahul Choudhary
родитель c1d792ec75
Коммит bb7e163983
6 изменённых файлов: 173 добавлений и 45 удалений

Просмотреть файл

@@ -83,6 +83,7 @@ enum nan_discovery_msg_type {
* @NDP_PEER_DEPARTED: ndp peer departed/deleted
* @NDP_SCHEDULE_UPDATE: ndp schedule update
* @NDP_END_ALL: end all NDPs request
* @NDP_HOST_UPDATE: update host about ndp status
*/
enum nan_datapath_msg_type {
NAN_DATAPATH_INF_CREATE_REQ = 0,
@@ -102,6 +103,7 @@ enum nan_datapath_msg_type {
NDP_PEER_DEPARTED = 14,
NDP_SCHEDULE_UPDATE = 15,
NDP_END_ALL = 16,
NDP_HOST_UPDATE = 17,
};
/**
@@ -765,6 +767,17 @@ struct nan_datapath_sch_update_event {
uint32_t ndp_instances[NDP_NUM_INSTANCE_ID];
};
/**
* struct nan_datapath_host_event - ndp host event parameters
* @vdev: vdev obj associated with the ndp
* @ndp_termination_in_progress: flag that indicates whether NDPs associated
* with the given vdev are being terminated
*/
struct nan_datapath_host_event {
struct wlan_objmgr_vdev *vdev;
bool ndp_termination_in_progress;
};
/**
* struct nan_callbacks - struct containing callback to non-converged driver
* @os_if_nan_event_handler: OS IF Callback for handling NAN Discovery events

Просмотреть файл

@@ -999,6 +999,38 @@ static QDF_STATUS nan_handle_schedule_update(
return QDF_STATUS_SUCCESS;
}
/**
* nan_handle_host_update() - Updates Host about NAN Datapath status
* @evt: Event data received from firmware
* @vdev: pointer to vdev
*
* Return: status of operation
*/
static QDF_STATUS nan_handle_host_update(struct nan_datapath_host_event *evt,
struct wlan_objmgr_vdev **vdev)
{
struct wlan_objmgr_psoc *psoc;
struct nan_psoc_priv_obj *psoc_nan_obj;
*vdev = evt->vdev;
psoc = wlan_vdev_get_psoc(evt->vdev);
if (!psoc) {
nan_err("psoc is NULL");
return QDF_STATUS_E_NULL_VALUE;
}
psoc_nan_obj = nan_get_psoc_priv_obj(psoc);
if (!psoc_nan_obj) {
nan_err("psoc_nan_obj is NULL");
return QDF_STATUS_E_NULL_VALUE;
}
psoc_nan_obj->cb_obj.os_if_ndp_event_handler(psoc, evt->vdev,
NDP_HOST_UPDATE, evt);
return QDF_STATUS_SUCCESS;
}
QDF_STATUS nan_discovery_event_handler(struct scheduler_msg *msg)
{
struct nan_event_params *nan_event;
@@ -1087,6 +1119,11 @@ QDF_STATUS nan_datapath_event_handler(struct scheduler_msg *pe_msg)
case NDP_SCHEDULE_UPDATE:
nan_handle_schedule_update(pe_msg->bodyptr);
break;
case NDP_HOST_UPDATE:
nan_handle_host_update(pe_msg->bodyptr, &cmd.vdev);
cmd.cmd_type = WLAN_SER_CMD_NDP_END_ALL_REQ;
wlan_serialization_remove_cmd(&cmd);
break;
default:
nan_alert("Unhandled NDP event: %d", pe_msg->type);
status = QDF_STATUS_E_NOSUPPORT;