summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Daenzer <michel@daenzer.net>2006-04-29 21:30:23 +0000
committerMichel Daenzer <michel@daenzer.net>2006-04-29 21:30:23 +0000
commitb90d3710e67caad0686efab491c2b76ae877920c (patch)
tree75ad2aa9dbddf3327fc45947c8ca7f970f410620
parent30f3ce5c5ba205a23748def11de019ee727897f3 (diff)
Bugzilla #1992 <https://bugs.freedesktop.org/show_bug.cgi?id=1992> Patch
#4988 <https://bugs.freedesktop.org/attachment.cgi?id=4988>: Fix Option "DisplayPriority" "HIGH" for R300 family.
-rw-r--r--ChangeLog7
-rw-r--r--src/radeon_driver.c27
2 files changed, 20 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c022ef7..d4863be8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2006-04-29 Michel Dänzer <michel@daenzer.net>
+ * src/radeon_driver.c: (RADEONInitDispBandwidth):
+ Bugzilla #1992 <https://bugs.freedesktop.org/show_bug.cgi?id=1992>
+ Patch #4988 <https://bugs.freedesktop.org/attachment.cgi?id=4988>:
+ Fix Option "DisplayPriority" "HIGH" for R300 family.
+
+2006-04-29 Michel Dänzer <michel@daenzer.net>
+
* src/radeon_driver.c: (RADEONCloseScreen):
Properly de-initialize EXA driver data, so EXA can be initialized again
in the next generation.
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 47c50271..6404ad13 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1,5 +1,5 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.117 2004/02/19 22:38:12 tsi Exp $ */
-/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.114 2006/04/26 08:38:47 airlied Exp $ */
+/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.115 2006/04/29 20:34:57 daenzer Exp $ */
/*
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
* VA Linux Systems Inc., Fremont, California.
@@ -7663,15 +7663,7 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
if (critical_point < temp) critical_point = temp;
*/
if (info->DispPriority == 2) {
- if (mode2) {
- /*??some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/
- if (info->ChipFamily == CHIP_FAMILY_R300)
- critical_point += 0x10;
- else
- critical_point = 0;
- }
- else
- critical_point = 0;
+ critical_point = 0;
}
/*
@@ -7680,6 +7672,11 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
*/
if (max_stop_req - critical_point < 4) critical_point = 0;
+ if (critical_point == 0 && mode2 && info->ChipFamily == CHIP_FAMILY_R300) {
+ /* some R300 cards have problem with this set to 0, when CRTC2 is enabled.*/
+ critical_point = 0x10;
+ }
+
temp = info->SavedReg.grph_buffer_cntl;
temp &= ~(RADEON_GRPH_STOP_REQ_MASK);
temp |= (stop_req << RADEON_GRPH_STOP_REQ_SHIFT);
@@ -7733,16 +7730,18 @@ static void RADEONInitDispBandwidth(ScrnInfoPtr pScrn)
disp_latency) * disp_drain_rate2 + 0.5);
if (info->DispPriority == 2) {
- if (info->ChipFamily == CHIP_FAMILY_R300)
- critical_point2 += 0x10;
- else
- critical_point2 = 0;
+ critical_point2 = 0;
}
if (max_stop_req - critical_point2 < 4) critical_point2 = 0;
}
+ if (critical_point2 == 0 && info->ChipFamily == CHIP_FAMILY_R300) {
+ /* some R300 cards have problem with this set to 0 */
+ critical_point2 = 0x10;
+ }
+
OUTREG(RADEON_GRPH2_BUFFER_CNTL, ((temp & ~RADEON_GRPH_CRITICAL_POINT_MASK) |
(critical_point2 << RADEON_GRPH_CRITICAL_POINT_SHIFT)));