* [PATCH v2] ath9k: fix another endianness issue
2008-07-20 16:31 [PATCH] ath9k: fix another endianness issue Felix Fietkau
@ 2008-07-20 18:42 ` Felix Fietkau
2008-07-20 22:01 ` [PATCH v3] " Felix Fietkau
1 sibling, 0 replies; 4+ messages in thread
From: Felix Fietkau @ 2008-07-20 18:42 UTC (permalink / raw)
To: linux-wireless, ath9k-devel
DMA descriptors must always be accessed in native endianness.
With this patch and my previous series, Atheros AR9160 now
works for me in STA mode (tested on an IXP4xx board, big-endian)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
updated version, found some more instances of the same thing
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -121,7 +121,7 @@
DPRINTF(sc, ATH_DEBUG_TX_PROC,
"%s: txq depth = %d\n", __func__, txq->axq_depth);
if (txq->axq_link != NULL) {
- *txq->axq_link = cpu_to_le32(bf->bf_daddr);
+ *txq->axq_link = bf->bf_daddr;
DPRINTF(sc, ATH_DEBUG_XMIT,
"%s: link[%u](%p)=%llx (%p)\n",
__func__,
@@ -168,7 +168,7 @@
__func__, txq->axq_qnum,
ito64(bf->bf_daddr), bf->bf_desc);
} else {
- *txq->axq_link = cpu_to_le32(bf->bf_daddr);
+ *txq->axq_link = bf->bf_daddr;
DPRINTF(sc, ATH_DEBUG_XMIT, "%s: link[%u] (%p)=%llx (%p)\n",
__func__,
txq->axq_qnum, txq->axq_link,
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -159,7 +159,7 @@
if (!cabq->axq_link)
ath9k_hw_puttxbuf(ah, cabq->axq_qnum, bfmcast->bf_daddr);
else
- *cabq->axq_link = cpu_to_le32(bfmcast->bf_daddr);
+ *cabq->axq_link = bfmcast->bf_daddr;
/* append the private vap mcast list to the cabq */
@@ -688,11 +688,7 @@
if (if_id != ATH_IF_ID_ANY) {
bf = ath_beacon_generate(sc, if_id);
if (bf != NULL) {
- if (bflink != &bfaddr)
- *bflink = cpu_to_le32(
- bf->bf_daddr);
- else
- *bflink = bf->bf_daddr;
+ *bflink = bf->bf_daddr;
bflink = &bf->bf_desc->ds_link;
bc++;
}
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v3] ath9k: fix another endianness issue
2008-07-20 16:31 [PATCH] ath9k: fix another endianness issue Felix Fietkau
2008-07-20 18:42 ` [PATCH v2] " Felix Fietkau
@ 2008-07-20 22:01 ` Felix Fietkau
2008-07-20 22:26 ` Luis R. Rodriguez
1 sibling, 1 reply; 4+ messages in thread
From: Felix Fietkau @ 2008-07-20 22:01 UTC (permalink / raw)
To: linux-wireless
DMA descriptors must always be accessed in native endianness.
With this patch and my previous series, Atheros AR9160 now
works for me in STA mode (tested on an IXP4xx board, big-endian)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
sorry, my mail client broke the last one (whitespace crap)
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -121,7 +121,7 @@
DPRINTF(sc, ATH_DEBUG_TX_PROC,
"%s: txq depth = %d\n", __func__, txq->axq_depth);
if (txq->axq_link != NULL) {
- *txq->axq_link = cpu_to_le32(bf->bf_daddr);
+ *txq->axq_link = bf->bf_daddr;
DPRINTF(sc, ATH_DEBUG_XMIT,
"%s: link[%u](%p)=%llx (%p)\n",
__func__,
@@ -168,7 +168,7 @@
__func__, txq->axq_qnum,
ito64(bf->bf_daddr), bf->bf_desc);
} else {
- *txq->axq_link = cpu_to_le32(bf->bf_daddr);
+ *txq->axq_link = bf->bf_daddr;
DPRINTF(sc, ATH_DEBUG_XMIT, "%s: link[%u] (%p)=%llx (%p)\n",
__func__,
txq->axq_qnum, txq->axq_link,
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -159,7 +159,7 @@
if (!cabq->axq_link)
ath9k_hw_puttxbuf(ah, cabq->axq_qnum, bfmcast->bf_daddr);
else
- *cabq->axq_link = cpu_to_le32(bfmcast->bf_daddr);
+ *cabq->axq_link = bfmcast->bf_daddr;
/* append the private vap mcast list to the cabq */
@@ -688,11 +688,7 @@
if (if_id != ATH_IF_ID_ANY) {
bf = ath_beacon_generate(sc, if_id);
if (bf != NULL) {
- if (bflink != &bfaddr)
- *bflink = cpu_to_le32(
- bf->bf_daddr);
- else
- *bflink = bf->bf_daddr;
+ *bflink = bf->bf_daddr;
bflink = &bf->bf_desc->ds_link;
bc++;
}
^ permalink raw reply [flat|nested] 4+ messages in thread