soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619
authorLeonard Crestez <leonard.crestez@nxp.com>
Tue, 30 Apr 2019 15:06:12 +0000 (15:06 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 13 May 2019 08:51:31 +0000 (10:51 +0200)
This allows PU domain to be turned off in suspend and save power.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/soc/imx/gpc.c

index 7d14a4b4e82a44f6a3d9da31d46cfb44142de8d7..29b43651c261d0a40ea754a7e9aafa4f483b2d61 100644 (file)
@@ -431,10 +431,19 @@ static int imx_gpc_probe(struct platform_device *pdev)
                return ret;
        }
 
-       /* Disable PU power down in normal operation if ERR009619 is present */
+       /*
+        * Disable PU power down by runtime PM if ERR009619 is present.
+        *
+        * The PRE clock will be paused for several cycles when turning on the
+        * PU domain LDO from power down state. If PRE is in use at that time,
+        * the IPU/PRG cannot get the correct display data from the PRE.
+        *
+        * This is not a concern when the whole system enters suspend state, so
+        * it's safe to power down PU in this case.
+        */
        if (of_id_data->err009619_present)
                imx_gpc_domains[GPC_PGC_DOMAIN_PU].base.flags |=
-                               GENPD_FLAG_ALWAYS_ON;
+                               GENPD_FLAG_RPM_ALWAYS_ON;
 
        /* Keep DISP always on if ERR006287 is present */
        if (of_id_data->err006287_present)