Commit 953132b5 authored by Ondrej Zary's avatar Ondrej Zary Committed by Ben Skeggs

drm/nouveau/nouveau: Disable AGP for SiS 761

SiS 761 chipset does not support AGP cards but has AGP capability (for
the onboard video). At least PC Chips A31G board using this chipset has
an AGP-like AGPro slot that's wired to the PCI bus. Enabling AGP will
fail (GPU lockup and software fbcon, X11 hangs).

Add support for matching just the host bridge in nvkm_device_agp_quirks
and add entry for SiS 761 with mode 0 (AGP disabled).
Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 5102ec3e
...@@ -35,6 +35,8 @@ static const struct nvkm_device_agp_quirk ...@@ -35,6 +35,8 @@ static const struct nvkm_device_agp_quirk
nvkm_device_agp_quirks[] = { nvkm_device_agp_quirks[] = {
/* VIA Apollo PRO133x / GeForce FX 5600 Ultra - fdo#20341 */ /* VIA Apollo PRO133x / GeForce FX 5600 Ultra - fdo#20341 */
{ PCI_VENDOR_ID_VIA, 0x0691, PCI_VENDOR_ID_NVIDIA, 0x0311, 2 }, { PCI_VENDOR_ID_VIA, 0x0691, PCI_VENDOR_ID_NVIDIA, 0x0311, 2 },
/* SiS 761 does not support AGP cards, use PCI mode */
{ PCI_VENDOR_ID_SI, 0x0761, PCI_ANY_ID, PCI_ANY_ID, 0 },
{}, {},
}; };
...@@ -137,8 +139,10 @@ nvkm_agp_ctor(struct nvkm_pci *pci) ...@@ -137,8 +139,10 @@ nvkm_agp_ctor(struct nvkm_pci *pci)
while (quirk->hostbridge_vendor) { while (quirk->hostbridge_vendor) {
if (info.device->vendor == quirk->hostbridge_vendor && if (info.device->vendor == quirk->hostbridge_vendor &&
info.device->device == quirk->hostbridge_device && info.device->device == quirk->hostbridge_device &&
pci->pdev->vendor == quirk->chip_vendor && (quirk->chip_vendor == (u16)PCI_ANY_ID ||
pci->pdev->device == quirk->chip_device) { pci->pdev->vendor == quirk->chip_vendor) &&
(quirk->chip_device == (u16)PCI_ANY_ID ||
pci->pdev->device == quirk->chip_device)) {
nvkm_info(subdev, "forcing default agp mode to %dX, " nvkm_info(subdev, "forcing default agp mode to %dX, "
"use NvAGP=<mode> to override\n", "use NvAGP=<mode> to override\n",
quirk->mode); quirk->mode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment