Revert "ARM: OMAP3: PM: call pre/post transition per powerdomain"
commite0e29fd74c3c8bd2ef83bbaa73d528d58a944610
authorKevin Hilman <khilman@ti.com>
Tue, 7 Aug 2012 18:28:06 +0000 (7 11:28 -0700)
committerKevin Hilman <khilman@ti.com>
Tue, 7 Aug 2012 22:44:51 +0000 (7 15:44 -0700)
treee4c11c5bead94a2dcf579ab2526d6054f8009930
parent265a2bc84247c9b9e3bb4fe275f16ba99551a7e7
Revert "ARM: OMAP3: PM: call pre/post transition per powerdomain"

This reverts commit 58f0829b7186150318c79515f0e0850c5e7a9c89.

Converstion to per-pwrdm per/post transition calls was a bit
premature.  Only tracking MPU, PER & CORE in the idle path means we
lose the accounting for all the other powerdomains which may also
transition in idle.  On OMAP3, due to autodeps, several powerdomains
transition along with MPU (e.g. DSS, USBHOST), and the accounting for
these was lost with this patch.  Since the accounting includes the
context loss counters, drivers for devices in those power domains
would never notice context lost, so would likely hang after any
off-mode transitions.

This patch should be revisited when the upcoming clkdm/pwrmdm/voltdm
use-counting seires is merged since then we can properly do accounting
without relying on a call in the idle path.

In addition, the original patch had another bug because the PER
powerdomain accounting was not updated until after the GPIO resume
hook is called.  Since gpio_resume_after_idle() checks the context
loss count (which is not yet updated) it would not properly restore
context, leaving the GPIO banks in an undefined state.

Cc: Jean Pihet <jean.pihet@newoldbits.com>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Rajendra Nayak <rnayak@ti.com>
Reported-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/pm34xx.c