Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread David Woodhouse
On Sun, 2006-01-01 at 08:54 -0600, Matteo Frigo wrote:
 I would appreciate if other people could confirm whether
 handle_irq_transmit_status() is called on their system, so that I can
 try to further diagnose the problem.

It's not being called here -- I see precisely the same as you. It stops
after sending about 410 packets.

With the built-in wireless (PowerBook5,3) this leads to a TX timeout, a
reset, and then I need to set the ESSID again before it works any more.

With a Belkin F5D7010 I found lying around, it didn't recover from the
error... 

 SoftMAC: assoc request timed out!
 NETDEV WATCHDOG: eth2: transmit timed out
 bcm43xx_interrupt_disable(), 0-0
 bcm43xx: FATAL ERROR (TX timeout): Resetting the chip...
 bcm43xx: Radio turned off
 bcm43xx: DMA 0x0260 (RX) max used slots: 0/64
 bcm43xx: DMA 0x0200 (RX) max used slots: 0/64
 bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
 bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
 bcm43xx: DMA 0x0220 (TX) max used slots: 2/512
 bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
 bcm43xx: Card IRQ register not responding. Giving up.
 bcm43xx: Chip reset failed!

The only way to recover was to physically remove the card... which was
OK a couple of times but then http://david.woodhou.se/dcp_1910.jpg
happened when I removed the card a third time.

Since rebooting, the Belkin card does seem to recover OK from the TX
timeout.

-- 
dwmw2

___
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 19:35, David Woodhouse wrote:
 On Sun, 2006-01-01 at 08:54 -0600, Matteo Frigo wrote:
  I would appreciate if other people could confirm whether
  handle_irq_transmit_status() is called on their system, so that I can
  try to further diagnose the problem.
 
 It's not being called here -- I see precisely the same as you. It stops
 after sending about 410 packets.
 
 With the built-in wireless (PowerBook5,3) this leads to a TX timeout, a
 reset, and then I need to set the ESSID again before it works any more.
 
 With a Belkin F5D7010 I found lying around, it didn't recover from the
 error... 
 
  SoftMAC: assoc request timed out!
  NETDEV WATCHDOG: eth2: transmit timed out
  bcm43xx_interrupt_disable(), 0-0
  bcm43xx: FATAL ERROR (TX timeout): Resetting the chip...

I am not sure why this happens.
It is currently a bit hard to audit the code for the issue,
because the webserver with the specifications is down and I don't
have an up-to-date mirror.

-- 
Greetings Michael.


pgpBKqi1FnLhz.pgp
Description: PGP signature


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 19:35, David Woodhouse wrote:
 On Sun, 2006-01-01 at 08:54 -0600, Matteo Frigo wrote:
  I would appreciate if other people could confirm whether
  handle_irq_transmit_status() is called on their system, so that I can
  try to further diagnose the problem.
 
 It's not being called here -- I see precisely the same as you. It stops
 after sending about 410 packets.
 
 With the built-in wireless (PowerBook5,3) this leads to a TX timeout, a
 reset, and then I need to set the ESSID again before it works any more.
 
 With a Belkin F5D7010 I found lying around, it didn't recover from the
 error... 
 
  SoftMAC: assoc request timed out!
  NETDEV WATCHDOG: eth2: transmit timed out
  bcm43xx_interrupt_disable(), 0-0
  bcm43xx: FATAL ERROR (TX timeout): Resetting the chip...
  bcm43xx: Radio turned off
  bcm43xx: DMA 0x0260 (RX) max used slots: 0/64
  bcm43xx: DMA 0x0200 (RX) max used slots: 0/64
  bcm43xx: DMA 0x0260 (TX) max used slots: 0/512
  bcm43xx: DMA 0x0240 (TX) max used slots: 0/512
  bcm43xx: DMA 0x0220 (TX) max used slots: 2/512
  bcm43xx: DMA 0x0200 (TX) max used slots: 0/512
  bcm43xx: Card IRQ register not responding. Giving up.
  bcm43xx: Chip reset failed!

Can you please check if latest SVN (r994 or later) has the
same behaviour?

-- 
Greetings Michael.


pgpS0bIsLMizf.pgp
Description: PGP signature


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 22:21, Matteo Frigo wrote:
 Michael Buesch [EMAIL PROTECTED] writes:
 
  You have a device with a wlcore rev  5, which uses
  one DMA engine for TX status blobs.
  This code is untested and indeed likely to be wrong.
  I have no facilities to test it (neither has any other
  developer).
 
 Well, I do have a card with rev  5, so I can test it.
 
 On my machine, the code does invoke dma_rx() to read from rx_ring1, so
 at least this part is working.  However, I always get len == 0 when
 (ring-mmio_base == BCM43xx_MMIO_DMA4_BASE), the packet is dropped,
 and the bcm43xx_rx_transmitstatus() mechanism is not invoked.
 
 Any suggestion?

Ok, it should not be dropped. Afaik the len should be ignored
on DMA4. (I can not check, as the specs server is down).
But you may play around by yourself. Do a hack to ignore the
len on DMA4 and pass the xmitstatus blob to bcm43xx_rx_transmitstatus().
The xmitstatus blob is at the beginning of the descriptor buffer
(_no_ frame offset is used) and has a length of
sizeof(struct bcm43xx_hwxmitstatus).
So instead of doing:
len = le16_to_cpu(rxhdr-frame_length);
You might hack something like that:
if (ring-mmio_base == BCM43xx_MMIO_DMA4_BASE)
len = sizeof(struct bcm43xx_hwxmitstatus);
else
len = le16_to_cpu(rxhdr-frame_length);

Please also do another thing. dump the xmitstatus blob, using
bcm43xx_printk_dump() and post the hexdump here.
Just to see if we actually receive sane data.

-- 
Greetings Michael.


pgpP8LV1pMy7v.pgp
Description: PGP signature


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Matteo Frigo
This patch seems to do the trick.  I am ignoring the
bcm43xx_rx_transmitstatus() mechanism and calling
bcm43xx_dma_handle_xmitstatus() directly.



patch
Description: Binary data


Re: [Bcm43xx-dev] handle_irq_transmit_status() never called on iBook, Airport Extreme

2006-01-01 Thread Michael Buesch
On Sunday 01 January 2006 23:52, you wrote:
 This patch seems to do the trick.  I am ignoring the
 bcm43xx_rx_transmitstatus() mechanism and calling
 bcm43xx_dma_handle_xmitstatus() directly.

Ok, very good. I will apply this patch and also remove
the dead bcm43xx_rx_transmitstatus code.
Thanks.

-- 
Greetings Michael.


pgp86mIQOMTHh.pgp
Description: PGP signature