| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * trace.h - USB UVC Gadget Trace Support | |
| * | |
| * Copyright (C) 2024 Pengutronix e.K. | |
| * | |
| * Author: Michael Grzeschik <m.grzeschik@pengutronix.de> | |
| */ | |
| #undef TRACE_SYSTEM | |
| #define TRACE_SYSTEM uvcg | |
| #if !defined(__UVCG_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) | |
| #define __UVCG_TRACE_H | |
| #include <linux/types.h> | |
| #include <linux/tracepoint.h> | |
| #include <linux/usb/gadget.h> | |
| #include <asm/byteorder.h> | |
| DECLARE_EVENT_CLASS(uvcg_video_req, | |
| TP_PROTO(struct usb_request *req, u32 queued), | |
| TP_ARGS(req, queued), | |
| TP_STRUCT__entry( | |
| __field(struct usb_request *, req) | |
| __field(u32, length) | |
| __field(u32, queued) | |
| ), | |
| TP_fast_assign( | |
| __entry->req = req; | |
| __entry->length = req->length; | |
| __entry->queued = queued; | |
| ), | |
| TP_printk("req %p length %u queued %u", | |
| __entry->req, | |
| __entry->length, | |
| __entry->queued) | |
| ); | |
| DEFINE_EVENT(uvcg_video_req, uvcg_video_complete, | |
| TP_PROTO(struct usb_request *req, u32 queued), | |
| TP_ARGS(req, queued) | |
| ); | |
| DEFINE_EVENT(uvcg_video_req, uvcg_video_queue, | |
| TP_PROTO(struct usb_request *req, u32 queued), | |
| TP_ARGS(req, queued) | |
| ); | |
| #endif /* __UVCG_TRACE_H */ | |
| /* this part has to be here */ | |
| #undef TRACE_INCLUDE_PATH | |
| #define TRACE_INCLUDE_PATH . | |
| #undef TRACE_INCLUDE_FILE | |
| #define TRACE_INCLUDE_FILE uvc_trace | |
| #include <trace/define_trace.h> |