[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200106191919.GA826263@myrica>
Date: Mon, 6 Jan 2020 20:19:19 +0100
From: Jean-Philippe Brucker <jean-philippe@...aro.org>
To: Dmitry Osipenko <digetx@...il.com>
Cc: Arend Van Spriel <arend.vanspriel@...adcom.com>,
linux-wireless@...r.kernel.org,
brcm80211-dev-list.pdl@...adcom.com,
brcm80211-dev-list@...ress.com, netdev@...r.kernel.org,
hdegoede@...hat.com, franky.lin@...adcom.com,
hante.meuleman@...adcom.com, chi-hsien.lin@...ress.com,
wright.feng@...ress.com, kvalo@...eaurora.org, davem@...emloft.net
Subject: Re: [PATCH] brcmfmac: sdio: Fix OOB interrupt initialization on
brcm43362
Hi Dmitry,
On Thu, Dec 26, 2019 at 05:37:58PM +0300, Dmitry Osipenko wrote:
> 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):
Sorry for the delay, linux-next doesn't boot for me at the moment and I
have little time to investigate why, so I might retry closer to the merge
window.
However, isn't the interrupt-wake issue independent from the problem
(introduced in v4.17) that my patch fixes? I applied "brcmfmac: Keep OOB
wake-interrupt disabled when it shouldn't be enabled" on v5.5-rc5 and it
doesn't seem to cause a regression, but the wifi only works if I apply my
patch as well.
Thanks,
Jean
>
> 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) {
Powered by blists - more mailing lists