summaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/greybus/connection.c7
-rw-r--r--drivers/staging/greybus/core.c9
-rw-r--r--drivers/staging/greybus/protocol.h4
-rw-r--r--drivers/staging/greybus/svc.c35
4 files changed, 5 insertions, 50 deletions
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);