|
|
@@ -12,6 +12,7 @@
|
|
|
#include <linux/pm_runtime.h>
|
|
|
#include <linux/pm_domain.h>
|
|
|
#include <linux/pm_qos.h>
|
|
|
+#include <linux/pm_clock.h>
|
|
|
#include <linux/slab.h>
|
|
|
#include <linux/err.h>
|
|
|
#include <linux/sched.h>
|
|
|
@@ -1948,6 +1949,12 @@ void pm_genpd_init(struct generic_pm_domain *genpd,
|
|
|
genpd->domain.ops.complete = pm_genpd_complete;
|
|
|
genpd->dev_ops.save_state = pm_genpd_default_save_state;
|
|
|
genpd->dev_ops.restore_state = pm_genpd_default_restore_state;
|
|
|
+
|
|
|
+ if (genpd->flags & GENPD_FLAG_PM_CLK) {
|
|
|
+ genpd->dev_ops.stop = pm_clk_suspend;
|
|
|
+ genpd->dev_ops.start = pm_clk_resume;
|
|
|
+ }
|
|
|
+
|
|
|
mutex_lock(&gpd_list_lock);
|
|
|
list_add(&genpd->gpd_list_node, &gpd_list);
|
|
|
mutex_unlock(&gpd_list_lock);
|