diff options
Diffstat (limited to 'drivers/net/wireless/p54/p54.h')
-rw-r--r-- | drivers/net/wireless/p54/p54.h | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/drivers/net/wireless/p54/p54.h b/drivers/net/wireless/p54/p54.h index 4801a363507b..1d0704fe146f 100644 --- a/drivers/net/wireless/p54/p54.h +++ b/drivers/net/wireless/p54/p54.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef PRISM54_H | 1 | #ifndef P54_H |
2 | #define PRISM54_H | 2 | #define P54_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * Shared defines for all mac80211 Prism54 code | 5 | * Shared defines for all mac80211 Prism54 code |
@@ -19,13 +19,24 @@ enum control_frame_types { | |||
19 | P54_CONTROL_TYPE_CHANNEL_CHANGE, | 19 | P54_CONTROL_TYPE_CHANNEL_CHANGE, |
20 | P54_CONTROL_TYPE_FREQDONE, | 20 | P54_CONTROL_TYPE_FREQDONE, |
21 | P54_CONTROL_TYPE_DCFINIT, | 21 | P54_CONTROL_TYPE_DCFINIT, |
22 | P54_CONTROL_TYPE_FREEQUEUE = 7, | 22 | P54_CONTROL_TYPE_ENCRYPTION, |
23 | P54_CONTROL_TYPE_TIM, | ||
24 | P54_CONTROL_TYPE_POWERMGT, | ||
25 | P54_CONTROL_TYPE_FREEQUEUE, | ||
23 | P54_CONTROL_TYPE_TXDONE, | 26 | P54_CONTROL_TYPE_TXDONE, |
24 | P54_CONTROL_TYPE_PING, | 27 | P54_CONTROL_TYPE_PING, |
25 | P54_CONTROL_TYPE_STAT_READBACK, | 28 | P54_CONTROL_TYPE_STAT_READBACK, |
26 | P54_CONTROL_TYPE_BBP, | 29 | P54_CONTROL_TYPE_BBP, |
27 | P54_CONTROL_TYPE_EEPROM_READBACK, | 30 | P54_CONTROL_TYPE_EEPROM_READBACK, |
28 | P54_CONTROL_TYPE_LED | 31 | P54_CONTROL_TYPE_LED, |
32 | P54_CONTROL_TYPE_GPIO, | ||
33 | P54_CONTROL_TYPE_TIMER, | ||
34 | P54_CONTROL_TYPE_MODULATION, | ||
35 | P54_CONTROL_TYPE_SYNTH_CONFIG, | ||
36 | P54_CONTROL_TYPE_DETECTOR_VALUE, | ||
37 | P54_CONTROL_TYPE_XBOW_SYNTH_CFG, | ||
38 | P54_CONTROL_TYPE_CCE_QUIET, | ||
39 | P54_CONTROL_TYPE_PSM_STA_UNLOCK, | ||
29 | }; | 40 | }; |
30 | 41 | ||
31 | struct p54_control_hdr { | 42 | struct p54_control_hdr { |
@@ -38,11 +49,15 @@ struct p54_control_hdr { | |||
38 | u8 data[0]; | 49 | u8 data[0]; |
39 | } __attribute__ ((packed)); | 50 | } __attribute__ ((packed)); |
40 | 51 | ||
41 | #define EEPROM_READBACK_LEN (sizeof(struct p54_control_hdr) + 4 /* p54_eeprom_lm86 */) | 52 | #define EEPROM_READBACK_LEN 0x3fc |
42 | #define MAX_RX_SIZE (IEEE80211_MAX_RTS_THRESHOLD + sizeof(struct p54_control_hdr) + 20 /* length of struct p54_rx_hdr */ + 16 ) | ||
43 | 53 | ||
44 | #define ISL38XX_DEV_FIRMWARE_ADDR 0x20000 | 54 | #define ISL38XX_DEV_FIRMWARE_ADDR 0x20000 |
45 | 55 | ||
56 | #define FW_FMAC 0x464d4143 | ||
57 | #define FW_LM86 0x4c4d3836 | ||
58 | #define FW_LM87 0x4c4d3837 | ||
59 | #define FW_LM20 0x4c4d3230 | ||
60 | |||
46 | struct p54_common { | 61 | struct p54_common { |
47 | u32 rx_start; | 62 | u32 rx_start; |
48 | u32 rx_end; | 63 | u32 rx_end; |
@@ -53,27 +68,43 @@ struct p54_common { | |||
53 | void (*stop)(struct ieee80211_hw *dev); | 68 | void (*stop)(struct ieee80211_hw *dev); |
54 | int mode; | 69 | int mode; |
55 | u16 seqno; | 70 | u16 seqno; |
71 | u16 rx_mtu; | ||
72 | u8 headroom; | ||
73 | u8 tailroom; | ||
56 | struct mutex conf_mutex; | 74 | struct mutex conf_mutex; |
57 | u8 mac_addr[ETH_ALEN]; | 75 | u8 mac_addr[ETH_ALEN]; |
58 | u8 bssid[ETH_ALEN]; | 76 | u8 bssid[ETH_ALEN]; |
77 | __le16 filter_type; | ||
59 | struct pda_iq_autocal_entry *iq_autocal; | 78 | struct pda_iq_autocal_entry *iq_autocal; |
60 | unsigned int iq_autocal_len; | 79 | unsigned int iq_autocal_len; |
61 | struct pda_channel_output_limit *output_limit; | 80 | struct pda_channel_output_limit *output_limit; |
62 | unsigned int output_limit_len; | 81 | unsigned int output_limit_len; |
63 | struct pda_pa_curve_data *curve_data; | 82 | struct pda_pa_curve_data *curve_data; |
64 | __le16 rxhw; | 83 | unsigned int filter_flags; |
84 | u16 rxhw; | ||
65 | u8 version; | 85 | u8 version; |
86 | u8 rx_antenna; | ||
66 | unsigned int tx_hdr_len; | 87 | unsigned int tx_hdr_len; |
67 | void *cached_vdcf; | 88 | void *cached_vdcf; |
68 | unsigned int fw_var; | 89 | unsigned int fw_var; |
69 | struct ieee80211_tx_queue_stats tx_stats[4]; | 90 | unsigned int fw_interface; |
91 | unsigned int output_power; | ||
92 | u32 tsf_low32; | ||
93 | u32 tsf_high32; | ||
94 | struct ieee80211_tx_queue_stats tx_stats[8]; | ||
95 | struct ieee80211_low_level_stats stats; | ||
96 | struct timer_list stats_timer; | ||
97 | struct completion stats_comp; | ||
98 | void *cached_stats; | ||
99 | int noise; | ||
100 | void *eeprom; | ||
101 | struct completion eeprom_comp; | ||
70 | }; | 102 | }; |
71 | 103 | ||
72 | int p54_rx(struct ieee80211_hw *dev, struct sk_buff *skb); | 104 | int p54_rx(struct ieee80211_hw *dev, struct sk_buff *skb); |
73 | void p54_parse_firmware(struct ieee80211_hw *dev, const struct firmware *fw); | 105 | int p54_parse_firmware(struct ieee80211_hw *dev, const struct firmware *fw); |
74 | int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len); | 106 | int p54_read_eeprom(struct ieee80211_hw *dev); |
75 | void p54_fill_eeprom_readback(struct p54_control_hdr *hdr); | ||
76 | struct ieee80211_hw *p54_init_common(size_t priv_data_len); | 107 | struct ieee80211_hw *p54_init_common(size_t priv_data_len); |
77 | void p54_free_common(struct ieee80211_hw *dev); | 108 | void p54_free_common(struct ieee80211_hw *dev); |
78 | 109 | ||
79 | #endif /* PRISM54_H */ | 110 | #endif /* P54_H */ |