diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/wireless/ath/ath.h | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/wireless/ath/ath.h')
-rw-r--r-- | drivers/net/wireless/ath/ath.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h index a63e90cbf9e5..71fc960814f0 100644 --- a/drivers/net/wireless/ath/ath.h +++ b/drivers/net/wireless/ath/ath.h | |||
@@ -18,6 +18,35 @@ | |||
18 | #define ATH_H | 18 | #define ATH_H |
19 | 19 | ||
20 | #include <linux/skbuff.h> | 20 | #include <linux/skbuff.h> |
21 | #include <linux/if_ether.h> | ||
22 | #include <net/mac80211.h> | ||
23 | |||
24 | /* | ||
25 | * The key cache is used for h/w cipher state and also for | ||
26 | * tracking station state such as the current tx antenna. | ||
27 | * We also setup a mapping table between key cache slot indices | ||
28 | * and station state to short-circuit node lookups on rx. | ||
29 | * Different parts have different size key caches. We handle | ||
30 | * up to ATH_KEYMAX entries (could dynamically allocate state). | ||
31 | */ | ||
32 | #define ATH_KEYMAX 128 /* max key cache size we handle */ | ||
33 | |||
34 | static const u8 ath_bcast_mac[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; | ||
35 | |||
36 | struct ath_ani { | ||
37 | bool caldone; | ||
38 | int16_t noise_floor; | ||
39 | unsigned int longcal_timer; | ||
40 | unsigned int shortcal_timer; | ||
41 | unsigned int resetcal_timer; | ||
42 | unsigned int checkani_timer; | ||
43 | struct timer_list timer; | ||
44 | }; | ||
45 | |||
46 | enum ath_device_state { | ||
47 | ATH_HW_UNAVAILABLE, | ||
48 | ATH_HW_INITIALIZED, | ||
49 | }; | ||
21 | 50 | ||
22 | struct reg_dmn_pair_mapping { | 51 | struct reg_dmn_pair_mapping { |
23 | u16 regDmnEnum; | 52 | u16 regDmnEnum; |
@@ -36,13 +65,52 @@ struct ath_regulatory { | |||
36 | struct reg_dmn_pair_mapping *regpair; | 65 | struct reg_dmn_pair_mapping *regpair; |
37 | }; | 66 | }; |
38 | 67 | ||
68 | struct ath_ops { | ||
69 | unsigned int (*read)(void *, u32 reg_offset); | ||
70 | void (*write)(void *, u32 val, u32 reg_offset); | ||
71 | }; | ||
72 | |||
73 | struct ath_common; | ||
74 | |||
75 | struct ath_bus_ops { | ||
76 | void (*read_cachesize)(struct ath_common *common, int *csz); | ||
77 | bool (*eeprom_read)(struct ath_common *common, u32 off, u16 *data); | ||
78 | void (*bt_coex_prep)(struct ath_common *common); | ||
79 | }; | ||
80 | |||
39 | struct ath_common { | 81 | struct ath_common { |
82 | void *ah; | ||
83 | void *priv; | ||
84 | struct ieee80211_hw *hw; | ||
85 | int debug_mask; | ||
86 | enum ath_device_state state; | ||
87 | |||
88 | struct ath_ani ani; | ||
89 | |||
40 | u16 cachelsz; | 90 | u16 cachelsz; |
91 | u16 curaid; | ||
92 | u8 macaddr[ETH_ALEN]; | ||
93 | u8 curbssid[ETH_ALEN]; | ||
94 | u8 bssidmask[ETH_ALEN]; | ||
95 | |||
96 | u8 tx_chainmask; | ||
97 | u8 rx_chainmask; | ||
98 | |||
99 | u32 rx_bufsize; | ||
100 | |||
101 | u32 keymax; | ||
102 | DECLARE_BITMAP(keymap, ATH_KEYMAX); | ||
103 | u8 splitmic; | ||
104 | |||
41 | struct ath_regulatory regulatory; | 105 | struct ath_regulatory regulatory; |
106 | const struct ath_ops *ops; | ||
107 | const struct ath_bus_ops *bus_ops; | ||
42 | }; | 108 | }; |
43 | 109 | ||
44 | struct sk_buff *ath_rxbuf_alloc(struct ath_common *common, | 110 | struct sk_buff *ath_rxbuf_alloc(struct ath_common *common, |
45 | u32 len, | 111 | u32 len, |
46 | gfp_t gfp_mask); | 112 | gfp_t gfp_mask); |
47 | 113 | ||
114 | void ath_hw_setbssidmask(struct ath_common *common); | ||
115 | |||
48 | #endif /* ATH_H */ | 116 | #endif /* ATH_H */ |