diff options
author | Christian Lamparter <chunkeey@web.de> | 2008-09-03 16:25:25 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-09-08 14:00:18 -0400 |
commit | 19c19d54b6bfa57746f3ec805d1d7951eefa353b (patch) | |
tree | 1a48522cd59e6ef492d99ebe212beb819c2526a8 /drivers/net/wireless/p54/p54common.h | |
parent | e0a58eacf540c65763288c81caa74013f62d7234 (diff) |
p54: better firmware support
This patch hopefully contains all necessary changes to support
firmwares for all devices up to atleast 2.13.3.0.
(or: LowerMAC Protocol Rev: 5.5 )
And this is a big win, since:
* newer firmwares are more stable and reliable than the old ones.
* no problems anymore with packages > 1399 octets (without lowering the MTU).
* monitor mode finally works on USB for more than just a few seconds.
Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/p54/p54common.h')
-rw-r--r-- | drivers/net/wireless/p54/p54common.h | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/drivers/net/wireless/p54/p54common.h b/drivers/net/wireless/p54/p54common.h index 7b4ba37abe92..73a9a2c923dd 100644 --- a/drivers/net/wireless/p54/p54common.h +++ b/drivers/net/wireless/p54/p54common.h | |||
@@ -186,7 +186,7 @@ struct p54_rx_hdr { | |||
186 | u8 quality; | 186 | u8 quality; |
187 | u16 unknown2; | 187 | u16 unknown2; |
188 | __le64 timestamp; | 188 | __le64 timestamp; |
189 | u8 data[0]; | 189 | u8 align[0]; |
190 | } __attribute__ ((packed)); | 190 | } __attribute__ ((packed)); |
191 | 191 | ||
192 | struct p54_frame_sent_hdr { | 192 | struct p54_frame_sent_hdr { |
@@ -218,15 +218,30 @@ struct p54_tx_control_filter { | |||
218 | u8 bssid[ETH_ALEN]; | 218 | u8 bssid[ETH_ALEN]; |
219 | u8 rx_antenna; | 219 | u8 rx_antenna; |
220 | u8 rx_align; | 220 | u8 rx_align; |
221 | __le32 basic_rate_mask; | 221 | union { |
222 | u8 rts_rates[8]; | 222 | struct { |
223 | __le32 rx_addr; | 223 | __le32 basic_rate_mask; |
224 | __le16 max_rx; | 224 | u8 rts_rates[8]; |
225 | __le16 rxhw; | 225 | __le32 rx_addr; |
226 | __le16 wakeup_timer; | 226 | __le16 max_rx; |
227 | __le16 unalloc; | 227 | __le16 rxhw; |
228 | __le16 wakeup_timer; | ||
229 | __le16 unalloc0; | ||
230 | } v1 __attribute__ ((packed)); | ||
231 | struct { | ||
232 | __le32 rx_addr; | ||
233 | __le16 max_rx; | ||
234 | __le16 rxhw; | ||
235 | __le16 timer; | ||
236 | __le16 unalloc0; | ||
237 | __le32 unalloc1; | ||
238 | } v2 __attribute__ ((packed)); | ||
239 | } __attribute__ ((packed)); | ||
228 | } __attribute__ ((packed)); | 240 | } __attribute__ ((packed)); |
229 | 241 | ||
242 | #define P54_TX_CONTROL_FILTER_V1_LEN (sizeof(struct p54_tx_control_filter)) | ||
243 | #define P54_TX_CONTROL_FILTER_V2_LEN (sizeof(struct p54_tx_control_filter)-8) | ||
244 | |||
230 | struct p54_tx_control_channel { | 245 | struct p54_tx_control_channel { |
231 | __le16 flags; | 246 | __le16 flags; |
232 | __le16 dwell; | 247 | __le16 dwell; |
@@ -238,15 +253,29 @@ struct p54_tx_control_channel { | |||
238 | u8 val_qpsk; | 253 | u8 val_qpsk; |
239 | u8 val_16qam; | 254 | u8 val_16qam; |
240 | u8 val_64qam; | 255 | u8 val_64qam; |
241 | struct pda_pa_curve_data_sample_rev1 curve_data[8]; | 256 | struct p54_pa_curve_data_sample curve_data[8]; |
242 | u8 dup_bpsk; | 257 | u8 dup_bpsk; |
243 | u8 dup_qpsk; | 258 | u8 dup_qpsk; |
244 | u8 dup_16qam; | 259 | u8 dup_16qam; |
245 | u8 dup_64qam; | 260 | u8 dup_64qam; |
246 | __le16 rssical_mul; | 261 | union { |
247 | __le16 rssical_add; | 262 | struct { |
263 | __le16 rssical_mul; | ||
264 | __le16 rssical_add; | ||
265 | } v1 __attribute__ ((packed)); | ||
266 | |||
267 | struct { | ||
268 | __le32 basic_rate_mask; | ||
269 | u8 rts_rates[8]; | ||
270 | __le16 rssical_mul; | ||
271 | __le16 rssical_add; | ||
272 | } v2 __attribute__ ((packed)); | ||
273 | } __attribute__ ((packed)); | ||
248 | } __attribute__ ((packed)); | 274 | } __attribute__ ((packed)); |
249 | 275 | ||
276 | #define P54_TX_CONTROL_CHANNEL_V1_LEN (sizeof(struct p54_tx_control_channel)-12) | ||
277 | #define P54_TX_CONTROL_CHANNEL_V2_LEN (sizeof(struct p54_tx_control_channel)) | ||
278 | |||
250 | struct p54_tx_control_led { | 279 | struct p54_tx_control_led { |
251 | __le16 mode; | 280 | __le16 mode; |
252 | __le16 led_temporary; | 281 | __le16 led_temporary; |