diff options
author | Liam Girdwood <lrg@slimlogic.co.uk> | 2010-09-21 12:34:09 -0400 |
---|---|---|
committer | Paul Walmsley <paul@pwsan.com> | 2010-09-21 17:11:02 -0400 |
commit | 9b579114efc4bd00532de33c783b4cb4638910ff (patch) | |
tree | 3dae39799b1b7a2e19d596431b9d79348d29be3f /arch/arm/mach-omap2/omap_hwmod.c | |
parent | 3827f9492bdff045ae57fe67e65ce7e259ed4219 (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.c | 6 |
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 | */ |
1439 | int omap_hwmod_reset(struct omap_hwmod *oh) | 1439 | int 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; |