diff options
author | Arend van Spriel <arend@broadcom.com> | 2013-10-15 09:44:47 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-10-18 14:06:57 -0400 |
commit | 76584ece258dd71066b536fe8636e64537d21011 (patch) | |
tree | f5e90aede3debeaba426bfb52d957b5f319d2925 | |
parent | b4caee6a4a9cc7561b2f40f10ce5399d43570d9c (diff) |
brcmfmac: add tracepoint for capturing the SDPCM header
Having the SDPCM header information in the traces is a valuable
piece of information.
Reviewed-by: Franky Lin <frankyl@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c index 67f05db4b9b8..ab1c919f7b08 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | |||
@@ -1147,6 +1147,8 @@ static int brcmf_sdio_hdparse(struct brcmf_sdio *bus, u8 *header, | |||
1147 | u8 rx_seq, fc, tx_seq_max; | 1147 | u8 rx_seq, fc, tx_seq_max; |
1148 | u32 swheader; | 1148 | u32 swheader; |
1149 | 1149 | ||
1150 | trace_brcmf_sdpcm_hdr(false, header); | ||
1151 | |||
1150 | /* hw header */ | 1152 | /* hw header */ |
1151 | len = get_unaligned_le16(header); | 1153 | len = get_unaligned_le16(header); |
1152 | checksum = get_unaligned_le16(header + sizeof(u16)); | 1154 | checksum = get_unaligned_le16(header + sizeof(u16)); |
@@ -1269,6 +1271,7 @@ static void brcmf_sdio_hdpack(struct brcmf_sdio *bus, u8 *header, | |||
1269 | SDPCM_DOFFSET_MASK; | 1271 | SDPCM_DOFFSET_MASK; |
1270 | *(((__le32 *)header) + 1) = cpu_to_le32(sw_header); | 1272 | *(((__le32 *)header) + 1) = cpu_to_le32(sw_header); |
1271 | *(((__le32 *)header) + 2) = 0; | 1273 | *(((__le32 *)header) + 2) = 0; |
1274 | trace_brcmf_sdpcm_hdr(true, header); | ||
1272 | } | 1275 | } |
1273 | 1276 | ||
1274 | static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq) | 1277 | static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq) |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h b/drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h index 4605a1dd6366..3c67529b9074 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h | |||
@@ -110,6 +110,23 @@ TRACE_EVENT(brcmf_bdchdr, | |||
110 | TP_printk("bdc: prio=%d siglen=%d", __entry->prio, __entry->siglen) | 110 | TP_printk("bdc: prio=%d siglen=%d", __entry->prio, __entry->siglen) |
111 | ); | 111 | ); |
112 | 112 | ||
113 | TRACE_EVENT(brcmf_sdpcm_hdr, | ||
114 | TP_PROTO(bool tx, void *data), | ||
115 | TP_ARGS(tx, data), | ||
116 | TP_STRUCT__entry( | ||
117 | __field(u8, tx) | ||
118 | __field(u16, len) | ||
119 | __array(u8, hdr, 12) | ||
120 | ), | ||
121 | TP_fast_assign( | ||
122 | memcpy(__entry->hdr, data, 12); | ||
123 | __entry->len = __entry->hdr[0] | (__entry->hdr[1] << 8); | ||
124 | __entry->tx = tx ? 1 : 0; | ||
125 | ), | ||
126 | TP_printk("sdpcm: %s len %u, seq %d", __entry->tx ? "TX" : "RX", | ||
127 | __entry->len, __entry->hdr[4]) | ||
128 | ); | ||
129 | |||
113 | #ifdef CONFIG_BRCM_TRACING | 130 | #ifdef CONFIG_BRCM_TRACING |
114 | 131 | ||
115 | #undef TRACE_INCLUDE_PATH | 132 | #undef TRACE_INCLUDE_PATH |