From: Alex Elder Date: Thu, 2 Oct 2014 17:30:06 +0000 (-0500) Subject: greybus: record connection protocol X-Git-Tag: v5.15~12752^2~378^2~21^2~2051 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad1c449eb905ac1bf819afe9b799c11a6cf304a6;p=platform%2Fkernel%2Flinux-starfive.git greybus: record connection protocol Record the protocol association with a connection when it gets created. Signed-off-by: Alex Elder Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c index f3f774d..d63048c 100644 --- a/drivers/staging/greybus/connection.c +++ b/drivers/staging/greybus/connection.c @@ -23,7 +23,7 @@ * pointer otherwise. */ struct gb_connection *gb_connection_create(struct gb_interface *interface, - u16 cport_id) + u16 cport_id, enum greybus_protocol protocol) { struct gb_connection *connection; struct greybus_host_device *hd; @@ -41,6 +41,8 @@ struct gb_connection *gb_connection_create(struct gb_interface *interface, connection->hd = hd; /* XXX refcount? */ connection->interface = interface; /* XXX refcount? */ connection->interface_cport_id = cport_id; + connection->protocol = protocol; + INIT_LIST_HEAD(&connection->operations); atomic_set(&connection->op_cycle, 0); diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h index 530d645..15bdc81 100644 --- a/drivers/staging/greybus/connection.h +++ b/drivers/staging/greybus/connection.h @@ -21,14 +21,14 @@ struct gb_connection { struct list_head hd_links; struct list_head interface_links; - /* protocol */ + enum greybus_protocol protocol; struct list_head operations; atomic_t op_cycle; }; struct gb_connection *gb_connection_create(struct gb_interface *interface, - u16 cport_id); + u16 cport_id, enum greybus_protocol protocol); void gb_connection_destroy(struct gb_connection *connection); u16 gb_connection_op_id(struct gb_connection *connection); diff --git a/drivers/staging/greybus/manifest.c b/drivers/staging/greybus/manifest.c index 6411c26..a694c88 100644 --- a/drivers/staging/greybus/manifest.c +++ b/drivers/staging/greybus/manifest.c @@ -204,7 +204,7 @@ u32 gb_manifest_parse_cports(struct gb_interface *interface) /* Found one. Set up its function structure */ protocol = (enum greybus_protocol)desc_cport->protocol; cport_id = le16_to_cpu(desc_cport->id); - if (!gb_connection_create(interface, cport_id)) + if (!gb_connection_create(interface, cport_id, protocol)) return 0; /* Error */ count++;