[PATCH v2 2/3] ARM: at91: Move PM init functions to .init_late hook

Rob Herring (Arm) posted 3 patches 1 week, 4 days ago
[PATCH v2 2/3] ARM: at91: Move PM init functions to .init_late hook
Posted by Rob Herring 1 week, 4 days ago
Move the AT91 PM init functions to .init_late hook to ensure driver
dependencies have probed.

Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
v2:
 - new patch
---
 arch/arm/mach-at91/at91rm9200.c | 3 +--
 arch/arm/mach-at91/at91sam9.c   | 3 +--
 arch/arm/mach-at91/sam9x60.c    | 3 +--
 arch/arm/mach-at91/sam9x7.c     | 3 +--
 arch/arm/mach-at91/sama5.c      | 2 +-
 arch/arm/mach-at91/sama7.c      | 3 +--
 6 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
index 4f8186211619..2ac564eb8bbb 100644
--- a/arch/arm/mach-at91/at91rm9200.c
+++ b/arch/arm/mach-at91/at91rm9200.c
@@ -17,8 +17,6 @@
 static void __init at91rm9200_dt_device_init(void)
 {
 	of_platform_default_populate(NULL, NULL, NULL);
-
-	at91rm9200_pm_init();
 }
 
 static const char *const at91rm9200_dt_board_compat[] __initconst = {
@@ -27,6 +25,7 @@ static const char *const at91rm9200_dt_board_compat[] __initconst = {
 };
 
 DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200")
+	.init_late	= at91rm9200_pm_init,
 	.init_machine	= at91rm9200_dt_device_init,
 	.dt_compat	= at91rm9200_dt_board_compat,
 MACHINE_END
diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c
index 7e572189a5eb..cf07cba4ee5d 100644
--- a/arch/arm/mach-at91/at91sam9.c
+++ b/arch/arm/mach-at91/at91sam9.c
@@ -17,8 +17,6 @@
 static void __init at91sam9_init(void)
 {
 	of_platform_default_populate(NULL, NULL, NULL);
-
-	at91sam9_pm_init();
 }
 
 static const char *const at91_dt_board_compat[] __initconst = {
@@ -28,6 +26,7 @@ static const char *const at91_dt_board_compat[] __initconst = {
 
 DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9")
 	/* Maintainer: Atmel */
+	.init_late	= at91sam9_pm_init,
 	.init_machine	= at91sam9_init,
 	.dt_compat	= at91_dt_board_compat,
 MACHINE_END
diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c
index d8c739d25458..a31beaaeffcd 100644
--- a/arch/arm/mach-at91/sam9x60.c
+++ b/arch/arm/mach-at91/sam9x60.c
@@ -18,8 +18,6 @@
 static void __init sam9x60_init(void)
 {
 	of_platform_default_populate(NULL, NULL, NULL);
-
-	sam9x60_pm_init();
 }
 
 static const char *const sam9x60_dt_board_compat[] __initconst = {
@@ -29,6 +27,7 @@ static const char *const sam9x60_dt_board_compat[] __initconst = {
 
 DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
 	/* Maintainer: Microchip */
+	.init_late	= sam9x60_pm_init,
 	.init_machine	= sam9x60_init,
 	.dt_compat	= sam9x60_dt_board_compat,
 MACHINE_END
diff --git a/arch/arm/mach-at91/sam9x7.c b/arch/arm/mach-at91/sam9x7.c
index e1ff30b5b09b..0c73f7fefd4f 100644
--- a/arch/arm/mach-at91/sam9x7.c
+++ b/arch/arm/mach-at91/sam9x7.c
@@ -17,8 +17,6 @@
 static void __init sam9x7_init(void)
 {
 	of_platform_default_populate(NULL, NULL, NULL);
-
-	sam9x7_pm_init();
 }
 
 static const char * const sam9x7_dt_board_compat[] __initconst = {
@@ -28,6 +26,7 @@ static const char * const sam9x7_dt_board_compat[] __initconst = {
 
 DT_MACHINE_START(sam9x7_dt, "Microchip SAM9X7")
 	/* Maintainer: Microchip */
+	.init_late	= sam9x7_pm_init,
 	.init_machine	= sam9x7_init,
 	.dt_compat	= sam9x7_dt_board_compat,
 MACHINE_END
diff --git a/arch/arm/mach-at91/sama5.c b/arch/arm/mach-at91/sama5.c
index bf2b5c6a18c6..efae697ce29c 100644
--- a/arch/arm/mach-at91/sama5.c
+++ b/arch/arm/mach-at91/sama5.c
@@ -33,7 +33,6 @@ static void __init sama5_secure_cache_init(void)
 static void __init sama5_dt_device_init(void)
 {
 	of_platform_default_populate(NULL, NULL, NULL);
-	sama5_pm_init();
 }
 
 static const char *const sama5_dt_board_compat[] __initconst = {
@@ -43,6 +42,7 @@ static const char *const sama5_dt_board_compat[] __initconst = {
 
 DT_MACHINE_START(sama5_dt, "Atmel SAMA5")
 	/* Maintainer: Atmel */
+	.init_late	= sama5_pm_init,
 	.init_machine	= sama5_dt_device_init,
 	.dt_compat	= sama5_dt_board_compat,
 MACHINE_END
diff --git a/arch/arm/mach-at91/sama7.c b/arch/arm/mach-at91/sama7.c
index bd43733ede18..3e28727f2a8e 100644
--- a/arch/arm/mach-at91/sama7.c
+++ b/arch/arm/mach-at91/sama7.c
@@ -17,8 +17,6 @@
 static void __init sama7_dt_device_init(void)
 {
 	of_platform_default_populate(NULL, NULL, NULL);
-	sama7_pm_init();
-}
 
 static const char *const sama7_dt_board_compat[] __initconst = {
 	"microchip,sama7",
@@ -27,6 +25,7 @@ static const char *const sama7_dt_board_compat[] __initconst = {
 
 DT_MACHINE_START(sama7_dt, "Microchip SAMA7")
 	/* Maintainer: Microchip */
+	.init_late	= sama7_pm_init,
 	.init_machine	= sama7_dt_device_init,
 	.dt_compat	= sama7_dt_board_compat,
 MACHINE_END

-- 
2.51.0
Re: [PATCH v2 2/3] ARM: at91: Move PM init functions to .init_late hook
Posted by Claudiu Beznea 1 week, 2 days ago
Hi, Rob,

On 11/20/25 23:37, Rob Herring wrote:
> Move the AT91 PM init functions to .init_late hook to ensure driver
> dependencies have probed.
> 
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>

'From: Rob Herring <robh@kernel.org>' != 'Signed-off-by: Rob Herring (Arm)
<robh@kernel.org>


> ---
> v2:
>  - new patch
> ---
>  arch/arm/mach-at91/at91rm9200.c | 3 +--
>  arch/arm/mach-at91/at91sam9.c   | 3 +--
>  arch/arm/mach-at91/sam9x60.c    | 3 +--
>  arch/arm/mach-at91/sam9x7.c     | 3 +--
>  arch/arm/mach-at91/sama5.c      | 2 +-
>  arch/arm/mach-at91/sama7.c      | 3 +--
>  6 files changed, 6 insertions(+), 11 deletions(-)
> 
> diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
> index 4f8186211619..2ac564eb8bbb 100644
> --- a/arch/arm/mach-at91/at91rm9200.c
> +++ b/arch/arm/mach-at91/at91rm9200.c
> @@ -17,8 +17,6 @@
>  static void __init at91rm9200_dt_device_init(void)
>  {
>  	of_platform_default_populate(NULL, NULL, NULL);
> -
> -	at91rm9200_pm_init();
>  }
>  
>  static const char *const at91rm9200_dt_board_compat[] __initconst = {
> @@ -27,6 +25,7 @@ static const char *const at91rm9200_dt_board_compat[] __initconst = {
>  };
>  
>  DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200")
> +	.init_late	= at91rm9200_pm_init,
>  	.init_machine	= at91rm9200_dt_device_init,
>  	.dt_compat	= at91rm9200_dt_board_compat,
>  MACHINE_END
> diff --git a/arch/arm/mach-at91/at91sam9.c b/arch/arm/mach-at91/at91sam9.c
> index 7e572189a5eb..cf07cba4ee5d 100644
> --- a/arch/arm/mach-at91/at91sam9.c
> +++ b/arch/arm/mach-at91/at91sam9.c
> @@ -17,8 +17,6 @@
>  static void __init at91sam9_init(void)
>  {
>  	of_platform_default_populate(NULL, NULL, NULL);
> -
> -	at91sam9_pm_init();
>  }
>  
>  static const char *const at91_dt_board_compat[] __initconst = {
> @@ -28,6 +26,7 @@ static const char *const at91_dt_board_compat[] __initconst = {
>  
>  DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9")
>  	/* Maintainer: Atmel */
> +	.init_late	= at91sam9_pm_init,
>  	.init_machine	= at91sam9_init,
>  	.dt_compat	= at91_dt_board_compat,
>  MACHINE_END
> diff --git a/arch/arm/mach-at91/sam9x60.c b/arch/arm/mach-at91/sam9x60.c
> index d8c739d25458..a31beaaeffcd 100644
> --- a/arch/arm/mach-at91/sam9x60.c
> +++ b/arch/arm/mach-at91/sam9x60.c
> @@ -18,8 +18,6 @@
>  static void __init sam9x60_init(void)
>  {
>  	of_platform_default_populate(NULL, NULL, NULL);
> -
> -	sam9x60_pm_init();
>  }
>  
>  static const char *const sam9x60_dt_board_compat[] __initconst = {
> @@ -29,6 +27,7 @@ static const char *const sam9x60_dt_board_compat[] __initconst = {
>  
>  DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
>  	/* Maintainer: Microchip */
> +	.init_late	= sam9x60_pm_init,
>  	.init_machine	= sam9x60_init,
>  	.dt_compat	= sam9x60_dt_board_compat,
>  MACHINE_END
> diff --git a/arch/arm/mach-at91/sam9x7.c b/arch/arm/mach-at91/sam9x7.c
> index e1ff30b5b09b..0c73f7fefd4f 100644
> --- a/arch/arm/mach-at91/sam9x7.c
> +++ b/arch/arm/mach-at91/sam9x7.c
> @@ -17,8 +17,6 @@
>  static void __init sam9x7_init(void)
>  {
>  	of_platform_default_populate(NULL, NULL, NULL);
> -
> -	sam9x7_pm_init();
>  }
>  
>  static const char * const sam9x7_dt_board_compat[] __initconst = {
> @@ -28,6 +26,7 @@ static const char * const sam9x7_dt_board_compat[] __initconst = {
>  
>  DT_MACHINE_START(sam9x7_dt, "Microchip SAM9X7")
>  	/* Maintainer: Microchip */
> +	.init_late	= sam9x7_pm_init,
>  	.init_machine	= sam9x7_init,
>  	.dt_compat	= sam9x7_dt_board_compat,
>  MACHINE_END
> diff --git a/arch/arm/mach-at91/sama5.c b/arch/arm/mach-at91/sama5.c
> index bf2b5c6a18c6..efae697ce29c 100644
> --- a/arch/arm/mach-at91/sama5.c
> +++ b/arch/arm/mach-at91/sama5.c
> @@ -33,7 +33,6 @@ static void __init sama5_secure_cache_init(void)
>  static void __init sama5_dt_device_init(void)
>  {
>  	of_platform_default_populate(NULL, NULL, NULL);
> -	sama5_pm_init();
>  }
>  
>  static const char *const sama5_dt_board_compat[] __initconst = {
> @@ -43,6 +42,7 @@ static const char *const sama5_dt_board_compat[] __initconst = {
>  
>  DT_MACHINE_START(sama5_dt, "Atmel SAMA5")
>  	/* Maintainer: Atmel */
> +	.init_late	= sama5_pm_init,
>  	.init_machine	= sama5_dt_device_init,
>  	.dt_compat	= sama5_dt_board_compat,
>  MACHINE_END
> diff --git a/arch/arm/mach-at91/sama7.c b/arch/arm/mach-at91/sama7.c
> index bd43733ede18..3e28727f2a8e 100644
> --- a/arch/arm/mach-at91/sama7.c
> +++ b/arch/arm/mach-at91/sama7.c
> @@ -17,8 +17,6 @@
>  static void __init sama7_dt_device_init(void)
>  {
>  	of_platform_default_populate(NULL, NULL, NULL);
> -	sama7_pm_init();
> -}

} was dropped as well.

Thank you,
Claudiu