diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index d35e95a17c56..7def600ddeb5 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -81,6 +81,8 @@ void greybus_data_rcvd(struct gb_host_device *hd, u16 cport_id, { struct gb_connection *connection; + trace_gb_hd_in(hd); + connection = gb_connection_hd_find(hd, cport_id); if (!connection) { dev_err(&hd->dev, diff --git a/drivers/staging/greybus/es2.c b/drivers/staging/greybus/es2.c index 68a8461ea84c..bdf502493e31 100644 --- a/drivers/staging/greybus/es2.c +++ b/drivers/staging/greybus/es2.c @@ -14,6 +14,7 @@ #include #include "greybus.h" +#include "greybus_trace.h" #include "kernel_ver.h" #include "connection.h" @@ -467,6 +468,9 @@ static int message_send(struct gb_host_device *hd, u16 cport_id, message->buffer, buffer_size, cport_out_callback, message); urb->transfer_flags |= URB_ZERO_PACKET; + + trace_gb_message_submit(message); + retval = usb_submit_urb(urb, gfp_mask); if (retval) { dev_err(&udev->dev, "failed to submit out-urb: %d\n", retval); diff --git a/drivers/staging/greybus/greybus_trace.h b/drivers/staging/greybus/greybus_trace.h index a0757404dc4c..62f5803a408d 100644 --- a/drivers/staging/greybus/greybus_trace.h +++ b/drivers/staging/greybus/greybus_trace.h @@ -88,6 +88,12 @@ DEFINE_MESSAGE_EVENT(gb_message_cancel_outgoing); */ DEFINE_MESSAGE_EVENT(gb_message_cancel_incoming); +/* + * Occurs in the host driver message_send() function just prior to + * handing off the data to be processed by hardware. + */ +DEFINE_MESSAGE_EVENT(gb_message_submit); + #undef DEFINE_MESSAGE_EVENT DECLARE_EVENT_CLASS(gb_operation, @@ -471,7 +477,7 @@ DEFINE_HD_EVENT(gb_hd_release); /* * Occurs after a new host device has been added, after the - * connection to its SVC has * been enabled. + * connection to its SVC has been enabled. */ DEFINE_HD_EVENT(gb_hd_add); @@ -481,6 +487,13 @@ DEFINE_HD_EVENT(gb_hd_add); */ DEFINE_HD_EVENT(gb_hd_del); +/* + * Occurs when a host device has passed received data to the Greybus + * core, after it has been determined it is destined for a valid + * CPort. + */ +DEFINE_HD_EVENT(gb_hd_in); + #undef DEFINE_HD_EVENT #endif /* _TRACE_GREYBUS_H */ diff --git a/drivers/staging/greybus/hd.c b/drivers/staging/greybus/hd.c index 12ac0b6584d8..6d952ba441a6 100644 --- a/drivers/staging/greybus/hd.c +++ b/drivers/staging/greybus/hd.c @@ -13,6 +13,9 @@ #include "greybus.h" #include "greybus_trace.h" +EXPORT_TRACEPOINT_SYMBOL_GPL(gb_message_submit); +EXPORT_TRACEPOINT_SYMBOL_GPL(gb_hd_in); + static struct ida gb_hd_bus_id_map; int gb_hd_output(struct gb_host_device *hd, void *req, u16 size, u8 cmd,