Re: [PATCH] brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362
From: Arend Van Spriel <arend.vanspriel@broadcom.com>
Date: 2019-12-26 09:47:25
Also in:
linux-wireless
On December 26, 2019 10:23:41 AM Jean-Philippe Brucker [off-list ref] 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 <redacted> --- 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/ (local) --- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)