Re: [PATCH 4.12] brcmfmac: put chip into passive mode (when attaching) just once
From: Arend Van Spriel <arend.vanspriel@broadcom.com>
Date: 2017-02-24 13:31:49
On 24-2-2017 14:10, Rafał Miłecki wrote:
From: Rafał Miłecki <rafal@milecki.pl> It avoids some unnecessary work. Most likely there wasn't much sense in doing this before bus reset anyway, as reset is supposed to put chip into default state. In PCIe code (only bus implementing reset) we e.g. use watchdog to perform a chip "reboot".
Sorry, but removing the fisrt passive call will cause chip lockups for sure on certain systems. We learned the hard way :-p Regards, Arend
quoted hunk ↗ jump to hunk
Signed-off-by: Rafał Miłecki <rafal@milecki.pl> --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c index 05f22ff81d60..670f2f50f9e5 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c@@ -967,16 +967,14 @@ static int brcmf_chip_recognition(struct brcmf_chip_priv *ci) if (ret) return ret; - /* assure chip is passive for core access */ - brcmf_chip_set_passive(&ci->pub); - /* Call bus specific reset function now. Cores have been determined * but further access may require a chip specific reset at this point. */ - if (ci->ops->reset) { + if (ci->ops->reset) ci->ops->reset(ci->ctx, &ci->pub); - brcmf_chip_set_passive(&ci->pub); - } + + /* assure chip is passive for core access */ + brcmf_chip_set_passive(&ci->pub); return brcmf_chip_get_raminfo(ci); }