Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9871a47 authored by Randy Dunlap's avatar Randy Dunlap Committed by Greg Kroah-Hartman
Browse files

sh: init: use OF_EARLY_FLATTREE for early init



commit 6cba655543c7959f8a6d2979b9d40a6a66b7ed4f upstream.

When CONFIG_OF_EARLY_FLATTREE and CONFIG_SH_DEVICE_TREE are not set,
SH3 build fails with a call to early_init_dt_scan(), so in
arch/sh/kernel/setup.c and arch/sh/kernel/head_32.S, use
CONFIG_OF_EARLY_FLATTREE instead of CONFIG_OF_FLATTREE.

Fixes this build error:
../arch/sh/kernel/setup.c: In function 'sh_fdt_init':
../arch/sh/kernel/setup.c:262:26: error: implicit declaration of function 'early_init_dt_scan' [-Werror=implicit-function-declaration]
  262 |         if (!dt_virt || !early_init_dt_scan(dt_virt)) {

Fixes: 03767daa ("sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE")
Fixes: eb6b6930 ("sh: fix memory corruption of unflattened device tree")
Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Suggested-by: default avatarRob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: devicetree@vger.kernel.org
Cc: Rich Felker <dalias@libc.org>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: linux-sh@vger.kernel.org
Cc: stable@vger.kernel.org
Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Link: https://lore.kernel.org/r/20230306040037.20350-4-rdunlap@infradead.org


Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 111b0811
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ ENTRY(_stext)
	ldc	r0, r6_bank
#endif

#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
	mov	r4, r12		! Store device tree blob pointer in r12
#endif
	
@@ -315,7 +315,7 @@ ENTRY(_stext)
10:		
#endif

#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
	mov.l	8f, r0		! Make flat device tree available early.
	jsr	@r0
	 mov	r12, r4
@@ -346,7 +346,7 @@ ENTRY(stack_start)
5:	.long	start_kernel
6:	.long	cpu_init
7:	.long	init_thread_union
#if defined(CONFIG_OF_FLATTREE)
#if defined(CONFIG_OF_EARLY_FLATTREE)
8:	.long	sh_fdt_init
#endif

+2 −2
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ void __init __weak plat_early_device_setup(void)
{
}

#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
void __ref sh_fdt_init(phys_addr_t dt_phys)
{
	static int done = 0;
@@ -330,7 +330,7 @@ void __init setup_arch(char **cmdline_p)
	/* Let earlyprintk output early console messages */
	early_platform_driver_probe("earlyprintk", 1, 1);

#ifdef CONFIG_OF_FLATTREE
#ifdef CONFIG_OF_EARLY_FLATTREE
#ifdef CONFIG_USE_BUILTIN_DTB
	unflatten_and_copy_device_tree();
#else