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

Commit 33d7c5c1 authored by Amit Kucheria's avatar Amit Kucheria Committed by Nicolas Pitre
Browse files

ARM: mxc: turn off HWCAP_NEON for older versions of imx51 silicon



Versions of silicon older than TO3 have broken NEON implementation. Turn off
NEON in such cases.

Signed-off-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
Tested-by: default avatarDave Martin <dave.martin@linaro.org>
Tested-by: default avatarJason Hui <jason.hui@linaro.org>
Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
parent c62d0f2a
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -70,6 +70,25 @@ int mx51_revision(void)
}
EXPORT_SYMBOL(mx51_revision);

#ifdef CONFIG_NEON

/*
 * All versions of the silicon before Rev. 3 have broken NEON implementations.
 * Dependent on link order - so the assumption is that vfp_init is called
 * before us.
 */
static int __init mx51_neon_fixup(void)
{
	if (mx51_revision() < MX51_CHIP_REV_3_0 && (elf_hwcap & HWCAP_NEON)) {
		elf_hwcap &= ~HWCAP_NEON;
		pr_info("Turning off NEON support, detected broken NEON implementation\n");
	}
	return 0;
}

late_initcall(mx51_neon_fixup);
#endif

static int __init post_cpu_init(void)
{
	unsigned int reg;