diff -Nurp xserver-xorg-video-savage-2.1.3-patched/src/savage_driver.c xserver-xorg-video-savage-2.1.3-working/src/savage_driver.c --- xserver-xorg-video-savage-2.1.3-patched/src/savage_driver.c 2008-03-21 17:27:16.000000000 -0700 +++ xserver-xorg-video-savage-2.1.3-working/src/savage_driver.c 2008-03-21 18:34:57.000000000 -0700 @@ -1535,6 +1535,25 @@ static Bool SavagePreInit(ScrnInfoPtr pS "Invalid BusType option, using %s DMA\n", psav->IsPCI ? "PCI" : "AGP"); } + } else { + /* Thinkpads T10, T21, T22 fail in AGP mode with this specific card + * due to an AGP bridge incompatibility (LP: #33617) + * + * S3 Inc. 86C270-294 Savage/IX-MV (rev 13) + * (chip 5333:8c12 card 1014:017f) + * + * "Intel 440BX/ZX/DX - 82443BX/ZX/DX" AGP bridge + * (8086:7192) + * TODO: Need to also verify the bridge ID + */ + if (VENDOR_ID(psav->PciInfo) == 0x1014 && + DEVICE_ID(psav->PciInfo) == 0x017f + /* && bridge == 8086:7192 (TODO: how to do this?) */ + ) + { + psav->IsPCI = TRUE; + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "BusType set to PCI (see LP: #33617)\n"); + } } psav->AgpDMA = !psav->IsPCI;