Savage IX-MV / Thinkpad T20/T21/T22 AGP incompatibility

Alex Deucher alexdeucher at gmail.com
Sat Mar 22 08:18:49 PDT 2008


On Fri, Mar 21, 2008 at 10:03 PM, Bryce Harrington <bryce at canonical.com> wrote:
> Hi Alex,
>
>  A couple years ago you looked into[1] a problem with certain savage
>  cards on a particular Intel AGP bridge, and identified as a workaround
>  to force it to use BusType PCI, which has been documented as a
>  semi-official workaround by the thinkpad community[2].
>
>  This workaround has been quite thoroughly tested by Ubuntu users[3].  In
>  the spirit of minimizing xorg.conf hacking they need to do, I'd like to
>  put this into Ubuntu's savage driver.  I've made a first cut at a
>  patch[4], and would appreciate if you could take a look.  In particular,
>  while I think I have an adequate check for the device PCI ID, I'm
>  uncertain how to test the host bridge id?

This looks fine.  There are drm functions to get the AGP bridge info:

unsigned int  vendor = drmAgpVendorId(psav->drmFD);
unsigned int  device = drmAgpDeviceId(psav->drmFD);

Take a look at SAVAGEDRIAgpInit() in savage_dri.c.

Alex

>
>  Thanks,
>  Bryce
>
>  1: http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2006-March/032672.html
>  2: http://www.thinkwiki.org/wiki/Problem_with_video_related_system_lockup
>  3: https://bugs.launchpad.net/ubuntu/hardy/+source/xserver-xorg-video-savage/+bug/33617
>  4: http://launchpadlibrarian.net/12802717/03_s3_savage_ix_mv_agp_bridge_incompat.diff
>
>
>
>  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;
>



More information about the xorg mailing list