* [RFT][PATCH] b43: DMA: debug rings alignment
@ 2013-03-14 20:41 Rafał Miłecki
2013-03-14 20:58 ` ISE Development
0 siblings, 1 reply; 5+ messages in thread
From: Rafał Miłecki @ 2013-03-14 20:41 UTC (permalink / raw)
To: b43-dev
---
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
^ permalink raw reply related [flat|nested] 5+ messages in thread* [RFT][PATCH] b43: DMA: debug rings alignment
2013-03-14 20:41 [RFT][PATCH] b43: DMA: debug rings alignment Rafał Miłecki
@ 2013-03-14 20:58 ` ISE Development
2013-03-14 22:32 ` ISE Development
0 siblings, 1 reply; 5+ messages in thread
From: ISE Development @ 2013-03-14 20:58 UTC (permalink / raw)
To: b43-dev
On Thursday 14 Mar 2013 21:41:21 Rafa? Mi?ecki wrote:
> 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);
Will start testing now...
--
-- isedev
^ permalink raw reply [flat|nested] 5+ messages in thread* [RFT][PATCH] b43: DMA: debug rings alignment
2013-03-14 20:58 ` ISE Development
@ 2013-03-14 22:32 ` ISE Development
2013-03-14 23:46 ` ISE Development
2013-03-15 6:33 ` Rafał Miłecki
0 siblings, 2 replies; 5+ messages in thread
From: ISE Development @ 2013-03-14 22:32 UTC (permalink / raw)
To: b43-dev
On Thursday 14 Mar 2013 21:58:18 ISE Development wrote:
> On Thursday 14 Mar 2013 21:41:21 Rafa? Mi?ecki wrote:
> > 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);
>
> Will start testing now...
Here's the output:
[38667.424687] b43-phy0 debug: [DBG] Testing TX on ring 0x200: 0x0
[38667.424733] b43-phy0 debug: [DBG] Testing TX on ring 0x240: 0x0
[38667.424787] b43-phy0 debug: [DBG] Testing TX on ring 0x280: 0x0
[38667.424840] b43-phy0 debug: [DBG] Testing TX on ring 0x2C0: 0x0
[38667.424894] b43-phy0 debug: [DBG] Testing TX on ring 0x300: 0x0
[38667.424948] b43-phy0 debug: [DBG] Testing RX on ring 0x200: 0x0
--
-- isedev
^ permalink raw reply [flat|nested] 5+ messages in thread* [RFT][PATCH] b43: DMA: debug rings alignment
2013-03-14 22:32 ` ISE Development
@ 2013-03-14 23:46 ` ISE Development
2013-03-15 6:33 ` Rafał Miłecki
1 sibling, 0 replies; 5+ messages in thread
From: ISE Development @ 2013-03-14 23:46 UTC (permalink / raw)
To: b43-dev
On Thursday 14 Mar 2013 23:32:23 ISE Development wrote:
> On Thursday 14 Mar 2013 21:58:18 ISE Development wrote:
> > On Thursday 14 Mar 2013 21:41:21 Rafa? Mi?ecki wrote:
> > > 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);
> >
> > Will start testing now...
>
> Here's the output:
>
> [38667.424687] b43-phy0 debug: [DBG] Testing TX on ring 0x200: 0x0
> [38667.424733] b43-phy0 debug: [DBG] Testing TX on ring 0x240: 0x0
> [38667.424787] b43-phy0 debug: [DBG] Testing TX on ring 0x280: 0x0
> [38667.424840] b43-phy0 debug: [DBG] Testing TX on ring 0x2C0: 0x0
> [38667.424894] b43-phy0 debug: [DBG] Testing TX on ring 0x300: 0x0
> [38667.424948] b43-phy0 debug: [DBG] Testing RX on ring 0x200: 0x0
Other than that, similar error sequence:
- hits slot 138 on ring 3, then out of order errors
- hits slot 208 on ring 1, then out of order errors
- AP times out connection (to be expected)
--
-- isedev
^ permalink raw reply [flat|nested] 5+ messages in thread* [RFT][PATCH] b43: DMA: debug rings alignment
2013-03-14 22:32 ` ISE Development
2013-03-14 23:46 ` ISE Development
@ 2013-03-15 6:33 ` Rafał Miłecki
1 sibling, 0 replies; 5+ messages in thread
From: Rafał Miłecki @ 2013-03-15 6:33 UTC (permalink / raw)
To: b43-dev
2013/3/14 ISE Development <isedev@gmail.com>:
> On Thursday 14 Mar 2013 21:58:18 ISE Development wrote:
>> Will start testing now...
>
> Here's the output:
>
> [38667.424687] b43-phy0 debug: [DBG] Testing TX on ring 0x200: 0x0
> [38667.424733] b43-phy0 debug: [DBG] Testing TX on ring 0x240: 0x0
> [38667.424787] b43-phy0 debug: [DBG] Testing TX on ring 0x280: 0x0
> [38667.424840] b43-phy0 debug: [DBG] Testing TX on ring 0x2C0: 0x0
> [38667.424894] b43-phy0 debug: [DBG] Testing TX on ring 0x300: 0x0
> [38667.424948] b43-phy0 debug: [DBG] Testing RX on ring 0x200: 0x0
Whoops, so this hardware doesn't support unaligned addressing (address
based, not index based). My alternative solution won't even apply in
this case. Thanks for testing.
--
Rafa?
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-03-15 6:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-14 20:41 [RFT][PATCH] b43: DMA: debug rings alignment Rafał Miłecki
2013-03-14 20:58 ` ISE Development
2013-03-14 22:32 ` ISE Development
2013-03-14 23:46 ` ISE Development
2013-03-15 6:33 ` Rafał Miłecki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox