]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: at91: pm: save and restore ACR during PLL disable/enable
authorNicolas Ferre <nicolas.ferre@microchip.com>
Wed, 27 Aug 2025 14:54:27 +0000 (16:54 +0200)
committerClaudiu Beznea <claudiu.beznea@tuxon.dev>
Sat, 30 Aug 2025 08:38:55 +0000 (11:38 +0300)
Add a new word in assembly to store ACR value during the calls
to at91_plla_disable/at91_plla_enable macros and use it.

Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
[cristian.birsan@microchip.com: remove ACR_DEFAULT_PLLA loading]
Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com>
Link: https://lore.kernel.org/r/20250827145427.46819-4-nicolas.ferre@microchip.com
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
arch/arm/mach-at91/pm_suspend.S

index 7e6c94f8edeef912ee2c49f91c820ec1c0d0c699..aad53ec9e957bdd1b69b9ed3aadf0324ccaf30b1 100644 (file)
@@ -689,6 +689,10 @@ sr_dis_exit:
        bic     tmp2, tmp2, #AT91_PMC_PLL_UPDT_ID
        str     tmp2, [pmc, #AT91_PMC_PLL_UPDT]
 
+       /* save acr */
+       ldr     tmp2, [pmc, #AT91_PMC_PLL_ACR]
+       str     tmp2, .saved_acr
+
        /* save div. */
        mov     tmp1, #0
        ldr     tmp2, [pmc, #AT91_PMC_PLL_CTRL0]
@@ -758,7 +762,7 @@ sr_dis_exit:
        str     tmp1, [pmc, #AT91_PMC_PLL_UPDT]
 
        /* step 2. */
-       ldr     tmp1, =AT91_PMC_PLL_ACR_DEFAULT_PLLA
+       ldr     tmp1, .saved_acr
        str     tmp1, [pmc, #AT91_PMC_PLL_ACR]
 
        /* step 3. */
@@ -1207,6 +1211,8 @@ ENDPROC(at91_pm_suspend_in_sram)
 #endif
 .saved_mckr:
        .word 0
+.saved_acr:
+       .word 0
 .saved_pllar:
        .word 0
 .saved_sam9_lpr: