Lines Matching full:pm
17 static struct s5p_mfc_pm *pm; variable
25 pm = &dev->pm; in s5p_mfc_init_pm()
28 pm->num_clocks = dev->variant->num_clocks; in s5p_mfc_init_pm()
29 pm->clk_names = dev->variant->clk_names; in s5p_mfc_init_pm()
30 pm->device = &dev->plat_dev->dev; in s5p_mfc_init_pm()
31 pm->clock_gate = NULL; in s5p_mfc_init_pm()
34 for (i = 0; i < pm->num_clocks; i++) { in s5p_mfc_init_pm()
35 pm->clocks[i] = devm_clk_get(pm->device, pm->clk_names[i]); in s5p_mfc_init_pm()
36 if (IS_ERR(pm->clocks[i])) { in s5p_mfc_init_pm()
38 if (i && PTR_ERR(pm->clocks[i]) == -ENOENT) { in s5p_mfc_init_pm()
39 pm->clocks[i] = NULL; in s5p_mfc_init_pm()
43 pm->clk_names[i]); in s5p_mfc_init_pm()
44 return PTR_ERR(pm->clocks[i]); in s5p_mfc_init_pm()
49 pm->clock_gate = pm->clocks[0]; in s5p_mfc_init_pm()
51 pm_runtime_enable(pm->device); in s5p_mfc_init_pm()
58 pm_runtime_disable(pm->device); in s5p_mfc_final_pm()
66 return clk_enable(pm->clock_gate); in s5p_mfc_clock_on()
74 clk_disable(pm->clock_gate); in s5p_mfc_clock_off()
81 ret = pm_runtime_get_sync(pm->device); in s5p_mfc_power_on()
83 pm_runtime_put_noidle(pm->device); in s5p_mfc_power_on()
88 for (i = 0; i < pm->num_clocks; i++) { in s5p_mfc_power_on()
89 ret = clk_prepare_enable(pm->clocks[i]); in s5p_mfc_power_on()
92 pm->clk_names[i]); in s5p_mfc_power_on()
99 clk_disable(pm->clock_gate); in s5p_mfc_power_on()
104 clk_disable_unprepare(pm->clocks[i]); in s5p_mfc_power_on()
105 pm_runtime_put(pm->device); in s5p_mfc_power_on()
114 clk_enable(pm->clock_gate); in s5p_mfc_power_off()
116 for (i = 0; i < pm->num_clocks; i++) in s5p_mfc_power_off()
117 clk_disable_unprepare(pm->clocks[i]); in s5p_mfc_power_off()
119 return pm_runtime_put_sync(pm->device); in s5p_mfc_power_off()