linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] clockevents for 4.10
@ 2016-11-22  9:43 Daniel Lezcano
  2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
  2016-11-22  9:51 ` [GIT PULL] clockevents for 4.10 Ingo Molnar
  0 siblings, 2 replies; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-22  9:43 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar; +Cc: linux-kernel

Hi Thomas, Ingo,

This pull request contains a few changes.

 - Unmap the region obtained by of_iomap in case of error in the init path for
   the bcm2835 timer (Arvind Yadav).

 - Add a boolean property in the DT for the arch_arm_timer in order to tell the
   driver the hardware implementation has an error because it does not belong
   to an always-on power domain (Brian Norris).

 - Replace of_iomap() by of_io_request_and_map() for the arch_arm_timer
   (Stephen Boyd).

Thanks !

  -- Daniel


The following changes since commit baa73d9e478ff32d62f3f9422822b59dd9a95a21:

  posix-timers: Make them configurable (2016-11-16 09:26:35 +0100)

are available in the git repository at:

  https://git.linaro.org/people/daniel.lezcano/linux.git 

for you to fetch changes up to 84c39b8b7d46883f7a7514c7d55909831aa846fd:

  clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap (2016-11-22 09:22:59 +0100)

----------------------------------------------------------------
Arvind Yadav (1):
      clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap

Brian Norris (2):
      clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend
      arm64: dts: rockchip: Arch counter doesn't tick in system suspend

Stephen Boyd (1):
      clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map()

 Documentation/devicetree/bindings/arm/arch_timer.txt |  5 +++++
 arch/arm64/boot/dts/rockchip/rk3399.dtsi             |  1 +
 drivers/clocksource/arm_arch_timer.c                 | 14 +++++++++++---
 drivers/clocksource/bcm2835_timer.c                  | 14 ++++++++++----
 4 files changed, 27 insertions(+), 7 deletions(-)



-- 

 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend
  2016-11-22  9:43 [GIT PULL] clockevents for 4.10 Daniel Lezcano
@ 2016-11-22  9:44 ` Daniel Lezcano
  2016-11-22  9:44   ` [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend Daniel Lezcano
                     ` (3 more replies)
  2016-11-22  9:51 ` [GIT PULL] clockevents for 4.10 Ingo Molnar
  1 sibling, 4 replies; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-22  9:44 UTC (permalink / raw)
  To: tglx
  Cc: linux-kernel, Brian Norris, Marc Zyngier, Rob Herring,
	Mark Rutland, Will Deacon, Douglas Anderson, Scott Wood,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM ARCHITECTED TIMER DRIVER

From: Brian Norris <briannorris@chromium.org>

The ARM specifies that the system counter "must be implemented in an
always-on power domain," and so we try to use the counter as a source of
timekeeping across suspend/resume. Unfortunately, some SoCs (e.g.,
Rockchip's RK3399) do not keep the counter ticking properly when
switched from their high-power clock to the lower-power clock used in
system suspend. Support this quirk by adding a new device tree property.

Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 Documentation/devicetree/bindings/arm/arch_timer.txt | 5 +++++
 drivers/clocksource/arm_arch_timer.c                 | 9 ++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt
index ef5fbe9..ad440a2 100644
--- a/Documentation/devicetree/bindings/arm/arch_timer.txt
+++ b/Documentation/devicetree/bindings/arm/arch_timer.txt
@@ -38,6 +38,11 @@ to deliver its interrupts via SPIs.
   architecturally-defined reset values. Only supported for 32-bit
   systems which follow the ARMv7 architected reset values.
 
+- arm,no-tick-in-suspend : The main counter does not tick when the system is in
+  low-power system suspend on some SoCs. This behavior does not match the
+  Architecture Reference Manual's specification that the system counter "must
+  be implemented in an always-on power domain."
+
 
 Example:
 
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 73c487d..a2503db 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -81,6 +81,7 @@ static struct clock_event_device __percpu *arch_timer_evt;
 static enum ppi_nr arch_timer_uses_ppi = VIRT_PPI;
 static bool arch_timer_c3stop;
 static bool arch_timer_mem_use_virtual;
+static bool arch_counter_suspend_stop;
 
 static bool evtstrm_enable = IS_ENABLED(CONFIG_ARM_ARCH_TIMER_EVTSTREAM);
 
@@ -576,7 +577,7 @@ static struct clocksource clocksource_counter = {
 	.rating	= 400,
 	.read	= arch_counter_read,
 	.mask	= CLOCKSOURCE_MASK(56),
-	.flags	= CLOCK_SOURCE_IS_CONTINUOUS | CLOCK_SOURCE_SUSPEND_NONSTOP,
+	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
 static struct cyclecounter cyclecounter = {
@@ -616,6 +617,8 @@ static void __init arch_counter_register(unsigned type)
 		arch_timer_read_counter = arch_counter_get_cntvct_mem;
 	}
 
+	if (!arch_counter_suspend_stop)
+		clocksource_counter.flags |= CLOCK_SOURCE_SUSPEND_NONSTOP;
 	start_count = arch_timer_read_counter();
 	clocksource_register_hz(&clocksource_counter, arch_timer_rate);
 	cyclecounter.mult = clocksource_counter.mult;
@@ -907,6 +910,10 @@ static int __init arch_timer_of_init(struct device_node *np)
 	    of_property_read_bool(np, "arm,cpu-registers-not-fw-configured"))
 		arch_timer_uses_ppi = PHYS_SECURE_PPI;
 
+	/* On some systems, the counter stops ticking when in suspend. */
+	arch_counter_suspend_stop = of_property_read_bool(np,
+							 "arm,no-tick-in-suspend");
+
 	return arch_timer_init();
 }
 CLOCKSOURCE_OF_DECLARE(armv7_arch_timer, "arm,armv7-timer", arch_timer_of_init);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend
  2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
@ 2016-11-22  9:44   ` Daniel Lezcano
  2016-11-22 15:02     ` Heiko Stübner
  2016-11-22  9:44   ` [PATCH 3/4] clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map() Daniel Lezcano
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-22  9:44 UTC (permalink / raw)
  To: tglx
  Cc: linux-kernel, Brian Norris, Rob Herring, Mark Rutland,
	Catalin Marinas, Will Deacon, Heiko Stuebner, Douglas Anderson,
	Caesar Wang, Shawn Lin, Xing Zheng, Jianqun Xu, Elaine Zhang,
	David Wu,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM64 PORT (AARCH64 ARCHITECTURE),
	open list:ARM/Rockchip SoC support

