public inbox for b43-dev@lists.infradead.org
 help / color / mirror / Atom feed
From: Chris Vine <chris@cvine.freeserve.co.uk>
To: isedev@gmail.com
Cc: Larry Finger <Larry.Finger@lwfinger.net>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	b43-dev <b43-dev@lists.infradead.org>
Subject: BCM4312 / b43 DMA transmission sequence errors
Date: Thu, 14 Mar 2013 21:39:56 +0000	[thread overview]
Message-ID: <20130314213956.05aa6dee@bother.homenet> (raw)
In-Reply-To: <4530943.RJ7WpUJOSz@wks001.ise.net>

On Thu, 14 Mar 2013 14:08:33 +0100
ISE Development <isedev@gmail.com> wrote:
> On Wednesday 13 Mar 2013 21:37:52 Larry Finger wrote:
> > On 03/13/2013 08:06 PM, ISE Development wrote:
> > 
> > >
> > > I've hacked the driver to 'skip' one header and data frame if
> > > receiving an interrupt for the first slot + 2. It's not pretty
> > > and I have literally no idea if it will causes other problems,
> > > but it has allowed me to keep the Wifi connection up for a little
> > > over 3 hours now (as compared to the 45 seconds previously). It
> > > does not appear to be corrupting the data stream (checked by
> > > download large signed binaries and verifying the signature) and
> > > as far as my limited knowledge can tell, it should not be causing
> > > a memory leak.
> > >
> > > The patch is listed below, for reference. However, I do not claim
> > > that it is valid, safe or even reasonsable. It does provide me
> > > with much needed relief though.
> > >
> > > The diff is against the current head of
> > > linville/wireless-testing.git
> > > (d41d9c7419e3ac9c81841f43bbd7639dd0a5819e).
> > >
> > 
> > I am testing the patch on BCM4312 and other cards.
> > 
> > Larry
> > 
> 
> Here's a slighted cleaner version, with comments, in case you are
> considering integrating it.

[snip]

It might look like a bit of a hack (probably one that broadcom have
hidden away in their own wl driver if it is a firmware issue) but it is
certainly effective.

I have applied this patch to the 3.8.2 kernel and for the first time I
get reliable performance from the bcm4312 card in my netbook using the
b43 driver.  I have banged about 5 GB through it and I am continuing to
do so, but it is still up.  I get I would say on average about one TX
ring error (on ring 1 in the case of my card) per 500 MB of
throughput and the frame skip resolves the problem for me.

As this patch also avoid spamming the debug log with shed loads of
error reports once an inconsistency arises, it also reveals that the
inconsistency always begins with an expected status report of 138 and a
report of 140 being received.  Yours, however, may well be different,
and this may be meaningless anyway.

Chris

  reply	other threads:[~2013-03-14 21:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-13 22:31 BCM4312 / b43 DMA transmission sequence errors ISE Development
2013-03-14  0:22 ` Larry Finger
     [not found]   ` <1476129.oNtxuF3Ght@wks001.ise.net>
2013-03-14  2:37     ` Larry Finger
2013-03-14 13:08       ` ISE Development
2013-03-14 21:39         ` Chris Vine [this message]
2013-03-14 22:39           ` ISE Development

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=20130314213956.05aa6dee@bother.homenet \
    --to=chris@cvine.freeserve.co.uk \
    --cc=Larry.Finger@lwfinger.net \
    --cc=b43-dev@lists.infradead.org \
    --cc=isedev@gmail.com \
    --cc=linux-wireless@vger.kernel.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