Commit 296302d3 authored by Nicolas Ferre's avatar Nicolas Ferre Committed by Claudiu Beznea
Browse files

ARM: at91: pm: fix MCKx restore routine



The at91_mckx_ps_restore() assembly function is responsible for setting
back MCKx system bus clocks after exiting low power modes.

Fix a typo and use tmp3 variable instead of tmp2 to correctly set MCKx
to previously saved state.
Tmp2 was used without the needed changes in CSS and DIV. Moreover the
required bit 7, telling that MCR register's content is to be changed
(CMD/write), was not set.

Fix function comment to match tmp variables actually used.

Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
Fixes: 28eb1d40 ("ARM: at91: pm: add support for MCK1..4 save/restore for ulp modes")
Link: https://lore.kernel.org/r/20250827145427.46819-3-nicolas.ferre@microchip.com


Reviewed-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
[claudiu.beznea: s/sate/state in commit description]
Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea@tuxon.dev>
parent 6a3f8901
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -904,7 +904,7 @@ e_done:
/**
 * at91_mckx_ps_restore: restore MCKx settings
 *
 * Side effects: overwrites tmp1, tmp2
 * Side effects: overwrites tmp1, tmp2 and tmp3
 */
.macro at91_mckx_ps_restore
#ifdef CONFIG_SOC_SAMA7
@@ -980,7 +980,7 @@ r_ps:
	bic	tmp3, tmp3, #AT91_PMC_MCR_V2_ID_MSK
	orr	tmp3, tmp3, tmp1
	orr	tmp3, tmp3, #AT91_PMC_MCR_V2_CMD
	str	tmp2, [pmc, #AT91_PMC_MCR_V2]
	str	tmp3, [pmc, #AT91_PMC_MCR_V2]

	wait_mckrdy tmp1