diff options
author | Paul Mundt <lethal@linux-sh.org> | 2011-11-11 15:41:50 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-11-11 15:41:50 +0900 |
commit | 750a7eee7395492960a7aeb3a3a1aa74158ec326 (patch) | |
tree | d45a73dd3acc59493d8d0fdd8f9e912ad4bb4422 | |
parent | 5e442a493fc59fa536c76db1fff5b49ca36a88c5 (diff) | |
download | op-kernel-dev-750a7eee7395492960a7aeb3a3a1aa74158ec326.zip op-kernel-dev-750a7eee7395492960a7aeb3a3a1aa74158ec326.tar.gz |
drivers: sh: Generalize runtime PM platform stub.
The runtime PM platform support stub in use by ARM-based SH/R-Mobile
platforms contains nothing that's specifically ARM-related and instead of
wholly generic to anything using the clock framework.
The recent runtime PM changes interact rather badly with the lazy
disabling of clocks late in the boot process through the clock framework,
leading to situations where the runtime suspend/resume paths are entered
without a clock being actively driven due to having been lazily gated
off.
In order to correct this we can trivially tie in the aforementioned stub
as a general fallback for all SH platforms that don't presently have
their own runtime PM implementations (the corner case being SH-based
SH-Mobile platforms, which have their own stub through the hwblk API --
which in turn has bitrotted and will be subsequently adapted to use the
same stub as everyone else), regardless of whether the platforms choose
to define power domains of their own or not.
This fixes up regressions for clock framework users who also build in
runtime PM support without any specific power domains of their own, which
was previously causing the serial console to be lost when warring with
lazy clock disabling.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/arm/mach-shmobile/Makefile | 2 | ||||
-rw-r--r-- | drivers/sh/Makefile | 8 | ||||
-rw-r--r-- | drivers/sh/pm_runtime.c (renamed from arch/arm/mach-shmobile/pm_runtime.c) | 0 |
3 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 2aec2f7..737bdc6 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile @@ -3,7 +3,7 @@ # # Common objects -obj-y := timer.o console.o clock.o pm_runtime.o +obj-y := timer.o console.o clock.o # CPU objects obj-$(CONFIG_ARCH_SH7367) += setup-sh7367.o clock-sh7367.o intc-sh7367.o diff --git a/drivers/sh/Makefile b/drivers/sh/Makefile index 24e6cec..67e272a 100644 --- a/drivers/sh/Makefile +++ b/drivers/sh/Makefile @@ -7,3 +7,11 @@ obj-$(CONFIG_HAVE_CLK) += clk/ obj-$(CONFIG_MAPLE) += maple/ obj-$(CONFIG_SUPERHYWAY) += superhyway/ obj-$(CONFIG_GENERIC_GPIO) += pfc.o + +# +# For the moment we only use this framework for ARM-based SH/R-Mobile +# platforms and generic SH. SH-based SH-Mobile platforms are still using +# an older framework that is pending up-porting, at which point this +# special casing can go away. +# +obj-$(CONFIG_SUPERH)$(CONFIG_ARCH_SHMOBILE) += pm_runtime.o diff --git a/arch/arm/mach-shmobile/pm_runtime.c b/drivers/sh/pm_runtime.c index bd5c6a3..bd5c6a3 100644 --- a/arch/arm/mach-shmobile/pm_runtime.c +++ b/drivers/sh/pm_runtime.c |