Lines Matching refs:ce
41 static inline void __pm_clk_enable(struct device *dev, struct pm_clock_entry *ce) in __pm_clk_enable() argument
45 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_enable()
46 ret = clk_enable(ce->clk); in __pm_clk_enable()
48 ce->status = PCE_STATUS_ENABLED; in __pm_clk_enable()
51 __func__, ce->clk, ret); in __pm_clk_enable()
60 static void pm_clk_acquire(struct device *dev, struct pm_clock_entry *ce) in pm_clk_acquire() argument
62 if (!ce->clk) in pm_clk_acquire()
63 ce->clk = clk_get(dev, ce->con_id); in pm_clk_acquire()
64 if (IS_ERR(ce->clk)) { in pm_clk_acquire()
65 ce->status = PCE_STATUS_ERROR; in pm_clk_acquire()
67 clk_prepare(ce->clk); in pm_clk_acquire()
68 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_acquire()
70 ce->clk, ce->con_id); in pm_clk_acquire()
78 struct pm_clock_entry *ce; in __pm_clk_add() local
83 ce = kzalloc(sizeof(*ce), GFP_KERNEL); in __pm_clk_add()
84 if (!ce) in __pm_clk_add()
88 ce->con_id = kstrdup(con_id, GFP_KERNEL); in __pm_clk_add()
89 if (!ce->con_id) { in __pm_clk_add()
92 kfree(ce); in __pm_clk_add()
97 kfree(ce); in __pm_clk_add()
100 ce->clk = clk; in __pm_clk_add()
103 pm_clk_acquire(dev, ce); in __pm_clk_add()
106 list_add_tail(&ce->node, &psd->clock_list); in __pm_clk_add()
143 static void __pm_clk_remove(struct pm_clock_entry *ce) in __pm_clk_remove() argument
145 if (!ce) in __pm_clk_remove()
148 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_remove()
149 if (ce->status == PCE_STATUS_ENABLED) in __pm_clk_remove()
150 clk_disable(ce->clk); in __pm_clk_remove()
152 if (ce->status >= PCE_STATUS_ACQUIRED) { in __pm_clk_remove()
153 clk_unprepare(ce->clk); in __pm_clk_remove()
154 clk_put(ce->clk); in __pm_clk_remove()
158 kfree(ce->con_id); in __pm_clk_remove()
159 kfree(ce); in __pm_clk_remove()
173 struct pm_clock_entry *ce; in pm_clk_remove() local
180 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_remove()
181 if (!con_id && !ce->con_id) in pm_clk_remove()
183 else if (!con_id || !ce->con_id) in pm_clk_remove()
185 else if (!strcmp(con_id, ce->con_id)) in pm_clk_remove()
193 list_del(&ce->node); in pm_clk_remove()
196 __pm_clk_remove(ce); in pm_clk_remove()
236 struct pm_clock_entry *ce, *c; in pm_clk_destroy() local
246 list_for_each_entry_safe_reverse(ce, c, &psd->clock_list, node) in pm_clk_destroy()
247 list_move(&ce->node, &list); in pm_clk_destroy()
253 list_for_each_entry_safe_reverse(ce, c, &list, node) { in pm_clk_destroy()
254 list_del(&ce->node); in pm_clk_destroy()
255 __pm_clk_remove(ce); in pm_clk_destroy()
266 struct pm_clock_entry *ce; in pm_clk_suspend() local
276 list_for_each_entry_reverse(ce, &psd->clock_list, node) { in pm_clk_suspend()
277 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_suspend()
278 if (ce->status == PCE_STATUS_ENABLED) in pm_clk_suspend()
279 clk_disable(ce->clk); in pm_clk_suspend()
280 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_suspend()
296 struct pm_clock_entry *ce; in pm_clk_resume() local
306 list_for_each_entry(ce, &psd->clock_list, node) in pm_clk_resume()
307 __pm_clk_enable(dev, ce); in pm_clk_resume()