Lines Matching refs:consumer
142 if (link->consumer == target) in device_is_dependent()
145 ret = device_is_dependent(link->consumer, target); in device_is_dependent()
153 struct device *consumer, in device_link_init_status() argument
158 switch (consumer->links.status) { in device_link_init_status()
175 switch (consumer->links.status) { in device_link_init_status()
214 device_reorder_to_tail(link->consumer, NULL); in device_reorder_to_tail()
325 put_device(link->consumer); in device_link_free()
363 struct device *con = link->consumer; in devlink_add_symlinks()
410 struct device *con = link->consumer; in devlink_remove_symlinks()
517 struct device_link *device_link_add(struct device *consumer, in device_link_add() argument
522 if (!consumer || !supplier || flags & ~DL_ADD_VALID_FLAGS || in device_link_add()
553 device_is_dependent(consumer, supplier))) { in device_link_add()
567 if (link->consumer != consumer) in device_link_add()
572 pm_runtime_new_link(consumer); in device_link_add()
608 device_link_init_status(link, consumer, supplier); in device_link_add()
628 get_device(consumer); in device_link_add()
629 link->consumer = consumer; in device_link_add()
637 dev_name(supplier), dev_name(consumer)); in device_link_add()
639 put_device(consumer); in device_link_add()
650 pm_runtime_new_link(consumer); in device_link_add()
657 device_link_init_status(link, consumer, supplier); in device_link_add()
668 list_add_tail_rcu(&link->c_node, &consumer->links.suppliers); in device_link_add()
671 dev_dbg(consumer, in device_link_add()
685 device_reorder_to_tail(consumer, NULL); in device_link_add()
687 dev_dbg(consumer, "Linked as a consumer to %s\n", dev_name(supplier)); in device_link_add()
715 static void device_link_wait_for_supplier(struct device *consumer, in device_link_wait_for_supplier() argument
719 list_add_tail(&consumer->links.needs_suppliers, &wait_for_suppliers); in device_link_wait_for_supplier()
720 consumer->links.need_for_probe = need_for_probe; in device_link_wait_for_supplier()
724 static void device_link_wait_for_mandatory_supplier(struct device *consumer) in device_link_wait_for_mandatory_supplier() argument
726 device_link_wait_for_supplier(consumer, true); in device_link_wait_for_mandatory_supplier()
729 static void device_link_wait_for_optional_supplier(struct device *consumer) in device_link_wait_for_optional_supplier() argument
731 device_link_wait_for_supplier(consumer, false); in device_link_wait_for_optional_supplier()
773 dev_dbg(link->consumer, "Dropping the link to %s\n", in __device_link_del()
787 dev_info(link->consumer, "Dropping the link to %s\n", in __device_link_del()
831 void device_link_remove(void *consumer, struct device *supplier) in device_link_remove() argument
835 if (WARN_ON(consumer == supplier)) in device_link_remove()
841 if (link->consumer == consumer) { in device_link_remove()
1120 driver_deferred_probe_add(link->consumer); in device_links_driver_bound()
1361 struct device *consumer = link->consumer; in device_links_unbind_consumers() local
1363 get_device(consumer); in device_links_unbind_consumers()
1367 device_release_driver_internal(consumer, NULL, in device_links_unbind_consumers()
1368 consumer->parent); in device_links_unbind_consumers()
1369 put_device(consumer); in device_links_unbind_consumers()