Lines Matching refs:ce

42 static inline void __pm_clk_enable(struct device *dev, struct pm_clock_entry *ce)  in __pm_clk_enable()  argument
46 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_enable()
47 ret = clk_enable(ce->clk); in __pm_clk_enable()
49 ce->status = PCE_STATUS_ENABLED; in __pm_clk_enable()
52 __func__, ce->clk, ret); in __pm_clk_enable()
61 static void pm_clk_acquire(struct device *dev, struct pm_clock_entry *ce) in pm_clk_acquire() argument
63 if (!ce->clk) in pm_clk_acquire()
64 ce->clk = clk_get(dev, ce->con_id); in pm_clk_acquire()
65 if (IS_ERR(ce->clk)) { in pm_clk_acquire()
66 ce->status = PCE_STATUS_ERROR; in pm_clk_acquire()
68 if (clk_prepare(ce->clk)) { in pm_clk_acquire()
69 ce->status = PCE_STATUS_ERROR; in pm_clk_acquire()
72 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_acquire()
75 ce->clk, ce->con_id); in pm_clk_acquire()
84 struct pm_clock_entry *ce; in __pm_clk_add() local
89 ce = kzalloc(sizeof(*ce), GFP_KERNEL); in __pm_clk_add()
90 if (!ce) in __pm_clk_add()
94 ce->con_id = kstrdup(con_id, GFP_KERNEL); in __pm_clk_add()
95 if (!ce->con_id) { in __pm_clk_add()
96 kfree(ce); in __pm_clk_add()
101 kfree(ce); in __pm_clk_add()
104 ce->clk = clk; in __pm_clk_add()
107 pm_clk_acquire(dev, ce); in __pm_clk_add()
110 list_add_tail(&ce->node, &psd->clock_list); in __pm_clk_add()
237 static void __pm_clk_remove(struct pm_clock_entry *ce) in __pm_clk_remove() argument
239 if (!ce) in __pm_clk_remove()
242 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_remove()
243 if (ce->status == PCE_STATUS_ENABLED) in __pm_clk_remove()
244 clk_disable(ce->clk); in __pm_clk_remove()
246 if (ce->status >= PCE_STATUS_ACQUIRED) { in __pm_clk_remove()
247 clk_unprepare(ce->clk); in __pm_clk_remove()
248 clk_put(ce->clk); in __pm_clk_remove()
252 kfree(ce->con_id); in __pm_clk_remove()
253 kfree(ce); in __pm_clk_remove()
267 struct pm_clock_entry *ce; in pm_clk_remove() local
274 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_remove()
275 if (!con_id && !ce->con_id) in pm_clk_remove()
277 else if (!con_id || !ce->con_id) in pm_clk_remove()
279 else if (!strcmp(con_id, ce->con_id)) in pm_clk_remove()
287 list_del(&ce->node); in pm_clk_remove()
290 __pm_clk_remove(ce); in pm_clk_remove()
305 struct pm_clock_entry *ce; in pm_clk_remove_clk() local
312 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_remove_clk()
313 if (clk == ce->clk) in pm_clk_remove_clk()
321 list_del(&ce->node); in pm_clk_remove_clk()
324 __pm_clk_remove(ce); in pm_clk_remove_clk()
367 struct pm_clock_entry *ce, *c; in pm_clk_destroy() local
377 list_for_each_entry_safe_reverse(ce, c, &psd->clock_list, node) in pm_clk_destroy()
378 list_move(&ce->node, &list); in pm_clk_destroy()
384 list_for_each_entry_safe_reverse(ce, c, &list, node) { in pm_clk_destroy()
385 list_del(&ce->node); in pm_clk_destroy()
386 __pm_clk_remove(ce); in pm_clk_destroy()
398 struct pm_clock_entry *ce; in pm_clk_suspend() local
408 list_for_each_entry_reverse(ce, &psd->clock_list, node) { in pm_clk_suspend()
409 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_suspend()
410 if (ce->status == PCE_STATUS_ENABLED) in pm_clk_suspend()
411 clk_disable(ce->clk); in pm_clk_suspend()
412 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_suspend()
429 struct pm_clock_entry *ce; in pm_clk_resume() local
439 list_for_each_entry(ce, &psd->clock_list, node) in pm_clk_resume()
440 __pm_clk_enable(dev, ce); in pm_clk_resume()