brcmfmac: pcie: Read the console on init and shutdown
authorHector Martin <marcan@marcan.st>
Mon, 31 Jan 2022 16:07:13 +0000 (01:07 +0900)
committerKalle Valo <kvalo@kernel.org>
Tue, 1 Feb 2022 12:27:08 +0000 (14:27 +0200)
This allows us to get console messages if the firmware crashed during
early init, or if an operation failed and we're about to shut down.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220131160713.245637-10-marcan@marcan.st
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c

index 55f0111..97f0f13 100644 (file)
@@ -744,6 +744,8 @@ static void brcmf_pcie_bus_console_read(struct brcmf_pciedev_info *devinfo,
                return;
 
        console = &devinfo->shared.console;
+       if (!console->base_addr)
+               return;
        addr = console->base_addr + BRCMF_CONSOLE_WRITEIDX_OFFSET;
        newidx = brcmf_pcie_read_tcm32(devinfo, addr);
        while (newidx != console->read_idx) {
@@ -1520,6 +1522,7 @@ brcmf_pcie_init_share_ram_info(struct brcmf_pciedev_info *devinfo,
                  shared->max_rxbufpost, shared->rx_dataoffset);
 
        brcmf_pcie_bus_console_init(devinfo);
+       brcmf_pcie_bus_console_read(devinfo, false);
 
        return 0;
 }
@@ -1959,6 +1962,7 @@ brcmf_pcie_remove(struct pci_dev *pdev)
                return;
 
        devinfo = bus->bus_priv.pcie->devinfo;
+       brcmf_pcie_bus_console_read(devinfo, false);
 
        devinfo->state = BRCMFMAC_PCIE_STATE_DOWN;
        if (devinfo->ci)