ARM: imx: Enable cpuidle for i.MX6DL starting at 1.1
authorLeonard Crestez <leonard.crestez@nxp.com>
Wed, 11 Oct 2017 12:08:23 +0000 (15:08 +0300)
committerShawn Guo <shawnguo@kernel.org>
Sat, 14 Oct 2017 15:04:33 +0000 (23:04 +0800)
Enable cpuidle support on i.MX6DL starting from IMX_CHIP_REVISION_1_1.

This also makes the code cleaner because 6q and 6dl actually have
different revision histories.

Signed-off-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/mach-imx/mach-imx6q.c

index 45801b2..5707113 100644 (file)
@@ -371,10 +371,13 @@ static struct platform_device imx6q_cpufreq_pdev = {
 static void __init imx6q_init_late(void)
 {
        /*
-        * WAIT mode is broken on TO 1.0 and 1.1, so there is no point
-        * to run cpuidle on them.
+        * WAIT mode is broken on imx6 Dual/Quad revision 1.0 and 1.1 so
+        * there is no point to run cpuidle on them.
+        *
+        * It does work on imx6 Solo/DualLite starting from 1.1
         */
-       if (imx_get_soc_revision() > IMX_CHIP_REVISION_1_1)
+       if ((cpu_is_imx6q() && imx_get_soc_revision() > IMX_CHIP_REVISION_1_1) ||
+           (cpu_is_imx6dl() && imx_get_soc_revision() > IMX_CHIP_REVISION_1_0))
                imx6q_cpuidle_init();
 
        if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) {