qcacld-3.0: Allow only one twt statistics and clear statistics command

Don't allow twt statistics or clear statistics command
if twt statistics or clear statistics is in_progress.

As a Fix, reject the new twt statistic or clear statistic
command till existing twt statistic or clear statistic
command completion.

Change-Id: I710a81ae3409f181689b2e4c9e9d4e583d4aadab
CRs-Fixed: 2870592
Этот коммит содержится в:
Deeksha Gupta
2021-02-17 16:09:43 +05:30
коммит произвёл snandini
родитель f04c7cf753
Коммит cb6debaf81
4 изменённых файлов: 106 добавлений и 9 удалений

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

@@ -29,16 +29,20 @@
* @WLAN_TWT_SUSPEND: TWT suspend
* @WLAN_TWT_RESUME: TWT resume
* @WLAN_TWT_NUDGE: TWT nudge
* @WLAN_TWT_STATISTICS: TWT statistics
* @WLAN_TWT_CLEAR_STATISTICS: TWT clear statistics
* @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,
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_STATISTICS = BIT(5),
WLAN_TWT_CLEAR_STATISTICS = BIT(6),
WLAN_TWT_ANY = 0xFF,
};
/**

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

@@ -240,6 +240,34 @@ ucfg_mlme_is_twt_setup_in_progress(struct wlan_objmgr_psoc *psoc,
return mlme_is_twt_setup_in_progress(psoc, peer_mac, dialog_id);
}
/**
* ucfg_mlme_twt_is_command_in_progress() - Get TWT command in progress
* @psoc: Pointer to global PSOC object
* @peer_mac: Global peer mac address
* @dialog_id: TWT session dialog id
* @cmd: TWT command
*
* Return: True if given command is in progress
*/
static inline bool
ucfg_mlme_twt_is_command_in_progress(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_mac,
uint8_t dialog_id,
enum wlan_twt_commands cmd)
{
return mlme_twt_is_command_in_progress(psoc, peer_mac, dialog_id, cmd);
}
static inline QDF_STATUS
ucfg_mlme_set_twt_command_in_progress(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_mac,
uint8_t dialog_id,
enum wlan_twt_commands cmd)
{
return mlme_set_twt_command_in_progress(psoc, peer_mac, dialog_id, cmd);
}
/**
* ucfg_mlme_set_twt_setup_done() - Set TWT setup done flag
* @psoc: Pointer to global PSOC object
@@ -505,6 +533,24 @@ ucfg_mlme_is_twt_setup_in_progress(struct wlan_objmgr_psoc *psoc,
return false;
}
static inline QDF_STATUS
ucfg_mlme_set_twt_command_in_progress(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_mac,
uint8_t dialog_id,
enum wlan_twt_commands cmd)
{
return QDF_STATUS_E_FAILURE;
}
static inline bool
ucfg_mlme_twt_is_command_in_progress(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_mac,
uint8_t dialog_id,
enum wlan_twt_commands cmd)
{
return false;
}
static inline QDF_STATUS
ucfg_mlme_get_twt_bcast_requestor(struct wlan_objmgr_psoc *psoc,
bool *val)