diff options
| author | Tony Lindgren <tony@atomide.com> | 2011-03-11 11:32:25 -0800 | 
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2011-03-11 11:32:25 -0800 | 
| commit | 029268e4c124a38b11ae965849ea2dfef724a568 (patch) | |
| tree | e36914094589e5d8318f535fec1ec658c2305460 /arch/arm/mach-omap2/omap_hwmod.c | |
| parent | 0d9596958d0be59e6bb373b5e6bc0729cbba5110 (diff) | |
| download | olio-linux-3.10-029268e4c124a38b11ae965849ea2dfef724a568.tar.xz olio-linux-3.10-029268e4c124a38b11ae965849ea2dfef724a568.zip  | |
omap2+: Add separate list for dynamic pads to mux
This avoids going through the list unnecessarily when
idling devices for runtime PM.
Based on an earlier patch by sricharan <r.sricharan@ti.com>.
Signed-off-by: sricharan <r.sricharan@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.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, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 4c8329e4e6e..e03429453ce 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -1244,7 +1244,9 @@ static int _enable(struct omap_hwmod *oh)  		_deassert_hardreset(oh, oh->rst_lines[0].name);  	/* Mux pins for device runtime if populated */ -	if (oh->mux) +	if (oh->mux && (!oh->mux->enabled || +			((oh->_state == _HWMOD_STATE_IDLE) && +			 oh->mux->pads_dynamic)))  		omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED);  	_add_initiator_dep(oh, mpu_oh); @@ -1293,7 +1295,7 @@ static int _idle(struct omap_hwmod *oh)  	_disable_clocks(oh);  	/* Mux pins for device idle if populated */ -	if (oh->mux) +	if (oh->mux && oh->mux->pads_dynamic)  		omap_hwmod_mux(oh->mux, _HWMOD_STATE_IDLE);  	oh->_state = _HWMOD_STATE_IDLE;  |