b43-dev.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: "Rafał Miłecki" <zajec5@gmail.com>
To: b43-dev@lists.infradead.org
Subject: No DMA RX on some BCM4321, on BCM43224 and BCM43225
Date: Tue, 19 Jul 2011 01:12:37 +0200	[thread overview]
Message-ID: <CACna6ryw1t_hRqGcJK3YYFN2aCyVO6LjDMqhfO8t5fu12EFK5Q@mail.gmail.com> (raw)
In-Reply-To: <CACna6rxYEuOMT1EZP6D46c+YAHBhhTXdDmaum+HMwtPT0ZYCfQ@mail.gmail.com>

W dniu 19 lipca 2011 00:39 u?ytkownik Rafa? Mi?ecki <zajec5@gmail.com> napisa?:
> W dniu 18 lipca 2011 22:41 u?ytkownik Michael B?sch <m@bues.ch> napisa?:
>> On Mon, 18 Jul 2011 22:14:50 +0200
>> Rafa? Mi?ecki <zajec5@gmail.com> wrote:
>>
>>> When using DMA on one of my BCM4321s and BCM43224 or BCM43225 I don't
>>> get a single RX IRQ.
>>>
>>> Doing scanning requests sends TX packets to the hardware, and the
>>> ucode generates IRQs for confirming transmitted packets. RX does not
>>> seem to work however. I expected to see "native" beacons, or response
>>> to the scanning request.
>>>
>>> Do you have idea what may be wrong, where should I look at?
>>
>> Is wl still using the same dma engine for
>> RX as older versions did? (what was it? the first?)
>
> Yes. That's what wl does:
>
> 1) Disabling DMA engines (RX part)
> write32 0xfaafc220 <- 0x00000000
> ?read32 0xfaafc230 -> 0x00000000
>
> 2) Enabling DMA engines (RX part)
> ?read32 0xfaafc220 -> 0x00000040
> write32 0xfaafc220 <- 0x0000084d CTL: [38 << 1 (OFFSET) | 0x1 (EN) |
> 0x800 (PARITY)]
> write32 0xfaafc228 <- 0x18948000 LO: [lo addr & ~routing_bits]
> write32 0xfaafc22c <- 0x80000000 HI: [routing & ~ROUT_MASK | routing]

As you may now, wl does a lot of weird operations. Before it really
starts working, it resets everything 10 times.

For DMA it looks like this:
1) Check if DMA is 30 or 32 bit (by setting and reading back "Address
Extension"). wl does it even when TM State High clearly says 64 bit
DMA is availale (and wl knows it!):
ssb_read32(0xf9c) -> 0x500c0000
write32 0xfaafc200 <- 0x00030000
 read32 0xfaafc200 -> 0x00030000
2) Disable every DMA engine (SUSPEND for TX, zero ctl register for TX)
3) Disable every DMA engine (SUSPEND for TX, zero ctl register for TX) (yeah...)
4) Setup rings (pass routing, addresses, set enable, parity, RX header
length for RX)

Maybe disabling engines before setting them up is needed?

-- 
Rafa?

  parent reply	other threads:[~2011-07-18 23:12 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-18 20:14 No DMA RX on some BCM4321, on BCM43224 and BCM43225 Rafał Miłecki
2011-07-18 20:29 ` Larry Finger
2011-07-18 22:30   ` Rafał Miłecki
2011-07-18 23:32   ` Rafał Miłecki
2011-07-19  6:56     ` Rafał Miłecki
2011-07-19 14:46       ` Larry Finger
2011-07-19 15:12         ` Jonas Gorski
2011-07-18 20:41 ` Michael Büsch
2011-07-18 22:39   ` Rafał Miłecki
2011-07-18 22:59     ` Michael Büsch
2011-07-18 23:07       ` Rafał Miłecki
2011-07-18 23:08         ` Michael Büsch
2011-07-18 23:15           ` Rafał Miłecki
2011-07-18 23:24             ` Michael Büsch
2011-07-18 23:29               ` Rafał Miłecki
2011-07-18 23:12     ` Rafał Miłecki [this message]
2011-07-19 22:33 ` David Woodhouse
2011-08-12  1:41   ` David Woodhouse
2011-08-12 10:15     ` [PATCH] b43: Mask out unwanted bits of RX slot address David Woodhouse
2011-08-13 19:10       ` Rafał Miłecki
2011-08-13 19:38         ` Michael Büsch
2011-08-13 22:13       ` Rafał Miłecki
2011-08-13 22:56         ` David Woodhouse
2011-08-14  8:18           ` Rafał Miłecki
2011-08-14  8:19             ` David Woodhouse
2011-08-14  9:02         ` Rafał Miłecki
2011-08-14  9:07           ` Rafał Miłecki
2011-08-14  9:24             ` Rafał Miłecki
2011-08-14  9:31               ` Rafał Miłecki
2011-08-14 11:17               ` Rafał Miłecki
2011-08-14 11:22                 ` Rafał Miłecki
2011-08-14 11:35                 ` David Woodhouse
2011-08-14 15:02                   ` Rafał Miłecki
2011-08-14 15:10                     ` Michael Büsch
2011-08-14 11:38                 ` Rafał Miłecki
2011-08-14 11:52                   ` Michael Büsch
2011-08-14 12:06                   ` David Woodhouse
2011-08-14 13:43                     ` Rafał Miłecki
2011-08-12 10:27     ` [PATCH] Fix alignment issues with DMA TX on BCM4331 David Woodhouse
2011-08-13 19:06       ` Rafał Miłecki
2011-08-13 20:18         ` David Woodhouse
2011-08-13 20:22           ` Rafał Miłecki
2011-08-13 20:36             ` David Woodhouse
2011-08-14  8:09           ` Rafał Miłecki
2011-08-13 21:57       ` Larry Finger
2011-08-13 22:02         ` Rafał Miłecki
2011-08-13 22:07           ` David Woodhouse
2011-08-13 22:12             ` Rafał Miłecki
2011-08-13 22:17               ` David Woodhouse
2011-08-14  7:10                 ` Rafał Miłecki
2011-08-14  7:35                 ` Rafał Miłecki
2011-08-14  8:04                   ` David Woodhouse
2011-08-14  8:14                     ` Rafał Miłecki
2011-08-13 22:14           ` Larry Finger
2011-08-13 22:17             ` David Woodhouse
2011-08-13 22:29               ` Larry Finger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACna6ryw1t_hRqGcJK3YYFN2aCyVO6LjDMqhfO8t5fu12EFK5Q@mail.gmail.com \
    --to=zajec5@gmail.com \
    --cc=b43-dev@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).