greybus: record connection protocol
Record the protocol association with a connection when it gets created. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
Родитель
cd345074bb
Коммит
ad1c449eb9
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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++;
|
||||
|
|
Загрузка…
Ссылка в новой задаче