• Hans de Goede's avatar
    brcmfmac: Fix brcmf_chip_ai_coredisable not applying reset bits to BCMA_IOCTL · ffa216bb
    Hans de Goede authored
    brcmfmac has been broken on my cubietruck with a BCM43362:
    
    brcmfmac: brcmf_chip_recognition: found AXI chip: BCM43362, rev=1
    brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0:
            Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
    
    since commit 53036261: "brcmfmac: update core reset and disable routines".
    
    The problem is that since this commit brcmf_chip_ai_resetcore no longer sets
    BCMA_IOCTL itself before bringing the core out of reset, instead relying on
    brcmf_chip_ai_coredisable to do so. But brcmf_chip_ai_coredisable is a nop
    of the chip is already in reset. This patch modifies brcmf_chip_ai_coredisable
    to always set BCMA_IOCTL even if the core is already in reset.
    
    This fixes brcmfmac hanging in firmware loading on my board.
    
    Cc: stable@vger.kernel.org # v3.14
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Acked-by: default avatarArend van Spriel <arend@broadcom.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    ffa216bb
chip.c 27.2 KB