linux/drivers/net/wireless/rsi/rsi_ps.h
Prameela Rani Garnepudi efe877aa0f rsi: disallow power save config when AP vap running
When AP or P2P GO VAP is running, power save configuration should
be disallowed. To check interface type in power save configuration
'vif' parameters is passed.

Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2017-09-20 15:38:57 +03:00

64 lines
1.9 KiB
C

/**
* Copyright (c) 2017 Redpine Signals Inc.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef __RSI_PS_H__
#define __RSI_PS_H__
#define PS_CONFIRM_INDEX 12
#define RSI_DEF_DS_WAKEUP_PERIOD 200
#define RSI_DEF_LISTEN_INTERVAL 200
#define RSI_SLEEP_TYPE_LP 1
enum ps_state {
PS_NONE = 0,
PS_ENABLE_REQ_SENT = 1,
PS_DISABLE_REQ_SENT = 2,
PS_ENABLED = 3
};
struct ps_sleep_params {
u8 enable;
u8 sleep_type;
u8 connected_sleep;
u8 reserved1;
__le16 num_bcns_per_lis_int;
__le16 wakeup_type;
__le32 sleep_duration;
} __packed;
struct rsi_ps_info {
u8 enabled;
u8 sleep_type;
u8 tx_threshold;
u8 rx_threshold;
u8 tx_hysterisis;
u8 rx_hysterisis;
u16 monitor_interval;
u32 listen_interval;
u16 num_bcns_per_lis_int;
u32 dtim_interval_duration;
u16 num_dtims_per_sleep;
u32 deep_sleep_wakeup_period;
} __packed;
char *str_psstate(enum ps_state state);
void rsi_enable_ps(struct rsi_hw *adapter, struct ieee80211_vif *vif);
void rsi_disable_ps(struct rsi_hw *adapter, struct ieee80211_vif *vif);
int rsi_handle_ps_confirm(struct rsi_hw *adapter, u8 *msg);
void rsi_default_ps_params(struct rsi_hw *hw);
void rsi_conf_uapsd(struct rsi_hw *adapter, struct ieee80211_vif *vif);
#endif