.. | .. |
---|
228 | 228 | #define RSI_MAX_TX_AGGR_FRMS 8 |
---|
229 | 229 | #define RSI_MAX_RX_AGGR_FRMS 8 |
---|
230 | 230 | |
---|
| 231 | +#define RSI_MAX_SCAN_SSIDS 16 |
---|
| 232 | +#define RSI_MAX_SCAN_IE_LEN 256 |
---|
| 233 | + |
---|
231 | 234 | enum opmode { |
---|
232 | 235 | RSI_OPMODE_UNSUPPORTED = -1, |
---|
233 | 236 | RSI_OPMODE_AP = 0, |
---|
.. | .. |
---|
291 | 294 | COMMON_DEV_CONFIG = 0x28, |
---|
292 | 295 | RADIO_PARAMS_UPDATE = 0x29, |
---|
293 | 296 | WOWLAN_CONFIG_PARAMS = 0x2B, |
---|
| 297 | + FEATURES_ENABLE = 0x33, |
---|
294 | 298 | WOWLAN_WAKEUP_REASON = 0xc5 |
---|
295 | 299 | }; |
---|
296 | 300 | |
---|
.. | .. |
---|
346 | 350 | struct rsi_boot_params { |
---|
347 | 351 | __le16 desc_word[8]; |
---|
348 | 352 | struct bootup_params bootup_params; |
---|
| 353 | +} __packed; |
---|
| 354 | + |
---|
| 355 | +struct rsi_boot_params_9116 { |
---|
| 356 | + struct rsi_cmd_desc_dword0 desc_dword0; |
---|
| 357 | + struct rsi_cmd_desc_dword1 desc_dword1; |
---|
| 358 | + struct rsi_cmd_desc_dword2 desc_dword2; |
---|
| 359 | + __le16 reserved; |
---|
| 360 | + __le16 umac_clk; |
---|
| 361 | + struct bootup_params_9116 bootup_params; |
---|
349 | 362 | } __packed; |
---|
350 | 363 | |
---|
351 | 364 | struct rsi_peer_notify { |
---|
.. | .. |
---|
623 | 636 | u16 host_sleep_status; |
---|
624 | 637 | } __packed; |
---|
625 | 638 | |
---|
| 639 | +#define RSI_START_BGSCAN 1 |
---|
| 640 | +#define RSI_STOP_BGSCAN 0 |
---|
| 641 | +#define HOST_BG_SCAN_TRIG BIT(4) |
---|
| 642 | +struct rsi_bgscan_config { |
---|
| 643 | + struct rsi_cmd_desc_dword0 desc_dword0; |
---|
| 644 | + __le64 reserved; |
---|
| 645 | + __le32 reserved1; |
---|
| 646 | + __le16 bgscan_threshold; |
---|
| 647 | + __le16 roam_threshold; |
---|
| 648 | + __le16 bgscan_periodicity; |
---|
| 649 | + u8 num_bgscan_channels; |
---|
| 650 | + u8 two_probe; |
---|
| 651 | + __le16 active_scan_duration; |
---|
| 652 | + __le16 passive_scan_duration; |
---|
| 653 | + __le16 channels2scan[MAX_BGSCAN_CHANNELS_DUAL_BAND]; |
---|
| 654 | +} __packed; |
---|
| 655 | + |
---|
| 656 | +struct rsi_bgscan_probe { |
---|
| 657 | + struct rsi_cmd_desc_dword0 desc_dword0; |
---|
| 658 | + __le64 reserved; |
---|
| 659 | + __le32 reserved1; |
---|
| 660 | + __le16 mgmt_rate; |
---|
| 661 | + __le16 flags; |
---|
| 662 | + __le16 def_chan; |
---|
| 663 | + __le16 channel_scan_time; |
---|
| 664 | + __le16 probe_req_length; |
---|
| 665 | +} __packed; |
---|
| 666 | + |
---|
| 667 | +#define RSI_DUTY_CYCLING BIT(0) |
---|
| 668 | +#define RSI_END_OF_FRAME BIT(1) |
---|
| 669 | +#define RSI_SIFS_TX_ENABLE BIT(2) |
---|
| 670 | +#define RSI_DPD BIT(3) |
---|
| 671 | +struct rsi_wlan_9116_features { |
---|
| 672 | + struct rsi_cmd_desc desc; |
---|
| 673 | + u8 pll_mode; |
---|
| 674 | + u8 rf_type; |
---|
| 675 | + u8 wireless_mode; |
---|
| 676 | + u8 enable_ppe; |
---|
| 677 | + u8 afe_type; |
---|
| 678 | + u8 reserved1; |
---|
| 679 | + __le16 reserved2; |
---|
| 680 | + __le32 feature_enable; |
---|
| 681 | +}; |
---|
| 682 | + |
---|
626 | 683 | static inline u32 rsi_get_queueno(u8 *addr, u16 offset) |
---|
627 | 684 | { |
---|
628 | 685 | return (le16_to_cpu(*(__le16 *)&addr[offset]) & 0x7000) >> 12; |
---|
.. | .. |
---|
694 | 751 | #endif |
---|
695 | 752 | int rsi_send_ps_request(struct rsi_hw *adapter, bool enable, |
---|
696 | 753 | struct ieee80211_vif *vif); |
---|
| 754 | +void init_bgscan_params(struct rsi_common *common); |
---|
| 755 | +int rsi_send_bgscan_params(struct rsi_common *common, int enable); |
---|
| 756 | +int rsi_send_bgscan_probe_req(struct rsi_common *common, |
---|
| 757 | + struct ieee80211_vif *vif); |
---|
697 | 758 | #endif |
---|