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

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

greybus: connection: add control connection flag



Add control connection flag which will be set for control connections.

Also add a helper function to test if the flag is set.

Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent d9fa3494
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -227,7 +227,8 @@ gb_connection_create_static(struct gb_host_device *hd, u16 hd_cport_id,
struct gb_connection *
gb_connection_create_control(struct gb_interface *intf)
{
	return _gb_connection_create(intf->hd, -1, intf, NULL, 0, NULL, 0);
	return _gb_connection_create(intf->hd, -1, intf, NULL, 0, NULL,
					GB_CONNECTION_FLAG_CONTROL);
}

struct gb_connection *
@@ -412,11 +413,11 @@ static int gb_connection_control_connected(struct gb_connection *connection)
		return 0;
	}

	control = connection->intf->control;

	if (connection == control->connection)
	if (gb_connection_is_control(connection))
		return 0;

	control = connection->intf->control;

	ret = gb_control_connected_operation(control, cport_id);
	if (ret) {
		dev_err(&connection->bundle->dev,
@@ -438,11 +439,11 @@ gb_connection_control_disconnected(struct gb_connection *connection)
	if (gb_connection_is_static(connection))
		return;

	control = connection->intf->control;

	if (connection == control->connection)
	if (gb_connection_is_control(connection))
		return;

	control = connection->intf->control;

	ret = gb_control_disconnected_operation(control, cport_id);
	if (ret) {
		dev_warn(&connection->bundle->dev,
+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
#define GB_CONNECTION_FLAG_NO_FLOWCTRL	BIT(1)
#define GB_CONNECTION_FLAG_OFFLOADED	BIT(2)
#define GB_CONNECTION_FLAG_CDSI1	BIT(3)
#define GB_CONNECTION_FLAG_CONTROL	BIT(4)

enum gb_connection_state {
	GB_CONNECTION_STATE_INVALID	= 0,
@@ -104,6 +105,11 @@ static inline bool gb_connection_is_offloaded(struct gb_connection *connection)
	return connection->flags & GB_CONNECTION_FLAG_OFFLOADED;
}

static inline bool gb_connection_is_control(struct gb_connection *connection)
{
	return connection->flags & GB_CONNECTION_FLAG_CONTROL;
}

static inline void *gb_connection_get_data(struct gb_connection *connection)
{
	return connection->private;