Showing the firmware error allows to quickly give a clue what
went wrong and directly look in the firmware code that gave us
back the error.

Reviewed-by: Franky (Zhenhui) Lin <fran...@broadcom.com>
Reviewed-by: Hante Meuleman <meule...@broadcom.com>
Reviewed-by: Daniel (Deognyoun) Kim <de...@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <piete...@broadcom.com>
Signed-off-by: Arend van Spriel <ar...@broadcom.com>
---
 drivers/net/wireless/brcm80211/brcmfmac/fwil.c | 73 +++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fwil.c 
b/drivers/net/wireless/brcm80211/brcmfmac/fwil.c
index ded328f..42da73e 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/fwil.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/fwil.c
@@ -32,6 +32,76 @@
 
 #define MAX_HEX_DUMP_LEN       64
 
+#ifdef DEBUG
+static const char * const brcmf_fil_errstr[] = {
+       "BCME_OK",
+       "BCME_ERROR",
+       "BCME_BADARG",
+       "BCME_BADOPTION",
+       "BCME_NOTUP",
+       "BCME_NOTDOWN",
+       "BCME_NOTAP",
+       "BCME_NOTSTA",
+       "BCME_BADKEYIDX",
+       "BCME_RADIOOFF",
+       "BCME_NOTBANDLOCKED",
+       "BCME_NOCLK",
+       "BCME_BADRATESET",
+       "BCME_BADBAND",
+       "BCME_BUFTOOSHORT",
+       "BCME_BUFTOOLONG",
+       "BCME_BUSY",
+       "BCME_NOTASSOCIATED",
+       "BCME_BADSSIDLEN",
+       "BCME_OUTOFRANGECHAN",
+       "BCME_BADCHAN",
+       "BCME_BADADDR",
+       "BCME_NORESOURCE",
+       "BCME_UNSUPPORTED",
+       "BCME_BADLEN",
+       "BCME_NOTREADY",
+       "BCME_EPERM",
+       "BCME_NOMEM",
+       "BCME_ASSOCIATED",
+       "BCME_RANGE",
+       "BCME_NOTFOUND",
+       "BCME_WME_NOT_ENABLED",
+       "BCME_TSPEC_NOTFOUND",
+       "BCME_ACM_NOTSUPPORTED",
+       "BCME_NOT_WME_ASSOCIATION",
+       "BCME_SDIO_ERROR",
+       "BCME_DONGLE_DOWN",
+       "BCME_VERSION",
+       "BCME_TXFAIL",
+       "BCME_RXFAIL",
+       "BCME_NODEVICE",
+       "BCME_NMODE_DISABLED",
+       "BCME_NONRESIDENT",
+       "BCME_SCANREJECT",
+       "BCME_USAGE_ERROR",
+       "BCME_IOCTL_ERROR",
+       "BCME_SERIAL_PORT_ERR",
+       "BCME_DISABLED",
+       "BCME_DECERR",
+       "BCME_ENCERR",
+       "BCME_MICERR",
+       "BCME_REPLAY",
+       "BCME_IE_NOTFOUND",
+};
+
+static const char *brcmf_fil_get_errstr(u32 err)
+{
+       if (err >= ARRAY_SIZE(brcmf_fil_errstr))
+               return "(unknown)";
+
+       return brcmf_fil_errstr[err];
+}
+#else
+static const char *brcmf_fil_get_errstr(u32 err)
+{
+       return "";
+}
+#endif /* DEBUG */
 
 static s32
 brcmf_fil_cmd_data(struct brcmf_if *ifp, u32 cmd, void *data, u32 len, bool 
set)
@@ -54,7 +124,8 @@ brcmf_fil_cmd_data(struct brcmf_if *ifp, u32 cmd, void 
*data, u32 len, bool set)
        if (err >= 0)
                err = 0;
        else
-               brcmf_dbg(FIL, "Failed err=%d\n", err);
+               brcmf_dbg(FIL, "Failed: %s (%d)\n",
+                         brcmf_fil_get_errstr((u32)(-err)), err);
 
        return err;
 }
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to