diff options
Diffstat (limited to 'drivers/platform/surface/aggregator/trace.h')
| -rw-r--r-- | drivers/platform/surface/aggregator/trace.h | 73 | 
1 files changed, 67 insertions, 6 deletions
diff --git a/drivers/platform/surface/aggregator/trace.h b/drivers/platform/surface/aggregator/trace.h index 2a2c17771d01..55cc61bba1da 100644 --- a/drivers/platform/surface/aggregator/trace.h +++ b/drivers/platform/surface/aggregator/trace.h @@ -96,6 +96,7 @@ TRACE_DEFINE_ENUM(SSAM_SSH_TC_POS);  #define SSAM_SEQ_NOT_APPLICABLE		((u16)-1)  #define SSAM_RQID_NOT_APPLICABLE	((u32)-1)  #define SSAM_SSH_TC_NOT_APPLICABLE	0 +#define SSAM_SSH_TID_NOT_APPLICABLE	((u8)-1)  #ifndef _SURFACE_AGGREGATOR_TRACE_HELPERS  #define _SURFACE_AGGREGATOR_TRACE_HELPERS @@ -151,11 +152,43 @@ static inline u32 ssam_trace_get_request_id(const struct ssh_packet *p)  }  /** + * ssam_trace_get_request_tid() - Read the packet's request target ID. + * @p: The packet. + * + * Return: Returns the packet's request target ID (TID) field if the packet + * represents a request with command data, or %SSAM_SSH_TID_NOT_APPLICABLE + * if not (e.g. flush request, control packet). + */ +static inline u32 ssam_trace_get_request_tid(const struct ssh_packet *p) +{ +	if (!p->data.ptr || p->data.len < SSH_COMMAND_MESSAGE_LENGTH(0)) +		return SSAM_SSH_TID_NOT_APPLICABLE; + +	return get_unaligned_le16(&p->data.ptr[SSH_MSGOFFSET_COMMAND(tid)]); +} + +/** + * ssam_trace_get_request_sid() - Read the packet's request source ID. + * @p: The packet. + * + * Return: Returns the packet's request source ID (SID) field if the packet + * represents a request with command data, or %SSAM_SSH_TID_NOT_APPLICABLE + * if not (e.g. flush request, control packet). + */ +static inline u32 ssam_trace_get_request_sid(const struct ssh_packet *p) +{ +	if (!p->data.ptr || p->data.len < SSH_COMMAND_MESSAGE_LENGTH(0)) +		return SSAM_SSH_TID_NOT_APPLICABLE; + +	return get_unaligned_le16(&p->data.ptr[SSH_MSGOFFSET_COMMAND(sid)]); +} + +/**   * ssam_trace_get_request_tc() - Read the packet's request target category.   * @p: The packet.   *   * Return: Returns the packet's request target category (TC) field if the - * packet represents a request with command data, or %SSAM_TC_NOT_APPLICABLE + * packet represents a request with command data, or %SSAM_SSH_TC_NOT_APPLICABLE   * if not (e.g. flush request, control packet).   */  static inline u32 ssam_trace_get_request_tc(const struct ssh_packet *p) @@ -232,8 +265,18 @@ static inline u32 ssam_trace_get_request_tc(const struct ssh_packet *p)  		{ SSAM_RQID_NOT_APPLICABLE,		"N/A" }		\  	) -#define ssam_show_ssh_tc(rqid)						\ -	__print_symbolic(rqid,						\ +#define ssam_show_ssh_tid(tid)						\ +	__print_symbolic(tid,						\ +		{ SSAM_SSH_TID_NOT_APPLICABLE,		"N/A"      },	\ +		{ SSAM_SSH_TID_HOST,			"Host"     },	\ +		{ SSAM_SSH_TID_SAM,			"SAM"      },	\ +		{ SSAM_SSH_TID_KIP,			"KIP"      },	\ +		{ SSAM_SSH_TID_DEBUG,			"Debug"    },	\ +		{ SSAM_SSH_TID_SURFLINK,		"SurfLink" }	\ +	) + +#define ssam_show_ssh_tc(tc)						\ +	__print_symbolic(tc,						\  		{ SSAM_SSH_TC_NOT_APPLICABLE,		"N/A"  },	\  		{ SSAM_SSH_TC_SAM,			"SAM"  },	\  		{ SSAM_SSH_TC_BAT,			"BAT"  },	\ @@ -313,6 +356,8 @@ DECLARE_EVENT_CLASS(ssam_command_class,  	TP_STRUCT__entry(  		__field(u16, rqid)  		__field(u16, len) +		__field(u8, tid) +		__field(u8, sid)  		__field(u8, tc)  		__field(u8, cid)  		__field(u8, iid) @@ -320,14 +365,18 @@ DECLARE_EVENT_CLASS(ssam_command_class,  	TP_fast_assign(  		__entry->rqid = get_unaligned_le16(&cmd->rqid); +		__entry->tid = cmd->tid; +		__entry->sid = cmd->sid;  		__entry->tc = cmd->tc;  		__entry->cid = cmd->cid;  		__entry->iid = cmd->iid;  		__entry->len = len;  	), -	TP_printk("rqid=%#06x, tc=%s, cid=%#04x, iid=%#04x, len=%u", +	TP_printk("rqid=%#06x, tid=%s, sid=%s, tc=%s, cid=%#04x, iid=%#04x, len=%u",  		__entry->rqid, +		ssam_show_ssh_tid(__entry->tid), +		ssam_show_ssh_tid(__entry->sid),  		ssam_show_ssh_tc(__entry->tc),  		__entry->cid,  		__entry->iid, @@ -430,6 +479,8 @@ DECLARE_EVENT_CLASS(ssam_request_class,  		__field(u8, tc)  		__field(u16, cid)  		__field(u16, iid) +		__field(u8, tid) +		__field(u8, sid)  	),  	TP_fast_assign( @@ -439,16 +490,20 @@ DECLARE_EVENT_CLASS(ssam_request_class,  		__entry->state = READ_ONCE(request->state);  		__entry->rqid = ssam_trace_get_request_id(p);  		ssam_trace_ptr_uid(p, __entry->uid); +		__entry->tid = ssam_trace_get_request_tid(p); +		__entry->sid = ssam_trace_get_request_sid(p);  		__entry->tc = ssam_trace_get_request_tc(p);  		__entry->cid = ssam_trace_get_command_field_u8(p, cid);  		__entry->iid = ssam_trace_get_command_field_u8(p, iid);  	), -	TP_printk("uid=%s, rqid=%s, ty=%s, sta=%s, tc=%s, cid=%s, iid=%s", +	TP_printk("uid=%s, rqid=%s, ty=%s, sta=%s, tid=%s, sid=%s, tc=%s, cid=%s, iid=%s",  		__entry->uid,  		ssam_show_request_id(__entry->rqid),  		ssam_show_request_type(__entry->state),  		ssam_show_request_state(__entry->state), +		ssam_show_ssh_tid(__entry->tid), +		ssam_show_ssh_tid(__entry->sid),  		ssam_show_ssh_tc(__entry->tc),  		ssam_show_generic_u8_field(__entry->cid),  		ssam_show_generic_u8_field(__entry->iid) @@ -474,6 +529,8 @@ DECLARE_EVENT_CLASS(ssam_request_status_class,  		__field(u8, tc)  		__field(u16, cid)  		__field(u16, iid) +		__field(u8, tid) +		__field(u8, sid)  	),  	TP_fast_assign( @@ -484,16 +541,20 @@ DECLARE_EVENT_CLASS(ssam_request_status_class,  		__entry->rqid = ssam_trace_get_request_id(p);  		__entry->status = status;  		ssam_trace_ptr_uid(p, __entry->uid); +		__entry->tid = ssam_trace_get_request_tid(p); +		__entry->sid = ssam_trace_get_request_sid(p);  		__entry->tc = ssam_trace_get_request_tc(p);  		__entry->cid = ssam_trace_get_command_field_u8(p, cid);  		__entry->iid = ssam_trace_get_command_field_u8(p, iid);  	), -	TP_printk("uid=%s, rqid=%s, ty=%s, sta=%s, tc=%s, cid=%s, iid=%s, status=%d", +	TP_printk("uid=%s, rqid=%s, ty=%s, sta=%s, tid=%s, sid=%s, tc=%s, cid=%s, iid=%s, status=%d",  		__entry->uid,  		ssam_show_request_id(__entry->rqid),  		ssam_show_request_type(__entry->state),  		ssam_show_request_state(__entry->state), +		ssam_show_ssh_tid(__entry->tid), +		ssam_show_ssh_tid(__entry->sid),  		ssam_show_ssh_tc(__entry->tc),  		ssam_show_generic_u8_field(__entry->cid),  		ssam_show_generic_u8_field(__entry->iid),  |