From bc3be1705c17e05c4d423a67a49a9f316d235bf4 Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 19 Jan 2016 12:51:12 +0100 Subject: [PATCH] greybus: connection: remove skip-connected legacy protocol flags Remove the legacy protocol flags that were used to suppress the connected and disconnected events. Instead send the connected and disconnected event for all bundle connections and explicitly exclude static connections and control connections. Reviewed-by: Viresh Kumar Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/connection.c | 16 ++++++++++------ drivers/staging/greybus/control.c | 2 -- drivers/staging/greybus/protocol.h | 2 -- drivers/staging/greybus/svc.c | 4 +--- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index c3207c8..3f644ca 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -295,15 +295,17 @@ gb_connection_svc_connection_destroy(struct gb_connection *connection) /* Inform Interface about active CPorts */ static int gb_connection_control_connected(struct gb_connection *connection) { - struct gb_protocol *protocol = connection->protocol; struct gb_control *control; u16 cport_id = connection->intf_cport_id; int ret; - if (protocol->flags & GB_PROTOCOL_SKIP_CONTROL_CONNECTED) + if (gb_connection_is_static(connection)) return 0; - control = connection->bundle->intf->control; + control = connection->intf->control; + + if (connection == control->connection) + return 0; ret = gb_control_connected_operation(control, cport_id); if (ret) { @@ -319,15 +321,17 @@ static int gb_connection_control_connected(struct gb_connection *connection) static void gb_connection_control_disconnected(struct gb_connection *connection) { - struct gb_protocol *protocol = connection->protocol; struct gb_control *control; u16 cport_id = connection->intf_cport_id; int ret; - if (protocol->flags & GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED) + if (gb_connection_is_static(connection)) return; - control = connection->bundle->intf->control; + control = connection->intf->control; + + if (connection == control->connection) + return; ret = gb_control_disconnected_operation(control, cport_id); if (ret) { diff --git a/drivers/staging/greybus/control.c b/drivers/staging/greybus/control.c index 1c4994b..12a9eca 100644 --- a/drivers/staging/greybus/control.c +++ b/drivers/staging/greybus/control.c @@ -159,7 +159,5 @@ static struct gb_protocol control_protocol = { .minor = GB_CONTROL_VERSION_MINOR, .connection_init = gb_control_connection_init, .connection_exit = gb_control_connection_exit, - .flags = GB_PROTOCOL_SKIP_CONTROL_CONNECTED | - GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED, }; gb_builtin_protocol_driver(control_protocol); diff --git a/drivers/staging/greybus/protocol.h b/drivers/staging/greybus/protocol.h index f24281b..1f25c13 100644 --- a/drivers/staging/greybus/protocol.h +++ b/drivers/staging/greybus/protocol.h @@ -14,8 +14,6 @@ struct gb_connection; struct gb_operation; /* Possible flags for protocol drivers */ -#define GB_PROTOCOL_SKIP_CONTROL_CONNECTED BIT(0) /* Don't sent connected requests */ -#define GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED BIT(1) /* Don't sent disconnected requests */ #define GB_PROTOCOL_SKIP_VERSION BIT(3) /* Don't send get_version() requests */ typedef int (*gb_connection_init_t)(struct gb_connection *); diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index 0bbcdda..245cf4d 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -864,8 +864,6 @@ static struct gb_protocol svc_protocol = { .connection_init = gb_svc_connection_init, .connection_exit = gb_svc_connection_exit, .request_recv = gb_svc_request_recv, - .flags = GB_PROTOCOL_SKIP_CONTROL_CONNECTED | - GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED | - GB_PROTOCOL_SKIP_VERSION, + .flags = GB_PROTOCOL_SKIP_VERSION, }; gb_builtin_protocol_driver(svc_protocol); -- 2.7.4