e79cd4cddf67d3f09169627f6b59c5c4745717dd
[oweals/openwrt.git] /
1 From 8a3ab2f38f1669e3be6433a1f6b82a077b38c4c7 Mon Sep 17 00:00:00 2001
2 From: Franky Lin <franky.lin@broadcom.com>
3 Date: Wed, 16 May 2018 14:12:02 +0200
4 Subject: [PATCH] brcmfmac: trigger memory dump upon firmware halt signal
5
6 PCIe dongle firmware signals a halt/trap through mailbox interrupt.
7 Trigger a memory dump upon receiving such signal could help to provide
8 useful information for issue debug.
9
10 Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
11 Signed-off-by: Franky Lin <franky.lin@broadcom.com>
12 Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
13 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
14 ---
15  drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 5 +++++
16  1 file changed, 5 insertions(+)
17
18 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
19 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
20 @@ -180,6 +180,7 @@ static struct brcmf_firmware_mapping brc
21  #define BRCMF_D2H_DEV_D3_ACK                   0x00000001
22  #define BRCMF_D2H_DEV_DS_ENTER_REQ             0x00000002
23  #define BRCMF_D2H_DEV_DS_EXIT_NOTE             0x00000004
24 +#define BRCMF_D2H_DEV_FWHALT                   0x10000000
25  
26  #define BRCMF_H2D_HOST_D3_INFORM               0x00000001
27  #define BRCMF_H2D_HOST_DS_ACK                  0x00000002
28 @@ -715,6 +716,10 @@ static void brcmf_pcie_handle_mb_data(st
29                 devinfo->mbdata_completed = true;
30                 wake_up(&devinfo->mbdata_resp_wait);
31         }
32 +       if (dtoh_mb_data & BRCMF_D2H_DEV_FWHALT) {
33 +               brcmf_dbg(PCIE, "D2H_MB_DATA: FW HALT\n");
34 +               brcmf_dev_coredump(&devinfo->pdev->dev);
35 +       }
36  }
37  
38