]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: samsung: gs101: fix synchronous external abort in samsung_clk_save()
authorPeter Griffin <peter.griffin@linaro.org>
Mon, 3 Mar 2025 13:11:21 +0000 (13:11 +0000)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Wed, 5 Mar 2025 19:09:19 +0000 (20:09 +0100)
EARLY_WAKEUP_SW_TRIG_*_SET and EARLY_WAKEUP_SW_TRIG_*_CLEAR
registers are only writeable. Attempting to read these registers
during samsung_clk_save() causes a synchronous external abort.

Remove these 8 registers from cmu_top_clk_regs[] array so that
system suspend gets further.

Note: the code path can be exercised using the following command:
echo mem > /sys/power/state

Fixes: 2c597bb7d66a ("clk: samsung: clk-gs101: Add cmu_top, cmu_misc and cmu_apm support")
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250303-clk-suspend-fix-v1-1-c2edaf66260f@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/clk/samsung/clk-gs101.c

index 86b39edba12276745a124df6a2ea9c22d74b915a..08b867ae3ed9df964ee2ef50260e62aa218c3c19 100644 (file)
@@ -382,17 +382,9 @@ static const unsigned long cmu_top_clk_regs[] __initconst = {
        EARLY_WAKEUP_DPU_DEST,
        EARLY_WAKEUP_CSIS_DEST,
        EARLY_WAKEUP_SW_TRIG_APM,
-       EARLY_WAKEUP_SW_TRIG_APM_SET,
-       EARLY_WAKEUP_SW_TRIG_APM_CLEAR,
        EARLY_WAKEUP_SW_TRIG_CLUSTER0,
-       EARLY_WAKEUP_SW_TRIG_CLUSTER0_SET,
-       EARLY_WAKEUP_SW_TRIG_CLUSTER0_CLEAR,
        EARLY_WAKEUP_SW_TRIG_DPU,
-       EARLY_WAKEUP_SW_TRIG_DPU_SET,
-       EARLY_WAKEUP_SW_TRIG_DPU_CLEAR,
        EARLY_WAKEUP_SW_TRIG_CSIS,
-       EARLY_WAKEUP_SW_TRIG_CSIS_SET,
-       EARLY_WAKEUP_SW_TRIG_CSIS_CLEAR,
        CLK_CON_MUX_MUX_CLKCMU_BO_BUS,
        CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS,
        CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS,