aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2013-10-15 09:44:47 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-10-18 14:06:57 -0400
commit76584ece258dd71066b536fe8636e64537d21011 (patch)
treef5e90aede3debeaba426bfb52d957b5f319d2925
parentb4caee6a4a9cc7561b2f40f10ce5399d43570d9c (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.c3
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h17
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
1274static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq) 1277static 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
113TRACE_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