vbios_quirk.c 719 B

12345678910111213141516171819202122232425262728
  1. // SPDX-License-Identifier: GPL-2.0+
  2. #include <linux/pci.h>
  3. #include <loongson.h>
  4. static void pci_fixup_video(struct pci_dev *pdev)
  5. {
  6. struct resource *res = &pdev->resource[PCI_ROM_RESOURCE];
  7. if (res->start)
  8. return;
  9. if (!loongson_sysconf.vgabios_addr)
  10. return;
  11. pci_disable_rom(pdev);
  12. if (res->parent)
  13. release_resource(res);
  14. res->start = virt_to_phys((void *) loongson_sysconf.vgabios_addr);
  15. res->end = res->start + 256*1024 - 1;
  16. res->flags = IORESOURCE_MEM | IORESOURCE_ROM_SHADOW |
  17. IORESOURCE_PCI_FIXED;
  18. dev_info(&pdev->dev, "Video device with shadowed ROM at %pR\n", res);
  19. }
  20. DECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_ATI, 0x9615,
  21. PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);