Lines Matching refs:sup
51 * @sup: Supplier end of the link.
53 * Create a fwnode link between fwnode handles @con and @sup. The fwnode link
54 * represents the detail that the firmware lists @sup fwnode as supplying a
58 * two device objects corresponding to @con and @sup when they are created. The
59 * driver core will automatically delete the fwnode link between @con and @sup
66 struct fwnode_handle *sup, u8 flags)
70 list_for_each_entry(link, &sup->consumers, s_hook)
80 link->supplier = sup;
86 list_add(&link->s_hook, &sup->consumers);
89 con, sup);
94 int fwnode_link_add(struct fwnode_handle *con, struct fwnode_handle *sup)
99 ret = __fwnode_link_add(con, sup, 0);
551 struct device *sup = link->supplier;
555 len = max(strlen(dev_bus_name(sup)) + strlen(dev_name(sup)),
563 ret = sysfs_create_link(&link->link_dev.kobj, &sup->kobj, "supplier");
572 ret = sysfs_create_link(&sup->kobj, &link->link_dev.kobj, buf);
576 snprintf(buf, len, "supplier:%s:%s", dev_bus_name(sup), dev_name(sup));
585 sysfs_remove_link(&sup->kobj, buf);
599 struct device *sup = link->supplier;
606 len = max(strlen(dev_bus_name(sup)) + strlen(dev_name(sup)),
617 snprintf(buf, len, "supplier:%s:%s", dev_bus_name(sup), dev_name(sup));
621 sysfs_remove_link(&sup->kobj, buf);
1213 static void __device_links_supplier_defer_sync(struct device *sup)
1215 if (list_empty(&sup->links.defer_sync) && dev_has_sync_state(sup))
1216 list_add_tail(&sup->links.defer_sync, &deferred_sync);
1769 struct device *sup = link->supplier;
1772 link->status == DL_STATE_ACTIVE || sup->state_synced ||
1773 !dev_has_sync_state(sup))
1777 dev_warn(sup, "sync_state() pending due to %s\n",
1782 if (!list_empty(&sup->links.defer_sync))
1785 dev_warn(sup, "Timed out. Forcing sync_state()\n");
1786 sup->state_synced = true;
1787 get_device(sup);
1788 list_add_tail(&sup->links.defer_sync, data);
2224 struct fwnode_handle *sup = link->supplier;
2226 ret = fw_devlink_create_devlink(dev, sup, link);