remoteproc/davinci: fix unbalanced reset between start and stop ops
authorSuman Anna <s-anna@ti.com>
Thu, 18 May 2017 22:09:01 +0000 (17:09 -0500)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Sun, 25 Jun 2017 21:00:54 +0000 (14:00 -0700)
commita63c70d4dc93628147b76b4081838f913c0dbe6e
tree930ce94a6ae80b5bacfaac0341e376d5489b59fd
parent470ac62fe557b905324ccecb3a20ad686672d22e
remoteproc/davinci: fix unbalanced reset between start and stop ops

The davinci remoteproc driver is currently de-asserting the reset in
its rproc .start() ops, but is not asserting the reset in its .stop()
ops. This leaves the remote processor to not boot properly when using
the sysfs 'state' variable between multiple start and stop operations.
On the other hand, a reset is being asserted unconditionally in the
driver remove function to alleviate some of these issues.

Move this reset assertion logic into the .stop() ops implementation
to fix the sysfs state-machine and the unbalanced reset. The logic
from remove is still effective since .stop() ops will be invoked
during the remove due to the enabled 'auto-boot' support. The probe
already has support for asserting the reset in case the DSP is not
in reset for some reason.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/da8xx_remoteproc.c