|
@@ -4,7 +4,7 @@
|
|
* RX/TX meta descriptor format
|
|
* RX/TX meta descriptor format
|
|
*
|
|
*
|
|
* Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
|
|
* Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
|
|
- * Copyright 2009, 2010, Christian Lamparter <chunkeey@googlemail.com>
|
|
|
|
|
|
+ * Copyright 2009-2011 Christian Lamparter <chunkeey@googlemail.com>
|
|
*
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* it under the terms of the GNU General Public License as published by
|
|
@@ -278,7 +278,7 @@ struct ar9170_tx_frame {
|
|
struct carl9170_tx_superframe {
|
|
struct carl9170_tx_superframe {
|
|
struct carl9170_tx_superdesc s;
|
|
struct carl9170_tx_superdesc s;
|
|
struct ar9170_tx_frame f;
|
|
struct ar9170_tx_frame f;
|
|
-} __packed;
|
|
|
|
|
|
+} __packed __aligned(4);
|
|
|
|
|
|
#endif /* __CARL9170FW__ */
|
|
#endif /* __CARL9170FW__ */
|
|
|
|
|
|
@@ -328,7 +328,7 @@ struct _carl9170_tx_superframe {
|
|
struct _carl9170_tx_superdesc s;
|
|
struct _carl9170_tx_superdesc s;
|
|
struct _ar9170_tx_hwdesc f;
|
|
struct _ar9170_tx_hwdesc f;
|
|
u8 frame_data[0];
|
|
u8 frame_data[0];
|
|
-} __packed;
|
|
|
|
|
|
+} __packed __aligned(4);
|
|
|
|
|
|
#define CARL9170_TX_SUPERDESC_LEN 24
|
|
#define CARL9170_TX_SUPERDESC_LEN 24
|
|
#define AR9170_TX_HWDESC_LEN 8
|
|
#define AR9170_TX_HWDESC_LEN 8
|
|
@@ -404,16 +404,6 @@ static inline u8 ar9170_get_decrypt_type(struct ar9170_rx_macstatus *t)
|
|
(t->DAidx & 0xc0) >> 6;
|
|
(t->DAidx & 0xc0) >> 6;
|
|
}
|
|
}
|
|
|
|
|
|
-enum ar9170_txq {
|
|
|
|
- AR9170_TXQ_BE,
|
|
|
|
-
|
|
|
|
- AR9170_TXQ_VI,
|
|
|
|
- AR9170_TXQ_VO,
|
|
|
|
- AR9170_TXQ_BK,
|
|
|
|
-
|
|
|
|
- __AR9170_NUM_TXQ,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* This is an workaround for several undocumented bugs.
|
|
* This is an workaround for several undocumented bugs.
|
|
* Don't mess with the QoS/AC <-> HW Queue map, if you don't
|
|
* Don't mess with the QoS/AC <-> HW Queue map, if you don't
|
|
@@ -431,7 +421,14 @@ enum ar9170_txq {
|
|
* result, this makes the device pretty much useless
|
|
* result, this makes the device pretty much useless
|
|
* for any serious 802.11n setup.
|
|
* for any serious 802.11n setup.
|
|
*/
|
|
*/
|
|
-static const u8 ar9170_qmap[__AR9170_NUM_TXQ] = { 2, 1, 0, 3 };
|
|
|
|
|
|
+enum ar9170_txq {
|
|
|
|
+ AR9170_TXQ_BK = 0, /* TXQ0 */
|
|
|
|
+ AR9170_TXQ_BE, /* TXQ1 */
|
|
|
|
+ AR9170_TXQ_VI, /* TXQ2 */
|
|
|
|
+ AR9170_TXQ_VO, /* TXQ3 */
|
|
|
|
+
|
|
|
|
+ __AR9170_NUM_TXQ,
|
|
|
|
+};
|
|
|
|
|
|
#define AR9170_TXQ_DEPTH 32
|
|
#define AR9170_TXQ_DEPTH 32
|
|
|
|
|