xf86-video-ati: Branch 'master'

Roland Scheidegger sroland at kemper.freedesktop.org
Tue Nov 13 14:43:06 PST 2007


 src/radeon_dri.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit e9d721c31372db045550f9562534b28f16121bb9
Author: Roland Scheidegger <sroland at tungstengraphics.com>
Date:   Tue Nov 13 23:42:42 2007 +0100

    ignore sometime bogus agp_mode bit from chip (bug #13190)
    
    bit is wrong on at least X700 cards with rialto pcie-agp bridge chip,
    should be safe to use just the bit from the bridge hopefully to make
    agp setup work on these cards and not adversely affect others.

diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 2c533b1..ed418b8 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -722,7 +722,9 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
     unsigned long mode   = drmAgpGetMode(info->drmFD);	/* Default mode */
     unsigned int  vendor = drmAgpVendorId(info->drmFD);
     unsigned int  device = drmAgpDeviceId(info->drmFD);
-    CARD32 agp_status = INREG(RADEON_AGP_STATUS) & mode;
+    /* ignore agp 3.0 mode bit from the chip as it's buggy on some cards with
+       pcie-agp rialto bridge chip - use the one from bridge which must match */
+    CARD32 agp_status = (INREG(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode;
     Bool is_v3 = (agp_status & RADEON_AGPv3_MODE);
     unsigned int defaultMode;
     MessageType from;


More information about the xorg-commit mailing list