FROMGIT: BACKPORT: driver core: Add device links from fwnode only for the primary device
Sometimes, more than one (generally two) device can point to the same fwnode. However, only one device is set as the fwnode's device (fwnode->dev) and can be looked up from the fwnode. Typically, only one of these devices actually have a driver and actually probe. If we create device links for all these devices, then the suppliers' of these devices (with the same fwnode) will never get a sync_state() call because one of their consumer devices will never probe (because they don't have a driver). So, create device links only for the device that is considered as the fwnode's device. One such example of this is the PCI bridge platform_device and the corresponding pci_bus device. Both these devices will have the same fwnode. It's the platform_device that is registered first and is set as the fwnode's device. Also the platform_device is the one that actually probes. Without this patch none of the suppliers of a PCI bridge platform_device would get a sync_state() callback. Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: linux-pci@vger.kernel.org Reviewed-by:Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by:
Saravana Kannan <saravanak@google.com> Link: https://lore.kernel.org/r/20200321045448.15192-1-saravanak@google.com Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 4dbe191c046e71d6ea1ba85365ecb33961b07c4f https: //git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git driver-core-next) [fixed minor conflict due to missing fw_devlink_flags] Bug: 151891594 Change-Id: Ife526b52d1e25c420d07dcf46ed466dc80f7f5eb Signed-off-by:
Saravana Kannan <saravanak@google.com>
Loading
Please register or sign in to comment