summaryrefslogtreecommitdiff
path: root/drivers/staging/greybus/module.c
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2014-10-22 05:36:17 -0500
committerGreg Kroah-Hartman <greg@kroah.com>2014-10-22 18:46:21 +0800
commit65e50f95f18066442093d4c49528804a9bc8956f (patch)
treea07ee0486b76cd469446bf8c965c6132b957c8e2 /drivers/staging/greybus/module.c
parent8a9bf8a99669e365bdc89d27bbc29bf0216472f6 (diff)
greybus: set route before sending packets
The route for a connection needs to be set *before* we initialize the connection. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Diffstat (limited to 'drivers/staging/greybus/module.c')
-rw-r--r--drivers/staging/greybus/module.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/staging/greybus/module.c b/drivers/staging/greybus/module.c
index bcb0ff098164..b1ec0904fb28 100644
--- a/drivers/staging/greybus/module.c
+++ b/drivers/staging/greybus/module.c
@@ -130,13 +130,21 @@ gb_module_interface_init(struct gb_module *gmod, u8 interface_id, u8 device_id)
interface_id);
return -ENOENT;
}
+
+ ret = svc_set_route_send(interface, gmod->hd);
+ if (ret) {
+ dev_err(gmod->hd->parent, "failed to set route (%d)\n", ret);
+ return ret;
+ }
+
ret = gb_interface_connections_init(interface);
if (ret) {
dev_err(gmod->hd->parent, "module interface init error %d\n",
ret);
+ /* XXX clear route */
return ret;
}
interface->device_id = device_id;
- return svc_set_route_send(interface, gmod->hd);
+ return 0;
}