qcacmn: Handle TWT renegotiation failure case
Generally below process should happen in renegotiation failure case. 1. TWT setup (successful) 2. TWT setup (renegotiation failure) 3. TWT teardown 4. TWT GET STATUS - 0(dialog ID) 0 0 0 5. TWT setup - successful Since all WMI TWT events gets executed in WMI thread. So when renegotiation failure case hits, driver sends TWT teardown to firmware and waits for twt ack in worker thread. In same worker thread TWT event needs to be processed. TWT ack event will not process as it's waiting in same worker thread and it will get timedout. As part of fix, break the context in renegotiation and send the teardown in the new worker context. Change-Id: Id12cb906b780d3013562c1772e276639a056c8f7 CRs-Fixed: 3207537
This commit is contained in:

کامیت شده توسط
Madan Koyyalamudi

والد
f4bfa6616b
کامیت
4afef82b70
@@ -210,6 +210,12 @@ struct mlme_twt_ops {
|
||||
QDF_STATUS (*mlme_twt_notify_complete_cb)(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct twt_notify_event_param *event);
|
||||
|
||||
QDF_STATUS (*mlme_twt_vdev_create_cb)(
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
QDF_STATUS (*mlme_twt_vdev_destroy_cb)(
|
||||
struct wlan_objmgr_vdev *vdev);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1061,6 +1067,23 @@ QDF_STATUS
|
||||
mlme_twt_osif_notify_complete_ind(struct wlan_objmgr_psoc *psoc,
|
||||
struct twt_notify_event_param *event);
|
||||
|
||||
/**
|
||||
* mlme_twt_vdev_create_notification() - vdev create notification to osif
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
mlme_twt_vdev_create_notification(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* mlme_twt_vdev_destroy_notification() - vdev destroy notification to osif
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
mlme_twt_vdev_destroy_notification(struct wlan_objmgr_vdev *vdev);
|
||||
#else
|
||||
static inline QDF_STATUS
|
||||
mlme_twt_osif_enable_complete_ind(struct wlan_objmgr_psoc *psoc,
|
||||
@@ -1129,6 +1152,18 @@ mlme_twt_osif_notify_complete_ind(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
mlme_twt_vdev_create_notification(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
mlme_twt_vdev_destroy_notification(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#endif /* WLAN_SUPPORT_TWT && WLAN_TWT_CONV_SUPPORTED */
|
||||
|
||||
#endif
|
||||
|
مرجع در شماره جدید
Block a user