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