qcacld-3.0: Reject back to back TWT commands
Don't allow TWT commands back to back till response for existing command is not received. Reject the new command till the existing command completion event is received from firmware. Allow TWT teardown when any other command is in progress after TWT setup is complete. Change-Id: I9282230c7cb24691b44ddfd273972272fd80f44b CRs-Fixed: 2853515
このコミットが含まれているのは:
@@ -21,6 +21,26 @@
|
||||
#ifndef _WLAN_MLME_TWT_STRUCT_H_
|
||||
#define _WLAN_MLME_TWT_STRUCT_H_
|
||||
|
||||
/**
|
||||
* enum wlan_twt_commands - TWT commands
|
||||
* @WLAN_TWT_NONE: Indicates none of the TWT commands are active.
|
||||
* @WLAN_TWT_SETUP: TWT setup
|
||||
* @WLAN_TWT_TERMINATE: TWT terminate
|
||||
* @WLAN_TWT_SUSPEND: TWT suspend
|
||||
* @WLAN_TWT_RESUME: TWT resume
|
||||
* @WLAN_TWT_NUDGE: TWT nudge
|
||||
* @WLAN_TWT_ANY: Indicates one of the commands is in progress.
|
||||
*/
|
||||
enum wlan_twt_commands {
|
||||
WLAN_TWT_NONE = 0,
|
||||
WLAN_TWT_SETUP = BIT(0),
|
||||
WLAN_TWT_TERMINATE = BIT(1),
|
||||
WLAN_TWT_SUSPEND = BIT(2),
|
||||
WLAN_TWT_RESUME = BIT(3),
|
||||
WLAN_TWT_NUDGE = BIT(4),
|
||||
WLAN_TWT_ANY = 0xFF,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum wlan_twt_capabilities - Represents the Bitmap of TWT capabilities
|
||||
* supported by device and peer.
|
||||
@@ -64,11 +84,14 @@ enum wlan_twt_session_state {
|
||||
* @dialog_id: TWT session dialog id
|
||||
* @state: TWT session state
|
||||
* @setup_done: TWT session setup is complete
|
||||
* @active_cmd: bitmap to indicate which command is
|
||||
* in progress. Bits are provided by enum wlan_twt_commands.
|
||||
*/
|
||||
struct twt_session_info {
|
||||
uint8_t dialog_id;
|
||||
uint8_t state;
|
||||
bool setup_done;
|
||||
enum wlan_twt_commands active_cmd;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -223,22 +223,6 @@ QDF_STATUS
|
||||
ucfg_mlme_set_twt_bcast_responder_tgt_cap(struct wlan_objmgr_psoc *psoc,
|
||||
bool val);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_add_twt_session() - Add the entry for the given dialog id in TWT
|
||||
* context once TWT setup command is received
|
||||
* @psoc: pointer to psoc object
|
||||
* @peer_mac: Pointer to peer mac
|
||||
* @dialog_id: TWT session dialog id
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static inline
|
||||
void ucfg_mlme_add_twt_session(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac, uint8_t dialog_id)
|
||||
{
|
||||
mlme_add_twt_session(psoc, peer_mac, dialog_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* ucfg_mlme_is_twt_setup_in_progress() - Get TWT setup in progress for
|
||||
* given dialog id
|
||||
@@ -404,11 +388,6 @@ ucfg_mlme_set_enable_twt(struct wlan_objmgr_psoc *psoc,
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline
|
||||
void ucfg_mlme_add_twt_session(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac, uint8_t dialog_id)
|
||||
{}
|
||||
|
||||
static inline bool
|
||||
ucfg_mlme_is_twt_setup_done(struct wlan_objmgr_psoc *psoc,
|
||||
struct qdf_mac_addr *peer_mac, uint8_t dialog_id)
|
||||
|
新しいイシューから参照
ユーザーをブロックする