[PATCH v9 0/5] Add runtime PM support for clocks (on Exynos SoC example)
m.szyprowski at samsung.com
Mon Sep 11 05:57:49 PDT 2017
On 2017-09-08 02:59, Michael Turquette wrote:
> Hi Marek,
> Quoting Marek Szyprowski (2017-08-21 01:04:58)
>> Dear All,
>> This patchset adds runtime PM support to common clock framework. This is an
>> attempt to implement support for clock controllers, which belongs to a power
>> domain. This approach works surprisingly well on Exynos 5433 SoC, what allowed
>> us to solve various freeze/crash issues related to power management.
>> The main idea behind this patchset is to keep clock's controller power domain
>> enabled every time when at least one of its clock is enabled or access to its
>> registers is being made. Clock controller driver (clock provider) can
>> supply a struct device pointer, which is the used by clock core for tracking and
>> managing clock's controller runtime pm state. Each clk_prepare() operation will
>> first call pm_runtime_get_sync() on the supplied device, while clk_unprepare()
>> will do pm_runtime_put() at the end.
>> This runtime PM feature has been tested with Exynos4412 (not included in this
>> patchset) and Exynos5433 clocks drivers. Both have some clocks, which belongs to
>> respective power domains and need special handling during power on/off
>> procedures. Till now it wasn't handled at all, what caused various problems.
>> Patches for clocks drivers change the way the clock provider is initialized.
>> Instead of CLK_OF_DECLARE based initialization, a complete platform device driver
>> infrastructure is being used. This is needed to let driver to use runtime PM
>> feature and integrate with generic power domains. The side-effect of this change
>> is a delay in clock provider registeration during system boot, so early
>> initialized drivers might get EPROBEDEFER error when requesting their clocks.
>> This was an issue for IOMMU drivers, but IOMMU deferred probe support has been
>> finally merged to v4.13-rc1 and now it is handled correctly.
>> Patches are based and tested on v4.13-rc5, but applies fine also on v4.13-rc1.
> Patches look good to me. It's too late for the v4.14 PR, but I'll merge
> this to clk-next after -rc1 drops.
Thanks! There will be a plenty of time to test them in linux-next then! :)
Marek Szyprowski, PhD
Samsung R&D Institute Poland
More information about the linux-arm-kernel