On 11/02/2019 08:14, Marek Szyprowski wrote: > Hi Stuart > > On 2019-02-10 23:51, Stuart Menefy wrote: >> When debugging suspend problems on Exynos 5260, I had a large number >> of debugging prints going to the serial port after interrupts >> had been disabled but before the timer interrupt was shutdown. This >> was long enough for a timer tick to occur, but as interrupts were >> disabled the ISR didn't run, and so the interrupt wasn't cleared. >> Later when the timer was shutdown the interrupt was left asserted and >> so the wfi at the heart of the suspend code didn't wait, causing >> the suspend to fail. >> >> Currently the code which stops the timer when it is on one-shot mode >> and the interrupt occurs is in exynos4_mct_tick_clear(), meaning if we >> called this from the shutdown code exynos4_mct_tick_stop() could be >> called twice. So first restructure the existing code, so the check for >> one-shot mode and stopping the timer is moved to the ISR, leaving >> exynos4_mct_tick_clear() just clearing the interrupt flag. >> >> Once this has been done simply call exynos4_mct_tick_clear() from >> set_state_shutdown(). > > This also fixes mysterious suspend failures on Odroid XU3/XU4/HC1 :) > > Tested-by: Marek Szyprowski <m.szyprow...@samsung.com>
Applied. Shall I add the stable@ tag? -- <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