|
@@ -982,9 +982,13 @@ static int _shutdown(struct omap_hwmod *oh)
|
|
|
|
|
|
if (oh->class->sysc)
|
|
if (oh->class->sysc)
|
|
_sysc_shutdown(oh);
|
|
_sysc_shutdown(oh);
|
|
- _del_initiator_dep(oh, mpu_oh);
|
|
|
|
- /* XXX what about the other system initiators here? DMA, tesla, d2d */
|
|
|
|
- _disable_clocks(oh);
|
|
|
|
|
|
+
|
|
|
|
+ /* clocks and deps are already disabled in idle */
|
|
|
|
+ if (oh->_state == _HWMOD_STATE_ENABLED) {
|
|
|
|
+ _del_initiator_dep(oh, mpu_oh);
|
|
|
|
+ /* XXX what about the other system initiators here? dma, dsp */
|
|
|
|
+ _disable_clocks(oh);
|
|
|
|
+ }
|
|
/* XXX Should this code also force-disable the optional clocks? */
|
|
/* XXX Should this code also force-disable the optional clocks? */
|
|
|
|
|
|
/* XXX mux any associated balls to safe mode */
|
|
/* XXX mux any associated balls to safe mode */
|