mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
greybus: allocate connection host cport id
Allocate a cport id from the host device whenever creating a connection. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
parent
1bb3c724e8
commit
9e8a6860f5
2 changed files with 9 additions and 3 deletions
|
@ -23,7 +23,7 @@
|
|||
* pointer otherwise.
|
||||
*/
|
||||
struct gb_connection *gb_connection_create(struct greybus_host_device *hd,
|
||||
u16 cport_id, struct gb_function *function)
|
||||
struct gb_function *function)
|
||||
{
|
||||
struct gb_connection *connection;
|
||||
|
||||
|
@ -31,8 +31,13 @@ struct gb_connection *gb_connection_create(struct greybus_host_device *hd,
|
|||
if (!connection)
|
||||
return NULL;
|
||||
|
||||
connection->cport_id = greybus_hd_cport_id_alloc(hd);
|
||||
if (connection->cport_id == CPORT_ID_BAD) {
|
||||
kfree(connection);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
connection->hd = hd; /* XXX refcount? */
|
||||
connection->cport_id = cport_id;
|
||||
connection->function = function; /* XXX refcount? */
|
||||
INIT_LIST_HEAD(&connection->operations);
|
||||
atomic_set(&connection->op_cycle, 0);
|
||||
|
@ -51,6 +56,7 @@ void gb_connection_destroy(struct gb_connection *connection)
|
|||
/* XXX Need to wait for any outstanding requests to complete */
|
||||
WARN_ON(!list_empty(&connection->operations));
|
||||
|
||||
greybus_hd_cport_id_free(connection->hd, connection->cport_id);
|
||||
/* kref_put(function); */
|
||||
/* kref_put(hd); */
|
||||
kfree(connection);
|
||||
|
|
|
@ -25,7 +25,7 @@ struct gb_connection {
|
|||
};
|
||||
|
||||
struct gb_connection *gb_connection_create(struct greybus_host_device *hd,
|
||||
u16 cport_id, struct gb_function *function);
|
||||
struct gb_function *function);
|
||||
void gb_connection_destroy(struct gb_connection *connection);
|
||||
|
||||
u16 gb_connection_op_id(struct gb_connection *connection);
|
||||
|
|
Loading…
Reference in a new issue