Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e58b281c authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "FROMGIT: BACKPORT: driver core: Add device links from fwnode only for the primary device"

parents 1264c046 158e0519
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -2378,6 +2378,7 @@ int device_add(struct device *dev)
	struct class_interface *class_intf;
	int error = -EINVAL, fw_ret;
	struct kobject *glue_dir = NULL;
	bool is_fwnode_dev = false;

	dev = get_device(dev);
	if (!dev)
@@ -2475,8 +2476,10 @@ int device_add(struct device *dev)

	kobject_uevent(&dev->kobj, KOBJ_ADD);

	if (dev->fwnode && !dev->fwnode->dev)
	if (dev->fwnode && !dev->fwnode->dev) {
		dev->fwnode->dev = dev;
		is_fwnode_dev = true;
	}

	/*
	 * Check if any of the other devices (consumers) have been waiting for
@@ -2492,7 +2495,7 @@ int device_add(struct device *dev)
	 */
	device_link_add_missing_supplier_links();

	if (fwnode_has_op(dev->fwnode, add_links)) {
	if (is_fwnode_dev && fwnode_has_op(dev->fwnode, add_links)) {
		fw_ret = fwnode_call_int_op(dev->fwnode, add_links, dev);
		if (fw_ret == -ENODEV)
			device_link_wait_for_mandatory_supplier(dev);