diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-11-21 17:00:05 +0100 |
---|---|---|
committer | Jason Cooper <jason@lakedaemon.net> | 2014-11-30 16:40:12 +0000 |
commit | f571053152f660769f9f39f150ac984bc4c6ac85 (patch) | |
tree | eb85fc93b3d6fe931c35683524f42a5b07dc46ce /arch/arm/mach-mvebu/common.h | |
parent | 4749c02b8da6d8dbc29218652985bda844017e95 (diff) | |
download | linux-stable-f571053152f660769f9f39f150ac984bc4c6ac85.tar.gz linux-stable-f571053152f660769f9f39f150ac984bc4c6ac85.tar.bz2 linux-stable-f571053152f660769f9f39f150ac984bc4c6ac85.zip |
clk: mvebu: add suspend/resume for gatable clocks
This commit adds suspend/resume support for the gatable clock driver
used on Marvell EBU platforms. When getting out of suspend, the
Marvell EBU platforms go through the bootloader, which re-enables all
gatable clocks. However, upon resume, the clock framework will not
disable again all gatable clocks that are not used.
Therefore, if the clock driver does not save/restore the state of the
gatable clocks, all gatable clocks that are not claimed by any device
driver will remain enabled after a resume. This is why this driver
saves and restores the state of those clocks.
Since clocks aren't real devices, we don't have the normal ->suspend()
and ->resume() of the device model, and have to use the ->suspend()
and ->resume() hooks of the syscore_ops mechanism. This mechanism has
the unfortunate idea of not providing a way of passing private data,
which requires us to change the driver to make the assumption that
there is only once instance of the gatable clock control structure.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: linux-kernel@vger.kernel.org
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Link: https://lkml.kernel.org/r/1416585613-2113-9-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch/arm/mach-mvebu/common.h')
0 files changed, 0 insertions, 0 deletions