From: Michael Buesch <mb@bu3sch.de>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Johannes Berg <johannes@sipsolutions.net>,
bcm43xx-dev@lists.berlios.de,
John W Linville <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org
Subject: Re: [PATCH] b43legacy: Fix failure in rate-adjustment mechanism
Date: Sat, 6 Sep 2008 22:07:09 +0200 [thread overview]
Message-ID: <200809062207.10158.mb@bu3sch.de> (raw)
In-Reply-To: <48C2E13B.9020203@lwfinger.net>
On Saturday 06 September 2008 21:59:55 Larry Finger wrote:
> Johannes Berg wrote:
> >
> > The mechanism depends on the card revision, but according to
> > drivers/net/wireless/b43legacy/dma.c it's always via the dma/pio
> > mechanism for legacy cards:
> >
> > if (dev->dev->id.revision < 5) {
> > ring = b43legacy_setup_dmaring(dev, 3, 0, type);
> > if (!ring)
> > goto err_destroy_rx0;
> > dma->rx_ring3 = ring;
> > }
>
> In the V3 specs, I found
>
> "Transmit Status
>
> When this interrupt is set, the retrieve the TransmitStatus. Note that
> on cores with revision < 5, the last DMA controller or PIO queue can
> also also get the DMA recieve done interrupt, which also triggers the
> TransmitStatus retrieval process. The driver should be prepared to
> deal with both interrupts at any time, on any revision. In AP mode,
> this interrupt also initiates the sending of powersave responses."
>
> The implication is that the interrupt will only be generated if we use
> the last (i.e. #5) DMA controller. As we are only using #3, no
> interrupts and handle_irq_status() is dead code.
Ok. I'm pretty sure that the current code is correct for the register
mechanism, _however_ it is dead code and will never be called for
b43legacy. So I'd suggest you just do something like this (manually-hacked patch):
Index: wireless-testing/drivers/net/wireless/b43legacy/xmit.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43legacy/xmit.c
+++ wireless-testing/drivers/net/wireless/b43legacy/xmit.c
@@ -629,7 +629,7 @@ void b43legacy_handle_hwtxstatus(struct
.......
+ tmp <<= 1;
.......
status.pm_indicated = !!(tmp & 0x80);
status.intermediate = !!(tmp & 0x40);
status.for_ampdu = !!(tmp & 0x20);
status.acked = !!(tmp & 0x02);
b43legacy_handle_txstatus(dev, &status);
}
Just leave handle_irq_transmit_status as is.
--
Greetings Michael.
prev parent reply other threads:[~2008-09-06 20:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-06 18:34 [PATCH] b43legacy: Fix failure in rate-adjustment mechanism Larry Finger
2008-09-06 18:41 ` Michael Buesch
2008-09-06 18:44 ` John W. Linville
2008-09-06 18:52 ` Larry Finger
2008-09-06 18:55 ` Michael Buesch
2008-09-06 18:57 ` Johannes Berg
2008-09-06 19:04 ` Michael Buesch
2008-09-06 19:36 ` Larry Finger
2008-09-06 19:41 ` Johannes Berg
2008-09-06 19:59 ` Larry Finger
2008-09-06 20:02 ` Johannes Berg
2008-09-06 20:07 ` Michael Buesch [this message]
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=200809062207.10158.mb@bu3sch.de \
--to=mb@bu3sch.de \
--cc=Larry.Finger@lwfinger.net \
--cc=bcm43xx-dev@lists.berlios.de \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.