| .. | .. |
|---|
| 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 |
|---|