Commit be37b1e0 authored by Bjorn Andersson's avatar Bjorn Andersson

remoteproc: Make start and stop in subdev optional

Some subdevices, such as glink ssr only care about the stop operation,
so make the operations optional to reduce client code.
Tested-by: default avatarFabien Dessenne <fabien.dessenne@st.com>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by Alex Elder <elder@linaro.org>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent 618fcff3
......@@ -780,16 +780,20 @@ static int rproc_start_subdevices(struct rproc *rproc)
int ret;
list_for_each_entry(subdev, &rproc->subdevs, node) {
ret = subdev->start(subdev);
if (ret)
goto unroll_registration;
if (subdev->start) {
ret = subdev->start(subdev);
if (ret)
goto unroll_registration;
}
}
return 0;
unroll_registration:
list_for_each_entry_continue_reverse(subdev, &rproc->subdevs, node)
subdev->stop(subdev, true);
list_for_each_entry_continue_reverse(subdev, &rproc->subdevs, node) {
if (subdev->stop)
subdev->stop(subdev, true);
}
return ret;
}
......@@ -798,8 +802,10 @@ static void rproc_stop_subdevices(struct rproc *rproc, bool crashed)
{
struct rproc_subdev *subdev;
list_for_each_entry_reverse(subdev, &rproc->subdevs, node)
subdev->stop(subdev, crashed);
list_for_each_entry_reverse(subdev, &rproc->subdevs, node) {
if (subdev->stop)
subdev->stop(subdev, crashed);
}
}
/**
......
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