From: Lukas Wunner <lukas@wunner.de>
To: "Michael Büsch" <m@bues.ch>
Cc: linux-wlan-client-support-list@broadcom.com, 1332647@gmail.com,
linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org
Subject: BCM4331 reset leads to wl lockup
Date: Sun, 29 May 2016 13:02:48 +0200 [thread overview]
Message-ID: <20160529110248.GA12632@wunner.de> (raw)
In-Reply-To: <20160526144246.217bfff1@wiggum>
On Thu, May 26, 2016 at 02:42:46PM +0200, Michael B?sch wrote:
> On Thu, 26 May 2016 14:12:10 +0200 Lukas Wunner <lukas@wunner.de> wrote:
> > + mmio = early_ioremap(addr, BCM4331_MMIO_SIZE);
> > + if (!mmio) {
> > + pr_err("Cannot iomap Apple AirPort card\n");
> > + return;
> > + }
> > + pr_info("Resetting Apple AirPort card\n");
> > + iowrite32(BCMA_RESET_CTL_RESET,
> > + mmio + (1 * BCMA_CORE_SIZE) + BCMA_RESET_CTL);
> > + early_iounmap(mmio, BCM4331_MMIO_SIZE);
>
> Just writing that bit is not the correct reset procedure.
> So it might cause problems depending on how wl does the core reset
> later.
>
> Please try this:
> - wait for BCMA_RESET_ST to be 0
> - set reset bit
> - flush
> - wait 1us
> - reset reset bit
> - flush
> - wait 10us
>
> See bcma_core_disable()
It turned out that the lockups are triggered by bec3cfdca36b
("net: skb_segment() provides list head and tail") in Linux 3.18
and that Eric Duzamet has kindly provided a fix for broadcom-sta:
https://bugs.gentoo.org/show_bug.cgi?id=523326#c24
https://523326.bugs.gentoo.org/attachment.cgi?id=393374
@Broadcom: Please consider releasing a new driver version which
incorporates that patch. The latest version 6.30.223.271 of your
driver is still missing it even though the issue has existed for
almost 18 months now.
Nevertheless I amended my patch to follow the reset procedure you
specified above, just to cover all bases. Thanks Michael.
Best regards,
Lukas
WARNING: multiple messages have this Message-ID (diff)
From: Lukas Wunner <lukas@wunner.de>
To: "Michael Büsch" <m@bues.ch>
Cc: linux-wlan-client-support-list@broadcom.com, 1332647@gmail.com,
linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org
Subject: Re: BCM4331 reset leads to wl lockup
Date: Sun, 29 May 2016 13:02:48 +0200 [thread overview]
Message-ID: <20160529110248.GA12632@wunner.de> (raw)
In-Reply-To: <20160526144246.217bfff1@wiggum>
On Thu, May 26, 2016 at 02:42:46PM +0200, Michael Büsch wrote:
> On Thu, 26 May 2016 14:12:10 +0200 Lukas Wunner <lukas@wunner.de> wrote:
> > + mmio = early_ioremap(addr, BCM4331_MMIO_SIZE);
> > + if (!mmio) {
> > + pr_err("Cannot iomap Apple AirPort card\n");
> > + return;
> > + }
> > + pr_info("Resetting Apple AirPort card\n");
> > + iowrite32(BCMA_RESET_CTL_RESET,
> > + mmio + (1 * BCMA_CORE_SIZE) + BCMA_RESET_CTL);
> > + early_iounmap(mmio, BCM4331_MMIO_SIZE);
>
> Just writing that bit is not the correct reset procedure.
> So it might cause problems depending on how wl does the core reset
> later.
>
> Please try this:
> - wait for BCMA_RESET_ST to be 0
> - set reset bit
> - flush
> - wait 1us
> - reset reset bit
> - flush
> - wait 10us
>
> See bcma_core_disable()
It turned out that the lockups are triggered by bec3cfdca36b
("net: skb_segment() provides list head and tail") in Linux 3.18
and that Eric Duzamet has kindly provided a fix for broadcom-sta:
https://bugs.gentoo.org/show_bug.cgi?id=523326#c24
https://523326.bugs.gentoo.org/attachment.cgi?id=393374
@Broadcom: Please consider releasing a new driver version which
incorporates that patch. The latest version 6.30.223.271 of your
driver is still missing it even though the issue has existed for
almost 18 months now.
Nevertheless I amended my patch to follow the reset procedure you
specified above, just to cover all bases. Thanks Michael.
Best regards,
Lukas
next prev parent reply other threads:[~2016-05-29 11:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-26 12:12 BCM4331 reset leads to wl lockup Lukas Wunner
2016-05-26 12:12 ` Lukas Wunner
2016-05-26 12:42 ` Michael Büsch
2016-05-26 12:42 ` Michael Büsch
2016-05-29 11:02 ` Lukas Wunner [this message]
2016-05-29 11:02 ` Lukas Wunner
2016-05-29 18:48 ` Arend van Spriel
2016-05-29 18:48 ` Arend van Spriel
2016-05-29 18:55 ` Arend van Spriel
2016-05-29 18:55 ` Arend van Spriel
2016-05-29 23:52 ` Lukas Wunner
2016-05-29 23:52 ` Lukas Wunner
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=20160529110248.GA12632@wunner.de \
--to=lukas@wunner.de \
--cc=1332647@gmail.com \
--cc=b43-dev@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linux-wlan-client-support-list@broadcom.com \
--cc=m@bues.ch \
/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.