.. | .. |
---|
83 | 83 | WCN36XX_AMPDU_OPERATIONAL, |
---|
84 | 84 | }; |
---|
85 | 85 | |
---|
86 | | -#define WCN36XX_HW_CHANNEL(__wcn) (__wcn->hw->conf.chandef.chan->hw_value) |
---|
| 86 | +#define HW_VALUE_PHY_SHIFT 8 |
---|
| 87 | +#define HW_VALUE_PHY(hw_value) ((hw_value) >> HW_VALUE_PHY_SHIFT) |
---|
| 88 | +#define HW_VALUE_CHANNEL(hw_value) ((hw_value) & 0xFF) |
---|
| 89 | +#define WCN36XX_HW_CHANNEL(__wcn)\ |
---|
| 90 | + HW_VALUE_CHANNEL(__wcn->hw->conf.chandef.chan->hw_value) |
---|
87 | 91 | #define WCN36XX_BAND(__wcn) (__wcn->hw->conf.chandef.chan->band) |
---|
88 | 92 | #define WCN36XX_CENTER_FREQ(__wcn) (__wcn->hw->conf.chandef.chan->center_freq) |
---|
89 | 93 | #define WCN36XX_LISTEN_INTERVAL(__wcn) (__wcn->hw->conf.listen_interval) |
---|
.. | .. |
---|
92 | 96 | |
---|
93 | 97 | #define RF_UNKNOWN 0x0000 |
---|
94 | 98 | #define RF_IRIS_WCN3620 0x3620 |
---|
| 99 | +#define RF_IRIS_WCN3660 0x3660 |
---|
| 100 | +#define RF_IRIS_WCN3680 0x3680 |
---|
95 | 101 | |
---|
96 | 102 | static inline void buff_to_be(u32 *buf, size_t len) |
---|
97 | 103 | { |
---|
.. | .. |
---|
167 | 173 | u8 bss_dpu_desc_index; |
---|
168 | 174 | bool is_data_encrypted; |
---|
169 | 175 | /* Rates */ |
---|
170 | | - struct wcn36xx_hal_supported_rates supported_rates; |
---|
| 176 | + struct wcn36xx_hal_supported_rates_v1 supported_rates; |
---|
171 | 177 | |
---|
172 | 178 | spinlock_t ampdu_lock; /* protects next two fields */ |
---|
173 | 179 | enum wcn36xx_ampdu_state ampdu_state[16]; |
---|
.. | .. |
---|
223 | 229 | spinlock_t hal_ind_lock; |
---|
224 | 230 | struct list_head hal_ind_queue; |
---|
225 | 231 | |
---|
226 | | - struct work_struct scan_work; |
---|
227 | 232 | struct cfg80211_scan_request *scan_req; |
---|
228 | | - int scan_freq; |
---|
229 | | - int scan_band; |
---|
| 233 | + bool sw_scan; |
---|
| 234 | + u8 sw_scan_opchannel; |
---|
| 235 | + bool sw_scan_init; |
---|
| 236 | + u8 sw_scan_channel; |
---|
| 237 | + struct ieee80211_vif *sw_scan_vif; |
---|
230 | 238 | struct mutex scan_lock; |
---|
231 | 239 | bool scan_aborted; |
---|
232 | 240 | |
---|
.. | .. |
---|
245 | 253 | struct wcn36xx_dxe_mem_pool data_mem_pool; |
---|
246 | 254 | |
---|
247 | 255 | struct sk_buff *tx_ack_skb; |
---|
| 256 | + struct timer_list tx_ack_timer; |
---|
248 | 257 | |
---|
249 | 258 | /* RF module */ |
---|
250 | 259 | unsigned rf_id; |
---|
.. | .. |
---|
268 | 277 | wcn->fw_revision == revision); |
---|
269 | 278 | } |
---|
270 | 279 | void wcn36xx_set_default_rates(struct wcn36xx_hal_supported_rates *rates); |
---|
| 280 | +void wcn36xx_set_default_rates_v1(struct wcn36xx_hal_supported_rates_v1 *rates); |
---|
271 | 281 | |
---|
272 | 282 | static inline |
---|
273 | 283 | struct ieee80211_sta *wcn36xx_priv_to_sta(struct wcn36xx_sta *sta_priv) |
---|