1
0
Fork 0

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 <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
hifive-unleashed-5.1
Johan Hovold 2015-11-25 15:59:13 +01:00 committed by Greg Kroah-Hartman
parent 0daf17b9e4
commit 4ec1574ae9
4 changed files with 8 additions and 6 deletions

View File

@ -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,

View File

@ -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);

View File

@ -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 *);

View File

@ -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);