greybus: interface: kill gb_create_bundle_connection
authorJohan Hovold <johan@hovoldconsulting.com>
Wed, 25 Nov 2015 14:59:10 +0000 (15:59 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Wed, 25 Nov 2015 23:30:03 +0000 (15:30 -0800)
Kill gb_create_bundle_connection, which was only used to create the
control bundle and connection, and replace it with a specialised static
helper.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/interface.c
drivers/staging/greybus/interface.h

index 5060924..c4ec256 100644 (file)
@@ -71,40 +71,27 @@ struct device_type greybus_interface_type = {
 
 /*
  * Create kernel structures corresponding to a bundle and connection for
- * managing control/svc CPort.
+ * managing control CPort.
  */
-int gb_create_bundle_connection(struct gb_interface *intf, u8 class)
+static int
+gb_interface_create_control_bundle_connection(struct gb_interface *intf)
 {
        struct gb_bundle *bundle;
-       u32 ida_start, ida_end;
-       u8 bundle_id, protocol_id;
-       u16 cport_id;
-
-       if (class == GREYBUS_CLASS_CONTROL) {
-               protocol_id = GREYBUS_PROTOCOL_CONTROL;
-               bundle_id = GB_CONTROL_BUNDLE_ID;
-               cport_id = GB_CONTROL_CPORT_ID;
-               ida_start = 0;
-               ida_end = intf->hd->num_cports - 1;
-       } else if (class == GREYBUS_CLASS_SVC) {
-               protocol_id = GREYBUS_PROTOCOL_SVC;
-               bundle_id = GB_SVC_BUNDLE_ID;
-               cport_id = GB_SVC_CPORT_ID;
-               ida_start = GB_SVC_CPORT_ID;
-               ida_end = GB_SVC_CPORT_ID + 1;
-       } else {
-               WARN_ON(1);
-               return -EINVAL;
-       }
+       struct gb_connection *connection;
 
-       bundle = gb_bundle_create(intf, bundle_id, class);
-       if (!bundle)
-               return -EINVAL;
+       bundle = gb_bundle_create(intf, GB_CONTROL_BUNDLE_ID,
+                                               GREYBUS_CLASS_CONTROL);
+       if (!bundle) {
+               dev_err(&intf->dev, "failed to create control bundle\n");
+               return -ENOMEM;
+       }
 
-       if (!gb_connection_create_range(bundle->intf->hd, bundle,
-                                       cport_id, protocol_id, ida_start,
-                                       ida_end))
-               return -EINVAL;
+       connection = gb_connection_create(bundle, GB_CONTROL_CPORT_ID,
+                                               GREYBUS_PROTOCOL_CONTROL);
+       if (!connection) {
+               dev_err(&intf->dev, "failed to create control connection\n");
+               return -ENOMEM;
+       }
 
        return 0;
 }
@@ -208,11 +195,9 @@ int gb_interface_init(struct gb_interface *intf, u8 device_id)
        intf->device_id = device_id;
 
        /* Establish control CPort connection */
-       ret = gb_create_bundle_connection(intf, GREYBUS_CLASS_CONTROL);
-       if (ret) {
-               dev_err(&intf->dev, "Failed to create control CPort connection (%d)\n", ret);
+       ret = gb_interface_create_control_bundle_connection(intf);
+       if (ret)
                return ret;
-       }
 
        /* Get manifest size using control protocol on CPort */
        size = gb_control_get_manifest_size_operation(intf);
index 1202062..61e9c05 100644 (file)
@@ -61,5 +61,4 @@ int gb_interface_init(struct gb_interface *intf, u8 device_id);
 void gb_interface_remove(struct gb_interface *intf);
 void gb_interfaces_remove(struct gb_host_device *hd);
 
-int gb_create_bundle_connection(struct gb_interface *intf, u8 class);
 #endif /* __INTERFACE_H */