| .. | .. |
|---|
| 112 | 112 | #define RSI_WOW_ENABLED BIT(0) |
|---|
| 113 | 113 | #define RSI_WOW_NO_CONNECTION BIT(1) |
|---|
| 114 | 114 | |
|---|
| 115 | | -#define RSI_DEV_9113 1 |
|---|
| 116 | 115 | #define RSI_MAX_RX_PKTS 64 |
|---|
| 116 | + |
|---|
| 117 | +enum rsi_dev_model { |
|---|
| 118 | + RSI_DEV_9113 = 0, |
|---|
| 119 | + RSI_DEV_9116 |
|---|
| 120 | +}; |
|---|
| 117 | 121 | |
|---|
| 118 | 122 | struct version_info { |
|---|
| 119 | 123 | u16 major; |
|---|
| .. | .. |
|---|
| 165 | 169 | u32 total_tx_pkt_freed[NUM_EDCA_QUEUES + 2]; |
|---|
| 166 | 170 | }; |
|---|
| 167 | 171 | |
|---|
| 172 | +#define MAX_BGSCAN_CHANNELS_DUAL_BAND 38 |
|---|
| 173 | +#define MAX_BGSCAN_PROBE_REQ_LEN 0x64 |
|---|
| 174 | +#define RSI_DEF_BGSCAN_THRLD 0x0 |
|---|
| 175 | +#define RSI_DEF_ROAM_THRLD 0xa |
|---|
| 176 | +#define RSI_BGSCAN_PERIODICITY 0x1e |
|---|
| 177 | +#define RSI_ACTIVE_SCAN_TIME 0x14 |
|---|
| 178 | +#define RSI_PASSIVE_SCAN_TIME 0x46 |
|---|
| 179 | +#define RSI_CHANNEL_SCAN_TIME 20 |
|---|
| 180 | +struct rsi_bgscan_params { |
|---|
| 181 | + u16 bgscan_threshold; |
|---|
| 182 | + u16 roam_threshold; |
|---|
| 183 | + u16 bgscan_periodicity; |
|---|
| 184 | + u8 num_bgscan_channels; |
|---|
| 185 | + u8 two_probe; |
|---|
| 186 | + u16 active_scan_duration; |
|---|
| 187 | + u16 passive_scan_duration; |
|---|
| 188 | +}; |
|---|
| 189 | + |
|---|
| 168 | 190 | struct vif_priv { |
|---|
| 169 | 191 | bool is_ht; |
|---|
| 170 | 192 | bool sgi; |
|---|
| .. | .. |
|---|
| 196 | 218 | RSI_REGION_ETSI, |
|---|
| 197 | 219 | RSI_REGION_TELEC, |
|---|
| 198 | 220 | RSI_REGION_WORLD |
|---|
| 221 | +}; |
|---|
| 222 | + |
|---|
| 223 | +struct rsi_9116_features { |
|---|
| 224 | + u8 pll_mode; |
|---|
| 225 | + u8 rf_type; |
|---|
| 226 | + u8 wireless_mode; |
|---|
| 227 | + u8 afe_type; |
|---|
| 228 | + u8 enable_ppe; |
|---|
| 229 | + u8 dpd; |
|---|
| 230 | + u32 sifs_tx_enable; |
|---|
| 231 | + u32 ps_options; |
|---|
| 199 | 232 | }; |
|---|
| 200 | 233 | |
|---|
| 201 | 234 | struct rsi_rate_config { |
|---|
| .. | .. |
|---|
| 296 | 329 | bool eapol4_confirm; |
|---|
| 297 | 330 | bool bt_defer_attach; |
|---|
| 298 | 331 | void *bt_adapter; |
|---|
| 332 | + |
|---|
| 333 | + struct cfg80211_scan_request *hwscan; |
|---|
| 334 | + struct rsi_bgscan_params bgscan; |
|---|
| 335 | + struct rsi_9116_features w9116_features; |
|---|
| 336 | + u8 bgscan_en; |
|---|
| 337 | + u8 mac_ops_resumed; |
|---|
| 299 | 338 | }; |
|---|
| 300 | 339 | |
|---|
| 301 | 340 | struct eepromrw_info { |
|---|
| .. | .. |
|---|
| 313 | 352 | |
|---|
| 314 | 353 | struct rsi_hw { |
|---|
| 315 | 354 | struct rsi_common *priv; |
|---|
| 316 | | - u8 device_model; |
|---|
| 355 | + enum rsi_dev_model device_model; |
|---|
| 317 | 356 | struct ieee80211_hw *hw; |
|---|
| 318 | 357 | struct ieee80211_vif *vifs[RSI_MAX_VIFS]; |
|---|
| 319 | 358 | struct ieee80211_tx_queue_params edca_params[NUM_EDCA_QUEUES]; |
|---|
| .. | .. |
|---|
| 365 | 404 | u32 instructions_size, u16 block_size, |
|---|
| 366 | 405 | u8 *fw); |
|---|
| 367 | 406 | int (*reinit_device)(struct rsi_hw *adapter); |
|---|
| 407 | + int (*ta_reset)(struct rsi_hw *adapter); |
|---|
| 368 | 408 | }; |
|---|
| 369 | 409 | |
|---|
| 370 | 410 | enum rsi_host_intf rsi_get_host_intf(void *priv); |
|---|