diff options
author | Christian Lamparter <chunkeey@googlemail.com> | 2011-06-30 14:27:47 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-07-05 15:26:51 -0400 |
commit | 85ee5122abbc1b5c5f3622e46942291a2f6f1261 (patch) | |
tree | 12a0b33c25255957a1cb0421bf7e3a1614769057 /drivers/net/wireless/ath | |
parent | 3b4670ffe7824d1fc4db2f73101015056ecb4415 (diff) |
carl9170: import 1.9.4 firmware headers
This patch imports all shared header changes
from carl9170fw.git.
* update copyright boilerplate
* add some more strategic __aligned(4).
* WoWLAN
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r-- | drivers/net/wireless/ath/carl9170/carl9170.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/fwcmd.h | 19 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/fwdesc.h | 18 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/hw.h | 15 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/version.h | 6 | ||||
-rw-r--r-- | drivers/net/wireless/ath/carl9170/wlan.h | 25 |
6 files changed, 63 insertions, 22 deletions
diff --git a/drivers/net/wireless/ath/carl9170/carl9170.h b/drivers/net/wireless/ath/carl9170/carl9170.h index 4da01a9f5680..d96d03ff1209 100644 --- a/drivers/net/wireless/ath/carl9170/carl9170.h +++ b/drivers/net/wireless/ath/carl9170/carl9170.h | |||
@@ -67,6 +67,8 @@ | |||
67 | 67 | ||
68 | #define PAYLOAD_MAX (CARL9170_MAX_CMD_LEN / 4 - 1) | 68 | #define PAYLOAD_MAX (CARL9170_MAX_CMD_LEN / 4 - 1) |
69 | 69 | ||
70 | static const u8 ar9170_qmap[__AR9170_NUM_TXQ] = { 3, 2, 1, 0 }; | ||
71 | |||
70 | enum carl9170_rf_init_mode { | 72 | enum carl9170_rf_init_mode { |
71 | CARL9170_RFI_NONE, | 73 | CARL9170_RFI_NONE, |
72 | CARL9170_RFI_WARM, | 74 | CARL9170_RFI_WARM, |
diff --git a/drivers/net/wireless/ath/carl9170/fwcmd.h b/drivers/net/wireless/ath/carl9170/fwcmd.h index 30449d21b762..0a6dec529b59 100644 --- a/drivers/net/wireless/ath/carl9170/fwcmd.h +++ b/drivers/net/wireless/ath/carl9170/fwcmd.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Firmware command interface definitions | 4 | * Firmware command interface definitions |
5 | * | 5 | * |
6 | * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> | 6 | * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> |
7 | * Copyright 2009, 2010, Christian Lamparter <chunkeey@googlemail.com> | 7 | * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com> |
8 | * | 8 | * |
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License as published by | 10 | * it under the terms of the GNU General Public License as published by |
@@ -54,6 +54,7 @@ enum carl9170_cmd_oids { | |||
54 | CARL9170_CMD_BCN_CTRL = 0x05, | 54 | CARL9170_CMD_BCN_CTRL = 0x05, |
55 | CARL9170_CMD_READ_TSF = 0x06, | 55 | CARL9170_CMD_READ_TSF = 0x06, |
56 | CARL9170_CMD_RX_FILTER = 0x07, | 56 | CARL9170_CMD_RX_FILTER = 0x07, |
57 | CARL9170_CMD_WOL = 0x08, | ||
57 | 58 | ||
58 | /* CAM */ | 59 | /* CAM */ |
59 | CARL9170_CMD_EKEY = 0x10, | 60 | CARL9170_CMD_EKEY = 0x10, |
@@ -180,6 +181,21 @@ struct carl9170_bcn_ctrl_cmd { | |||
180 | #define CARL9170_BCN_CTRL_DRAIN 0 | 181 | #define CARL9170_BCN_CTRL_DRAIN 0 |
181 | #define CARL9170_BCN_CTRL_CAB_TRIGGER 1 | 182 | #define CARL9170_BCN_CTRL_CAB_TRIGGER 1 |
182 | 183 | ||
184 | struct carl9170_wol_cmd { | ||
185 | __le32 flags; | ||
186 | u8 mac[6]; | ||
187 | u8 bssid[6]; | ||
188 | __le32 null_interval; | ||
189 | __le32 free_for_use2; | ||
190 | __le32 mask; | ||
191 | u8 pattern[32]; | ||
192 | } __packed; | ||
193 | |||
194 | #define CARL9170_WOL_CMD_SIZE 60 | ||
195 | |||
196 | #define CARL9170_WOL_DISCONNECT 1 | ||
197 | #define CARL9170_WOL_MAGIC_PKT 2 | ||
198 | |||
183 | struct carl9170_cmd_head { | 199 | struct carl9170_cmd_head { |
184 | union { | 200 | union { |
185 | struct { | 201 | struct { |
@@ -203,6 +219,7 @@ struct carl9170_cmd { | |||
203 | struct carl9170_write_reg wreg; | 219 | struct carl9170_write_reg wreg; |
204 | struct carl9170_rf_init rf_init; | 220 | struct carl9170_rf_init rf_init; |
205 | struct carl9170_psm psm; | 221 | struct carl9170_psm psm; |
222 | struct carl9170_wol_cmd wol; | ||
206 | struct carl9170_bcn_ctrl_cmd bcn_ctrl; | 223 | struct carl9170_bcn_ctrl_cmd bcn_ctrl; |
207 | struct carl9170_rx_filter_cmd rx_filter; | 224 | struct carl9170_rx_filter_cmd rx_filter; |
208 | u8 data[CARL9170_MAX_CMD_PAYLOAD_LEN]; | 225 | u8 data[CARL9170_MAX_CMD_PAYLOAD_LEN]; |
diff --git a/drivers/net/wireless/ath/carl9170/fwdesc.h b/drivers/net/wireless/ath/carl9170/fwdesc.h index 921066822dd5..7ba62bb77054 100644 --- a/drivers/net/wireless/ath/carl9170/fwdesc.h +++ b/drivers/net/wireless/ath/carl9170/fwdesc.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Firmware descriptor format | 4 | * Firmware descriptor format |
5 | * | 5 | * |
6 | * Copyright 2009, 2010, Christian Lamparter <chunkeey@googlemail.com> | 6 | * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com> |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License as published by | 9 | * it under the terms of the GNU General Public License as published by |
@@ -72,6 +72,9 @@ enum carl9170fw_feature_list { | |||
72 | /* Wake up on WLAN */ | 72 | /* Wake up on WLAN */ |
73 | CARL9170FW_WOL, | 73 | CARL9170FW_WOL, |
74 | 74 | ||
75 | /* Firmware supports PSM in the 5GHZ Band */ | ||
76 | CARL9170FW_FIXED_5GHZ_PSM, | ||
77 | |||
75 | /* KEEP LAST */ | 78 | /* KEEP LAST */ |
76 | __CARL9170FW_FEATURE_NUM | 79 | __CARL9170FW_FEATURE_NUM |
77 | }; | 80 | }; |
@@ -82,6 +85,7 @@ enum carl9170fw_feature_list { | |||
82 | #define DBG_MAGIC "DBG\0" | 85 | #define DBG_MAGIC "DBG\0" |
83 | #define CHK_MAGIC "CHK\0" | 86 | #define CHK_MAGIC "CHK\0" |
84 | #define TXSQ_MAGIC "TXSQ" | 87 | #define TXSQ_MAGIC "TXSQ" |
88 | #define WOL_MAGIC "WOL\0" | ||
85 | #define LAST_MAGIC "LAST" | 89 | #define LAST_MAGIC "LAST" |
86 | 90 | ||
87 | #define CARL9170FW_SET_DAY(d) (((d) - 1) % 31) | 91 | #define CARL9170FW_SET_DAY(d) (((d) - 1) % 31) |
@@ -104,7 +108,7 @@ struct carl9170fw_desc_head { | |||
104 | (sizeof(struct carl9170fw_desc_head)) | 108 | (sizeof(struct carl9170fw_desc_head)) |
105 | 109 | ||
106 | #define CARL9170FW_OTUS_DESC_MIN_VER 6 | 110 | #define CARL9170FW_OTUS_DESC_MIN_VER 6 |
107 | #define CARL9170FW_OTUS_DESC_CUR_VER 6 | 111 | #define CARL9170FW_OTUS_DESC_CUR_VER 7 |
108 | struct carl9170fw_otus_desc { | 112 | struct carl9170fw_otus_desc { |
109 | struct carl9170fw_desc_head head; | 113 | struct carl9170fw_desc_head head; |
110 | __le32 feature_set; | 114 | __le32 feature_set; |
@@ -186,6 +190,16 @@ struct carl9170fw_txsq_desc { | |||
186 | #define CARL9170FW_TXSQ_DESC_SIZE \ | 190 | #define CARL9170FW_TXSQ_DESC_SIZE \ |
187 | (sizeof(struct carl9170fw_txsq_desc)) | 191 | (sizeof(struct carl9170fw_txsq_desc)) |
188 | 192 | ||
193 | #define CARL9170FW_WOL_DESC_MIN_VER 1 | ||
194 | #define CARL9170FW_WOL_DESC_CUR_VER 1 | ||
195 | struct carl9170fw_wol_desc { | ||
196 | struct carl9170fw_desc_head head; | ||
197 | |||
198 | __le32 supported_triggers; /* CARL9170_WOL_ */ | ||
199 | } __packed; | ||
200 | #define CARL9170FW_WOL_DESC_SIZE \ | ||
201 | (sizeof(struct carl9170fw_wol_desc)) | ||
202 | |||
189 | #define CARL9170FW_LAST_DESC_MIN_VER 1 | 203 | #define CARL9170FW_LAST_DESC_MIN_VER 1 |
190 | #define CARL9170FW_LAST_DESC_CUR_VER 2 | 204 | #define CARL9170FW_LAST_DESC_CUR_VER 2 |
191 | struct carl9170fw_last_desc { | 205 | struct carl9170fw_last_desc { |
diff --git a/drivers/net/wireless/ath/carl9170/hw.h b/drivers/net/wireless/ath/carl9170/hw.h index 4e30762dd903..261f89351070 100644 --- a/drivers/net/wireless/ath/carl9170/hw.h +++ b/drivers/net/wireless/ath/carl9170/hw.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Register map, hardware-specific definitions | 4 | * Register map, hardware-specific definitions |
5 | * | 5 | * |
6 | * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> | 6 | * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> |
7 | * Copyright 2009, 2010, Christian Lamparter <chunkeey@googlemail.com> | 7 | * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com> |
8 | * | 8 | * |
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License as published by | 10 | * it under the terms of the GNU General Public License as published by |
@@ -357,7 +357,18 @@ | |||
357 | 357 | ||
358 | #define AR9170_MAC_REG_DMA_WLAN_STATUS (AR9170_MAC_REG_BASE + 0xd38) | 358 | #define AR9170_MAC_REG_DMA_WLAN_STATUS (AR9170_MAC_REG_BASE + 0xd38) |
359 | #define AR9170_MAC_REG_DMA_STATUS (AR9170_MAC_REG_BASE + 0xd3c) | 359 | #define AR9170_MAC_REG_DMA_STATUS (AR9170_MAC_REG_BASE + 0xd3c) |
360 | 360 | #define AR9170_MAC_REG_DMA_TXQ_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd40) | |
361 | #define AR9170_MAC_REG_DMA_TXQ0_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd40) | ||
362 | #define AR9170_MAC_REG_DMA_TXQ1_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd44) | ||
363 | #define AR9170_MAC_REG_DMA_TXQ2_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd48) | ||
364 | #define AR9170_MAC_REG_DMA_TXQ3_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd4c) | ||
365 | #define AR9170_MAC_REG_DMA_TXQ4_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd50) | ||
366 | #define AR9170_MAC_REG_DMA_TXQ0Q1_LEN (AR9170_MAC_REG_BASE + 0xd54) | ||
367 | #define AR9170_MAC_REG_DMA_TXQ2Q3_LEN (AR9170_MAC_REG_BASE + 0xd58) | ||
368 | #define AR9170_MAC_REG_DMA_TXQ4_LEN (AR9170_MAC_REG_BASE + 0xd5c) | ||
369 | |||
370 | #define AR9170_MAC_REG_DMA_TXQX_LAST_ADDR (AR9170_MAC_REG_BASE + 0xd74) | ||
371 | #define AR9170_MAC_REG_DMA_TXQX_FAIL_ADDR (AR9170_MAC_REG_BASE + 0xd78) | ||
361 | #define AR9170_MAC_REG_TXRX_MPI (AR9170_MAC_REG_BASE + 0xd7c) | 372 | #define AR9170_MAC_REG_TXRX_MPI (AR9170_MAC_REG_BASE + 0xd7c) |
362 | #define AR9170_MAC_TXRX_MPI_TX_MPI_MASK 0x0000000f | 373 | #define AR9170_MAC_TXRX_MPI_TX_MPI_MASK 0x0000000f |
363 | #define AR9170_MAC_TXRX_MPI_TX_TO_MASK 0x0000fff0 | 374 | #define AR9170_MAC_TXRX_MPI_TX_TO_MASK 0x0000fff0 |
diff --git a/drivers/net/wireless/ath/carl9170/version.h b/drivers/net/wireless/ath/carl9170/version.h index 15095c035169..64703778cfea 100644 --- a/drivers/net/wireless/ath/carl9170/version.h +++ b/drivers/net/wireless/ath/carl9170/version.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef __CARL9170_SHARED_VERSION_H | 1 | #ifndef __CARL9170_SHARED_VERSION_H |
2 | #define __CARL9170_SHARED_VERSION_H | 2 | #define __CARL9170_SHARED_VERSION_H |
3 | #define CARL9170FW_VERSION_YEAR 11 | 3 | #define CARL9170FW_VERSION_YEAR 11 |
4 | #define CARL9170FW_VERSION_MONTH 1 | 4 | #define CARL9170FW_VERSION_MONTH 6 |
5 | #define CARL9170FW_VERSION_DAY 22 | 5 | #define CARL9170FW_VERSION_DAY 30 |
6 | #define CARL9170FW_VERSION_GIT "1.9.2" | 6 | #define CARL9170FW_VERSION_GIT "1.9.4" |
7 | #endif /* __CARL9170_SHARED_VERSION_H */ | 7 | #endif /* __CARL9170_SHARED_VERSION_H */ |
diff --git a/drivers/net/wireless/ath/carl9170/wlan.h b/drivers/net/wireless/ath/carl9170/wlan.h index 9e1324b67e08..ea17995b32f4 100644 --- a/drivers/net/wireless/ath/carl9170/wlan.h +++ b/drivers/net/wireless/ath/carl9170/wlan.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * RX/TX meta descriptor format | 4 | * RX/TX meta descriptor format |
5 | * | 5 | * |
6 | * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> | 6 | * Copyright 2008, Johannes Berg <johannes@sipsolutions.net> |
7 | * Copyright 2009, 2010, Christian Lamparter <chunkeey@googlemail.com> | 7 | * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com> |
8 | * | 8 | * |
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License as published by | 10 | * it under the terms of the GNU General Public License as published by |
@@ -278,7 +278,7 @@ struct ar9170_tx_frame { | |||
278 | struct carl9170_tx_superframe { | 278 | struct carl9170_tx_superframe { |
279 | struct carl9170_tx_superdesc s; | 279 | struct carl9170_tx_superdesc s; |
280 | struct ar9170_tx_frame f; | 280 | struct ar9170_tx_frame f; |
281 | } __packed; | 281 | } __packed __aligned(4); |
282 | 282 | ||
283 | #endif /* __CARL9170FW__ */ | 283 | #endif /* __CARL9170FW__ */ |
284 | 284 | ||
@@ -328,7 +328,7 @@ struct _carl9170_tx_superframe { | |||
328 | struct _carl9170_tx_superdesc s; | 328 | struct _carl9170_tx_superdesc s; |
329 | struct _ar9170_tx_hwdesc f; | 329 | struct _ar9170_tx_hwdesc f; |
330 | u8 frame_data[0]; | 330 | u8 frame_data[0]; |
331 | } __packed; | 331 | } __packed __aligned(4); |
332 | 332 | ||
333 | #define CARL9170_TX_SUPERDESC_LEN 24 | 333 | #define CARL9170_TX_SUPERDESC_LEN 24 |
334 | #define AR9170_TX_HWDESC_LEN 8 | 334 | #define AR9170_TX_HWDESC_LEN 8 |
@@ -404,16 +404,6 @@ static inline u8 ar9170_get_decrypt_type(struct ar9170_rx_macstatus *t) | |||
404 | (t->DAidx & 0xc0) >> 6; | 404 | (t->DAidx & 0xc0) >> 6; |
405 | } | 405 | } |
406 | 406 | ||
407 | enum ar9170_txq { | ||
408 | AR9170_TXQ_BE, | ||
409 | |||
410 | AR9170_TXQ_VI, | ||
411 | AR9170_TXQ_VO, | ||
412 | AR9170_TXQ_BK, | ||
413 | |||
414 | __AR9170_NUM_TXQ, | ||
415 | }; | ||
416 | |||
417 | /* | 407 | /* |
418 | * This is an workaround for several undocumented bugs. | 408 | * This is an workaround for several undocumented bugs. |
419 | * Don't mess with the QoS/AC <-> HW Queue map, if you don't | 409 | * Don't mess with the QoS/AC <-> HW Queue map, if you don't |
@@ -431,7 +421,14 @@ enum ar9170_txq { | |||
431 | * result, this makes the device pretty much useless | 421 | * result, this makes the device pretty much useless |
432 | * for any serious 802.11n setup. | 422 | * for any serious 802.11n setup. |
433 | */ | 423 | */ |
434 | static const u8 ar9170_qmap[__AR9170_NUM_TXQ] = { 2, 1, 0, 3 }; | 424 | enum ar9170_txq { |
425 | AR9170_TXQ_BK = 0, /* TXQ0 */ | ||
426 | AR9170_TXQ_BE, /* TXQ1 */ | ||
427 | AR9170_TXQ_VI, /* TXQ2 */ | ||
428 | AR9170_TXQ_VO, /* TXQ3 */ | ||
429 | |||
430 | __AR9170_NUM_TXQ, | ||
431 | }; | ||
435 | 432 | ||
436 | #define AR9170_TXQ_DEPTH 32 | 433 | #define AR9170_TXQ_DEPTH 32 |
437 | 434 | ||