ARM: imx: mach-imx6q: correctly identify i.MX6QP SoCs
authorSven Van Asbroeck <thesven73@gmail.com>
Wed, 4 Nov 2020 16:54:18 +0000 (11:54 -0500)
committerShawn Guo <shawnguo@kernel.org>
Tue, 10 Nov 2020 02:21:32 +0000 (10:21 +0800)
The i.MX6QP rev 1.1 SoC on my board is mis-identified by Linux:
the log (incorrectly) shows "i.MX6Q rev 2.1".

Correct this by assuming that every SoC that identifies as
i.MX6Q with rev >= 2.0 is really an i.MX6QP.

Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/mach-imx/mach-imx6q.c

index 85c084a..703998e 100644 (file)
@@ -245,8 +245,13 @@ static void __init imx6q_axi_init(void)
 
 static void __init imx6q_init_machine(void)
 {
-       if (cpu_is_imx6q() && imx_get_soc_revision() == IMX_CHIP_REVISION_2_0)
-               imx_print_silicon_rev("i.MX6QP", IMX_CHIP_REVISION_1_0);
+       if (cpu_is_imx6q() && imx_get_soc_revision() >= IMX_CHIP_REVISION_2_0)
+               /*
+                * SoCs that identify as i.MX6Q >= rev 2.0 are really i.MX6QP.
+                * Quirk: i.MX6QP revision = i.MX6Q revision - (1, 0),
+                * e.g. i.MX6QP rev 1.1 identifies as i.MX6Q rev 2.1.
+                */
+               imx_print_silicon_rev("i.MX6QP", imx_get_soc_revision() - 0x10);
        else
                imx_print_silicon_rev(cpu_is_imx6dl() ? "i.MX6DL" : "i.MX6Q",
                                imx_get_soc_revision());