brcmfmac: add trace event for capturing BDC header
The BDC header contains PropTx TLV signals that are useful to capture for debugging. This event captures the header and tlv's in binary form. This can be post-processed using trace-cmd plugin. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
cf3a6872b9
commit
ea0737d6e2
|
@ -30,6 +30,7 @@
|
|||
#include "dhd_bus.h"
|
||||
#include "fwsignal.h"
|
||||
#include "dhd_dbg.h"
|
||||
#include "tracepoint.h"
|
||||
|
||||
struct brcmf_proto_cdc_dcmd {
|
||||
__le32 cmd; /* dongle command value */
|
||||
|
@ -292,6 +293,7 @@ void brcmf_proto_hdrpush(struct brcmf_pub *drvr, int ifidx, u8 offset,
|
|||
h->flags2 = 0;
|
||||
h->data_offset = offset;
|
||||
BDC_SET_IF_IDX(h, ifidx);
|
||||
trace_brcmf_bdchdr(pktbuf->data);
|
||||
}
|
||||
|
||||
int brcmf_proto_hdrpull(struct brcmf_pub *drvr, bool do_fws, u8 *ifidx,
|
||||
|
@ -309,6 +311,7 @@ int brcmf_proto_hdrpull(struct brcmf_pub *drvr, bool do_fws, u8 *ifidx,
|
|||
return -EBADE;
|
||||
}
|
||||
|
||||
trace_brcmf_bdchdr(pktbuf->data);
|
||||
h = (struct brcmf_proto_bdc_header *)(pktbuf->data);
|
||||
|
||||
*ifidx = BDC_GET_IF_IDX(h);
|
||||
|
|
|
@ -87,6 +87,27 @@ TRACE_EVENT(brcmf_hexdump,
|
|||
TP_printk("hexdump [length=%lu]", __entry->len)
|
||||
);
|
||||
|
||||
TRACE_EVENT(brcmf_bdchdr,
|
||||
TP_PROTO(void *data),
|
||||
TP_ARGS(data),
|
||||
TP_STRUCT__entry(
|
||||
__field(u8, flags)
|
||||
__field(u8, prio)
|
||||
__field(u8, flags2)
|
||||
__field(u32, siglen)
|
||||
__dynamic_array(u8, signal, *((u8 *)data + 3) * 4)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->flags = *(u8 *)data;
|
||||
__entry->prio = *((u8 *)data + 1);
|
||||
__entry->flags2 = *((u8 *)data + 2);
|
||||
__entry->siglen = *((u8 *)data + 3) * 4;
|
||||
memcpy(__get_dynamic_array(signal),
|
||||
(u8 *)data + 4, __entry->siglen);
|
||||
),
|
||||
TP_printk("bdc: prio=%d siglen=%d", __entry->prio, __entry->siglen)
|
||||
);
|
||||
|
||||
#ifdef CONFIG_BRCM_TRACING
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
|
|
Loading…
Reference in New Issue