pci: sandbox: Probe PCI emulation devices when used
authorSimon Glass <sjg@chromium.org>
Sat, 31 Aug 2019 23:59:32 +0000 (17:59 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 8 Oct 2019 05:57:41 +0000 (13:57 +0800)
At present PCI emulation devices are not probed before use, since they
used to be children of the device that used them, and children cannot be
probed before their parents.

Now that PCI emulation devices are attached to the root node, we can
simply probe them, and avoid using the internal function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: rebase the patch against u-boot-x86/next to get it applied cleanly]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
drivers/pci/pci-emul-uclass.c

index 6b4efce..fd87b3e 100644 (file)
@@ -10,7 +10,6 @@
 #include <linux/libfdt.h>
 #include <pci.h>
 #include <dm/lists.h>
-#include <dm/uclass-internal.h>
 
 struct sandbox_pci_emul_priv {
        int dev_count;
@@ -35,8 +34,8 @@ int sandbox_pci_get_emul(struct udevice *bus, pci_dev_t find_devfn,
         * See commit 4345998ae9df,
         * "pci: sandbox: Support dynamically binding device driver"
         */
-       ret = uclass_find_device_by_phandle(UCLASS_PCI_EMUL, dev,
-                                           "sandbox,emul", emulp);
+       ret = uclass_get_device_by_phandle(UCLASS_PCI_EMUL, dev, "sandbox,emul",
+                                          emulp);
        if (ret && device_get_uclass_id(dev) != UCLASS_PCI_GENERIC)
                *emulp = dev;