提交 9b579114 编写于 作者: L Liam Girdwood 提交者: Paul Walmsley

OMAP: hwmod: Fix omap_hwmod_reset wrong state test

The reset function wrongly used the state flag as a bit mask and was trying
to re-enable after a reset.

hwmod is still enabled for the PRCM point of view after a softreset
so there is no need to re-enable.

Remove the state check from omap_hwmod_reset since the _reset
function is checking that as well and in addition can generate
a warning
Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
[b-cousson@ti.com: remove the wrong test, remove the re-enable]
Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
Signed-off-by: NPaul Walmsley <paul@pwsan.com>
Tested-by: NKevin Hilman <khilman@deeprootsystems.com>
Cc: Rajendra Nayak <rnayak@ti.com>
上级 3827f949
...@@ -1434,19 +1434,17 @@ void omap_hwmod_ocp_barrier(struct omap_hwmod *oh) ...@@ -1434,19 +1434,17 @@ void omap_hwmod_ocp_barrier(struct omap_hwmod *oh)
* *
* Under some conditions, a driver may wish to reset the entire device. * Under some conditions, a driver may wish to reset the entire device.
* Called from omap_device code. Returns -EINVAL on error or passes along * Called from omap_device code. Returns -EINVAL on error or passes along
* the return value from _reset()/_enable(). * the return value from _reset().
*/ */
int omap_hwmod_reset(struct omap_hwmod *oh) int omap_hwmod_reset(struct omap_hwmod *oh)
{ {
int r; int r;
if (!oh || !(oh->_state & _HWMOD_STATE_ENABLED)) if (!oh)
return -EINVAL; return -EINVAL;
mutex_lock(&omap_hwmod_mutex); mutex_lock(&omap_hwmod_mutex);
r = _reset(oh); r = _reset(oh);
if (!r)
r = _omap_hwmod_enable(oh);
mutex_unlock(&omap_hwmod_mutex); mutex_unlock(&omap_hwmod_mutex);
return r; return r;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册