Skip to content

Commit

Permalink
ARM: OMAP2+: hwmod: Restore sysc after a reset
Browse files Browse the repository at this point in the history
After a softreset, make sure the sysc settings are correctly
restored.

Reported-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
[paul@pwsan.com: combined post-reset SYSCONFIG reload code into the
 _reset() function to avoid duplication and future mistakes]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
  • Loading branch information
Rajendra Nayak authored and Paul Walmsley committed Apr 5, 2012
1 parent 2a1cc14 commit 2800852
Showing 1 changed file with 6 additions and 12 deletions.
18 changes: 6 additions & 12 deletions arch/arm/mach-omap2/omap_hwmod.c
Original file line number Diff line number Diff line change
Expand Up @@ -1477,6 +1477,11 @@ static int _reset(struct omap_hwmod *oh)

ret = (oh->class->reset) ? oh->class->reset(oh) : _ocp_softreset(oh);

if (oh->class->sysc) {
_update_sysc_cache(oh);
_enable_sysc(oh);
}

return ret;
}

Expand Down Expand Up @@ -1786,20 +1791,9 @@ static int _setup(struct omap_hwmod *oh, void *data)
return 0;
}

if (!(oh->flags & HWMOD_INIT_NO_RESET)) {
if (!(oh->flags & HWMOD_INIT_NO_RESET))
_reset(oh);

/*
* OCP_SYSCONFIG bits need to be reprogrammed after a softreset.
* The _enable() function should be split to
* avoid the rewrite of the OCP_SYSCONFIG register.
*/
if (oh->class->sysc) {
_update_sysc_cache(oh);
_enable_sysc(oh);
}
}

postsetup_state = oh->_postsetup_state;
if (postsetup_state == _HWMOD_STATE_UNKNOWN)
postsetup_state = _HWMOD_STATE_ENABLED;
Expand Down

0 comments on commit 2800852

Please sign in to comment.