From: Brian Norris <briannorris@chromium.org>

The "arm,no-tick-in-suspend" property was introduced to note
implementations where the system counter does not quite follow the ARM
specification that it "must be implemented in an always-on power
domain".

Particularly, RK3399's counter stops ticking when we switch from the
24MHz clock to the 32KHz clock in low-power suspend, so let's mark it as
such.

Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index b65c193..d85b651 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -174,6 +174,7 @@
 			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
 			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
 			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
+		arm,no-tick-in-suspend;
 	};
 
 	xin24m: xin24m {
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map()
  2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
  2016-11-22  9:44   ` [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend Daniel Lezcano
@ 2016-11-22  9:44   ` Daniel Lezcano
  2016-11-22  9:44   ` [PATCH 4/4] clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap Daniel Lezcano
  2016-11-23 23:07   ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Rob Herring
  3 siblings, 0 replies; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-22  9:44 UTC (permalink / raw)
  To: tglx
  Cc: linux-kernel, Stephen Boyd, Marc Zyngier, Mark Rutland,
	moderated list:ARM ARCHITECTED TIMER DRIVER

From: Stephen Boyd <sboyd@codeaurora.org>

Let's use the of_io_request_and_map() API so that the frame
region is protected and shows up in /proc/iomem.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
---
 drivers/clocksource/arm_arch_timer.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index a2503db..02fef68 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -971,8 +971,9 @@ static int __init arch_timer_mem_init(struct device_node *np)
 	}
 
 	ret= -ENXIO;
-	base = arch_counter_base = of_iomap(best_frame, 0);
-	if (!base) {
+	base = arch_counter_base = of_io_request_and_map(best_frame, 0,
+							 "arch_mem_timer");
+	if (IS_ERR(base)) {
 		pr_err("arch_timer: Can't map frame's registers\n");
 		goto out;
 	}
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap
  2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
  2016-11-22  9:44   ` [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend Daniel Lezcano
  2016-11-22  9:44   ` [PATCH 3/4] clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map() Daniel Lezcano
@ 2016-11-22  9:44   ` Daniel Lezcano
  2016-11-23 23:07   ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Rob Herring
  3 siblings, 0 replies; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-22  9:44 UTC (permalink / raw)
  To: tglx
  Cc: linux-kernel, Arvind Yadav, Florian Fainelli, Ray Jui,
	Scott Branden,
	maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE...,
	Stephen Warren, Lee Jones, Eric Anholt,
	moderated list:BROADCOM BCM2835 ARM ARCHITECTURE,
	moderated list:BROADCOM BCM2835 ARM ARCHITECTURE

From: Arvind Yadav <arvind.yadav.cs@gmail.com>

Free memory mapping, if bcm2835_timer_init is not successful.

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 drivers/clocksource/bcm2835_timer.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/clocksource/bcm2835_timer.c b/drivers/clocksource/bcm2835_timer.c
index e71acf2..f2f29d2 100644
--- a/drivers/clocksource/bcm2835_timer.c
+++ b/drivers/clocksource/bcm2835_timer.c
@@ -96,7 +96,7 @@ static int __init bcm2835_timer_init(struct device_node *node)
 	ret = of_property_read_u32(node, "clock-frequency", &freq);
 	if (ret) {
 		pr_err("Can't read clock-frequency");
-		return ret;
+		goto err_iounmap;
 	}
 
 	system_clock = base + REG_COUNTER_LO;
@@ -108,13 +108,15 @@ static int __init bcm2835_timer_init(struct device_node *node)
 	irq = irq_of_parse_and_map(node, DEFAULT_TIMER);
 	if (irq <= 0) {
 		pr_err("Can't parse IRQ");
-		return -EINVAL;
+		ret = -EINVAL;
+		goto err_iounmap;
 	}
 
 	timer = kzalloc(sizeof(*timer), GFP_KERNEL);
 	if (!timer) {
 		pr_err("Can't allocate timer struct\n");
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto err_iounmap;
 	}
 
 	timer->control = base + REG_CONTROL;
@@ -133,7 +135,7 @@ static int __init bcm2835_timer_init(struct device_node *node)
 	ret = setup_irq(irq, &timer->act);
 	if (ret) {
 		pr_err("Can't set up timer IRQ\n");
-		return ret;
+		goto err_iounmap;
 	}
 
 	clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff);
@@ -141,6 +143,10 @@ static int __init bcm2835_timer_init(struct device_node *node)
 	pr_info("bcm2835: system timer (irq = %d)\n", irq);
 
 	return 0;
+
+err_iounmap:
+	iounmap(base);
+	return ret;
 }
 CLOCKSOURCE_OF_DECLARE(bcm2835, "brcm,bcm2835-system-timer",
 			bcm2835_timer_init);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] clockevents for 4.10
  2016-11-22  9:43 [GIT PULL] clockevents for 4.10 Daniel Lezcano
  2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
