aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/htc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/htc.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/htc.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h
index 777064945fca..78213fc71b09 100644
--- a/drivers/net/wireless/ath/ath9k/htc.h
+++ b/drivers/net/wireless/ath/ath9k/htc.h
@@ -309,6 +309,14 @@ struct ath_led {
309 int brightness; 309 int brightness;
310}; 310};
311 311
312struct htc_beacon_config {
313 u16 beacon_interval;
314 u16 listen_interval;
315 u16 dtim_period;
316 u16 bmiss_timeout;
317 u8 dtim_count;
318};
319
312#define OP_INVALID BIT(0) 320#define OP_INVALID BIT(0)
313#define OP_SCANNING BIT(1) 321#define OP_SCANNING BIT(1)
314#define OP_FULL_RESET BIT(2) 322#define OP_FULL_RESET BIT(2)
@@ -349,7 +357,11 @@ struct ath9k_htc_priv {
349 struct sk_buff *beacon; 357 struct sk_buff *beacon;
350 spinlock_t beacon_lock; 358 spinlock_t beacon_lock;
351 359
360 bool tx_queues_stop;
361 spinlock_t tx_lock;
362
352 struct ieee80211_vif *vif; 363 struct ieee80211_vif *vif;
364 struct htc_beacon_config cur_beacon_conf;
353 unsigned int rxfilter; 365 unsigned int rxfilter;
354 struct tasklet_struct wmi_tasklet; 366 struct tasklet_struct wmi_tasklet;
355 struct tasklet_struct rx_tasklet; 367 struct tasklet_struct rx_tasklet;
@@ -360,6 +372,11 @@ struct ath9k_htc_priv {
360 struct ath9k_htc_aggr_work aggr_work; 372 struct ath9k_htc_aggr_work aggr_work;
361 struct delayed_work ath9k_aggr_work; 373 struct delayed_work ath9k_aggr_work;
362 struct delayed_work ath9k_ani_work; 374 struct delayed_work ath9k_ani_work;
375 struct work_struct ps_work;
376
377 struct mutex htc_pm_lock;
378 unsigned long ps_usecount;
379 bool ps_enabled;
363 380
364 struct ath_led radio_led; 381 struct ath_led radio_led;
365 struct ath_led assoc_led; 382 struct ath_led assoc_led;
@@ -386,8 +403,7 @@ static inline void ath_read_cachesize(struct ath_common *common, int *csz)
386} 403}
387 404
388void ath9k_htc_beacon_config(struct ath9k_htc_priv *priv, 405void ath9k_htc_beacon_config(struct ath9k_htc_priv *priv,
389 struct ieee80211_vif *vif, 406 struct ieee80211_vif *vif);
390 struct ieee80211_bss_conf *bss_conf);
391void ath9k_htc_swba(struct ath9k_htc_priv *priv, u8 beacon_pending); 407void ath9k_htc_swba(struct ath9k_htc_priv *priv, u8 beacon_pending);
392void ath9k_htc_beacon_update(struct ath9k_htc_priv *priv, 408void ath9k_htc_beacon_update(struct ath9k_htc_priv *priv,
393 struct ieee80211_vif *vif); 409 struct ieee80211_vif *vif);
@@ -415,6 +431,11 @@ int ath9k_rx_init(struct ath9k_htc_priv *priv);
415void ath9k_rx_cleanup(struct ath9k_htc_priv *priv); 431void ath9k_rx_cleanup(struct ath9k_htc_priv *priv);
416void ath9k_host_rx_init(struct ath9k_htc_priv *priv); 432void ath9k_host_rx_init(struct ath9k_htc_priv *priv);
417void ath9k_rx_tasklet(unsigned long data); 433void ath9k_rx_tasklet(unsigned long data);
434u32 ath9k_htc_calcrxfilter(struct ath9k_htc_priv *priv);
435
436void ath9k_htc_ps_wakeup(struct ath9k_htc_priv *priv);
437void ath9k_htc_ps_restore(struct ath9k_htc_priv *priv);
438void ath9k_ps_work(struct work_struct *work);
418 439
419void ath9k_start_rfkill_poll(struct ath9k_htc_priv *priv); 440void ath9k_start_rfkill_poll(struct ath9k_htc_priv *priv);
420void ath9k_init_leds(struct ath9k_htc_priv *priv); 441void ath9k_init_leds(struct ath9k_htc_priv *priv);