Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[pandora-kernel.git] / drivers / net / wireless / ath / ath9k / htc.h
index 78213fc..c251603 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/skbuff.h>
 #include <linux/netdevice.h>
 #include <linux/leds.h>
+#include <linux/slab.h>
 #include <net/mac80211.h>
 
 #include "common.h"
@@ -124,13 +125,13 @@ struct ath9k_htc_cap_target {
 struct ath9k_htc_target_vif {
        u8 index;
        u8 des_bssid[ETH_ALEN];
-       enum htc_opmode opmode;
+       __be32 opmode;
        u8 myaddr[ETH_ALEN];
        u8 bssid[ETH_ALEN];
        u32 flags;
        u32 flags_ext;
        u16 ps_sta;
-       u16 rtsthreshold;
+       __be16 rtsthreshold;
        u8 ath_cap;
        u8 node;
        s8 mcast_rate;
@@ -151,7 +152,7 @@ struct ath9k_htc_target_sta {
        u8 sta_index;
        u8 vif_index;
        u8 vif_sta;
-       u16 flags; /* ATH_HTC_STA_* */
+       __be16 flags; /* ATH_HTC_STA_* */
        u16 htcap;
        u8 valid;
        u16 capinfo;
@@ -191,16 +192,16 @@ struct ath9k_htc_rate {
 struct ath9k_htc_target_rate {
        u8 sta_index;
        u8 isnew;
-       u32 capflags;
+       __be32 capflags;
        struct ath9k_htc_rate rates;
 };
 
 struct ath9k_htc_target_stats {
-       u32 tx_shortretry;
-       u32 tx_longretry;
-       u32 tx_xretries;
-       u32 ht_txunaggr_xretry;
-       u32 ht_tx_xretries;
+       __be32 tx_shortretry;
+       __be32 tx_longretry;
+       __be32 tx_xretries;
+       __be32 ht_txunaggr_xretry;
+       __be32 ht_tx_xretries;
 } __packed;
 
 struct ath9k_htc_vif {
@@ -261,6 +262,7 @@ struct ath_tx_stats {
        u32 buf_completed;
        u32 skb_queued;
        u32 skb_completed;
+       u32 skb_dropped;
 };
 
 struct ath_rx_stats {
@@ -328,6 +330,7 @@ struct htc_beacon_config {
 #define OP_ASSOCIATED     BIT(8)
 #define OP_ENABLE_BEACON  BIT(9)
 #define OP_LED_DEINIT     BIT(10)
+#define OP_UNPLUGGED      BIT(11)
 
 struct ath9k_htc_priv {
        struct device *dev;
@@ -354,7 +357,6 @@ struct ath9k_htc_priv {
        u16 seq_no;
        u32 bmiss_cnt;
 
-       struct sk_buff *beacon;
        spinlock_t beacon_lock;
 
        bool tx_queues_stop;
@@ -377,6 +379,7 @@ struct ath9k_htc_priv {
        struct mutex htc_pm_lock;
        unsigned long ps_usecount;
        bool ps_enabled;
+       bool ps_idle;
 
        struct ath_led radio_led;
        struct ath_led assoc_led;
@@ -405,13 +408,13 @@ static inline void ath_read_cachesize(struct ath_common *common, int *csz)
 void ath9k_htc_beacon_config(struct ath9k_htc_priv *priv,
                             struct ieee80211_vif *vif);
 void ath9k_htc_swba(struct ath9k_htc_priv *priv, u8 beacon_pending);
-void ath9k_htc_beacon_update(struct ath9k_htc_priv *priv,
-                            struct ieee80211_vif *vif);
 
 void ath9k_htc_rxep(void *priv, struct sk_buff *skb,
                    enum htc_endpoint_id ep_id);
 void ath9k_htc_txep(void *priv, struct sk_buff *skb, enum htc_endpoint_id ep_id,
                    bool txok);
+void ath9k_htc_beaconep(void *drv_priv, struct sk_buff *skb,
+                       enum htc_endpoint_id ep_id, bool txok);
 
 void ath9k_htc_station_work(struct work_struct *work);
 void ath9k_htc_aggr_work(struct work_struct *work);