diff options
author | Michel Daenzer <michel@daenzer.net> | 2006-04-29 21:30:23 +0000 |
---|---|---|
committer | Michel Daenzer <michel@daenzer.net> | 2006-04-29 21:30:23 +0000 |
commit | b90d3710e67caad0686efab491c2b76ae877920c (patch) | |
tree | 75ad2aa9dbddf3327fc45947c8ca7f970f410620 /src | |
parent | 30f3ce5c5ba205a23748def11de019ee727897f3 (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.
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_driver.c | 27 |
1 files changed, 13 insertions, 14 deletions
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))); |