Lines Matching refs:supplier
196 struct device *supplier, u32 flags) in device_link_add() argument
200 if (!consumer || !supplier || in device_link_add()
213 if (!device_pm_initialized(supplier) in device_link_add()
214 || device_is_dependent(consumer, supplier)) { in device_link_add()
219 list_for_each_entry(link, &supplier->links.consumers, s_node) in device_link_add()
231 if (pm_runtime_get_sync(supplier) < 0) { in device_link_add()
232 pm_runtime_put_noidle(supplier); in device_link_add()
246 pm_runtime_get_noresume(supplier); in device_link_add()
248 get_device(supplier); in device_link_add()
249 link->supplier = supplier; in device_link_add()
261 switch (supplier->links.status) { in device_link_add()
271 pm_runtime_resume(supplier); in device_link_add()
301 list_add_tail_rcu(&link->s_node, &supplier->links.consumers); in device_link_add()
304 dev_info(consumer, "Linked as a consumer to %s\n", dev_name(supplier)); in device_link_add()
316 put_device(link->supplier); in device_link_free()
331 dev_name(link->supplier)); in __device_link_del()
346 dev_name(link->supplier)); in __device_link_del()
384 void device_link_remove(void *consumer, struct device *supplier) in device_link_remove() argument
388 if (WARN_ON(consumer == supplier)) in device_link_remove()
394 list_for_each_entry(link, &supplier->links.consumers, s_node) { in device_link_remove()