Subject: [PATCH/RFC v2 00/11] ARM/arm64: renesas: Add SYSC PM Domain DT Support

From: [email-masked] (Laurent Pinchart)
Date: Sat, 27 Feb 2016 03:53:16 +0200

Hi Geert,

After rebasing this series on top of Simon's latest devel branch, I'm 
experiencing hard system freezes when using the VSP.

What makes the problem curious is that PM runtime works fine when the VSP 
instances are probed, the A3VP power domain is turned on and off correctly for 
each instance. However, after booting the system, if I try to RPM resume the 
device, the system hangs.

I've traced this (using printk debugging) down to the SYSCISCR write in 
rcar_sysc_power(). The value written is 0x00000200, which corresponds to the 
A3VP power domain, and the resume request completion wait loop doesn't time 
out.

Does this ring any bell ? Do you have a more recent version of this patch 
series that I could try ?

On Monday 15 February 2016 22:16:49 Geert Uytterhoeven wrote:
> 	Hi all,
> 
> The Renesas R-Car System Controller, as found in various Renesas R-Car
> SoCs, provides power management for the CPU cores and various
> coprocessors.
> 
> This RFC patch series adds DT support for the R-Car SYSC, using the
> generic PM Domain. It supports R-Car H1, R-Car Gen2, and R-Car H3.
> 
> Patches:
>   - Patch 1 adds the DT binding documentation (alternatives I considered
>     below the "---"-line),
>   - Patch 2 moves the existing pm-rcar driver to drivers/soc/renesas, so
>     it can be shared by arm32 and arm64,
>   - Patches 3-5 contain the driver implementation,
>   - Patches 6-11 add the SYSC PM domains themselves to the various dtsi
>     files.
> 
> Known issues:
>   - This needs better integration with the PM code in pm-rcar-gen2, the
>     SMP code in smp-r8a7790, and Magnus' DT APMU series,
>   - CPG/MSSR clock domain handling should share more code with the
>     renesas-cpg-mssr driver.
> 
> Changes compared to v2 (more details in the individual patches):
>   - Moved pm-rcar from arch/arm/mach-shmobile/ to drivers/soc/renesas/,
>   - Added R-Car H3 (r8a7795) support, incl. support for devices part of
>     a SYSC PM domain and the CPG/MSSR clock domain,
>   - Use "renesas,<type>-sysc" instead of "renesas,sysc-<type>",
>   - Added fallback compatibility strings for R-Car Gen2 and Gen3.
>   - Changed one-line summary prefix to match current arm-soc practices,
>   - The L2 cache-controller patches have been extracted into a separate
>     series ("[PATCH v3 0/7] ARM/arm64: dts: renesas: Add/complete L2
>     cache-controller nodes"),
>   - Minor fixes.
> 
> This series is against renesas-devel-20160215-v4.5-rc4, with series
> "[PATCH v3 0/7] ARM/arm64: dts: renesas: Add/complete L2
> cache-controller nodes" applied. It is not yet meant to be applied!
> It's published as-is to ease development of drivers for devices residing
> in a SYSC PM domain on R-Car H3 (e.g. VSP, FCP_V).
> 
> This was tested on r8a7779/marzen, r8a7791/koelsch, r8a7794/alt, and
> r8a7795/salvator-x.
> 
> For your convenience, I've also pushed this series to
> git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git#topi
> c/rcar-sysc-pd-rfc-v2
> 
> Thanks for your comments!
> 
> Geert Uytterhoeven (11):
>   PM / Domains: Add DT bindings for the R-Car System Controller
>   soc: renesas: Move pm-rcar to drivers/soc/renesas/
>   soc: renesas: Improve rcar_sysc_power() debug info
>   soc: renesas: rcar: Add DT support for SYSC PM domains
>   soc: renesas: rcar: Handle clock domain devices in SYSC PM domains
>   ARM: dts: r8a7779: Add SYSC PM domains
>   ARM: dts: r8a7790: Add SYSC PM domains
>   ARM: dts: r8a7791: Add SYSC PM domains
>   ARM: dts: r8a7793: Add SYSC PM domains
>   ARM: dts: r8a7794: Add SYSC PM domains
>   arm64: dts: r8a7795: Add SYSC PM domains
> 
>  .../bindings/power/renesas,sysc-rcar.txt           |  87 ++++
>  arch/arm/boot/dts/r8a7779.dtsi                     |  48 ++
>  arch/arm/boot/dts/r8a7790.dtsi                     |  89 ++++
>  arch/arm/boot/dts/r8a7791.dtsi                     |  40 ++
>  arch/arm/boot/dts/r8a7793.dtsi                     |  39 ++
>  arch/arm/boot/dts/r8a7794.dtsi                     |  40 ++
>  arch/arm/mach-shmobile/Kconfig                     |   8 +-
>  arch/arm/mach-shmobile/Makefile                    |   1 -
>  arch/arm/mach-shmobile/pm-r8a7779.c                |   3 +-
>  arch/arm/mach-shmobile/pm-rcar-gen2.c              |   2 +-
>  arch/arm/mach-shmobile/pm-rcar.c                   | 164 ------
>  arch/arm/mach-shmobile/smp-r8a7779.c               |   2 +-
>  arch/arm/mach-shmobile/smp-r8a7790.c               |   2 +-
>  arch/arm64/boot/dts/renesas/r8a7795.dtsi           | 142 ++++++
>  drivers/soc/Kconfig                                |   1 +
>  drivers/soc/Makefile                               |   3 +-
>  drivers/soc/renesas/Kconfig                        |   8 +
>  drivers/soc/renesas/Makefile                       |   1 +
>  drivers/soc/renesas/pm-rcar.c                      | 559 ++++++++++++++++++
>  .../linux/soc/renesas}/pm-rcar.h                   |   2 +
>  20 files changed, 1065 insertions(+), 176 deletions(-)
>  create mode 100644
> Documentation/devicetree/bindings/power/renesas,sysc-rcar.txt delete mode
> 100644 arch/arm/mach-shmobile/pm-rcar.c
>  create mode 100644 drivers/soc/renesas/Kconfig
>  create mode 100644 drivers/soc/renesas/Makefile
>  create mode 100644 drivers/soc/renesas/pm-rcar.c
>  rename {arch/arm/mach-shmobile => include/linux/soc/renesas}/pm-rcar.h
> (93%)

-- 
Regards,

Laurent Pinchart