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 6b4efcea37dedd9df3c9b265eb9cf0c1f4dc12a2..fd87b3ea4e60df915e50e572889433a9b11a50c1 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;