• Rafał Miłecki's avatar
    brcmfmac: get chip's default RAM info during PCIe setup · 82f93cf4
    Rafał Miłecki authored
    Getting RAM info just once per driver's lifetime (during chip
    recognition) is not enough as it may get adjusted later (depending on
    the used firmware). Subsequent inits may load different firmwares so a
    full RAM recognition is required on every PCIe setup. This is especially
    important since implementing hardware reset on a firmware crash.
    
    Moreover calling brcmf_chip_get_raminfo() makes sure that RAM core is
    up. It's important as having BCMA_CORE_SYS_MEM down on BCM4366 was
    resulting in firmware failing to initialize and following error:
    [   65.657546] brcmfmac 0000:01:00.0: brcmf_pcie_download_fw_nvram: Invalid shared RAM address 0x04000001
    
    This change makes brcmf_chip_get_raminfo() call during chip recognition
    redundant for PCIe devices but SDIO and USB still need it and it's a
    very small overhead anyway.
    
    Fixes: 4684997d ("brcmfmac: reset PCIe bus on a firmware crash")
    Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    82f93cf4
pcie.c 57.7 KB