162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#if !defined(_TRACE_PWC_H) || defined(TRACE_HEADER_MULTI_READ) 362306a36Sopenharmony_ci#define _TRACE_PWC_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/usb.h> 662306a36Sopenharmony_ci#include <linux/tracepoint.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#undef TRACE_SYSTEM 962306a36Sopenharmony_ci#define TRACE_SYSTEM pwc 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciTRACE_EVENT(pwc_handler_enter, 1262306a36Sopenharmony_ci TP_PROTO(struct urb *urb, struct pwc_device *pdev), 1362306a36Sopenharmony_ci TP_ARGS(urb, pdev), 1462306a36Sopenharmony_ci TP_STRUCT__entry( 1562306a36Sopenharmony_ci __field(struct urb*, urb) 1662306a36Sopenharmony_ci __field(struct pwc_frame_buf*, fbuf) 1762306a36Sopenharmony_ci __field(int, urb__status) 1862306a36Sopenharmony_ci __field(u32, urb__actual_length) 1962306a36Sopenharmony_ci __field(int, fbuf__filled) 2062306a36Sopenharmony_ci __string(name, pdev->v4l2_dev.name) 2162306a36Sopenharmony_ci ), 2262306a36Sopenharmony_ci TP_fast_assign( 2362306a36Sopenharmony_ci __entry->urb = urb; 2462306a36Sopenharmony_ci __entry->fbuf = pdev->fill_buf; 2562306a36Sopenharmony_ci __entry->urb__status = urb->status; 2662306a36Sopenharmony_ci __entry->urb__actual_length = urb->actual_length; 2762306a36Sopenharmony_ci __entry->fbuf__filled = (pdev->fill_buf 2862306a36Sopenharmony_ci ? pdev->fill_buf->filled : 0); 2962306a36Sopenharmony_ci __assign_str(name, pdev->v4l2_dev.name); 3062306a36Sopenharmony_ci ), 3162306a36Sopenharmony_ci TP_printk("dev=%s (fbuf=%p filled=%d) urb=%p (status=%d actual_length=%u)", 3262306a36Sopenharmony_ci __get_str(name), 3362306a36Sopenharmony_ci __entry->fbuf, 3462306a36Sopenharmony_ci __entry->fbuf__filled, 3562306a36Sopenharmony_ci __entry->urb, 3662306a36Sopenharmony_ci __entry->urb__status, 3762306a36Sopenharmony_ci __entry->urb__actual_length) 3862306a36Sopenharmony_ci); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciTRACE_EVENT(pwc_handler_exit, 4162306a36Sopenharmony_ci TP_PROTO(struct urb *urb, struct pwc_device *pdev), 4262306a36Sopenharmony_ci TP_ARGS(urb, pdev), 4362306a36Sopenharmony_ci TP_STRUCT__entry( 4462306a36Sopenharmony_ci __field(struct urb*, urb) 4562306a36Sopenharmony_ci __field(struct pwc_frame_buf*, fbuf) 4662306a36Sopenharmony_ci __field(int, fbuf__filled) 4762306a36Sopenharmony_ci __string(name, pdev->v4l2_dev.name) 4862306a36Sopenharmony_ci ), 4962306a36Sopenharmony_ci TP_fast_assign( 5062306a36Sopenharmony_ci __entry->urb = urb; 5162306a36Sopenharmony_ci __entry->fbuf = pdev->fill_buf; 5262306a36Sopenharmony_ci __entry->fbuf__filled = pdev->fill_buf->filled; 5362306a36Sopenharmony_ci __assign_str(name, pdev->v4l2_dev.name); 5462306a36Sopenharmony_ci ), 5562306a36Sopenharmony_ci TP_printk(" dev=%s (fbuf=%p filled=%d) urb=%p", 5662306a36Sopenharmony_ci __get_str(name), 5762306a36Sopenharmony_ci __entry->fbuf, 5862306a36Sopenharmony_ci __entry->fbuf__filled, 5962306a36Sopenharmony_ci __entry->urb) 6062306a36Sopenharmony_ci); 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci#endif /* _TRACE_PWC_H */ 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci/* This part must be outside protection */ 6562306a36Sopenharmony_ci#include <trace/define_trace.h> 66