xref: /kernel/linux/linux-6.6/arch/mips/loongson64/vbios_quirk.c
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/mips/loongson64/
162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#include <linux/pci.h>
462306a36Sopenharmony_ci#include <loongson.h>
562306a36Sopenharmony_ci
662306a36Sopenharmony_cistatic void pci_fixup_video(struct pci_dev *pdev)
762306a36Sopenharmony_ci{
862306a36Sopenharmony_ci	struct resource *res = &pdev->resource[PCI_ROM_RESOURCE];
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci	if (res->start)
1162306a36Sopenharmony_ci		return;
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	if (!loongson_sysconf.vgabios_addr)
1462306a36Sopenharmony_ci		return;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	pci_disable_rom(pdev);
1762306a36Sopenharmony_ci	if (res->parent)
1862306a36Sopenharmony_ci		release_resource(res);
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	res->start = virt_to_phys((void *) loongson_sysconf.vgabios_addr);
2162306a36Sopenharmony_ci	res->end   = res->start + 256*1024 - 1;
2262306a36Sopenharmony_ci	res->flags = IORESOURCE_MEM | IORESOURCE_ROM_SHADOW |
2362306a36Sopenharmony_ci		     IORESOURCE_PCI_FIXED;
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	dev_info(&pdev->dev, "Video device with shadowed ROM at %pR\n", res);
2662306a36Sopenharmony_ci}
2762306a36Sopenharmony_ciDECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_ATI, 0x9615,
2862306a36Sopenharmony_ci			       PCI_CLASS_DISPLAY_VGA, 8, pci_fixup_video);
29

Indexes created Thu Nov 07 10:32:03 CST 2024