Hi Brian ;-)
Brian J. Murrell wrote:
> Please excuse the cross-posting but this thread started on openwrt-users
> but the findings are probably more relevant to the developers.
>
> On Tue, 2008-10-21 at 17:46 +0200, Michael Buesch wrote:
>> Lookup b43_interrupt_handler() and look for the "reason" variable.
>> Fairly straightforward, IMO.
>
> OK. I've managed to tool up a b43.ko with a printk and this is what I
> see, before I even pump anything through the wireless link (i.e. up in
> Master mode, and idle):
>
> b43_interrupt_handler: 0xc18a
> b43_interrupt_handler: 0x418e
> b43_interrupt_handler: 0xc18a
> b43_interrupt_handler: 0x418e
> b43_interrupt_handler: 0xc18a
> b43_interrupt_handler: 0x418e
> ...
>
> but looking at the IRQ reasons in b43.h I see a "hole". Let's take the
> first one for example:
>
> 0xc18a:
> 0xc000 = B43_IRQ_DMA | B43_IRQ_TIMER1
> 0x0100 = B43_IRQ_PIO_WORKAROUND
> 0x0080 = undefined
> 0x000a = B43_IRQ_BEACON_TX_OK | B43_IRQ_BEACON
>
> The next one:
> 0x418e:
> 0x4000 = B43_IRQ_TIMER1
> 0x0100 = B43_IRQ_PIO_WORKAROUND
> 0x0080 = undefined
> 0x000e = B43_IRQ_BEACON_TX_OK | B43_IRQ_TBTT_INDI | B43_IRQ_BEACON
>
> I wonder what 0x0080 is.
>
> So I tried masking off B43_IRQ_BEACON IRQs and sure no more "noise" but
> very very few reasons being logged at all, including none during normal
> tx/rx. Beacons must be in every interrupt.
>
> So let's just mask off the B43_IRQ_TX_OK interrupts and send some bulk
> data (which drives the softirq through the ceiling). The last packets
> through the router caused the following interrupts:
>
> b43_interrupt_handler: 0x458e
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0x458e
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0x458e
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0x458e
> b43_interrupt_handler: 0xc58a
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0xc58a
> b43_interrupt_handler: 0xc5ce
> b43_interrupt_handler: 0x458e
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0xc58a
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0xc5ca
> b43_interrupt_handler: 0x458e
> b43_interrupt_handler: 0xc58a
> b43_interrupt_handler: 0xc58a
> b43_interrupt_handler: 0xc58a
>
> Which are:
>
> 0x458e: B43_IRQ_TIMER1 |
> 0x400 (unknown) | B43_IRQ_PIO_WORKAROUND |
> 0x80 (unknown) |
> B43_IRQ_BEACON_TX_OK | B43_IRQ_TBTT_INDI | B43_IRQ_BEACON
>
> 0xc5ca: B43_IRQ_DMA | B43_IRQ_TIMER1 |
> 0x400 (unknown) | B43_IRQ_PIO_WORKAROUND |
> 0x80 (unknown) | B43_IRQ_PMQ |
> B43_IRQ_BEACON_TX_OK | B43_IRQ_BEACON
>
> 0xc58a: B43_IRQ_DMA | B43_IRQ_TIMER1 |
> 0x400 (unknown) | B43_IRQ_PIO_WORKAROUND |
> 0x80 (unknown) |
> B43_IRQ_BEACON_TX_OK | B43_IRQ_BEACON
>
> 0xc5ce: B43_IRQ_DMA | B43_IRQ_TIMER1 |
> 0x400 (unknown) | B43_IRQ_PIO_WORKAROUND |
> 0x80 (unknown) | B43_IRQ_PMQ |
> B43_IRQ_BEACON_TX_OK | B43_IRQ_TBTT_INDI | B43_IRQ_BEACON
>
> All packets had two unknown IRQ masks, 0x400 and 0x80.
>
> It's also interesting to note that with relation to the issue of the
> wireless interface all of a sudden stopping it's transmission of data
> after a certain amount of bulk, which a number of people have reported;
> it seems to correlate to a:
>
> b43-phy7 debug: Updated beacon template at 0x68
>
> event.
>
> Is any of this useful?
>
Very much + thanx
--
Gregers Petersen
People-stuff, layer 8 and anthropology
glp on irc
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (bleeding edge) -----------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
_______________________________________________
openwrt-devel mailing list
[email protected]
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel