PM / domains: quieten down generic pm domains
[firefly-linux-kernel-4.4.55.git] / drivers / base / power / domain.c
index 45937f88e77c88893f6f05430efcd2dd88449e9f..2e2e6af1f3fea5196f04e82ac2a497a0d037e637 100644 (file)
@@ -173,8 +173,8 @@ static int genpd_power_on(struct generic_pm_domain *genpd)
        genpd->power_on_latency_ns = elapsed_ns;
        genpd->max_off_time_changed = true;
        genpd_recalc_cpu_exit_latency(genpd);
-       pr_warn("%s: Power-%s latency exceeded, new value %lld ns\n",
-               genpd->name, "on", elapsed_ns);
+       pr_debug("%s: Power-%s latency exceeded, new value %lld ns\n",
+                genpd->name, "on", elapsed_ns);
 
        return ret;
 }
@@ -199,8 +199,8 @@ static int genpd_power_off(struct generic_pm_domain *genpd)
 
        genpd->power_off_latency_ns = elapsed_ns;
        genpd->max_off_time_changed = true;
-       pr_warn("%s: Power-%s latency exceeded, new value %lld ns\n",
-               genpd->name, "off", elapsed_ns);
+       pr_debug("%s: Power-%s latency exceeded, new value %lld ns\n",
+                genpd->name, "off", elapsed_ns);
 
        return ret;
 }
@@ -2130,6 +2130,17 @@ static void genpd_dev_pm_detach(struct device *dev, bool power_off)
        genpd_queue_power_off_work(pd);
 }
 
+static void genpd_dev_pm_sync(struct device *dev)
+{
+       struct generic_pm_domain *pd;
+
+       pd = dev_to_genpd(dev);
+       if (IS_ERR(pd))
+               return;
+
+       genpd_queue_power_off_work(pd);
+}
+
 /**
  * genpd_dev_pm_attach - Attach a device to its PM domain using DT.
  * @dev: Device to attach.
@@ -2196,6 +2207,7 @@ int genpd_dev_pm_attach(struct device *dev)
        }
 
        dev->pm_domain->detach = genpd_dev_pm_detach;
+       dev->pm_domain->sync = genpd_dev_pm_sync;
        pm_genpd_poweron(pd);
 
        return 0;