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

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

greybus: connection: add name field



Add a name field to connections that can be used in log messages.

A connection always belongs to a host-device (bus) and can be uniquely
identified by its host-device cport id, but include remote interface and
cport id nonetheless on the following format:

	<hd_cport_id>/<intf_id>:<cport_id>

The remote interface and cport id will be zero for static connections.

Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 4ec1574a
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
@@ -95,6 +95,21 @@ int svc_update_connection(struct gb_interface *intf,
	return 0;
	return 0;
}
}


static void gb_connection_init_name(struct gb_connection *connection)
{
	u16 hd_cport_id = connection->hd_cport_id;
	u16 cport_id = 0;
	u8 intf_id = 0;

	if (connection->intf) {
		intf_id = connection->intf->interface_id;
		cport_id = connection->intf_cport_id;
	}

	snprintf(connection->name, sizeof(connection->name),
			"%hu/%hhu:%hu", hd_cport_id, intf_id, cport_id);
}

/*
/*
 * gb_connection_create() - create a Greybus connection
 * gb_connection_create() - create a Greybus connection
 * @hd:			host device of the connection
 * @hd:			host device of the connection
@@ -179,6 +194,8 @@ gb_connection_create(struct gb_host_device *hd, int hd_cport_id,


	kref_init(&connection->kref);
	kref_init(&connection->kref);


	gb_connection_init_name(connection);

	spin_lock_irq(&gb_connections_lock);
	spin_lock_irq(&gb_connections_lock);
	list_add(&connection->hd_links, &hd->connections);
	list_add(&connection->hd_links, &hd->connections);


+1 −0
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@ struct gb_connection {
	enum gb_connection_state	state;
	enum gb_connection_state	state;
	struct list_head		operations;
	struct list_head		operations;


	char				name[16];
	struct workqueue_struct		*wq;
	struct workqueue_struct		*wq;


	atomic_t			op_cycle;
	atomic_t			op_cycle;