Lines Matching refs:ce

40 static inline void __pm_clk_enable(struct device *dev, struct pm_clock_entry *ce)  in __pm_clk_enable()  argument
44 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_enable()
45 ret = clk_enable(ce->clk); in __pm_clk_enable()
47 ce->status = PCE_STATUS_ENABLED; in __pm_clk_enable()
50 __func__, ce->clk, ret); in __pm_clk_enable()
59 static void pm_clk_acquire(struct device *dev, struct pm_clock_entry *ce) in pm_clk_acquire() argument
61 if (!ce->clk) in pm_clk_acquire()
62 ce->clk = clk_get(dev, ce->con_id); in pm_clk_acquire()
63 if (IS_ERR(ce->clk)) { in pm_clk_acquire()
64 ce->status = PCE_STATUS_ERROR; in pm_clk_acquire()
66 clk_prepare(ce->clk); in pm_clk_acquire()
67 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_acquire()
68 dev_dbg(dev, "Clock %s managed by runtime PM.\n", ce->con_id); in pm_clk_acquire()
76 struct pm_clock_entry *ce; in __pm_clk_add() local
81 ce = kzalloc(sizeof(*ce), GFP_KERNEL); in __pm_clk_add()
82 if (!ce) in __pm_clk_add()
86 ce->con_id = kstrdup(con_id, GFP_KERNEL); in __pm_clk_add()
87 if (!ce->con_id) { in __pm_clk_add()
90 kfree(ce); in __pm_clk_add()
95 kfree(ce); in __pm_clk_add()
98 ce->clk = clk; in __pm_clk_add()
101 pm_clk_acquire(dev, ce); in __pm_clk_add()
104 list_add_tail(&ce->node, &psd->clock_list); in __pm_clk_add()
139 static void __pm_clk_remove(struct pm_clock_entry *ce) in __pm_clk_remove() argument
141 if (!ce) in __pm_clk_remove()
144 if (ce->status < PCE_STATUS_ERROR) { in __pm_clk_remove()
145 if (ce->status == PCE_STATUS_ENABLED) in __pm_clk_remove()
146 clk_disable(ce->clk); in __pm_clk_remove()
148 if (ce->status >= PCE_STATUS_ACQUIRED) { in __pm_clk_remove()
149 clk_unprepare(ce->clk); in __pm_clk_remove()
150 clk_put(ce->clk); in __pm_clk_remove()
154 kfree(ce->con_id); in __pm_clk_remove()
155 kfree(ce); in __pm_clk_remove()
169 struct pm_clock_entry *ce; in pm_clk_remove() local
176 list_for_each_entry(ce, &psd->clock_list, node) { in pm_clk_remove()
177 if (!con_id && !ce->con_id) in pm_clk_remove()
179 else if (!con_id || !ce->con_id) in pm_clk_remove()
181 else if (!strcmp(con_id, ce->con_id)) in pm_clk_remove()
189 list_del(&ce->node); in pm_clk_remove()
192 __pm_clk_remove(ce); in pm_clk_remove()
232 struct pm_clock_entry *ce, *c; in pm_clk_destroy() local
242 list_for_each_entry_safe_reverse(ce, c, &psd->clock_list, node) in pm_clk_destroy()
243 list_move(&ce->node, &list); in pm_clk_destroy()
249 list_for_each_entry_safe_reverse(ce, c, &list, node) { in pm_clk_destroy()
250 list_del(&ce->node); in pm_clk_destroy()
251 __pm_clk_remove(ce); in pm_clk_destroy()
262 struct pm_clock_entry *ce; in pm_clk_suspend() local
272 list_for_each_entry_reverse(ce, &psd->clock_list, node) { in pm_clk_suspend()
273 if (ce->status < PCE_STATUS_ERROR) { in pm_clk_suspend()
274 if (ce->status == PCE_STATUS_ENABLED) in pm_clk_suspend()
275 clk_disable(ce->clk); in pm_clk_suspend()
276 ce->status = PCE_STATUS_ACQUIRED; in pm_clk_suspend()
292 struct pm_clock_entry *ce; in pm_clk_resume() local
302 list_for_each_entry(ce, &psd->clock_list, node) in pm_clk_resume()
303 __pm_clk_enable(dev, ce); in pm_clk_resume()