diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index 3f644ca8759e..3339ef956788 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -341,17 +341,12 @@ gb_connection_control_disconnected(struct gb_connection *connection) } /* - * Request protocol version supported by the module. We don't need to do - * this for SVC as that is initiated by the SVC. + * Request protocol version supported by the module. */ static int gb_connection_protocol_get_version(struct gb_connection *connection) { - struct gb_protocol *protocol = connection->protocol; int ret; - if (protocol->flags & GB_PROTOCOL_SKIP_VERSION) - return 0; - ret = gb_protocol_get_version(connection); if (ret) { dev_err(&connection->hd->dev, diff --git a/drivers/staging/greybus/core.c b/drivers/staging/greybus/core.c index 6674b2728f98..a72191f46751 100644 --- a/drivers/staging/greybus/core.c +++ b/drivers/staging/greybus/core.c @@ -234,12 +234,6 @@ static int __init gb_init(void) goto error_operation; } - retval = gb_svc_protocol_init(); - if (retval) { - pr_err("gb_svc_protocol_init failed\n"); - goto error_svc; - } - retval = gb_firmware_protocol_init(); if (retval) { pr_err("gb_firmware_protocol_init failed\n"); @@ -257,8 +251,6 @@ static int __init gb_init(void) error_legacy: gb_firmware_protocol_exit(); error_firmware: - gb_svc_protocol_exit(); -error_svc: gb_operation_exit(); error_operation: gb_hd_exit(); @@ -275,7 +267,6 @@ static void __exit gb_exit(void) { gb_legacy_exit(); gb_firmware_protocol_exit(); - gb_svc_protocol_exit(); gb_operation_exit(); gb_hd_exit(); bus_unregister(&greybus_bus_type); diff --git a/drivers/staging/greybus/protocol.h b/drivers/staging/greybus/protocol.h index 1f25c13bb0e8..26c59efd9ed8 100644 --- a/drivers/staging/greybus/protocol.h +++ b/drivers/staging/greybus/protocol.h @@ -13,9 +13,6 @@ struct gb_connection; struct gb_operation; -/* Possible flags for protocol drivers */ -#define GB_PROTOCOL_SKIP_VERSION BIT(3) /* Don't send get_version() requests */ - typedef int (*gb_connection_init_t)(struct gb_connection *); typedef void (*gb_connection_exit_t)(struct gb_connection *); typedef int (*gb_request_recv_t)(u8, struct gb_operation *); @@ -30,7 +27,6 @@ struct gb_protocol { u8 major; u8 minor; u8 count; - unsigned long flags; struct list_head links; /* global list */ diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index 245cf4d43570..fcdee900a6ab 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -690,10 +690,11 @@ static int gb_svc_intf_reset_recv(struct gb_operation *op) return 0; } -static int gb_svc_request_recv(u8 type, struct gb_operation *op) +static int gb_svc_request_handler(struct gb_operation *op) { struct gb_connection *connection = op->connection; struct gb_svc *svc = connection->private; + u8 type = op->type; int ret = 0; /* @@ -815,7 +816,7 @@ int gb_svc_add(struct gb_svc *svc) * is added from the connection request handler when enough * information has been received. */ - ret = gb_connection_legacy_init(svc->connection); + ret = gb_connection_enable(svc->connection, gb_svc_request_handler); if (ret) return ret; @@ -830,7 +831,7 @@ void gb_svc_del(struct gb_svc *svc) if (device_is_registered(&svc->dev)) device_del(&svc->dev); - gb_connection_legacy_exit(svc->connection); + gb_connection_disable(svc->connection); flush_workqueue(svc->wq); } @@ -839,31 +840,3 @@ void gb_svc_put(struct gb_svc *svc) { put_device(&svc->dev); } - -static int gb_svc_connection_init(struct gb_connection *connection) -{ - struct gb_svc *svc = connection->private; - - dev_dbg(&svc->dev, "%s\n", __func__); - - return 0; -} - -static void gb_svc_connection_exit(struct gb_connection *connection) -{ - struct gb_svc *svc = connection->private; - - dev_dbg(&svc->dev, "%s\n", __func__); -} - -static struct gb_protocol svc_protocol = { - .name = "svc", - .id = GREYBUS_PROTOCOL_SVC, - .major = GB_SVC_VERSION_MAJOR, - .minor = GB_SVC_VERSION_MINOR, - .connection_init = gb_svc_connection_init, - .connection_exit = gb_svc_connection_exit, - .request_recv = gb_svc_request_recv, - .flags = GB_PROTOCOL_SKIP_VERSION, -}; -gb_builtin_protocol_driver(svc_protocol);