@ 2016-11-22  9:51 ` Ingo Molnar
  2016-11-22  9:57   ` Daniel Lezcano
  1 sibling, 1 reply; 9+ messages in thread
From: Ingo Molnar @ 2016-11-22  9:51 UTC (permalink / raw)
  To: Daniel Lezcano; +Cc: Thomas Gleixner, linux-kernel


* Daniel Lezcano <daniel.lezcano@linaro.org> wrote:

> Hi Thomas, Ingo,
> 
> This pull request contains a few changes.
> 
>  - Unmap the region obtained by of_iomap in case of error in the init path for
>    the bcm2835 timer (Arvind Yadav).
> 
>  - Add a boolean property in the DT for the arch_arm_timer in order to tell the
>    driver the hardware implementation has an error because it does not belong
>    to an always-on power domain (Brian Norris).
> 
>  - Replace of_iomap() by of_io_request_and_map() for the arch_arm_timer
>    (Stephen Boyd).
> 
> Thanks !
> 
>   -- Daniel
> 
> 
> The following changes since commit baa73d9e478ff32d62f3f9422822b59dd9a95a21:
> 
>   posix-timers: Make them configurable (2016-11-16 09:26:35 +0100)
> 
> are available in the git repository at:
> 
>   https://git.linaro.org/people/daniel.lezcano/linux.git 

In branch clockevents/4.10 I presume?

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] clockevents for 4.10
  2016-11-22  9:51 ` [GIT PULL] clockevents for 4.10 Ingo Molnar
@ 2016-11-22  9:57   ` Daniel Lezcano
  0 siblings, 0 replies; 9+ messages in thread
From: Daniel Lezcano @ 2016-11-22  9:57 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Thomas Gleixner, linux-kernel

