Message ID | 87hacj92ra.fsf@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Monday 14 October 2013 01:32 PM, Kevin Hilman wrote: > Santosh Shilimkar <santosh.shilimkar@ti.com> writes: > >> On Thursday 29 August 2013 07:36 PM, Santosh Shilimkar wrote: >>> Add runtime PM core support to Keystone SOCs by using the pm_clk >>> infrastructure of the PM core. Patch is based on Kevin's pm_domain >>> work on DaVinci SOCs. >>> >>> Keystone SOC doesn't have depedency to enable clocks in early >>> in the boot and hence the clock and PM bus initialisation is done >>> at subsys_init() level. >>> >>> Cc: Kevin Hilman <khilman@linaro.org> >>> >>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> >>> --- >> For record, updated patch end of the email as discussed here [1] > > Unfortunately, this one broke boot for muilti_v7_defconfig: > > http://lists.linaro.org/pipermail/kernel-build-reports/2013-October/000652.html > Damn. Sorry about that. > [...] > >> +int __init keystone_pm_runtime_init(void) >> +{ >> + of_clk_init(NULL); >> + pm_clk_add_notifier(&platform_bus_type, &platform_domain_notifier); >> + >> + return 0; >> +} >> +subsys_initcall(keystone_pm_runtime_init); > > The reason is this initcall which runs on *all* platforms, so needs some > sort of platform specific check. > > The patch below does the trick, but I'm not sure if you want to match on > something more specific for this check. If you're OK, with this, I'll > add it to next/soc with your ack. > > Kevin > > From 435ed298c804048548276b60fd5efdf697f6b82f Mon Sep 17 00:00:00 2001 > From: Kevin Hilman <khilman@linaro.org> > Date: Mon, 14 Oct 2013 10:30:11 -0700 > Subject: [PATCH] ARM: keystone: fix PM domain initcall to be keystone only > > initcalls need to have platform specific checks so they are not run in > multi-platform builds. > > Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> > Signed-off-by: Kevin Hilman <khilman@linaro.org> > --- Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Looks right. Thanks a lot Kevin.
Santosh Shilimkar <santosh.shilimkar@ti.com> writes: > On Monday 14 October 2013 01:32 PM, Kevin Hilman wrote: >> Santosh Shilimkar <santosh.shilimkar@ti.com> writes: >> >>> On Thursday 29 August 2013 07:36 PM, Santosh Shilimkar wrote: >>>> Add runtime PM core support to Keystone SOCs by using the pm_clk >>>> infrastructure of the PM core. Patch is based on Kevin's pm_domain >>>> work on DaVinci SOCs. >>>> >>>> Keystone SOC doesn't have depedency to enable clocks in early >>>> in the boot and hence the clock and PM bus initialisation is done >>>> at subsys_init() level. >>>> >>>> Cc: Kevin Hilman <khilman@linaro.org> >>>> >>>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> >>>> --- >>> For record, updated patch end of the email as discussed here [1] >> >> Unfortunately, this one broke boot for muilti_v7_defconfig: >> >> http://lists.linaro.org/pipermail/kernel-build-reports/2013-October/000652.html >> > Damn. Sorry about that. > > >> [...] >> >>> +int __init keystone_pm_runtime_init(void) >>> +{ >>> + of_clk_init(NULL); >>> + pm_clk_add_notifier(&platform_bus_type, &platform_domain_notifier); >>> + >>> + return 0; >>> +} >>> +subsys_initcall(keystone_pm_runtime_init); >> >> The reason is this initcall which runs on *all* platforms, so needs some >> sort of platform specific check. >> >> The patch below does the trick, but I'm not sure if you want to match on >> something more specific for this check. If you're OK, with this, I'll >> add it to next/soc with your ack. >> >> Kevin >> >> From 435ed298c804048548276b60fd5efdf697f6b82f Mon Sep 17 00:00:00 2001 >> From: Kevin Hilman <khilman@linaro.org> >> Date: Mon, 14 Oct 2013 10:30:11 -0700 >> Subject: [PATCH] ARM: keystone: fix PM domain initcall to be keystone only >> >> initcalls need to have platform specific checks so they are not run in >> multi-platform builds. >> >> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> >> Signed-off-by: Kevin Hilman <khilman@linaro.org> >> --- > Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > Looks right. Thanks a lot Kevin. Thanks, appled to next/soc after keystone/soc merge. Kevin
diff --git a/arch/arm/mach-keystone/pm_domain.c b/arch/arm/mach-keystone/pm_domain.c index beac3fb..2962523 100644 --- a/arch/arm/mach-keystone/pm_domain.c +++ b/arch/arm/mach-keystone/pm_domain.c @@ -17,6 +17,7 @@ #include <linux/pm_clock.h> #include <linux/platform_device.h> #include <linux/clk-provider.h> +#include <linux/of.h> #ifdef CONFIG_PM_RUNTIME static int keystone_pm_runtime_suspend(struct device *dev) @@ -60,8 +61,19 @@ static struct pm_clk_notifier_block platform_domain_notifier = { .pm_domain = &keystone_pm_domain, }; +static struct of_device_id of_keystone_table[] = { + {.compatible = "ti,keystone"}, + { /* end of list */ }, +}; + int __init keystone_pm_runtime_init(void) { + struct device_node *np; + + np = of_find_matching_node(NULL, of_keystone_table); + if (!np) + return 0; + of_clk_init(NULL); pm_clk_add_notifier(&platform_bus_type, &platform_domain_notifier);