* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
@ 2014-04-15 14:49 ` Laurent Pinchart
2014-04-15 15:52 ` Geert Uytterhoeven
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Laurent Pinchart @ 2014-04-15 14:49 UTC (permalink / raw)
To: linux-sh
Hi Geert,
On Tuesday 15 April 2014 14:33:56 Geert Uytterhoeven wrote:
> Hi all,
>
> This patchset enables the PM runtime code in drivers/sh/pm_runtime.c when
> running a multi-platform ARM kernel including support for shmobile.
> Before this code was only enabled for legacy shmobile kernels, leading to
> disabled clocks in multiplatform kernels, depending on implicit reset state
> or on the bootloader.
> It also contains some related cleanups, and removals of workarounds.
>
> - [01/17] ARM: shmobile: r8a7740: Remove unused
> r8a7740_add_early_devices_dt()
> - [02/17] ARM: shmobile: r8a7740: Make r8a7740_meram_workaround() __init
> - [03/17] ARM: shmobile: sh7372: Call sh7372_add_early_devices() instead
> of open coding
> - [04/17] drivers: sh: pm_runtime does not need idle callback
> - [05/17] drivers: sh: pm_runtime implementation needs to suspend and
> resume devices
> - [06/17] sh: intc: Restrict INTC_USERIMASK to SH4A
> - [07/17] drivers: sh: compile drivers/sh/pm_runtime.c if
> ARCH_SHMOBILE_MULTI - [08/17] ARM: shmobile: Call sh_pm_runtime_init() from
> platform code on all SoCs
> - [09/17] drivers: sh: Remove automatic sh_pm_runtime_init() if
> ARCH_SHMOBILE_LEGACY
> - [10/17] ARM: shmobile: koelsch-reference: Remove workarounds for core
> clock issues
> - [11/17] ARM: shmobile: lager-reference: Remove workarounds for core
> clock issues
> - [12/17] clk: shmobile: mstp: Fix the is_enabled() operation
> - [13/17] ARM: shmobile: r7s72100: Populate .init_machine for generic
> r7s72100
> - [14/17] ARM: shmobile: r8a73a4: Populate .init_machine for generic
> r8a73a4 - [15/17] ARM: shmobile: r8a7778: Populate .init_machine for
> generic r8a7778 - [16/17] ARM: shmobile: r8a7790: Populate .init_machine
> for generic r8a7790 - [17/17] ARM: shmobile: r8a7791: Populate
> .init_machine for generic r8a7791
>
> Patches 4, 5, and 7 were authored by Ben Dooks, with some changes made by me
> (for patch 7).
> Patch 8 was based on a patch by Ben for r8a7790.
> Patch 12 was authored by Laurent Pinchart.
>
> Besides rebasing, only one patch was changed, compared to previous
> submission: - 8: The call to sh_pm_runtime_init() was moved to the start of
> .init_machine(), to enable the GPIO clocks on R-Car Gen2.
Thank you for the patches.
> Several patches are new:
> - 1-3 contain some related cleanups to board support code,
> - 5 was added as it touches related code,
> - 10-11 remove workarounds that are no longer needed,
> - 12 was added as it depends on the fixes from this series,
For 01/17 to 12/17,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> - 13-17 are more or less RFCs: As we always have to call
> sh_pm_runtime_init(), I added .init_machine hooks in the generic support
> code for all SoCs that didn't have it yet. I also included code to set up
> SoC platform support while at it, as this will be useful later. Booting
> using a generic "renesas,r*" DT was untested.
I wonder whether we shouldn't wait until we get rid of the *_add_dt_devices()
functions before applying those.
As the goal is to remove the setup-*.c files, have you thought about where the
sh_pm_runtime_init() calls should move to ?
> This was tested on Koelsch, both legacy and multi-platform.
>
> Many thanks to Ben Dooks, Laurent Pinchart, and Magnus Damm for the
> valuable input, investigations, and discussions.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
2014-04-15 14:49 ` Laurent Pinchart
@ 2014-04-15 15:52 ` Geert Uytterhoeven
2014-04-16 0:18 ` Simon Horman
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2014-04-15 15:52 UTC (permalink / raw)
To: linux-sh
Hi Laurent,
On Tue, Apr 15, 2014 at 4:49 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>> - 13-17 are more or less RFCs: As we always have to call
>> sh_pm_runtime_init(), I added .init_machine hooks in the generic support
>> code for all SoCs that didn't have it yet. I also included code to set up
>> SoC platform support while at it, as this will be useful later. Booting
>> using a generic "renesas,r*" DT was untested.
>
> I wonder whether we shouldn't wait until we get rid of the *_add_dt_devices()
> functions before applying those.
Sure, that's why they're marked RFC...
> As the goal is to remove the setup-*.c files, have you thought about where the
> sh_pm_runtime_init() calls should move to ?
cpg_mstp_clocks_init() would be nice ;-) Unfortunately it's way too early.
I'm looking for a way to tie this into the connection between devices and
MSTP gate clocks.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
2014-04-15 14:49 ` Laurent Pinchart
2014-04-15 15:52 ` Geert Uytterhoeven
@ 2014-04-16 0:18 ` Simon Horman
2014-04-16 1:02 ` Simon Horman
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2014-04-16 0:18 UTC (permalink / raw)
To: linux-sh
On Tue, Apr 15, 2014 at 04:49:35PM +0200, Laurent Pinchart wrote:
> Hi Geert,
>
> On Tuesday 15 April 2014 14:33:56 Geert Uytterhoeven wrote:
> > Hi all,
> >
> > This patchset enables the PM runtime code in drivers/sh/pm_runtime.c when
> > running a multi-platform ARM kernel including support for shmobile.
> > Before this code was only enabled for legacy shmobile kernels, leading to
> > disabled clocks in multiplatform kernels, depending on implicit reset state
> > or on the bootloader.
> > It also contains some related cleanups, and removals of workarounds.
I am wondering what kind of overhead this introduces for non shmobile
platforms that use a kernel compiled with ARCH_SHMOBILE_MULTI enabled.
> >
> > - [01/17] ARM: shmobile: r8a7740: Remove unused
> > r8a7740_add_early_devices_dt()
> > - [02/17] ARM: shmobile: r8a7740: Make r8a7740_meram_workaround() __init
> > - [03/17] ARM: shmobile: sh7372: Call sh7372_add_early_devices() instead
> > of open coding
> > - [04/17] drivers: sh: pm_runtime does not need idle callback
> > - [05/17] drivers: sh: pm_runtime implementation needs to suspend and
> > resume devices
> > - [06/17] sh: intc: Restrict INTC_USERIMASK to SH4A
> > - [07/17] drivers: sh: compile drivers/sh/pm_runtime.c if
> > ARCH_SHMOBILE_MULTI - [08/17] ARM: shmobile: Call sh_pm_runtime_init() from
> > platform code on all SoCs
> > - [09/17] drivers: sh: Remove automatic sh_pm_runtime_init() if
> > ARCH_SHMOBILE_LEGACY
> > - [10/17] ARM: shmobile: koelsch-reference: Remove workarounds for core
> > clock issues
> > - [11/17] ARM: shmobile: lager-reference: Remove workarounds for core
> > clock issues
> > - [12/17] clk: shmobile: mstp: Fix the is_enabled() operation
> > - [13/17] ARM: shmobile: r7s72100: Populate .init_machine for generic
> > r7s72100
> > - [14/17] ARM: shmobile: r8a73a4: Populate .init_machine for generic
> > r8a73a4 - [15/17] ARM: shmobile: r8a7778: Populate .init_machine for
> > generic r8a7778 - [16/17] ARM: shmobile: r8a7790: Populate .init_machine
> > for generic r8a7790 - [17/17] ARM: shmobile: r8a7791: Populate
> > .init_machine for generic r8a7791
> > Patches 4, 5, and 7 were authored by Ben Dooks, with some changes made by me
> > (for patch 7).
> > Patch 8 was based on a patch by Ben for r8a7790.
> > Patch 12 was authored by Laurent Pinchart.
> >
> > Besides rebasing, only one patch was changed, compared to previous
> > submission: - 8: The call to sh_pm_runtime_init() was moved to the start of
> > .init_machine(), to enable the GPIO clocks on R-Car Gen2.
>
> Thank you for the patches.
>
> > Several patches are new:
> > - 1-3 contain some related cleanups to board support code,
Thanks, I'll look at queuing them up.
> > - 5 was added as it touches related code,
> > - 10-11 remove workarounds that are no longer needed,
> > - 12 was added as it depends on the fixes from this series,
Magnus, I'd appreciate a review from you of patches 4 - 12.
>
> For 01/17 to 12/17,
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > - 13-17 are more or less RFCs: As we always have to call
> > sh_pm_runtime_init(), I added .init_machine hooks in the generic support
> > code for all SoCs that didn't have it yet. I also included code to set up
> > SoC platform support while at it, as this will be useful later. Booting
> > using a generic "renesas,r*" DT was untested.
>
> I wonder whether we shouldn't wait until we get rid of the *_add_dt_devices()
> functions before applying those.
>
> As the goal is to remove the setup-*.c files, have you thought about where the
> sh_pm_runtime_init() calls should move to ?
>
> > This was tested on Koelsch, both legacy and multi-platform.
> >
> > Many thanks to Ben Dooks, Laurent Pinchart, and Magnus Damm for the
> > valuable input, investigations, and discussions.
>
> --
> Regards,
>
> Laurent Pinchart
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
` (2 preceding siblings ...)
2014-04-16 0:18 ` Simon Horman
@ 2014-04-16 1:02 ` Simon Horman
2014-04-16 7:15 ` Geert Uytterhoeven
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2014-04-16 1:02 UTC (permalink / raw)
To: linux-sh
On Wed, Apr 16, 2014 at 09:18:14AM +0900, Simon Horman wrote:
> On Tue, Apr 15, 2014 at 04:49:35PM +0200, Laurent Pinchart wrote:
> > Hi Geert,
> >
> > On Tuesday 15 April 2014 14:33:56 Geert Uytterhoeven wrote:
> > > Hi all,
> > >
> > > This patchset enables the PM runtime code in drivers/sh/pm_runtime.c when
> > > running a multi-platform ARM kernel including support for shmobile.
> > > Before this code was only enabled for legacy shmobile kernels, leading to
> > > disabled clocks in multiplatform kernels, depending on implicit reset state
> > > or on the bootloader.
> > > It also contains some related cleanups, and removals of workarounds.
>
> I am wondering what kind of overhead this introduces for non shmobile
> platforms that use a kernel compiled with ARCH_SHMOBILE_MULTI enabled.
>
> > >
> > > - [01/17] ARM: shmobile: r8a7740: Remove unused
> > > r8a7740_add_early_devices_dt()
> > > - [02/17] ARM: shmobile: r8a7740: Make r8a7740_meram_workaround() __init
> > > - [03/17] ARM: shmobile: sh7372: Call sh7372_add_early_devices() instead
> > > of open coding
> > > - [04/17] drivers: sh: pm_runtime does not need idle callback
> > > - [05/17] drivers: sh: pm_runtime implementation needs to suspend and
> > > resume devices
> > > - [06/17] sh: intc: Restrict INTC_USERIMASK to SH4A
> > > - [07/17] drivers: sh: compile drivers/sh/pm_runtime.c if
> > > ARCH_SHMOBILE_MULTI - [08/17] ARM: shmobile: Call sh_pm_runtime_init() from
> > > platform code on all SoCs
> > > - [09/17] drivers: sh: Remove automatic sh_pm_runtime_init() if
> > > ARCH_SHMOBILE_LEGACY
> > > - [10/17] ARM: shmobile: koelsch-reference: Remove workarounds for core
> > > clock issues
> > > - [11/17] ARM: shmobile: lager-reference: Remove workarounds for core
> > > clock issues
> > > - [12/17] clk: shmobile: mstp: Fix the is_enabled() operation
> > > - [13/17] ARM: shmobile: r7s72100: Populate .init_machine for generic
> > > r7s72100
> > > - [14/17] ARM: shmobile: r8a73a4: Populate .init_machine for generic
> > > r8a73a4 - [15/17] ARM: shmobile: r8a7778: Populate .init_machine for
> > > generic r8a7778 - [16/17] ARM: shmobile: r8a7790: Populate .init_machine
> > > for generic r8a7790 - [17/17] ARM: shmobile: r8a7791: Populate
> > > .init_machine for generic r8a7791
> > > Patches 4, 5, and 7 were authored by Ben Dooks, with some changes made by me
> > > (for patch 7).
> > > Patch 8 was based on a patch by Ben for r8a7790.
> > > Patch 12 was authored by Laurent Pinchart.
> > >
> > > Besides rebasing, only one patch was changed, compared to previous
> > > submission: - 8: The call to sh_pm_runtime_init() was moved to the start of
> > > .init_machine(), to enable the GPIO clocks on R-Car Gen2.
> >
> > Thank you for the patches.
> >
> > > Several patches are new:
> > > - 1-3 contain some related cleanups to board support code,
>
> Thanks, I'll look at queuing them up.
I have now queued them up
>
> > > - 5 was added as it touches related code,
> > > - 10-11 remove workarounds that are no longer needed,
> > > - 12 was added as it depends on the fixes from this series,
>
> Magnus, I'd appreciate a review from you of patches 4 - 12.
>
> >
> > For 01/17 to 12/17,
> >
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >
> > > - 13-17 are more or less RFCs: As we always have to call
> > > sh_pm_runtime_init(), I added .init_machine hooks in the generic support
> > > code for all SoCs that didn't have it yet. I also included code to set up
> > > SoC platform support while at it, as this will be useful later. Booting
> > > using a generic "renesas,r*" DT was untested.
> >
> > I wonder whether we shouldn't wait until we get rid of the *_add_dt_devices()
> > functions before applying those.
> >
> > As the goal is to remove the setup-*.c files, have you thought about where the
> > sh_pm_runtime_init() calls should move to ?
> >
> > > This was tested on Koelsch, both legacy and multi-platform.
> > >
> > > Many thanks to Ben Dooks, Laurent Pinchart, and Magnus Damm for the
> > > valuable input, investigations, and discussions.
> >
> > --
> > Regards,
> >
> > Laurent Pinchart
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
` (3 preceding siblings ...)
2014-04-16 1:02 ` Simon Horman
@ 2014-04-16 7:15 ` Geert Uytterhoeven
2014-04-16 7:53 ` Simon Horman
2014-04-25 16:55 ` Geert Uytterhoeven
6 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2014-04-16 7:15 UTC (permalink / raw)
To: linux-sh
Hi Simon,
On Wed, Apr 16, 2014 at 2:18 AM, Simon Horman <horms@verge.net.au> wrote:
>> > This patchset enables the PM runtime code in drivers/sh/pm_runtime.c when
>> > running a multi-platform ARM kernel including support for shmobile.
>> > Before this code was only enabled for legacy shmobile kernels, leading to
>> > disabled clocks in multiplatform kernels, depending on implicit reset state
>> > or on the bootloader.
>> > It also contains some related cleanups, and removals of workarounds.
>
> I am wondering what kind of overhead this introduces for non shmobile
> platforms that use a kernel compiled with ARCH_SHMOBILE_MULTI enabled.
The only overhead for non-shmobile platforms is the compilation of the code,
and the late_initcall(sh_pm_runtime_late_init), which will return immediately.
It's not enabled unless called from a shmobile .init_machine.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
` (4 preceding siblings ...)
2014-04-16 7:15 ` Geert Uytterhoeven
@ 2014-04-16 7:53 ` Simon Horman
2014-04-25 16:55 ` Geert Uytterhoeven
6 siblings, 0 replies; 8+ messages in thread
From: Simon Horman @ 2014-04-16 7:53 UTC (permalink / raw)
To: linux-sh
On Wed, Apr 16, 2014 at 09:15:35AM +0200, Geert Uytterhoeven wrote:
> Hi Simon,
>
> On Wed, Apr 16, 2014 at 2:18 AM, Simon Horman <horms@verge.net.au> wrote:
> >> > This patchset enables the PM runtime code in drivers/sh/pm_runtime.c when
> >> > running a multi-platform ARM kernel including support for shmobile.
> >> > Before this code was only enabled for legacy shmobile kernels, leading to
> >> > disabled clocks in multiplatform kernels, depending on implicit reset state
> >> > or on the bootloader.
> >> > It also contains some related cleanups, and removals of workarounds.
> >
> > I am wondering what kind of overhead this introduces for non shmobile
> > platforms that use a kernel compiled with ARCH_SHMOBILE_MULTI enabled.
>
> The only overhead for non-shmobile platforms is the compilation of the code,
> and the late_initcall(sh_pm_runtime_late_init), which will return immediately.
> It's not enabled unless called from a shmobile .init_machine.
Thanks, that sounds entirely reasonable to me.
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform
2014-04-15 12:33 [ PATCH v2 00/17] ARM: shmobile: Enable drivers/sh/pm_runtime.c on multi-platform Geert Uytterhoeven
` (5 preceding siblings ...)
2014-04-16 7:53 ` Simon Horman
@ 2014-04-25 16:55 ` Geert Uytterhoeven
6 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2014-04-25 16:55 UTC (permalink / raw)
To: linux-sh
Hi Laurent,
On Tue, Apr 15, 2014 at 5:52 PM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>> As the goal is to remove the setup-*.c files, have you thought about where the
>> sh_pm_runtime_init() calls should move to ?
>
> cpg_mstp_clocks_init() would be nice ;-) Unfortunately it's way too early.
However, I've just got an idea...
> I'm looking for a way to tie this into the connection between devices and
> MSTP gate clocks.
That's "[PATCH/RFC 0/4] of: Register clocks for Runtime PM with PM core"
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread