Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp1586561ybv; Thu, 20 Feb 2020 23:47:53 -0800 (PST) X-Google-Smtp-Source: APXvYqzfiOt978Ex07dlwtKZANkX8GiskDb/XZv1GuulMvQ+XdOAC0KeTmolhvpMAFi/Aq2EzdtD X-Received: by 2002:a9d:7d87:: with SMTP id j7mr25895980otn.159.1582271273652; Thu, 20 Feb 2020 23:47:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582271273; cv=none; d=google.com; s=arc-20160816; b=z4BU/Eqg4dFRheMJkVx7jTruTk2o+wcOjvgl/FSRMeYfjYJunAhfrYGv3lOBkEe4Oq QLW4tYoMn959mBAjacaMonYgjwcJ/TZzFdLW53FBj8BSuRyPEsg3BRVND4S/PAwyJDIw tJOgmUDY+YRh1/1sY6XuuRnx/HsC9CXISmKzduoQu9NtCJVnFlwo7dK6JjxuquLEFiGZ DoaoTFi6d7nlqt9kciSfGSUc6Uxt4Nm84YUJohHeTopF/U94LJrLHQVkvJTeiX73i1iu E0Sl0bcXrSBTT/jCMlNCJT/uhbxEampYDEA2ajW4Vt96J3d2jPaCrHJqulcQqyQLR5vv X5bA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=N7YcKDln3XA58herhG0/J8vT9Cnt7+W3WT+rgTka7U0=; b=kptekjsiUsx42kuwea7YFf2a/c4YFsqkwFFdREaE2KgUTuND11DAmiW7pp4nA3CtD1 E6PkNUf6HmlOFYd/XFgSVbaKeItwhIB1rEmz7dO7ImlFwlYuhz8TBZxTJWs7xAqQSzrZ 9rGdWczHIT9+2FlLLTmdGDSnj7vD9fs0MBPgSlKmL5vuAK8VPXODYvHgnk6CjTipvFYG fqfiRL0inashCkZqOVGOFbh2V9tFoU6Ew7Ti6ROSmbcK6pZL65ETz11YJBJDiiE5RadM xOcMkN34fRK7C0IIyxLs9XjEPSIatBk4FSE2eSwIVanqghz3s3rtnTxfdpRrj2ajwW7x PQOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Wmyv3Ffz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d12si1055575otc.307.2020.02.20.23.47.40; Thu, 20 Feb 2020 23:47:53 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Wmyv3Ffz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728220AbgBUHrN (ORCPT + 99 others); Fri, 21 Feb 2020 02:47:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:42972 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728327AbgBUHrM (ORCPT ); Fri, 21 Feb 2020 02:47:12 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3689624650; Fri, 21 Feb 2020 07:47:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1582271231; bh=a/JbiaU6A10GtmsEI/rx+V/8XXumfKNN7zGs8yipPCQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wmyv3FfzFmeK07lkLQ6rCjAavRPJKyAmEYLuDv7DRZ1V9zvJmOtwPSJN/euybR8dT fwcJwErM+3Df77oFEDY6p14Vsxmkw0eLGwWOywlvpSUbLzqLoUa5JtkLoUC0UG0plm 6tS+EPdz7bh6+Lt2ZU96c8qXDpoJXpW66eXvlGj4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jean-Philippe Brucker , Arend van Spriel , Kalle Valo , Sasha Levin Subject: [PATCH 5.5 089/399] brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362 Date: Fri, 21 Feb 2020 08:36:54 +0100 Message-Id: <20200221072410.976008175@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200221072402.315346745@linuxfoundation.org> References: <20200221072402.315346745@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jean-Philippe Brucker [ Upstream commit 8c8e60fb86a90a30721bbd797f58f96b3980dcc1 ] 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()") Signed-off-by: Jean-Philippe Brucker Reviewed-by: Arend van Spriel Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin --- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 1dea0178832ea..a935993a3c514 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -4226,6 +4226,12 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err, } if (err == 0) { + /* Assign bus interface call back */ + sdiod->bus_if->dev = sdiod->dev; + sdiod->bus_if->ops = &brcmf_sdio_bus_ops; + sdiod->bus_if->chip = bus->ci->chip; + sdiod->bus_if->chiprev = bus->ci->chiprev; + /* Allow full data communication using DPC from now on. */ brcmf_sdiod_change_state(bus->sdiodev, BRCMF_SDIOD_DATA); @@ -4242,12 +4248,6 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err, sdio_release_host(sdiod->func1); - /* Assign bus interface call back */ - sdiod->bus_if->dev = sdiod->dev; - sdiod->bus_if->ops = &brcmf_sdio_bus_ops; - sdiod->bus_if->chip = bus->ci->chip; - sdiod->bus_if->chiprev = bus->ci->chiprev; - err = brcmf_alloc(sdiod->dev, sdiod->settings); if (err) { brcmf_err("brcmf_alloc failed\n"); -- 2.20.1