/*
* 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;
}
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);