Message ID | 20190521234933.153953-1-dianders@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ARM: dts: rockchip: Mark that the rk3288 timer might stop in suspend | expand |
Am Mittwoch, 22. Mai 2019, 01:49:33 CEST schrieb Douglas Anderson: > This is similar to commit e6186820a745 ("arm64: dts: rockchip: Arch > counter doesn't tick in system suspend"). Specifically on the rk3288 > it can be seen that the timer stops ticking in suspend if we end up > running through the "osc_disable" path in rk3288_slp_mode_set(). In > that path the 24 MHz clock will turn off and the timer stops. > > To test this, I ran this on a Chrome OS filesystem: > before=$(date); \ > suspend_stress_test -c1 --suspend_min=30 --suspend_max=31; \ > echo ${before}; date > > ...and I found that unless I plug in a device that requests USB wakeup > to be active that the two calls to "date" would show that fewer than > 30 seconds passed. > > NOTE: deep suspend (where the 24 MHz clock gets disabled) isn't > supported yet on upstream Linux so this was tested on a downstream > kernel. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> applied for 5.3
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 171231a0cd9b..1e5260b556b7 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -231,6 +231,7 @@ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; clock-frequency = <24000000>; + arm,no-tick-in-suspend; }; timer: timer@ff810000 {
This is similar to commit e6186820a745 ("arm64: dts: rockchip: Arch counter doesn't tick in system suspend"). Specifically on the rk3288 it can be seen that the timer stops ticking in suspend if we end up running through the "osc_disable" path in rk3288_slp_mode_set(). In that path the 24 MHz clock will turn off and the timer stops. To test this, I ran this on a Chrome OS filesystem: before=$(date); \ suspend_stress_test -c1 --suspend_min=30 --suspend_max=31; \ echo ${before}; date ...and I found that unless I plug in a device that requests USB wakeup to be active that the two calls to "date" would show that fewer than 30 seconds passed. NOTE: deep suspend (where the 24 MHz clock gets disabled) isn't supported yet on upstream Linux so this was tested on a downstream kernel. Signed-off-by: Douglas Anderson <dianders@chromium.org> --- arch/arm/boot/dts/rk3288.dtsi | 1 + 1 file changed, 1 insertion(+)