summaryrefslogtreecommitdiff
path: root/src/radeon_dri.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-11-20 08:04:32 +1000
committerDave Airlie <airlied@redhat.com>2007-11-20 08:04:32 +1000
commitfe2f7a09050fb7a345a1f52239f8f3c4f1053891 (patch)
treeee75ebf7f5bfda3a6d621ac42121a3014d80e0aa /src/radeon_dri.c
parent744c8cb6c293fcaa687566f52901644e699baace (diff)
parent49055d8aff91ff12186feaf5343c8fd2f96bcba0 (diff)
Merge branch 'master' into agd-atom-merge
Conflicts: src/radeon_cursor.c src/radeon_output.c
Diffstat (limited to 'src/radeon_dri.c')
-rw-r--r--src/radeon_dri.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 2c533b1f..ed418b8c 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;