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

Unverified Commit ce0d60f7 authored by Paul Cercueil's avatar Paul Cercueil Committed by James Hogan
Browse files

MIPS: ingenic: Detect machtype from SoC compatible string



Previously, the mips_machtype variable was always initialized
to MACH_INGENIC_JZ4740 even if running on different SoCs.

Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
Reviewed-by: default avatarJames Hogan <jhogan@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Maarten ter Huurne <maarten@treewalker.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/18486/


Signed-off-by: default avatarJames Hogan <jhogan@kernel.org>
parent 147b7910
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@

void __init prom_init(void)
{
	mips_machtype = MACH_INGENIC_JZ4740;
	fw_init_cmdline();
}

+19 −3
Original line number Diff line number Diff line
@@ -53,6 +53,16 @@ static void __init jz4740_detect_mem(void)
	add_memory_region(0, size, BOOT_MEM_RAM);
}

static unsigned long __init get_board_mach_type(const void *fdt)
{
	if (!fdt_node_check_compatible(fdt, 0, "ingenic,jz4780"))
		return MACH_INGENIC_JZ4780;
	if (!fdt_node_check_compatible(fdt, 0, "ingenic,jz4770"))
		return MACH_INGENIC_JZ4770;

	return MACH_INGENIC_JZ4740;
}

void __init plat_mem_setup(void)
{
	int offset;
@@ -63,6 +73,8 @@ void __init plat_mem_setup(void)
	offset = fdt_path_offset(__dtb_start, "/memory");
	if (offset < 0)
		jz4740_detect_mem();

	mips_machtype = get_board_mach_type(__dtb_start);
}

void __init device_tree_init(void)
@@ -75,11 +87,15 @@ void __init device_tree_init(void)

const char *get_system_type(void)
{
	if (IS_ENABLED(CONFIG_MACH_JZ4780))
	switch (mips_machtype) {
	case MACH_INGENIC_JZ4780:
		return "JZ4780";

	case MACH_INGENIC_JZ4770:
		return "JZ4770";
	default:
		return "JZ4740";
	}
}

void __init arch_init_irq(void)
{