aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/interface.c
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2016-05-23 23:05:32 -0500
committerGreg Kroah-Hartman <gregkh@google.com>2016-05-26 22:37:19 -0700
commitcb4c8441e5dac4994ab63c1426babda3102beda9 (patch)
tree91ec3a21247a992ea2abddc17eaca940f0b94c68 /drivers/staging/greybus/interface.c
parentgreybus: tracing: add module traces (diff)
downloadlinux-dev-cb4c8441e5dac4994ab63c1426babda3102beda9.tar.xz
linux-dev-cb4c8441e5dac4994ab63c1426babda3102beda9.zip
greybus: tracing: define interface traces
Define a new gb_module trace point event class, used to trace events associated with the interface abstraction. Define four basic trace points for this--creation time, drop of last reference, before registring interfaces and after de-registering them. In addition, define traces for activating and deactivating, and enabling and disabling an interface. Signed-off-by: Alex Elder <elder@linaro.org> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/interface.c')
-rw-r--r--drivers/staging/greybus/interface.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/staging/greybus/interface.c b/drivers/staging/greybus/interface.c
index ba7f880c94e8..c19a09cea462 100644
--- a/drivers/staging/greybus/interface.c
+++ b/drivers/staging/greybus/interface.c
@@ -9,6 +9,7 @@
#include "greybus.h"
+#include "greybus_trace.h"
#define GB_INTERFACE_DEVICE_ID_BAD 0xff
@@ -326,6 +327,8 @@ static void gb_interface_release(struct device *dev)
{
struct gb_interface *intf = to_gb_interface(dev);
+ trace_gb_interface_release(intf);
+
kfree(intf);
}
@@ -375,6 +378,8 @@ struct gb_interface *gb_interface_create(struct gb_module *module,
dev_set_name(&intf->dev, "%s.%u", dev_name(&module->dev),
interface_id);
+ trace_gb_interface_create(intf);
+
return intf;
}
@@ -506,6 +511,8 @@ int gb_interface_activate(struct gb_interface *intf)
intf->active = true;
+ trace_gb_interface_activate(intf);
+
return 0;
err_hibernate_link:
@@ -530,6 +537,8 @@ void gb_interface_deactivate(struct gb_interface *intf)
if (!intf->active)
return;
+ trace_gb_interface_deactivate(intf);
+
gb_interface_route_destroy(intf);
gb_interface_hibernate_link(intf);
gb_interface_unipro_set(intf, false);
@@ -629,6 +638,8 @@ int gb_interface_enable(struct gb_interface *intf)
intf->enabled = true;
+ trace_gb_interface_enable(intf);
+
return 0;
err_destroy_bundles:
@@ -658,6 +669,8 @@ void gb_interface_disable(struct gb_interface *intf)
if (!intf->enabled)
return;
+ trace_gb_interface_disable(intf);
+
/*
* Disable the control-connection early to avoid operation timeouts
* when the interface is already gone.
@@ -687,6 +700,8 @@ int gb_interface_add(struct gb_interface *intf)
return ret;
}
+ trace_gb_interface_add(intf);
+
dev_info(&intf->dev, "Interface added: VID=0x%08x, PID=0x%08x\n",
intf->vendor_id, intf->product_id);
dev_info(&intf->dev, "DDBL1 Manufacturer=0x%08x, Product=0x%08x\n",
@@ -699,6 +714,8 @@ int gb_interface_add(struct gb_interface *intf)
void gb_interface_del(struct gb_interface *intf)
{
if (device_is_registered(&intf->dev)) {
+ trace_gb_interface_del(intf);
+
device_del(&intf->dev);
dev_info(&intf->dev, "Interface removed\n");
}