[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180724194142.22nav7lfpouzd57o@kozik-lap>
Date: Tue, 24 Jul 2018 21:41:42 +0200
From: Krzysztof Kozlowski <krzk@...nel.org>
To: Tomasz Figa <tomasz.figa@...il.com>,
Sylwester Nawrocki <s.nawrocki@...sung.com>,
Linus Walleij <linus.walleij@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Kukjin Kim <kgene@...nel.org>,
Russell King <linux@...linux.org.uk>,
Kyungmin Park <kyungmin.park@...sung.com>,
linux-arm-kernel@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org, linux-gpio@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: Paweł Chmiel <pawel.mikolaj.chmiel@...il.com>,
Sylwester Nawrocki <snawrocki@...nel.org>,
Chanwoo Choi <cw00.choi@...sung.com>,
Alim Akhtar <alim.akhtar@...sung.com>,
Pankaj Dubey <pankaj.dubey@...sung.com>
Subject: Re: [RFT v2 06/10] pinctrl: samsung: Write external wakeup interrupt
mask
On Mon, Jul 23, 2018 at 07:52:58PM +0200, Krzysztof Kozlowski wrote:
> The pinctrl driver defines an IRQ chip which handles external wakeup
> interrupts, therefore from logical point of view, it is the owner of
> external interrupt mask. The register controlling the mask belongs to
> Power Management Unit address space so it has to be accessed with PMU
> syscon regmap handle.
>
> This mask should be written to hardware during system suspend. Till now
> ARMv7 machine code was responsible for this which created a dependency
> between pin controller driver and arch/arm/mach code.
>
> Try to rework this dependency so the pinctrl driver will write external
> wakeup interrupt mask during late suspend.
>
> Impact on ARMv7 designs (S5Pv210 and Exynos)
> ============================================
> This duplicates setting mask with existing machine code
> arch/arm/mach-exynos/suspend.c and arch/arm/mach-s5pv210/pm.c but it is
> not a problem - the wakeup mask register will be written twice. The
> machine code will be cleaned up later.
>
> The difference between implementation here and ARMv7 machine code
> (arch/arm/mach-*) is the time of writing the mask:
> 1. The machine code is writing the mask quite late during system suspend
> path, after offlining secondary CPUs and just before doing actual
> suspend.
> 2. The implementation in pinctrl driver uses late suspend ops, therefore it
> will write the mask much earlier. Hopefully late enough, after all
> drivers will enable or disable its interrupt wakeup
> (enable_irq_wake() etc).
>
> Impact on ARMv8 designs (Exynos5433 and Exynos7)
> ================================================
> The Suspend to RAM was not supported and external wakeup interrupt mask
> was not written to HW. This change brings us one step closer to
> supporting Suspend to RAM.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@...nel.org>
> Cc: Tomasz Figa <tomasz.figa@...il.com>
> Cc: Sylwester Nawrocki <snawrocki@...nel.org>
> Acked-by: Tomasz Figa <tomasz.figa@...il.com>
> ---
> drivers/pinctrl/samsung/pinctrl-exynos.c | 50 ++++++++++++++++++++++++++++-
> drivers/pinctrl/samsung/pinctrl-samsung.h | 3 ++
> include/linux/soc/samsung/exynos-regs-pmu.h | 2 ++
> 3 files changed, 54 insertions(+), 1 deletion(-)
Thanks, applied all previous, up to this one.
Best regards,
Krzysztof
Powered by blists - more mailing lists