Lines Matching full:links
47 /* Device links support. */
129 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_is_dependent()
144 switch (supplier->links.status) { in device_link_init_status()
146 switch (consumer->links.status) { in device_link_init_status()
163 switch (consumer->links.status) { in device_link_init_status()
199 list_for_each_entry(link, &dev->links.consumers, s_node) in device_reorder_to_tail()
332 list_for_each_entry(link, &supplier->links.consumers, s_node) { in device_link_add()
418 list_add_tail_rcu(&link->s_node, &supplier->links.consumers); in device_link_add()
419 list_add_tail_rcu(&link->c_node, &consumer->links.suppliers); in device_link_add()
495 * Care is required for hotplugged devices: Their links are purged on removal
526 list_for_each_entry(link, &supplier->links.consumers, s_node) { in device_link_remove()
542 list_for_each_entry(link, &dev->links.suppliers, c_node) in device_links_missing_supplier()
551 * Check links from this device to any suppliers. Walk the list of the device's
552 * links to suppliers and see if all of them are available. If not, simply
557 * that function checks the device's links to consumers. This means we need to
561 * Links without the DL_FLAG_MANAGED flag set are ignored.
570 list_for_each_entry(link, &dev->links.suppliers, c_node) { in device_links_check_suppliers()
581 dev->links.status = DL_DEV_PROBING; in device_links_check_suppliers()
588 * device_links_driver_bound - Update device links after probing its driver.
589 * @dev: Device to update the links for.
591 * The probe has been successful, so update links from this device to any
594 * Also change the status of @dev's links to suppliers to "active".
596 * Links without the DL_FLAG_MANAGED flag set are ignored.
604 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_driver_bound()
609 * Links created during consumer probe may be in the "consumer in device_links_driver_bound()
625 list_for_each_entry(link, &dev->links.suppliers, c_node) { in device_links_driver_bound()
633 dev->links.status = DL_DEV_DRIVER_BOUND; in device_links_driver_bound()
646 * __device_links_no_driver - Update links of a device without a driver.
649 * Delete all non-persistent links from this device to any suppliers.
651 * Persistent links stay around, but their status is changed to "available",
655 * Links without the DL_FLAG_MANAGED flag set are ignored.
661 list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) { in __device_links_no_driver()
672 dev->links.status = DL_DEV_NO_DRIVER; in __device_links_no_driver()
676 * device_links_no_driver - Update links after failing driver probe.
679 * Clean up leftover links to consumers for @dev and invoke
680 * %__device_links_no_driver() to update links to suppliers for it as
683 * Links without the DL_FLAG_MANAGED flag set are ignored.
691 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_no_driver()
713 * device_links_driver_cleanup - Update links after driver removal.
716 * Update links to consumers for @dev by changing their status to "dormant" and
717 * invoke %__device_links_no_driver() to update links to suppliers for it as
720 * Links without the DL_FLAG_MANAGED flag set are ignored.
728 list_for_each_entry_safe(link, ln, &dev->links.consumers, s_node) { in device_links_driver_cleanup()
736 * autoremove the links between this @dev and its consumer in device_links_driver_cleanup()
753 * device_links_busy - Check if there are any busy links to consumers.
764 * Links without the DL_FLAG_MANAGED flag set are ignored.
773 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_busy()
785 dev->links.status = DL_DEV_UNBINDING; in device_links_busy()
795 * Walk the list of links to consumers for @dev and if any of them is in the
804 * Links without the DL_FLAG_MANAGED flag set are ignored.
813 list_for_each_entry(link, &dev->links.consumers, s_node) { in device_links_unbind_consumers()
845 * device_links_purge - Delete existing links to other devices.
853 * Delete all of the remaining links from this device to any other in device_links_purge()
858 list_for_each_entry_safe_reverse(link, ln, &dev->links.suppliers, c_node) { in device_links_purge()
863 list_for_each_entry_safe_reverse(link, ln, &dev->links.consumers, s_node) { in device_links_purge()
872 /* Device links support end. */
1714 INIT_LIST_HEAD(&dev->links.consumers); in device_initialize()
1715 INIT_LIST_HEAD(&dev->links.suppliers); in device_initialize()
1716 dev->links.status = DL_DEV_NO_DRIVER; in device_initialize()