From 4ec1574ae99872a9d1922fb1e57b8d46df4d0920 Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Wed, 25 Nov 2015 15:59:13 +0100 Subject: [PATCH] greybus: connection: kill GB_PROTOCOL_SKIP_SVC_CONNECTION Add helper to determine whether a connection is static, and remove the protocol flag GB_PROTOCOL_SKIP_SVC_CONNECTION. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/connection.c | 5 ++--- drivers/staging/greybus/connection.h | 5 +++++ drivers/staging/greybus/protocol.h | 1 - drivers/staging/greybus/svc.c | 3 +-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index a7b803799fa5..3f2fe0103547 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -289,11 +289,10 @@ static int gb_connection_svc_connection_create(struct gb_connection *connection) { struct gb_host_device *hd = connection->hd; - struct gb_protocol *protocol = connection->protocol; struct gb_interface *intf; int ret; - if (protocol->flags & GB_PROTOCOL_SKIP_SVC_CONNECTION) + if (gb_connection_is_static(connection)) return 0; intf = connection->bundle->intf; @@ -315,7 +314,7 @@ gb_connection_svc_connection_create(struct gb_connection *connection) static void gb_connection_svc_connection_destroy(struct gb_connection *connection) { - if (connection->protocol->flags & GB_PROTOCOL_SKIP_SVC_CONNECTION) + if (gb_connection_is_static(connection)) return; gb_svc_connection_destroy(connection->hd->svc, diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h index c5499fcbfd13..446ffe157a12 100644 --- a/drivers/staging/greybus/connection.h +++ b/drivers/staging/greybus/connection.h @@ -60,6 +60,11 @@ struct gb_connection *gb_connection_create_dynamic(struct gb_interface *intf, u8 protocol_id); void gb_connection_destroy(struct gb_connection *connection); +static inline bool gb_connection_is_static(struct gb_connection *connection) +{ + return !connection->intf; +} + void greybus_data_rcvd(struct gb_host_device *hd, u16 cport_id, u8 *data, size_t length); diff --git a/drivers/staging/greybus/protocol.h b/drivers/staging/greybus/protocol.h index b1d122c61c44..384ddf8d1600 100644 --- a/drivers/staging/greybus/protocol.h +++ b/drivers/staging/greybus/protocol.h @@ -18,7 +18,6 @@ struct gb_operation; #define GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED BIT(1) /* Don't sent disconnected requests */ #define GB_PROTOCOL_NO_BUNDLE BIT(2) /* Protocol May have a bundle-less connection */ #define GB_PROTOCOL_SKIP_VERSION BIT(3) /* Don't send get_version() requests */ -#define GB_PROTOCOL_SKIP_SVC_CONNECTION BIT(4) /* Don't send SVC connection requests */ typedef int (*gb_connection_init_t)(struct gb_connection *); typedef void (*gb_connection_exit_t)(struct gb_connection *); diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index 9dd51122ea4c..3beb3a2dfb87 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -750,7 +750,6 @@ static struct gb_protocol svc_protocol = { .flags = GB_PROTOCOL_SKIP_CONTROL_CONNECTED | GB_PROTOCOL_SKIP_CONTROL_DISCONNECTED | GB_PROTOCOL_NO_BUNDLE | - GB_PROTOCOL_SKIP_VERSION | - GB_PROTOCOL_SKIP_SVC_CONNECTION, + GB_PROTOCOL_SKIP_VERSION, }; gb_builtin_protocol_driver(svc_protocol);