Commit e82a840c authored by Saravana Kannan's avatar Saravana Kannan Committed by Greg Kroah-Hartman
Browse files

efi: Update implementation of add_links() to create fwnode links



The semantics of add_links() has changed from creating device link
between devices to creating fwnode links between fwnodes. So, update the
implementation of add_links() to match the new semantics.

Signed-off-by: default avatarSaravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/r/20201121020232.908850-16-saravanak@google.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8a06d1ea
Loading
Loading
Loading
Loading
+1 −20
Original line number Diff line number Diff line
@@ -320,7 +320,6 @@ static int efifb_add_links(struct fwnode_handle *fwnode,
			   struct device *dev)
{
	struct device_node *sup_np;
	struct device *sup_dev;

	sup_np = find_pci_overlap_node();

@@ -331,27 +330,9 @@ static int efifb_add_links(struct fwnode_handle *fwnode,
	if (!sup_np)
		return 0;

	sup_dev = get_dev_from_fwnode(&sup_np->fwnode);
	fwnode_link_add(fwnode, of_fwnode_handle(sup_np));
	of_node_put(sup_np);

	/*
	 * Return -ENODEV if the PCI graphics controller device hasn't been
	 * registered yet.  This ensures that efifb isn't allowed to probe
	 * and this function is retried again when new devices are
	 * registered.
	 */
	if (!sup_dev)
		return -ENODEV;

	/*
	 * If this fails, retrying this function at a later point won't
	 * change anything. So, don't return an error after this.
	 */
	if (!device_link_add(dev, sup_dev, fw_devlink_get_flags()))
		dev_warn(dev, "device_link_add() failed\n");

	put_device(sup_dev);

	return 0;
}