Merge tag 'fbdev-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux
[cascardo/linux.git] / drivers / video / fbdev / offb.c
index fb60a8f..906c6e7 100644 (file)
@@ -625,6 +625,21 @@ static void __init offb_init_nodriver(struct device_node *dp, int no_real_node)
        if (address == OF_BAD_ADDR && addr_prop)
                address = (u64)addr_prop;
        if (address != OF_BAD_ADDR) {
+#ifdef CONFIG_PCI
+               const __be32 *vidp, *didp;
+               u32 vid, did;
+               struct pci_dev *pdev;
+
+               vidp = of_get_property(dp, "vendor-id", NULL);
+               didp = of_get_property(dp, "device-id", NULL);
+               if (vidp && didp) {
+                       vid = be32_to_cpup(vidp);
+                       did = be32_to_cpup(didp);
+                       pdev = pci_get_device(vid, did, NULL);
+                       if (!pdev || pci_enable_device(pdev))
+                               return;
+               }
+#endif
                /* kludge for valkyrie */
                if (strcmp(dp->name, "valkyrie") == 0)
                        address += 0x1000;