On Tue, Nov 22, 2016 at 10:51:31AM +0100, Ingo Molnar wrote:
> 
> * Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
> 
> > Hi Thomas, Ingo,
> > 
> > This pull request contains a few changes.
> > 
> >  - Unmap the region obtained by of_iomap in case of error in the init path for
> >    the bcm2835 timer (Arvind Yadav).
> > 
> >  - Add a boolean property in the DT for the arch_arm_timer in order to tell the
> >    driver the hardware implementation has an error because it does not belong
> >    to an always-on power domain (Brian Norris).
> > 
> >  - Replace of_iomap() by of_io_request_and_map() for the arch_arm_timer
> >    (Stephen Boyd).
> > 
> > Thanks !
> > 
> >   -- Daniel
> > 
> > 
> > The following changes since commit baa73d9e478ff32d62f3f9422822b59dd9a95a21:
> > 
> >   posix-timers: Make them configurable (2016-11-16 09:26:35 +0100)
> > 
> > are available in the git repository at:
> > 
> >   https://git.linaro.org/people/daniel.lezcano/linux.git 
> 
> In branch clockevents/4.10 I presume?

Ah, yes.

I'm surprised the branch did not show up with the request-pull script :/

  -- Daniel

-- 

 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend
  2016-11-22  9:44   ` [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend Daniel Lezcano
@ 2016-11-22 15:02     ` Heiko Stübner
  0 siblings, 0 replies; 9+ messages in thread
From: Heiko Stübner @ 2016-11-22 15:02 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: tglx, linux-kernel, Brian Norris, Rob Herring, Mark Rutland,
	Catalin Marinas, Will Deacon, Douglas Anderson, Caesar Wang,
	Shawn Lin, Xing Zheng, Jianqun Xu, Elaine Zhang, David Wu,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM64 PORT (AARCH64 ARCHITECTURE),
	open list:ARM/Rockchip SoC support

Am Dienstag, 22. November 2016, 10:44:22 schrieb Daniel Lezcano:
> From: Brian Norris <briannorris@chromium.org>
> 
> The "arm,no-tick-in-suspend" property was introduced to note
> implementations where the system counter does not quite follow the ARM
> specification that it "must be implemented in an always-on power
> domain".
> 
> Particularly, RK3399's counter stops ticking when we switch from the
> 24MHz clock to the 32KHz clock in low-power suspend, so let's mark it as
> such.
> 
> Signed-off-by: Brian Norris <briannorris@chromium.org>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>

not sure if needed, but anyway
Acked-by: Heiko Stuebner <heiko@sntech.de>

> ---
>  arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> b/arch/arm64/boot/dts/rockchip/rk3399.dtsi index b65c193..d85b651 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> @@ -174,6 +174,7 @@
>  			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
>  			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
>  			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
> +		arm,no-tick-in-suspend;
>  	};
> 
>  	xin24m: xin24m {

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend
  2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
                     ` (2 preceding siblings ...)
  2016-11-22  9:44   ` [PATCH 4/4] clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap Daniel Lezcano
@ 2016-11-23 23:07   ` Rob Herring
  3 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2016-11-23 23:07 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: tglx, linux-kernel, Brian Norris, Marc Zyngier, Mark Rutland,
	Will Deacon, Douglas Anderson, Scott Wood,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM ARCHITECTED TIMER DRIVER

On Tue, Nov 22, 2016 at 10:44:21AM +0100, Daniel Lezcano wrote:
> From: Brian Norris <briannorris@chromium.org>
> 
> The ARM specifies that the system counter "must be implemented in an
> always-on power domain," and so we try to use the counter as a source of
> timekeeping across suspend/resume. Unfortunately, some SoCs (e.g.,
> Rockchip's RK3399) do not keep the counter ticking properly when
> switched from their high-power clock to the lower-power clock used in
> system suspend. Support this quirk by adding a new device tree property.
> 
> Signed-off-by: Brian Norris <briannorris@chromium.org>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
> Acked-by: Marc Zyngier <marc.zyngier@arm.com>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  Documentation/devicetree/bindings/arm/arch_timer.txt | 5 +++++

Acked-by: Rob Herring <robh@kernel.org>

>  drivers/clocksource/arm_arch_timer.c                 | 9 ++++++++-
>  2 files changed, 13 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-11-23 23:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-22  9:43 [GIT PULL] clockevents for 4.10 Daniel Lezcano
2016-11-22  9:44 ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Daniel Lezcano
2016-11-22  9:44   ` [PATCH 2/4] arm64: dts: rockchip: Arch counter doesn't tick in system suspend Daniel Lezcano
2016-11-22 15:02     ` Heiko Stübner
2016-11-22  9:44   ` [PATCH 3/4] clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map() Daniel Lezcano
2016-11-22  9:44   ` [PATCH 4/4] clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap Daniel Lezcano
2016-11-23 23:07   ` [PATCH 1/4] clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend Rob Herring
2016-11-22  9:51 ` [GIT PULL] clockevents for 4.10 Ingo Molnar
2016-11-22  9:57   ` Daniel Lezcano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).