summaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/control.c
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2016-04-13 19:19:03 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2016-04-21 10:06:00 +0900
commit7326e07b588cace823a36d4a563838b051b8b8a5 (patch)
tree160cc73241c47f319152cd19369a7282c9f673b4 /drivers/staging/greybus/control.c
parenta6e5b014b8fe0bd4cb1e1ca0380320a200605742 (diff)
downloadop-kernel-dev-7326e07b588cace823a36d4a563838b051b8b8a5.zip
op-kernel-dev-7326e07b588cace823a36d4a563838b051b8b8a5.tar.gz
greybus: interface: register control device at hotplug
Make sure to register also the control device along with any bundles when registering an interface. Note that we currently ignore failures to register the control device just as we do for bundle devices. Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/control.c')
-rw-r--r--drivers/staging/greybus/control.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/staging/greybus/control.c b/drivers/staging/greybus/control.c
index c303bb2..6063619 100644
--- a/drivers/staging/greybus/control.c
+++ b/drivers/staging/greybus/control.c
@@ -294,6 +294,27 @@ void gb_control_disable(struct gb_control *control)
gb_connection_disable(control->connection);
}
+int gb_control_add(struct gb_control *control)
+{
+ int ret;
+
+ ret = device_add(&control->dev);
+ if (ret) {
+ dev_err(&control->dev,
+ "failed to register control device: %d\n",
+ ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+void gb_control_del(struct gb_control *control)
+{
+ if (device_is_registered(&control->dev))
+ device_del(&control->dev);
+}
+
void gb_control_put(struct gb_control *control)
{
put_device(&control->dev);
OpenPOWER on IntegriCloud