--- 3803745d6eee75068f072929c13db42f10eaa1eb +++ 4cd50497264d3c65d092e1ca9c4fd55d2a7d0e22 @@ -242,27 +242,11 @@ static int __devinit e3d_set_fbinfo(stru static int __devinit e3d_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) { - struct device_node *of_node; - const char *device_type; struct fb_info *info; struct e3d_info *ep; unsigned int line_length; int err; - of_node = pci_device_to_OF_node(pdev); - if (!of_node) { - printk(KERN_ERR "e3d: Cannot find OF node of %s\n", - pci_name(pdev)); - return -ENODEV; - } - - device_type = of_get_property(of_node, "device_type", NULL); - if (!device_type) { - printk(KERN_INFO "e3d: Ignoring secondary output device " - "at %s\n", pci_name(pdev)); - return -ENODEV; - } - err = pci_enable_device(pdev); if (err < 0) { printk(KERN_ERR "e3d: Cannot enable PCI device %s\n", @@ -281,7 +265,13 @@ static int __devinit e3d_pci_register(st ep->info = info; ep->pdev = pdev; spin_lock_init(&ep->lock); - ep->of_node = of_node; + ep->of_node = pci_device_to_OF_node(pdev); + if (!ep->of_node) { + printk(KERN_ERR "e3d: Cannot find OF node of %s\n", + pci_name(pdev)); + err = -ENODEV; + goto err_release_fb; + } /* Read the PCI base register of the frame buffer, which we * need in order to interpret the RAMDAC_VID_*FB* values in