Commit 2d48b5b4 authored by David Lin's avatar David Lin Committed by Alex Elder

greybus: bundle: add activate and deactivate

AP shall send the Bundle Activate Operation to power on a bundle, and
send the Bundle Deactivate Request after closing all the associated
connections for power down.

Testing Done:
 - Check for the return code of the bundle activate and deactivate
  operation sent
Signed-off-by: default avatarDavid Lin <dtwlin@google.com>
Signed-off-by: default avatarAxel Haslam <ahaslam@baylibre.com>
Reviewed-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
parent 165a74ab
......@@ -162,6 +162,13 @@ static int greybus_probe(struct device *dev)
if (!id)
return -ENODEV;
/*
* FIXME: We need to perform error handling on bundle activate call
* below when firmware is ready. We just allow the activate operation to
* fail for now since bundle may be in active already.
*/
gb_control_bundle_activate(bundle->intf->control, bundle->id);
retval = driver->probe(bundle, id);
if (retval) {
/*
......@@ -169,6 +176,8 @@ static int greybus_probe(struct device *dev)
*/
WARN_ON(!list_empty(&bundle->connections));
gb_control_bundle_deactivate(bundle->intf->control, bundle->id);
return retval;
}
......@@ -203,6 +212,9 @@ static int greybus_remove(struct device *dev)
/* Catch buggy drivers that fail to destroy their connections. */
WARN_ON(!list_empty(&bundle->connections));
if (!bundle->intf->disconnected)
gb_control_bundle_deactivate(bundle->intf->control, bundle->id);
return 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment