[RFT][PATCH] b43: DMA: debug rings alignment

Rafał Miłecki zajec5 at gmail.com
Thu Mar 14 16:41:21 EDT 2013


---
ISE: can you try this with your card? Provide output including "DBG"
messages please.
Hope it compiles.
---
 drivers/net/wireless/b43/dma.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index 38bc5a7..30da6ce 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -915,6 +915,21 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
 	ring->last_injected_overflow = jiffies;
 #endif
 
+	if (type == B43_DMA_64BIT) {
+		u32 tmp;
+		if (for_tx) {
+			b43_write32(dev, ring->mmio_base + B43_DMA64_TXRINGLO, 0xff0);
+			tmp = b43_read32(dev, ring->mmio_base + B43_DMA64_TXRINGLO);
+			pr_info("[DBG] Testing TX on ring 0x%X: 0x%X\n", ring->mmio_base, tmp);
+		} else {
+			b43_write32(dev, ring->mmio_base + B43_DMA64_RXRINGLO, 0xff0);
+			tmp = b43_read32(dev, ring->mmio_base + B43_DMA64_RXRINGLO);
+			pr_info("[DBG] Testing RX on ring 0x%X: 0x%X\n", ring->mmio_base, tmp);
+		}
+	} else {
+		pr_err("[DBG] Whoops, it's not 64b DMA engine!\n");
+	}
+
 	if (for_tx) {
 		/* Assumption: B43_TXRING_SLOTS can be divided by TX_SLOTS_PER_FRAME */
 		BUILD_BUG_ON(B43_TXRING_SLOTS % TX_SLOTS_PER_FRAME != 0);
-- 
1.7.10.4




More information about the b43-dev mailing list