162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Cadence CDNSP DRD Driver. 462306a36Sopenharmony_ci * Trace support header file 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 2020 Cadence. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Author: Pawel Laszczak <pawell@cadence.com> 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#undef TRACE_SYSTEM 1362306a36Sopenharmony_ci#define TRACE_SYSTEM cdnsp-dev 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* 1662306a36Sopenharmony_ci * The TRACE_SYSTEM_VAR defaults to TRACE_SYSTEM, but must be a 1762306a36Sopenharmony_ci * legitimate C variable. It is not exported to user space. 1862306a36Sopenharmony_ci */ 1962306a36Sopenharmony_ci#undef TRACE_SYSTEM_VAR 2062306a36Sopenharmony_ci#define TRACE_SYSTEM_VAR cdnsp_dev 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#if !defined(__CDNSP_DEV_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 2362306a36Sopenharmony_ci#define __CDNSP_DEV_TRACE_H 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#include <linux/tracepoint.h> 2662306a36Sopenharmony_ci#include "cdnsp-gadget.h" 2762306a36Sopenharmony_ci#include "cdnsp-debug.h" 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci/* 3062306a36Sopenharmony_ci * There is limitation for single buffer size in TRACEPOINT subsystem. 3162306a36Sopenharmony_ci * By default TRACE_BUF_SIZE is 1024, so no all data will be logged. 3262306a36Sopenharmony_ci * To show more data this must be increased. In most cases the default 3362306a36Sopenharmony_ci * value is sufficient. 3462306a36Sopenharmony_ci */ 3562306a36Sopenharmony_ci#define CDNSP_MSG_MAX 500 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_ep, 3862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 3962306a36Sopenharmony_ci TP_ARGS(pep, stream_id), 4062306a36Sopenharmony_ci TP_STRUCT__entry( 4162306a36Sopenharmony_ci __string(name, pep->name) 4262306a36Sopenharmony_ci __field(unsigned int, state) 4362306a36Sopenharmony_ci __field(u32, stream_id) 4462306a36Sopenharmony_ci __field(u8, enabled) 4562306a36Sopenharmony_ci __field(unsigned int, num_streams) 4662306a36Sopenharmony_ci __field(int, td_count) 4762306a36Sopenharmony_ci __field(u8, first_prime_det) 4862306a36Sopenharmony_ci __field(u8, drbls_count) 4962306a36Sopenharmony_ci ), 5062306a36Sopenharmony_ci TP_fast_assign( 5162306a36Sopenharmony_ci __assign_str(name, pep->name); 5262306a36Sopenharmony_ci __entry->state = pep->ep_state; 5362306a36Sopenharmony_ci __entry->stream_id = stream_id; 5462306a36Sopenharmony_ci __entry->enabled = pep->ep_state & EP_HAS_STREAMS; 5562306a36Sopenharmony_ci __entry->num_streams = pep->stream_info.num_streams; 5662306a36Sopenharmony_ci __entry->td_count = pep->stream_info.td_count; 5762306a36Sopenharmony_ci __entry->first_prime_det = pep->stream_info.first_prime_det; 5862306a36Sopenharmony_ci __entry->drbls_count = pep->stream_info.drbls_count; 5962306a36Sopenharmony_ci ), 6062306a36Sopenharmony_ci TP_printk("%s: SID: %08x, ep state: %x, stream: enabled: %d num %d " 6162306a36Sopenharmony_ci "tds %d, first prime: %d drbls %d", 6262306a36Sopenharmony_ci __get_str(name), __entry->stream_id, __entry->state, 6362306a36Sopenharmony_ci __entry->enabled, __entry->num_streams, __entry->td_count, 6462306a36Sopenharmony_ci __entry->first_prime_det, __entry->drbls_count) 6562306a36Sopenharmony_ci); 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep, cdnsp_tr_drbl, 6862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 6962306a36Sopenharmony_ci TP_ARGS(pep, stream_id) 7062306a36Sopenharmony_ci); 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep, cdnsp_wait_for_prime, 7362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 7462306a36Sopenharmony_ci TP_ARGS(pep, stream_id) 7562306a36Sopenharmony_ci); 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep, cdnsp_ep_list_empty_with_skip, 7862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 7962306a36Sopenharmony_ci TP_ARGS(pep, stream_id) 8062306a36Sopenharmony_ci); 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep, cdnsp_ep_enable_end, 8362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 8462306a36Sopenharmony_ci TP_ARGS(pep, stream_id) 8562306a36Sopenharmony_ci); 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep, cdnsp_ep_disable_end, 8862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 8962306a36Sopenharmony_ci TP_ARGS(pep, stream_id) 9062306a36Sopenharmony_ci); 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep, cdnsp_ep_busy_try_halt_again, 9362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, u32 stream_id), 9462306a36Sopenharmony_ci TP_ARGS(pep, stream_id) 9562306a36Sopenharmony_ci); 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_enable_disable, 9862306a36Sopenharmony_ci TP_PROTO(int set), 9962306a36Sopenharmony_ci TP_ARGS(set), 10062306a36Sopenharmony_ci TP_STRUCT__entry( 10162306a36Sopenharmony_ci __field(int, set) 10262306a36Sopenharmony_ci ), 10362306a36Sopenharmony_ci TP_fast_assign( 10462306a36Sopenharmony_ci __entry->set = set; 10562306a36Sopenharmony_ci ), 10662306a36Sopenharmony_ci TP_printk("%s", __entry->set ? "enabled" : "disabled") 10762306a36Sopenharmony_ci); 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_enable_disable, cdnsp_pullup, 11062306a36Sopenharmony_ci TP_PROTO(int set), 11162306a36Sopenharmony_ci TP_ARGS(set) 11262306a36Sopenharmony_ci); 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_enable_disable, cdnsp_u1, 11562306a36Sopenharmony_ci TP_PROTO(int set), 11662306a36Sopenharmony_ci TP_ARGS(set) 11762306a36Sopenharmony_ci); 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_enable_disable, cdnsp_u2, 12062306a36Sopenharmony_ci TP_PROTO(int set), 12162306a36Sopenharmony_ci TP_ARGS(set) 12262306a36Sopenharmony_ci); 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_enable_disable, cdnsp_lpm, 12562306a36Sopenharmony_ci TP_PROTO(int set), 12662306a36Sopenharmony_ci TP_ARGS(set) 12762306a36Sopenharmony_ci); 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_enable_disable, cdnsp_may_wakeup, 13062306a36Sopenharmony_ci TP_PROTO(int set), 13162306a36Sopenharmony_ci TP_ARGS(set) 13262306a36Sopenharmony_ci); 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_simple, 13562306a36Sopenharmony_ci TP_PROTO(char *msg), 13662306a36Sopenharmony_ci TP_ARGS(msg), 13762306a36Sopenharmony_ci TP_STRUCT__entry( 13862306a36Sopenharmony_ci __string(text, msg) 13962306a36Sopenharmony_ci ), 14062306a36Sopenharmony_ci TP_fast_assign( 14162306a36Sopenharmony_ci __assign_str(text, msg); 14262306a36Sopenharmony_ci ), 14362306a36Sopenharmony_ci TP_printk("%s", __get_str(text)) 14462306a36Sopenharmony_ci); 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_exit, 14762306a36Sopenharmony_ci TP_PROTO(char *msg), 14862306a36Sopenharmony_ci TP_ARGS(msg) 14962306a36Sopenharmony_ci); 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_init, 15262306a36Sopenharmony_ci TP_PROTO(char *msg), 15362306a36Sopenharmony_ci TP_ARGS(msg) 15462306a36Sopenharmony_ci); 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_slot_id, 15762306a36Sopenharmony_ci TP_PROTO(char *msg), 15862306a36Sopenharmony_ci TP_ARGS(msg) 15962306a36Sopenharmony_ci); 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_no_room_on_ring, 16262306a36Sopenharmony_ci TP_PROTO(char *msg), 16362306a36Sopenharmony_ci TP_ARGS(msg) 16462306a36Sopenharmony_ci); 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_ep0_status_stage, 16762306a36Sopenharmony_ci TP_PROTO(char *msg), 16862306a36Sopenharmony_ci TP_ARGS(msg) 16962306a36Sopenharmony_ci); 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_ep0_request, 17262306a36Sopenharmony_ci TP_PROTO(char *msg), 17362306a36Sopenharmony_ci TP_ARGS(msg) 17462306a36Sopenharmony_ci); 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_ep0_set_config, 17762306a36Sopenharmony_ci TP_PROTO(char *msg), 17862306a36Sopenharmony_ci TP_ARGS(msg) 17962306a36Sopenharmony_ci); 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_ep0_halted, 18262306a36Sopenharmony_ci TP_PROTO(char *msg), 18362306a36Sopenharmony_ci TP_ARGS(msg) 18462306a36Sopenharmony_ci); 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_simple, cdnsp_ep_halt, 18762306a36Sopenharmony_ci TP_PROTO(char *msg), 18862306a36Sopenharmony_ci TP_ARGS(msg) 18962306a36Sopenharmony_ci); 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ciTRACE_EVENT(cdnsp_looking_trb_in_td, 19262306a36Sopenharmony_ci TP_PROTO(dma_addr_t suspect, dma_addr_t trb_start, dma_addr_t trb_end, 19362306a36Sopenharmony_ci dma_addr_t curr_seg, dma_addr_t end_seg), 19462306a36Sopenharmony_ci TP_ARGS(suspect, trb_start, trb_end, curr_seg, end_seg), 19562306a36Sopenharmony_ci TP_STRUCT__entry( 19662306a36Sopenharmony_ci __field(dma_addr_t, suspect) 19762306a36Sopenharmony_ci __field(dma_addr_t, trb_start) 19862306a36Sopenharmony_ci __field(dma_addr_t, trb_end) 19962306a36Sopenharmony_ci __field(dma_addr_t, curr_seg) 20062306a36Sopenharmony_ci __field(dma_addr_t, end_seg) 20162306a36Sopenharmony_ci ), 20262306a36Sopenharmony_ci TP_fast_assign( 20362306a36Sopenharmony_ci __entry->suspect = suspect; 20462306a36Sopenharmony_ci __entry->trb_start = trb_start; 20562306a36Sopenharmony_ci __entry->trb_end = trb_end; 20662306a36Sopenharmony_ci __entry->curr_seg = curr_seg; 20762306a36Sopenharmony_ci __entry->end_seg = end_seg; 20862306a36Sopenharmony_ci ), 20962306a36Sopenharmony_ci TP_printk("DMA: suspect event: %pad, trb-start: %pad, trb-end %pad, " 21062306a36Sopenharmony_ci "seg-start %pad, seg-end %pad", 21162306a36Sopenharmony_ci &__entry->suspect, &__entry->trb_start, &__entry->trb_end, 21262306a36Sopenharmony_ci &__entry->curr_seg, &__entry->end_seg) 21362306a36Sopenharmony_ci); 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ciTRACE_EVENT(cdnsp_port_info, 21662306a36Sopenharmony_ci TP_PROTO(__le32 __iomem *addr, u32 offset, u32 count, u32 rev), 21762306a36Sopenharmony_ci TP_ARGS(addr, offset, count, rev), 21862306a36Sopenharmony_ci TP_STRUCT__entry( 21962306a36Sopenharmony_ci __field(__le32 __iomem *, addr) 22062306a36Sopenharmony_ci __field(u32, offset) 22162306a36Sopenharmony_ci __field(u32, count) 22262306a36Sopenharmony_ci __field(u32, rev) 22362306a36Sopenharmony_ci ), 22462306a36Sopenharmony_ci TP_fast_assign( 22562306a36Sopenharmony_ci __entry->addr = addr; 22662306a36Sopenharmony_ci __entry->offset = offset; 22762306a36Sopenharmony_ci __entry->count = count; 22862306a36Sopenharmony_ci __entry->rev = rev; 22962306a36Sopenharmony_ci ), 23062306a36Sopenharmony_ci TP_printk("Ext Cap %p, port offset = %u, count = %u, rev = 0x%x", 23162306a36Sopenharmony_ci __entry->addr, __entry->offset, __entry->count, __entry->rev) 23262306a36Sopenharmony_ci); 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_deq_state, 23562306a36Sopenharmony_ci TP_PROTO(struct cdnsp_dequeue_state *state), 23662306a36Sopenharmony_ci TP_ARGS(state), 23762306a36Sopenharmony_ci TP_STRUCT__entry( 23862306a36Sopenharmony_ci __field(int, new_cycle_state) 23962306a36Sopenharmony_ci __field(struct cdnsp_segment *, new_deq_seg) 24062306a36Sopenharmony_ci __field(dma_addr_t, deq_seg_dma) 24162306a36Sopenharmony_ci __field(union cdnsp_trb *, new_deq_ptr) 24262306a36Sopenharmony_ci __field(dma_addr_t, deq_ptr_dma) 24362306a36Sopenharmony_ci ), 24462306a36Sopenharmony_ci TP_fast_assign( 24562306a36Sopenharmony_ci __entry->new_cycle_state = state->new_cycle_state; 24662306a36Sopenharmony_ci __entry->new_deq_seg = state->new_deq_seg; 24762306a36Sopenharmony_ci __entry->deq_seg_dma = state->new_deq_seg->dma; 24862306a36Sopenharmony_ci __entry->new_deq_ptr = state->new_deq_ptr, 24962306a36Sopenharmony_ci __entry->deq_ptr_dma = cdnsp_trb_virt_to_dma(state->new_deq_seg, 25062306a36Sopenharmony_ci state->new_deq_ptr); 25162306a36Sopenharmony_ci ), 25262306a36Sopenharmony_ci TP_printk("New cycle state = 0x%x, New dequeue segment = %p (0x%pad dma), " 25362306a36Sopenharmony_ci "New dequeue pointer = %p (0x%pad dma)", 25462306a36Sopenharmony_ci __entry->new_cycle_state, __entry->new_deq_seg, 25562306a36Sopenharmony_ci &__entry->deq_seg_dma, __entry->new_deq_ptr, 25662306a36Sopenharmony_ci &__entry->deq_ptr_dma 25762306a36Sopenharmony_ci ) 25862306a36Sopenharmony_ci); 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_deq_state, cdnsp_new_deq_state, 26162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_dequeue_state *state), 26262306a36Sopenharmony_ci TP_ARGS(state) 26362306a36Sopenharmony_ci); 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_ctrl, 26662306a36Sopenharmony_ci TP_PROTO(struct usb_ctrlrequest *ctrl), 26762306a36Sopenharmony_ci TP_ARGS(ctrl), 26862306a36Sopenharmony_ci TP_STRUCT__entry( 26962306a36Sopenharmony_ci __field(u8, bRequestType) 27062306a36Sopenharmony_ci __field(u8, bRequest) 27162306a36Sopenharmony_ci __field(u16, wValue) 27262306a36Sopenharmony_ci __field(u16, wIndex) 27362306a36Sopenharmony_ci __field(u16, wLength) 27462306a36Sopenharmony_ci ), 27562306a36Sopenharmony_ci TP_fast_assign( 27662306a36Sopenharmony_ci __entry->bRequestType = ctrl->bRequestType; 27762306a36Sopenharmony_ci __entry->bRequest = ctrl->bRequest; 27862306a36Sopenharmony_ci __entry->wValue = le16_to_cpu(ctrl->wValue); 27962306a36Sopenharmony_ci __entry->wIndex = le16_to_cpu(ctrl->wIndex); 28062306a36Sopenharmony_ci __entry->wLength = le16_to_cpu(ctrl->wLength); 28162306a36Sopenharmony_ci ), 28262306a36Sopenharmony_ci TP_printk("%s", usb_decode_ctrl(__get_buf(CDNSP_MSG_MAX), CDNSP_MSG_MAX, 28362306a36Sopenharmony_ci __entry->bRequestType, 28462306a36Sopenharmony_ci __entry->bRequest, __entry->wValue, 28562306a36Sopenharmony_ci __entry->wIndex, __entry->wLength) 28662306a36Sopenharmony_ci ) 28762306a36Sopenharmony_ci); 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ctrl, cdnsp_ctrl_req, 29062306a36Sopenharmony_ci TP_PROTO(struct usb_ctrlrequest *ctrl), 29162306a36Sopenharmony_ci TP_ARGS(ctrl) 29262306a36Sopenharmony_ci); 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_bounce, 29562306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *preq, u32 new_buf_len, u32 offset, 29662306a36Sopenharmony_ci dma_addr_t dma, unsigned int unalign), 29762306a36Sopenharmony_ci TP_ARGS(preq, new_buf_len, offset, dma, unalign), 29862306a36Sopenharmony_ci TP_STRUCT__entry( 29962306a36Sopenharmony_ci __string(name, preq->pep->name) 30062306a36Sopenharmony_ci __field(u32, new_buf_len) 30162306a36Sopenharmony_ci __field(u32, offset) 30262306a36Sopenharmony_ci __field(dma_addr_t, dma) 30362306a36Sopenharmony_ci __field(unsigned int, unalign) 30462306a36Sopenharmony_ci ), 30562306a36Sopenharmony_ci TP_fast_assign( 30662306a36Sopenharmony_ci __assign_str(name, preq->pep->name); 30762306a36Sopenharmony_ci __entry->new_buf_len = new_buf_len; 30862306a36Sopenharmony_ci __entry->offset = offset; 30962306a36Sopenharmony_ci __entry->dma = dma; 31062306a36Sopenharmony_ci __entry->unalign = unalign; 31162306a36Sopenharmony_ci ), 31262306a36Sopenharmony_ci TP_printk("%s buf len %d, offset %d, dma %pad, unalign %d", 31362306a36Sopenharmony_ci __get_str(name), __entry->new_buf_len, 31462306a36Sopenharmony_ci __entry->offset, &__entry->dma, __entry->unalign 31562306a36Sopenharmony_ci ) 31662306a36Sopenharmony_ci); 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_bounce, cdnsp_bounce_align_td_split, 31962306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *preq, u32 new_buf_len, u32 offset, 32062306a36Sopenharmony_ci dma_addr_t dma, unsigned int unalign), 32162306a36Sopenharmony_ci TP_ARGS(preq, new_buf_len, offset, dma, unalign) 32262306a36Sopenharmony_ci); 32362306a36Sopenharmony_ci 32462306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_bounce, cdnsp_bounce_map, 32562306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *preq, u32 new_buf_len, u32 offset, 32662306a36Sopenharmony_ci dma_addr_t dma, unsigned int unalign), 32762306a36Sopenharmony_ci TP_ARGS(preq, new_buf_len, offset, dma, unalign) 32862306a36Sopenharmony_ci); 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_bounce, cdnsp_bounce_unmap, 33162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *preq, u32 new_buf_len, u32 offset, 33262306a36Sopenharmony_ci dma_addr_t dma, unsigned int unalign), 33362306a36Sopenharmony_ci TP_ARGS(preq, new_buf_len, offset, dma, unalign) 33462306a36Sopenharmony_ci); 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_trb, 33762306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 33862306a36Sopenharmony_ci TP_ARGS(ring, trb), 33962306a36Sopenharmony_ci TP_STRUCT__entry( 34062306a36Sopenharmony_ci __field(u32, type) 34162306a36Sopenharmony_ci __field(u32, field0) 34262306a36Sopenharmony_ci __field(u32, field1) 34362306a36Sopenharmony_ci __field(u32, field2) 34462306a36Sopenharmony_ci __field(u32, field3) 34562306a36Sopenharmony_ci __field(union cdnsp_trb *, trb) 34662306a36Sopenharmony_ci __field(dma_addr_t, trb_dma) 34762306a36Sopenharmony_ci ), 34862306a36Sopenharmony_ci TP_fast_assign( 34962306a36Sopenharmony_ci __entry->type = ring->type; 35062306a36Sopenharmony_ci __entry->field0 = le32_to_cpu(trb->field[0]); 35162306a36Sopenharmony_ci __entry->field1 = le32_to_cpu(trb->field[1]); 35262306a36Sopenharmony_ci __entry->field2 = le32_to_cpu(trb->field[2]); 35362306a36Sopenharmony_ci __entry->field3 = le32_to_cpu(trb->field[3]); 35462306a36Sopenharmony_ci __entry->trb = (union cdnsp_trb *)trb; 35562306a36Sopenharmony_ci __entry->trb_dma = cdnsp_trb_virt_to_dma(ring->deq_seg, 35662306a36Sopenharmony_ci (union cdnsp_trb *)trb); 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_ci ), 35962306a36Sopenharmony_ci TP_printk("%s: %s trb: %p(%pad)", cdnsp_ring_type_string(__entry->type), 36062306a36Sopenharmony_ci cdnsp_decode_trb(__get_buf(CDNSP_MSG_MAX), CDNSP_MSG_MAX, 36162306a36Sopenharmony_ci __entry->field0, __entry->field1, 36262306a36Sopenharmony_ci __entry->field2, __entry->field3), 36362306a36Sopenharmony_ci __entry->trb, &__entry->trb_dma 36462306a36Sopenharmony_ci ) 36562306a36Sopenharmony_ci); 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_handle_event, 36862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 36962306a36Sopenharmony_ci TP_ARGS(ring, trb) 37062306a36Sopenharmony_ci); 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_trb_without_td, 37362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 37462306a36Sopenharmony_ci TP_ARGS(ring, trb) 37562306a36Sopenharmony_ci); 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_handle_command, 37862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 37962306a36Sopenharmony_ci TP_ARGS(ring, trb) 38062306a36Sopenharmony_ci); 38162306a36Sopenharmony_ci 38262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_handle_transfer, 38362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 38462306a36Sopenharmony_ci TP_ARGS(ring, trb) 38562306a36Sopenharmony_ci); 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_queue_trb, 38862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 38962306a36Sopenharmony_ci TP_ARGS(ring, trb) 39062306a36Sopenharmony_ci); 39162306a36Sopenharmony_ci 39262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_cmd_wait_for_compl, 39362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 39462306a36Sopenharmony_ci TP_ARGS(ring, trb) 39562306a36Sopenharmony_ci); 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_cmd_timeout, 39862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 39962306a36Sopenharmony_ci TP_ARGS(ring, trb) 40062306a36Sopenharmony_ci); 40162306a36Sopenharmony_ci 40262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_trb, cdnsp_defered_event, 40362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring, struct cdnsp_generic_trb *trb), 40462306a36Sopenharmony_ci TP_ARGS(ring, trb) 40562306a36Sopenharmony_ci); 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_pdev, 40862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_device *pdev), 40962306a36Sopenharmony_ci TP_ARGS(pdev), 41062306a36Sopenharmony_ci TP_STRUCT__entry( 41162306a36Sopenharmony_ci __field(struct cdnsp_device *, pdev) 41262306a36Sopenharmony_ci __field(struct usb_gadget *, gadget) 41362306a36Sopenharmony_ci __field(dma_addr_t, out_ctx) 41462306a36Sopenharmony_ci __field(dma_addr_t, in_ctx) 41562306a36Sopenharmony_ci __field(u8, port_num) 41662306a36Sopenharmony_ci ), 41762306a36Sopenharmony_ci TP_fast_assign( 41862306a36Sopenharmony_ci __entry->pdev = pdev; 41962306a36Sopenharmony_ci __entry->gadget = &pdev->gadget; 42062306a36Sopenharmony_ci __entry->in_ctx = pdev->in_ctx.dma; 42162306a36Sopenharmony_ci __entry->out_ctx = pdev->out_ctx.dma; 42262306a36Sopenharmony_ci __entry->port_num = pdev->active_port ? 42362306a36Sopenharmony_ci pdev->active_port->port_num : 0xFF; 42462306a36Sopenharmony_ci ), 42562306a36Sopenharmony_ci TP_printk("pdev %p gadget %p ctx %pad | %pad, port %d ", 42662306a36Sopenharmony_ci __entry->pdev, __entry->gadget, &__entry->in_ctx, 42762306a36Sopenharmony_ci &__entry->out_ctx, __entry->port_num 42862306a36Sopenharmony_ci ) 42962306a36Sopenharmony_ci); 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_pdev, cdnsp_alloc_priv_device, 43262306a36Sopenharmony_ci TP_PROTO(struct cdnsp_device *vdev), 43362306a36Sopenharmony_ci TP_ARGS(vdev) 43462306a36Sopenharmony_ci); 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_pdev, cdnsp_free_priv_device, 43762306a36Sopenharmony_ci TP_PROTO(struct cdnsp_device *vdev), 43862306a36Sopenharmony_ci TP_ARGS(vdev) 43962306a36Sopenharmony_ci); 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_pdev, cdnsp_setup_device, 44262306a36Sopenharmony_ci TP_PROTO(struct cdnsp_device *vdev), 44362306a36Sopenharmony_ci TP_ARGS(vdev) 44462306a36Sopenharmony_ci); 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_pdev, cdnsp_setup_addressable_priv_device, 44762306a36Sopenharmony_ci TP_PROTO(struct cdnsp_device *vdev), 44862306a36Sopenharmony_ci TP_ARGS(vdev) 44962306a36Sopenharmony_ci); 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_request, 45262306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 45362306a36Sopenharmony_ci TP_ARGS(req), 45462306a36Sopenharmony_ci TP_STRUCT__entry( 45562306a36Sopenharmony_ci __string(name, req->pep->name) 45662306a36Sopenharmony_ci __field(struct usb_request *, request) 45762306a36Sopenharmony_ci __field(struct cdnsp_request *, preq) 45862306a36Sopenharmony_ci __field(void *, buf) 45962306a36Sopenharmony_ci __field(unsigned int, actual) 46062306a36Sopenharmony_ci __field(unsigned int, length) 46162306a36Sopenharmony_ci __field(int, status) 46262306a36Sopenharmony_ci __field(dma_addr_t, dma) 46362306a36Sopenharmony_ci __field(unsigned int, stream_id) 46462306a36Sopenharmony_ci __field(unsigned int, zero) 46562306a36Sopenharmony_ci __field(unsigned int, short_not_ok) 46662306a36Sopenharmony_ci __field(unsigned int, no_interrupt) 46762306a36Sopenharmony_ci __field(struct scatterlist*, sg) 46862306a36Sopenharmony_ci __field(unsigned int, num_sgs) 46962306a36Sopenharmony_ci __field(unsigned int, num_mapped_sgs) 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ci ), 47262306a36Sopenharmony_ci TP_fast_assign( 47362306a36Sopenharmony_ci __assign_str(name, req->pep->name); 47462306a36Sopenharmony_ci __entry->request = &req->request; 47562306a36Sopenharmony_ci __entry->preq = req; 47662306a36Sopenharmony_ci __entry->buf = req->request.buf; 47762306a36Sopenharmony_ci __entry->actual = req->request.actual; 47862306a36Sopenharmony_ci __entry->length = req->request.length; 47962306a36Sopenharmony_ci __entry->status = req->request.status; 48062306a36Sopenharmony_ci __entry->dma = req->request.dma; 48162306a36Sopenharmony_ci __entry->stream_id = req->request.stream_id; 48262306a36Sopenharmony_ci __entry->zero = req->request.zero; 48362306a36Sopenharmony_ci __entry->short_not_ok = req->request.short_not_ok; 48462306a36Sopenharmony_ci __entry->no_interrupt = req->request.no_interrupt; 48562306a36Sopenharmony_ci __entry->sg = req->request.sg; 48662306a36Sopenharmony_ci __entry->num_sgs = req->request.num_sgs; 48762306a36Sopenharmony_ci __entry->num_mapped_sgs = req->request.num_mapped_sgs; 48862306a36Sopenharmony_ci ), 48962306a36Sopenharmony_ci TP_printk("%s; req U:%p/P:%p, req buf %p, length %u/%u, status %d, " 49062306a36Sopenharmony_ci "buf dma (%pad), SID %u, %s%s%s, sg %p, num_sg %d," 49162306a36Sopenharmony_ci " num_m_sg %d", 49262306a36Sopenharmony_ci __get_str(name), __entry->request, __entry->preq, 49362306a36Sopenharmony_ci __entry->buf, __entry->actual, __entry->length, 49462306a36Sopenharmony_ci __entry->status, &__entry->dma, 49562306a36Sopenharmony_ci __entry->stream_id, __entry->zero ? "Z" : "z", 49662306a36Sopenharmony_ci __entry->short_not_ok ? "S" : "s", 49762306a36Sopenharmony_ci __entry->no_interrupt ? "I" : "i", 49862306a36Sopenharmony_ci __entry->sg, __entry->num_sgs, __entry->num_mapped_sgs 49962306a36Sopenharmony_ci ) 50062306a36Sopenharmony_ci); 50162306a36Sopenharmony_ci 50262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_request_enqueue, 50362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 50462306a36Sopenharmony_ci TP_ARGS(req) 50562306a36Sopenharmony_ci); 50662306a36Sopenharmony_ci 50762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_request_enqueue_busy, 50862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 50962306a36Sopenharmony_ci TP_ARGS(req) 51062306a36Sopenharmony_ci); 51162306a36Sopenharmony_ci 51262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_request_enqueue_error, 51362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 51462306a36Sopenharmony_ci TP_ARGS(req) 51562306a36Sopenharmony_ci); 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_request_dequeue, 51862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 51962306a36Sopenharmony_ci TP_ARGS(req) 52062306a36Sopenharmony_ci); 52162306a36Sopenharmony_ci 52262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_request_giveback, 52362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 52462306a36Sopenharmony_ci TP_ARGS(req) 52562306a36Sopenharmony_ci); 52662306a36Sopenharmony_ci 52762306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_alloc_request, 52862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 52962306a36Sopenharmony_ci TP_ARGS(req) 53062306a36Sopenharmony_ci); 53162306a36Sopenharmony_ci 53262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_request, cdnsp_free_request, 53362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *req), 53462306a36Sopenharmony_ci TP_ARGS(req) 53562306a36Sopenharmony_ci); 53662306a36Sopenharmony_ci 53762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_ep_ctx, 53862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 53962306a36Sopenharmony_ci TP_ARGS(ctx), 54062306a36Sopenharmony_ci TP_STRUCT__entry( 54162306a36Sopenharmony_ci __field(u32, info) 54262306a36Sopenharmony_ci __field(u32, info2) 54362306a36Sopenharmony_ci __field(u64, deq) 54462306a36Sopenharmony_ci __field(u32, tx_info) 54562306a36Sopenharmony_ci ), 54662306a36Sopenharmony_ci TP_fast_assign( 54762306a36Sopenharmony_ci __entry->info = le32_to_cpu(ctx->ep_info); 54862306a36Sopenharmony_ci __entry->info2 = le32_to_cpu(ctx->ep_info2); 54962306a36Sopenharmony_ci __entry->deq = le64_to_cpu(ctx->deq); 55062306a36Sopenharmony_ci __entry->tx_info = le32_to_cpu(ctx->tx_info); 55162306a36Sopenharmony_ci ), 55262306a36Sopenharmony_ci TP_printk("%s", cdnsp_decode_ep_context(__get_buf(CDNSP_MSG_MAX), CDNSP_MSG_MAX, 55362306a36Sopenharmony_ci __entry->info, __entry->info2, 55462306a36Sopenharmony_ci __entry->deq, __entry->tx_info) 55562306a36Sopenharmony_ci ) 55662306a36Sopenharmony_ci); 55762306a36Sopenharmony_ci 55862306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_ep_disabled, 55962306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 56062306a36Sopenharmony_ci TP_ARGS(ctx) 56162306a36Sopenharmony_ci); 56262306a36Sopenharmony_ci 56362306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_ep_stopped_or_disabled, 56462306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 56562306a36Sopenharmony_ci TP_ARGS(ctx) 56662306a36Sopenharmony_ci); 56762306a36Sopenharmony_ci 56862306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_remove_request, 56962306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 57062306a36Sopenharmony_ci TP_ARGS(ctx) 57162306a36Sopenharmony_ci); 57262306a36Sopenharmony_ci 57362306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_handle_cmd_stop_ep, 57462306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 57562306a36Sopenharmony_ci TP_ARGS(ctx) 57662306a36Sopenharmony_ci); 57762306a36Sopenharmony_ci 57862306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_handle_cmd_flush_ep, 57962306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 58062306a36Sopenharmony_ci TP_ARGS(ctx) 58162306a36Sopenharmony_ci); 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_handle_cmd_set_deq_ep, 58462306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 58562306a36Sopenharmony_ci TP_ARGS(ctx) 58662306a36Sopenharmony_ci); 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_handle_cmd_reset_ep, 58962306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 59062306a36Sopenharmony_ci TP_ARGS(ctx) 59162306a36Sopenharmony_ci); 59262306a36Sopenharmony_ci 59362306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ep_ctx, cdnsp_handle_cmd_config_ep, 59462306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep_ctx *ctx), 59562306a36Sopenharmony_ci TP_ARGS(ctx) 59662306a36Sopenharmony_ci); 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_slot_ctx, 59962306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 60062306a36Sopenharmony_ci TP_ARGS(ctx), 60162306a36Sopenharmony_ci TP_STRUCT__entry( 60262306a36Sopenharmony_ci __field(u32, info) 60362306a36Sopenharmony_ci __field(u32, info2) 60462306a36Sopenharmony_ci __field(u32, int_target) 60562306a36Sopenharmony_ci __field(u32, state) 60662306a36Sopenharmony_ci ), 60762306a36Sopenharmony_ci TP_fast_assign( 60862306a36Sopenharmony_ci __entry->info = le32_to_cpu(ctx->dev_info); 60962306a36Sopenharmony_ci __entry->info2 = le32_to_cpu(ctx->dev_port); 61062306a36Sopenharmony_ci __entry->int_target = le32_to_cpu(ctx->int_target); 61162306a36Sopenharmony_ci __entry->state = le32_to_cpu(ctx->dev_state); 61262306a36Sopenharmony_ci ), 61362306a36Sopenharmony_ci TP_printk("%s", cdnsp_decode_slot_context(__entry->info, 61462306a36Sopenharmony_ci __entry->info2, 61562306a36Sopenharmony_ci __entry->int_target, 61662306a36Sopenharmony_ci __entry->state) 61762306a36Sopenharmony_ci ) 61862306a36Sopenharmony_ci); 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_slot_already_in_default, 62162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 62262306a36Sopenharmony_ci TP_ARGS(ctx) 62362306a36Sopenharmony_ci); 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_handle_cmd_enable_slot, 62662306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 62762306a36Sopenharmony_ci TP_ARGS(ctx) 62862306a36Sopenharmony_ci); 62962306a36Sopenharmony_ci 63062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_handle_cmd_disable_slot, 63162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 63262306a36Sopenharmony_ci TP_ARGS(ctx) 63362306a36Sopenharmony_ci); 63462306a36Sopenharmony_ci 63562306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_reset_device, 63662306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 63762306a36Sopenharmony_ci TP_ARGS(ctx) 63862306a36Sopenharmony_ci); 63962306a36Sopenharmony_ci 64062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_setup_device_slot, 64162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 64262306a36Sopenharmony_ci TP_ARGS(ctx) 64362306a36Sopenharmony_ci); 64462306a36Sopenharmony_ci 64562306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_handle_cmd_addr_dev, 64662306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 64762306a36Sopenharmony_ci TP_ARGS(ctx) 64862306a36Sopenharmony_ci); 64962306a36Sopenharmony_ci 65062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_handle_cmd_reset_dev, 65162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 65262306a36Sopenharmony_ci TP_ARGS(ctx) 65362306a36Sopenharmony_ci); 65462306a36Sopenharmony_ci 65562306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_handle_cmd_set_deq, 65662306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 65762306a36Sopenharmony_ci TP_ARGS(ctx) 65862306a36Sopenharmony_ci); 65962306a36Sopenharmony_ci 66062306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_slot_ctx, cdnsp_configure_endpoint, 66162306a36Sopenharmony_ci TP_PROTO(struct cdnsp_slot_ctx *ctx), 66262306a36Sopenharmony_ci TP_ARGS(ctx) 66362306a36Sopenharmony_ci); 66462306a36Sopenharmony_ci 66562306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_td_info, 66662306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *preq), 66762306a36Sopenharmony_ci TP_ARGS(preq), 66862306a36Sopenharmony_ci TP_STRUCT__entry( 66962306a36Sopenharmony_ci __string(name, preq->pep->name) 67062306a36Sopenharmony_ci __field(struct usb_request *, request) 67162306a36Sopenharmony_ci __field(struct cdnsp_request *, preq) 67262306a36Sopenharmony_ci __field(union cdnsp_trb *, first_trb) 67362306a36Sopenharmony_ci __field(union cdnsp_trb *, last_trb) 67462306a36Sopenharmony_ci __field(dma_addr_t, trb_dma) 67562306a36Sopenharmony_ci ), 67662306a36Sopenharmony_ci TP_fast_assign( 67762306a36Sopenharmony_ci __assign_str(name, preq->pep->name); 67862306a36Sopenharmony_ci __entry->request = &preq->request; 67962306a36Sopenharmony_ci __entry->preq = preq; 68062306a36Sopenharmony_ci __entry->first_trb = preq->td.first_trb; 68162306a36Sopenharmony_ci __entry->last_trb = preq->td.last_trb; 68262306a36Sopenharmony_ci __entry->trb_dma = cdnsp_trb_virt_to_dma(preq->td.start_seg, 68362306a36Sopenharmony_ci preq->td.first_trb) 68462306a36Sopenharmony_ci ), 68562306a36Sopenharmony_ci TP_printk("%s req/preq: %p/%p, first trb %p[vir]/%pad(dma), last trb %p", 68662306a36Sopenharmony_ci __get_str(name), __entry->request, __entry->preq, 68762306a36Sopenharmony_ci __entry->first_trb, &__entry->trb_dma, 68862306a36Sopenharmony_ci __entry->last_trb 68962306a36Sopenharmony_ci ) 69062306a36Sopenharmony_ci); 69162306a36Sopenharmony_ci 69262306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_td_info, cdnsp_remove_request_td, 69362306a36Sopenharmony_ci TP_PROTO(struct cdnsp_request *preq), 69462306a36Sopenharmony_ci TP_ARGS(preq) 69562306a36Sopenharmony_ci); 69662306a36Sopenharmony_ci 69762306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_ring, 69862306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 69962306a36Sopenharmony_ci TP_ARGS(ring), 70062306a36Sopenharmony_ci TP_STRUCT__entry( 70162306a36Sopenharmony_ci __field(u32, type) 70262306a36Sopenharmony_ci __field(void *, ring) 70362306a36Sopenharmony_ci __field(dma_addr_t, enq) 70462306a36Sopenharmony_ci __field(dma_addr_t, deq) 70562306a36Sopenharmony_ci __field(dma_addr_t, enq_seg) 70662306a36Sopenharmony_ci __field(dma_addr_t, deq_seg) 70762306a36Sopenharmony_ci __field(unsigned int, num_segs) 70862306a36Sopenharmony_ci __field(unsigned int, stream_id) 70962306a36Sopenharmony_ci __field(unsigned int, cycle_state) 71062306a36Sopenharmony_ci __field(unsigned int, num_trbs_free) 71162306a36Sopenharmony_ci __field(unsigned int, bounce_buf_len) 71262306a36Sopenharmony_ci ), 71362306a36Sopenharmony_ci TP_fast_assign( 71462306a36Sopenharmony_ci __entry->ring = ring; 71562306a36Sopenharmony_ci __entry->type = ring->type; 71662306a36Sopenharmony_ci __entry->num_segs = ring->num_segs; 71762306a36Sopenharmony_ci __entry->stream_id = ring->stream_id; 71862306a36Sopenharmony_ci __entry->enq_seg = ring->enq_seg->dma; 71962306a36Sopenharmony_ci __entry->deq_seg = ring->deq_seg->dma; 72062306a36Sopenharmony_ci __entry->cycle_state = ring->cycle_state; 72162306a36Sopenharmony_ci __entry->num_trbs_free = ring->num_trbs_free; 72262306a36Sopenharmony_ci __entry->bounce_buf_len = ring->bounce_buf_len; 72362306a36Sopenharmony_ci __entry->enq = cdnsp_trb_virt_to_dma(ring->enq_seg, 72462306a36Sopenharmony_ci ring->enqueue); 72562306a36Sopenharmony_ci __entry->deq = cdnsp_trb_virt_to_dma(ring->deq_seg, 72662306a36Sopenharmony_ci ring->dequeue); 72762306a36Sopenharmony_ci ), 72862306a36Sopenharmony_ci TP_printk("%s %p: enq %pad(%pad) deq %pad(%pad) segs %d stream %d" 72962306a36Sopenharmony_ci " free_trbs %d bounce %d cycle %d", 73062306a36Sopenharmony_ci cdnsp_ring_type_string(__entry->type), __entry->ring, 73162306a36Sopenharmony_ci &__entry->enq, &__entry->enq_seg, 73262306a36Sopenharmony_ci &__entry->deq, &__entry->deq_seg, 73362306a36Sopenharmony_ci __entry->num_segs, 73462306a36Sopenharmony_ci __entry->stream_id, 73562306a36Sopenharmony_ci __entry->num_trbs_free, 73662306a36Sopenharmony_ci __entry->bounce_buf_len, 73762306a36Sopenharmony_ci __entry->cycle_state 73862306a36Sopenharmony_ci ) 73962306a36Sopenharmony_ci); 74062306a36Sopenharmony_ci 74162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ring, cdnsp_ring_alloc, 74262306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 74362306a36Sopenharmony_ci TP_ARGS(ring) 74462306a36Sopenharmony_ci); 74562306a36Sopenharmony_ci 74662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ring, cdnsp_ring_free, 74762306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 74862306a36Sopenharmony_ci TP_ARGS(ring) 74962306a36Sopenharmony_ci); 75062306a36Sopenharmony_ci 75162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ring, cdnsp_set_stream_ring, 75262306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 75362306a36Sopenharmony_ci TP_ARGS(ring) 75462306a36Sopenharmony_ci); 75562306a36Sopenharmony_ci 75662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ring, cdnsp_ring_expansion, 75762306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 75862306a36Sopenharmony_ci TP_ARGS(ring) 75962306a36Sopenharmony_ci); 76062306a36Sopenharmony_ci 76162306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ring, cdnsp_inc_enq, 76262306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 76362306a36Sopenharmony_ci TP_ARGS(ring) 76462306a36Sopenharmony_ci); 76562306a36Sopenharmony_ci 76662306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_ring, cdnsp_inc_deq, 76762306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ring *ring), 76862306a36Sopenharmony_ci TP_ARGS(ring) 76962306a36Sopenharmony_ci); 77062306a36Sopenharmony_ci 77162306a36Sopenharmony_ciDECLARE_EVENT_CLASS(cdnsp_log_portsc, 77262306a36Sopenharmony_ci TP_PROTO(u32 portnum, u32 portsc), 77362306a36Sopenharmony_ci TP_ARGS(portnum, portsc), 77462306a36Sopenharmony_ci TP_STRUCT__entry( 77562306a36Sopenharmony_ci __field(u32, portnum) 77662306a36Sopenharmony_ci __field(u32, portsc) 77762306a36Sopenharmony_ci ), 77862306a36Sopenharmony_ci TP_fast_assign( 77962306a36Sopenharmony_ci __entry->portnum = portnum; 78062306a36Sopenharmony_ci __entry->portsc = portsc; 78162306a36Sopenharmony_ci ), 78262306a36Sopenharmony_ci TP_printk("port-%d: %s", 78362306a36Sopenharmony_ci __entry->portnum, 78462306a36Sopenharmony_ci cdnsp_decode_portsc(__get_buf(CDNSP_MSG_MAX), CDNSP_MSG_MAX, 78562306a36Sopenharmony_ci __entry->portsc) 78662306a36Sopenharmony_ci ) 78762306a36Sopenharmony_ci); 78862306a36Sopenharmony_ci 78962306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_portsc, cdnsp_handle_port_status, 79062306a36Sopenharmony_ci TP_PROTO(u32 portnum, u32 portsc), 79162306a36Sopenharmony_ci TP_ARGS(portnum, portsc) 79262306a36Sopenharmony_ci); 79362306a36Sopenharmony_ci 79462306a36Sopenharmony_ciDEFINE_EVENT(cdnsp_log_portsc, cdnsp_link_state_changed, 79562306a36Sopenharmony_ci TP_PROTO(u32 portnum, u32 portsc), 79662306a36Sopenharmony_ci TP_ARGS(portnum, portsc) 79762306a36Sopenharmony_ci); 79862306a36Sopenharmony_ci 79962306a36Sopenharmony_ciTRACE_EVENT(cdnsp_stream_number, 80062306a36Sopenharmony_ci TP_PROTO(struct cdnsp_ep *pep, int num_stream_ctxs, int num_streams), 80162306a36Sopenharmony_ci TP_ARGS(pep, num_stream_ctxs, num_streams), 80262306a36Sopenharmony_ci TP_STRUCT__entry( 80362306a36Sopenharmony_ci __string(name, pep->name) 80462306a36Sopenharmony_ci __field(int, num_stream_ctxs) 80562306a36Sopenharmony_ci __field(int, num_streams) 80662306a36Sopenharmony_ci ), 80762306a36Sopenharmony_ci TP_fast_assign( 80862306a36Sopenharmony_ci __entry->num_stream_ctxs = num_stream_ctxs; 80962306a36Sopenharmony_ci __entry->num_streams = num_streams; 81062306a36Sopenharmony_ci ), 81162306a36Sopenharmony_ci TP_printk("%s Need %u stream ctx entries for %u stream IDs.", 81262306a36Sopenharmony_ci __get_str(name), __entry->num_stream_ctxs, 81362306a36Sopenharmony_ci __entry->num_streams) 81462306a36Sopenharmony_ci); 81562306a36Sopenharmony_ci 81662306a36Sopenharmony_ci#endif /* __CDNSP_TRACE_H */ 81762306a36Sopenharmony_ci 81862306a36Sopenharmony_ci/* this part must be outside header guard */ 81962306a36Sopenharmony_ci 82062306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 82162306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH . 82262306a36Sopenharmony_ci 82362306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 82462306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE cdnsp-trace 82562306a36Sopenharmony_ci 82662306a36Sopenharmony_ci#include <trace/define_trace.h> 827