From 84427943d2da5f55d5cc83d83ba2a75c2079d1dd Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 19 Jan 2016 12:51:15 +0100 Subject: [PATCH] greybus: svc: drop legacy-protocol dependency Drop dependency on the legacy protocol abstraction. Remove the now unused and last legacy-protocol flag GB_PROTOCOL_SKIP_VERSION along with the protocol-flag feature. Reviewed-by: Viresh Kumar Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/connection.c | 7 +------ drivers/staging/greybus/core.c | 9 --------- drivers/staging/greybus/protocol.h | 4 ---- drivers/staging/greybus/svc.c | 35 ++++------------------------------- 4 files changed, 5 insertions(+), 50 deletions(-) diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index 3f644ca..3339ef9 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 6674b27..a72191f 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 1f25c13..26c59ef 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 245cf4d..fcdee90 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); -- 2.7.4