Commit 76584ece authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville

brcmfmac: add tracepoint for capturing the SDPCM header

Having the SDPCM header information in the traces is a valuable
piece of information.
Reviewed-by: default avatarFranky Lin <frankyl@broadcom.com>
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b4caee6a
...@@ -1147,6 +1147,8 @@ static int brcmf_sdio_hdparse(struct brcmf_sdio *bus, u8 *header, ...@@ -1147,6 +1147,8 @@ static int brcmf_sdio_hdparse(struct brcmf_sdio *bus, u8 *header,
u8 rx_seq, fc, tx_seq_max; u8 rx_seq, fc, tx_seq_max;
u32 swheader; u32 swheader;
trace_brcmf_sdpcm_hdr(false, header);
/* hw header */ /* hw header */
len = get_unaligned_le16(header); len = get_unaligned_le16(header);
checksum = get_unaligned_le16(header + sizeof(u16)); checksum = get_unaligned_le16(header + sizeof(u16));
...@@ -1269,6 +1271,7 @@ static void brcmf_sdio_hdpack(struct brcmf_sdio *bus, u8 *header, ...@@ -1269,6 +1271,7 @@ static void brcmf_sdio_hdpack(struct brcmf_sdio *bus, u8 *header,
SDPCM_DOFFSET_MASK; SDPCM_DOFFSET_MASK;
*(((__le32 *)header) + 1) = cpu_to_le32(sw_header); *(((__le32 *)header) + 1) = cpu_to_le32(sw_header);
*(((__le32 *)header) + 2) = 0; *(((__le32 *)header) + 2) = 0;
trace_brcmf_sdpcm_hdr(true, header);
} }
static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq) static u8 brcmf_sdbrcm_rxglom(struct brcmf_sdio *bus, u8 rxseq)
......
...@@ -110,6 +110,23 @@ TRACE_EVENT(brcmf_bdchdr, ...@@ -110,6 +110,23 @@ TRACE_EVENT(brcmf_bdchdr,
TP_printk("bdc: prio=%d siglen=%d", __entry->prio, __entry->siglen) TP_printk("bdc: prio=%d siglen=%d", __entry->prio, __entry->siglen)
); );
TRACE_EVENT(brcmf_sdpcm_hdr,
TP_PROTO(bool tx, void *data),
TP_ARGS(tx, data),
TP_STRUCT__entry(
__field(u8, tx)
__field(u16, len)
__array(u8, hdr, 12)
),
TP_fast_assign(
memcpy(__entry->hdr, data, 12);
__entry->len = __entry->hdr[0] | (__entry->hdr[1] << 8);
__entry->tx = tx ? 1 : 0;
),
TP_printk("sdpcm: %s len %u, seq %d", __entry->tx ? "TX" : "RX",
__entry->len, __entry->hdr[4])
);
#ifdef CONFIG_BRCM_TRACING #ifdef CONFIG_BRCM_TRACING
#undef TRACE_INCLUDE_PATH #undef TRACE_INCLUDE_PATH
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment