aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod.c
diff options
context:
space:
mode:
authorLiam Girdwood <lrg@slimlogic.co.uk>2010-09-21 12:34:09 -0400
committerPaul Walmsley <paul@pwsan.com>2010-09-21 17:11:02 -0400
commit9b579114efc4bd00532de33c783b4cb4638910ff (patch)
tree3dae39799b1b7a2e19d596431b9d79348d29be3f /arch/arm/mach-omap2/omap_hwmod.c
parent3827f9492bdff045ae57fe67e65ce7e259ed4219 (diff)
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: Liam Girdwood <lrg@slimlogic.co.uk> [b-cousson@ti.com: remove the wrong test, remove the re-enable] Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com> Tested-by: Kevin Hilman <khilman@deeprootsystems.com> Cc: Rajendra Nayak <rnayak@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 5bb25e319b7..100115ff1d9 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1434,19 +1434,17 @@ void omap_hwmod_ocp_barrier(struct omap_hwmod *oh)
1434 * 1434 *
1435 * Under some conditions, a driver may wish to reset the entire device. 1435 * Under some conditions, a driver may wish to reset the entire device.
1436 * Called from omap_device code. Returns -EINVAL on error or passes along 1436 * Called from omap_device code. Returns -EINVAL on error or passes along
1437 * the return value from _reset()/_enable(). 1437 * the return value from _reset().
1438 */ 1438 */
1439int omap_hwmod_reset(struct omap_hwmod *oh) 1439int omap_hwmod_reset(struct omap_hwmod *oh)
1440{ 1440{
1441 int r; 1441 int r;
1442 1442
1443 if (!oh || !(oh->_state & _HWMOD_STATE_ENABLED)) 1443 if (!oh)
1444 return -EINVAL; 1444 return -EINVAL;
1445 1445
1446 mutex_lock(&omap_hwmod_mutex); 1446 mutex_lock(&omap_hwmod_mutex);
1447 r = _reset(oh); 1447 r = _reset(oh);
1448 if (!r)
1449 r = _omap_hwmod_enable(oh);
1450 mutex_unlock(&omap_hwmod_mutex); 1448 mutex_unlock(&omap_hwmod_mutex);
1451 1449
1452 return r; 1450 return r;