From: Dmitry Osipenko <digetx@gmail.com>
To: Arend Van Spriel <arend.vanspriel@broadcom.com>,
Jean-Philippe Brucker <jean-philippe@linaro.org>,
linux-wireless@vger.kernel.org,
brcm80211-dev-list.pdl@broadcom.com,
brcm80211-dev-list@cypress.com, netdev@vger.kernel.org,
hdegoede@redhat.com
Cc: franky.lin@broadcom.com, hante.meuleman@broadcom.com,
chi-hsien.lin@cypress.com, wright.feng@cypress.com,
kvalo@codeaurora.org, davem@davemloft.net
Subject: Re: [PATCH] brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362
Date: Thu, 26 Dec 2019 17:37:58 +0300 [thread overview]
Message-ID: <141f055a-cd1d-66cb-7052-007cda629d3a@gmail.com> (raw)
In-Reply-To: <16f419a7070.279b.9b12b7fc0a3841636cfb5e919b41b954@broadcom.com>
26.12.2019 12:47, Arend Van Spriel пишет:
> On December 26, 2019 10:23:41 AM Jean-Philippe Brucker
> <jean-philippe@linaro.org> wrote:
>
>> Commit 262f2b53f679 ("brcmfmac: call brcmf_attach() just before calling
>> brcmf_bus_started()") changed the initialization order of the brcmfmac
>> SDIO driver. Unfortunately since brcmf_sdiod_intr_register() is now
>> called before the sdiodev->bus_if initialization, it reads the wrong
>> chip ID and fails to initialize the GPIO on brcm43362. Thus the chip
>> cannot send interrupts and fails to probe:
>>
>> [ 12.517023] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
>> [ 12.531214] ieee80211 phy0: brcmf_bus_started: failed: -110
>> [ 12.536976] ieee80211 phy0: brcmf_attach: dongle is not responding:
>> err=-110
>> [ 12.566467] brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach
>> failed
>>
>> Initialize the bus interface earlier to ensure that
>> brcmf_sdiod_intr_register() properly sets up the OOB interrupt.
>>
>> BugLink: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908438
>> Fixes: 262f2b53f679 ("brcmfmac: call brcmf_attach() just before
>> calling brcmf_bus_started()")
>
> Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
>
>> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
>> ---
>> A workaround [1] disabling the OOB interrupt is being discussed. It
>> works for me, but this patch fixes the wifi problem on my cubietruck.
>
> I missed that one. Too bad it was not sent to linux-wireless as well.
> Good find here. I did see another patch dealing with the OOB interrupt
> on Nvidia Tegra. Now I wonder if this is the same issue.
>
> Regards,
> Arend
>
>> [1]
>> https://lore.kernel.org/linux-arm-kernel/20180930150927.12076-1-hdegoede@redhat.com/
>>
>> ---
>> .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 12 ++++++------
>> 1 file changed, 6 insertions(+), 6 deletions(-)
I haven't seen any driver probe failures due to OOB on NVIDIA Tegra,
only suspend-resume was problematic due to the unbalanced OOB
interrupt-wake enabling.
But maybe checking whether OOB interrupt-wake works by invoking
enable_irq_wake() during brcmf_sdiod_intr_register() causes trouble for
the cubietruck board.
@Jean-Philippe, could you please try this change (on top of recent
linux-next):
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index b684a5b6d904..80d7106b10a9 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -115,13 +115,6 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev
*sdiodev)
}
sdiodev->oob_irq_requested = true;
- ret = enable_irq_wake(pdata->oob_irq_nr);
- if (ret != 0) {
- brcmf_err("enable_irq_wake failed %d\n", ret);
- return ret;
- }
- disable_irq_wake(pdata->oob_irq_nr);
-
sdio_claim_host(sdiodev->func1);
if (sdiodev->bus_if->chip == BRCM_CC_43362_CHIP_ID) {
next prev parent reply other threads:[~2019-12-26 14:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-26 9:20 [PATCH] brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362 Jean-Philippe Brucker
2019-12-26 9:47 ` Arend Van Spriel
2019-12-26 14:37 ` Dmitry Osipenko [this message]
2020-01-06 19:19 ` Jean-Philippe Brucker
2020-01-06 23:15 ` Dmitry Osipenko
2020-01-07 7:23 ` Jean-Philippe Brucker
2020-01-07 16:23 ` Dmitry Osipenko
2020-01-08 7:39 ` Jean-Philippe Brucker
2020-01-08 14:57 ` Dmitry Osipenko
2020-01-26 15:41 ` Kalle Valo
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=141f055a-cd1d-66cb-7052-007cda629d3a@gmail.com \
--to=digetx@gmail.com \
--cc=arend.vanspriel@broadcom.com \
--cc=brcm80211-dev-list.pdl@broadcom.com \
--cc=brcm80211-dev-list@cypress.com \
--cc=chi-hsien.lin@cypress.com \
--cc=davem@davemloft.net \
--cc=franky.lin@broadcom.com \
--cc=hante.meuleman@broadcom.com \
--cc=hdegoede@redhat.com \
--cc=jean-philippe@linaro.org \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=wright.feng@cypress.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).