Lines Matching refs:ce
54 static void pm_clk_acquire(struct device *dev, struct pm_clock_entry *ce) in pm_clk_acquire() argument
56 ce->clk = clk_get(dev, ce->con_id); in pm_clk_acquire()
57 if (IS_ERR(ce->clk)) { in pm_clk_acquire()
58 ce->status = PCE_STATUS_ERROR; in pm_clk_acquire()
60 clk_prepare(ce->clk); in pm_clk_acquire()
61 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_acquire()
62 dev_dbg(dev, "Clock %s managed by runtime PM.\n", ce->con_id); in pm_clk_acquire()
77 struct pm_clock_entry *ce; in pm_clk_add() local
82 ce = kzalloc(sizeof(*ce), GFP_KERNEL); in pm_clk_add()
83 if (!ce) { in pm_clk_add()
89 ce->con_id = kstrdup(con_id, GFP_KERNEL); in pm_clk_add()
90 if (!ce->con_id) { in pm_clk_add()
93 kfree(ce); in pm_clk_add()
98 pm_clk_acquire(dev, ce); in pm_clk_add()
101 list_add_tail(&ce->node, &psd->clock_list); in pm_clk_add()
110 static void __pm_clk_remove(struct pm_clock_entry *ce) in __pm_clk_remove() argument
112 if (!ce) in __pm_clk_remove()
115 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_remove()
116 if (ce->status == PCE_STATUS_ENABLED) in __pm_clk_remove()
117 clk_disable(ce->clk); in __pm_clk_remove()
119 if (ce->status >= PCE_STATUS_ACQUIRED) { in __pm_clk_remove()
120 clk_unprepare(ce->clk); in __pm_clk_remove()
121 clk_put(ce->clk); in __pm_clk_remove()
125 kfree(ce->con_id); in __pm_clk_remove()
126 kfree(ce); in __pm_clk_remove()
140 struct pm_clock_entry *ce; in pm_clk_remove() local
147 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_remove()
148 if (!con_id && !ce->con_id) in pm_clk_remove()
150 else if (!con_id || !ce->con_id) in pm_clk_remove()
152 else if (!strcmp(con_id, ce->con_id)) in pm_clk_remove()
160 list_del(&ce->node); in pm_clk_remove()
163 __pm_clk_remove(ce); in pm_clk_remove()
203 struct pm_clock_entry *ce, *c; in pm_clk_destroy() local
213 list_for_each_entry_safe_reverse(ce, c, &psd->clock_list, node) in pm_clk_destroy()
214 list_move(&ce->node, &list); in pm_clk_destroy()
220 list_for_each_entry_safe_reverse(ce, c, &list, node) { in pm_clk_destroy()
221 list_del(&ce->node); in pm_clk_destroy()
222 __pm_clk_remove(ce); in pm_clk_destroy()
237 struct pm_clock_entry *ce; in pm_clk_suspend() local
247 list_for_each_entry_reverse(ce, &psd->clock_list, node) { in pm_clk_suspend()
248 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_suspend()
249 if (ce->status == PCE_STATUS_ENABLED) in pm_clk_suspend()
250 clk_disable(ce->clk); in pm_clk_suspend()
251 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_suspend()
267 struct pm_clock_entry *ce; in pm_clk_resume() local
278 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_resume()
279 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_resume()
280 ret = __pm_clk_enable(dev, ce->clk); in pm_clk_resume()
282 ce->status = PCE_STATUS_ENABLED; in pm_clk_resume()
360 struct pm_clock_entry *ce; in pm_clk_suspend() local
371 list_for_each_entry_reverse(ce, &psd->clock_list, node) { in pm_clk_suspend()
372 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_suspend()
373 if (ce->status == PCE_STATUS_ENABLED) in pm_clk_suspend()
374 clk_disable(ce->clk); in pm_clk_suspend()
375 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_suspend()
391 struct pm_clock_entry *ce; in pm_clk_resume() local
403 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_resume()
404 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_resume()
405 ret = __pm_clk_enable(dev, ce->clk); in pm_clk_resume()
407 ce->status = PCE_STATUS_ENABLED; in pm_clk_resume()