qcacld-3.0: Reset twt active command if ack fail
Reset twt active command if ack fails due to firmware internal error. Change-Id: Ic980314261ab4f6deb437b36e525ea59c286eee2 CRs-Fixed: 2997509
Esse commit está contido em:

commit de
Madan Koyyalamudi

pai
f4ed112b3c
commit
bf9589ac92
@@ -239,19 +239,18 @@ QDF_STATUS
|
||||
ucfg_mlme_get_twt_res_service_cap(struct wlan_objmgr_psoc *psoc, bool *val);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_reset_twt_init_context() - Reset twt init if ack fail
|
||||
* This is to handle back to back command. If ack failed for previous
|
||||
* command and again new commad comes then init context should reset to
|
||||
* allow new command.
|
||||
* ucfg_mlme_reset_twt_active_cmd() - Reset twt active cmd if ack fail
|
||||
* This is to handle back to back command. If ack failed for active
|
||||
* command then reset this command to allow new twt command.
|
||||
* @psoc: pointer to psoc object
|
||||
* @peer_mac: peer mac address
|
||||
* @dialog_id: dialog id
|
||||
*
|
||||
* Return: QDF Status
|
||||
*/
|
||||
QDF_STATUS ucfg_mlme_reset_twt_init_context(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac,
|
||||
uint8_t dialog_id);
|
||||
QDF_STATUS ucfg_mlme_reset_twt_active_cmd(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac,
|
||||
uint8_t dialog_id);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_is_twt_setup_in_progress() - Get TWT setup in progress for
|
||||
@@ -659,9 +658,9 @@ ucfg_mlme_set_twt_responder_flag(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_reset_twt_init_context(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac,
|
||||
uint8_t dialog_id)
|
||||
ucfg_mlme_reset_twt_reset_cmd(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac,
|
||||
uint8_t dialog_id)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
@@ -760,5 +759,13 @@ ucfg_mlme_get_twt_res_service_cap(struct wlan_objmgr_psoc *psoc, bool *val)
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS
|
||||
ucfg_mlme_reset_twt_active_cmd(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac,
|
||||
uint8_t dialog_id)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
#endif /* defined(WLAN_SUPPORT_TWT) && defined(WLAN_FEATURE_11AX) */
|
||||
#endif /* _WLAN_MLME_TWT_UCFG_API_H_ */
|
||||
|
@@ -118,13 +118,12 @@ ucfg_mlme_set_twt_responder_flag(struct wlan_objmgr_psoc *psoc, bool val)
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_mlme_reset_twt_init_context(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_macaddr,
|
||||
uint8_t dialog_id)
|
||||
ucfg_mlme_reset_twt_active_cmd(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_macaddr,
|
||||
uint8_t dialog_id)
|
||||
{
|
||||
mlme_set_twt_command_in_progress(psoc, peer_macaddr, dialog_id,
|
||||
WLAN_TWT_NONE);
|
||||
mlme_init_twt_context(psoc, peer_macaddr, dialog_id);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -1714,7 +1714,11 @@ int hdd_send_twt_add_dialog_cmd(struct hdd_context *hdd_ctx,
|
||||
ack_priv = osif_request_priv(request);
|
||||
if (ack_priv->status) {
|
||||
hdd_err("Received TWT ack error. Reset twt command");
|
||||
ucfg_mlme_reset_twt_init_context(
|
||||
ucfg_mlme_reset_twt_active_cmd(
|
||||
hdd_ctx->psoc,
|
||||
(struct qdf_mac_addr *)twt_params->peer_macaddr,
|
||||
twt_params->dialog_id);
|
||||
ucfg_mlme_init_twt_context(
|
||||
hdd_ctx->psoc,
|
||||
(struct qdf_mac_addr *)twt_params->peer_macaddr,
|
||||
twt_params->dialog_id);
|
||||
@@ -2102,7 +2106,7 @@ int hdd_send_twt_del_dialog_cmd(struct hdd_context *hdd_ctx,
|
||||
ack_priv = osif_request_priv(request);
|
||||
if (ack_priv->status) {
|
||||
hdd_err("Received TWT ack error. Reset twt command");
|
||||
ucfg_mlme_reset_twt_init_context(
|
||||
ucfg_mlme_reset_twt_active_cmd(
|
||||
hdd_ctx->psoc,
|
||||
(struct qdf_mac_addr *)twt_params->peer_macaddr,
|
||||
twt_params->dialog_id);
|
||||
@@ -2647,7 +2651,7 @@ int hdd_send_twt_pause_dialog_cmd(struct hdd_context *hdd_ctx,
|
||||
ack_priv = osif_request_priv(request);
|
||||
if (ack_priv->status) {
|
||||
hdd_err("Received TWT ack error. Reset twt command");
|
||||
ucfg_mlme_reset_twt_init_context(
|
||||
ucfg_mlme_reset_twt_active_cmd(
|
||||
hdd_ctx->psoc,
|
||||
(struct qdf_mac_addr *)twt_params->peer_macaddr,
|
||||
twt_params->dialog_id);
|
||||
@@ -2806,7 +2810,7 @@ int hdd_send_twt_nudge_dialog_cmd(struct hdd_context *hdd_ctx,
|
||||
ack_priv = osif_request_priv(request);
|
||||
if (ack_priv->status) {
|
||||
hdd_err("Received TWT ack error. Reset twt command");
|
||||
ucfg_mlme_reset_twt_init_context(
|
||||
ucfg_mlme_reset_twt_active_cmd(
|
||||
hdd_ctx->psoc,
|
||||
(struct qdf_mac_addr *)twt_params->peer_macaddr,
|
||||
twt_params->dialog_id);
|
||||
@@ -3107,7 +3111,7 @@ hdd_send_twt_resume_dialog_cmd(struct hdd_context *hdd_ctx,
|
||||
ack_priv = osif_request_priv(request);
|
||||
if (ack_priv->status) {
|
||||
hdd_err("Received TWT ack error. Reset twt command");
|
||||
ucfg_mlme_reset_twt_init_context(
|
||||
ucfg_mlme_reset_twt_active_cmd(
|
||||
hdd_ctx->psoc,
|
||||
(struct qdf_mac_addr *)twt_params->peer_macaddr,
|
||||
twt_params->dialog_id);
|
||||
|
Referência em uma nova issue
Block a user