#ifdef RAMDISK_HOOKS
#include <sys/param.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcidevs.h>
#include <dev/pci/drm/i915/i915_devlist.h>
#include <dev/pci/drm/radeon/radeon_devlist.h>
#include <dev/pci/drm/amd/amdgpu/amdgpu_devlist.h>
static const struct pci_matchid aperture_blacklist[] = {
{ PCI_VENDOR_MATROX, PCI_PRODUCT_MATROX_G200E_SE },
{ PCI_VENDOR_MATROX, PCI_PRODUCT_MATROX_G200E_SE_B },
{ PCI_VENDOR_MATROX, PCI_PRODUCT_MATROX_G200EH },
{ PCI_VENDOR_MATROX, PCI_PRODUCT_MATROX_G200ER },
{ PCI_VENDOR_MATROX, PCI_PRODUCT_MATROX_G200EV },
{ PCI_VENDOR_MATROX, PCI_PRODUCT_MATROX_G200EW },
{ PCI_VENDOR_ASPEED, PCI_PRODUCT_ASPEED_AST2000 },
{ PCI_VENDOR_ASPEED, PCI_PRODUCT_ASPEED_AST2100 },
{ PCI_VENDOR_ATI, PCI_PRODUCT_ATI_RAGEXL },
{ PCI_VENDOR_ATI, PCI_PRODUCT_ATI_ES1000 },
{ PCI_VENDOR_XGI, PCI_PRODUCT_XGI_VOLARI_Z7 },
{ PCI_VENDOR_XGI, PCI_PRODUCT_XGI_VOLARI_Z9 },
};
int
vga_aperture_needed(struct pci_attach_args *pa)
{
if (pci_matchbyid(pa, i915_devices, nitems(i915_devices)) ||
pci_matchbyid(pa, aperture_blacklist, nitems(aperture_blacklist)))
return (0);
#if defined(__amd64__) || defined(__i386__) || defined(__loongson__) || \
defined(__macppc__) || defined(__sparc64__)
if (pci_matchbyid(pa, radeon_devices, nitems(radeon_devices)))
return (0);
#endif
#ifdef __amd64__
if (pci_matchbyid(pa, amdgpu_devices, nitems(amdgpu_devices)))
return (0);
#endif
return (1);
}
#endif