Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ec1574a authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman
Browse files

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: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 0daf17b9
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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,
+5 −0
Original line number Diff line number Diff line
@@ -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);

+0 −1
Original line number Diff line number Diff line
@@ -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 *);
+1 −2
Original line number Diff line number Diff line
@@ -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);