0001
0002
0003 #include <linux/pci.h>
0004 #include <loongson.h>
0005
0006 static void pci_fixup_video(struct pci_dev *pdev)
0007 {
0008 struct resource *res = &pdev->resource[PCI_ROM_RESOURCE];
0009
0010 if (res->start)
0011 return;
0012
0013 if (!loongson_sysconf.vgabios_addr)
0014 return;
0015
0016 pci_disable_rom(pdev);
0017 if (res->parent)
0018 release_resource(res);
0019
0020 res->start = virt_to_phys((void *) loongson_sysconf.vgabios_addr);
0021 res->end = res->start + 256*1024 - 1;
0022 res->flags = IORESOURCE_MEM | IORESOURCE_ROM_SHADOW |
0023 IORESOURCE_PCI_FIXED;
0024
0025 dev_info(&pdev->dev, "Video device with shadowed ROM at %pR\n", res);
0026 }
0027 DECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_ATI, 0x9615,
0028 PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);