12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * 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
|