greybus: interface: use an enum for interface type
[cascardo/linux.git] / drivers / staging / greybus / module.c
index ea58954..3ae5876 100644 (file)
@@ -8,6 +8,7 @@
  */
 
 #include "greybus.h"
+#include "greybus_trace.h"
 
 
 static ssize_t eject_store(struct device *dev,
@@ -77,6 +78,8 @@ static void gb_module_release(struct device *dev)
 {
        struct gb_module *module = to_gb_module(dev);
 
+       trace_gb_module_release(module);
+
        kfree(module);
 }
 
@@ -109,6 +112,8 @@ struct gb_module *gb_module_create(struct gb_host_device *hd, u8 module_id,
        device_initialize(&module->dev);
        dev_set_name(&module->dev, "%d-%u", hd->bus_id, module_id);
 
+       trace_gb_module_create(module);
+
        for (i = 0; i < num_interfaces; ++i) {
                intf = gb_interface_create(module, module_id + i);
                if (!intf) {
@@ -148,8 +153,11 @@ static void gb_module_register_interface(struct gb_interface *intf)
                        break;
        }
        if (ret) {
-               dev_err(&module->dev, "failed to activate interface %u: %d\n",
-                               intf_id, ret);
+               if (intf->type != GB_INTERFACE_TYPE_DUMMY) {
+                       dev_err(&module->dev,
+                                       "failed to activate interface %u: %d\n",
+                                       intf_id, ret);
+               }
 
                /*
                 * -EAGAIN indicates that the Greybus operation
@@ -215,6 +223,8 @@ int gb_module_add(struct gb_module *module)
                return ret;
        }
 
+       trace_gb_module_add(module);
+
        for (i = 0; i < module->num_interfaces; ++i)
                gb_module_register_interface(module->interfaces[i]);
 
@@ -229,6 +239,8 @@ void gb_module_del(struct gb_module *module)
        for (i = 0; i < module->num_interfaces; ++i)
                gb_module_deregister_interface(module->interfaces[i]);
 
+       trace_gb_module_del(module);
+
        device_del(&module->dev);
 }