diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2019-02-20 23:05:48 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2019-02-20 23:06:16 +0100 |
commit | 2d139450a3be401e11c2a2b6f817bdf6c421d6db (patch) | |
tree | 5df9414fa89ba053bda529ab9c3b2baccfe35b41 /package/kernel/mac80211/patches/brcm/350-v5.1-brcmfmac-print-firmware-reported-ring-status-errors.patch | |
parent | 81adb132daa529167cc4df9849882ca144e7cba7 (diff) | |
download | upstream-2d139450a3be401e11c2a2b6f817bdf6c421d6db.tar.gz upstream-2d139450a3be401e11c2a2b6f817bdf6c421d6db.tar.bz2 upstream-2d139450a3be401e11c2a2b6f817bdf6c421d6db.zip |
mac80211: backport more brcmfmac changes queued for the 5.1
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'package/kernel/mac80211/patches/brcm/350-v5.1-brcmfmac-print-firmware-reported-ring-status-errors.patch')
-rw-r--r-- | package/kernel/mac80211/patches/brcm/350-v5.1-brcmfmac-print-firmware-reported-ring-status-errors.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/brcm/350-v5.1-brcmfmac-print-firmware-reported-ring-status-errors.patch b/package/kernel/mac80211/patches/brcm/350-v5.1-brcmfmac-print-firmware-reported-ring-status-errors.patch new file mode 100644 index 0000000000..b41b9cebf4 --- /dev/null +++ b/package/kernel/mac80211/patches/brcm/350-v5.1-brcmfmac-print-firmware-reported-ring-status-errors.patch @@ -0,0 +1,67 @@ +From c988b78244df8216902e20de536434e2f474a37e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Fri, 8 Feb 2019 15:24:39 +0100 +Subject: [PATCH] brcmfmac: print firmware reported ring status errors +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Firmware is capable of reporting ring status. It's used e.g. to signal +some problem with a specific ring setup. This patch adds support for +printing ring & error number which may be useful for debugging setup +issues. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + .../broadcom/brcm80211/brcmfmac/msgbuf.c | 25 +++++++++++++++++++ + 1 file changed, 25 insertions(+) + +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c +@@ -134,6 +134,14 @@ struct msgbuf_completion_hdr { + __le16 flow_ring_id; + }; + ++/* Data struct for the MSGBUF_TYPE_RING_STATUS */ ++struct msgbuf_ring_status { ++ struct msgbuf_common_hdr msg; ++ struct msgbuf_completion_hdr compl_hdr; ++ __le16 write_idx; ++ __le32 rsvd0[5]; ++}; ++ + struct msgbuf_rx_event { + struct msgbuf_common_hdr msg; + struct msgbuf_completion_hdr compl_hdr; +@@ -1180,6 +1188,19 @@ brcmf_msgbuf_process_rx_complete(struct + brcmf_netif_rx(ifp, skb); + } + ++static void brcmf_msgbuf_process_ring_status(struct brcmf_msgbuf *msgbuf, ++ void *buf) ++{ ++ struct msgbuf_ring_status *ring_status = buf; ++ int err; ++ ++ err = le16_to_cpu(ring_status->compl_hdr.status); ++ if (err) { ++ int ring = le16_to_cpu(ring_status->compl_hdr.flow_ring_id); ++ ++ brcmf_err("Firmware reported ring %d error: %d\n", ring, err); ++ } ++} + + static void + brcmf_msgbuf_process_flow_ring_create_response(struct brcmf_msgbuf *msgbuf, +@@ -1241,6 +1262,10 @@ static void brcmf_msgbuf_process_msgtype + + msg = (struct msgbuf_common_hdr *)buf; + switch (msg->msgtype) { ++ case MSGBUF_TYPE_RING_STATUS: ++ brcmf_dbg(MSGBUF, "MSGBUF_TYPE_RING_STATUS\n"); ++ brcmf_msgbuf_process_ring_status(msgbuf, buf); ++ break; + case MSGBUF_TYPE_FLOW_RING_CREATE_CMPLT: + brcmf_dbg(MSGBUF, "MSGBUF_TYPE_FLOW_RING_CREATE_CMPLT\n"); + brcmf_msgbuf_process_flow_ring_create_response(msgbuf, buf); |