diff --git a/radeon-fix-pipe-config.patch b/radeon-fix-pipe-config.patch new file mode 100644 index 0000000..273e5c0 --- /dev/null +++ b/radeon-fix-pipe-config.patch @@ -0,0 +1,41 @@ +diff --git a/src/radeon_accel.c b/src/radeon_accel.c +index 30a5756..ef8b4a5 100644 +--- a/src/radeon_accel.c ++++ b/src/radeon_accel.c +@@ -440,7 +440,8 @@ void RADEONEngineInit(ScrnInfoPtr pScrn) + + OUTREG(R300_GB_TILE_CONFIG, gb_tile_config); + OUTREG(RADEON_WAIT_UNTIL, RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN); +- OUTREG(R300_DST_PIPE_CONFIG, INREG(R300_DST_PIPE_CONFIG) | R300_PIPE_AUTO_CONFIG); ++ if (info->ChipFamily >= CHIP_FAMILY_R420) ++ OUTREG(R300_DST_PIPE_CONFIG, INREG(R300_DST_PIPE_CONFIG) | R300_PIPE_AUTO_CONFIG); + OUTREG(R300_RB2D_DSTCACHE_MODE, (INREG(R300_RB2D_DSTCACHE_MODE) | + R300_DC_AUTOFLUSH_ENABLE | + R300_DC_DC_DISABLE_IGNORE_PE)); +diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c +index 15a3beb..aab42d0 100644 +--- a/src/radeon_commonfuncs.c ++++ b/src/radeon_commonfuncs.c +@@ -61,6 +61,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + info->texW[0] = info->texH[0] = info->texW[1] = info->texH[1] = 1; + + if (IS_R300_3D || IS_R500_3D) { ++ int size; + + if (!info->new_cs) { + BEGIN_ACCEL(3); +@@ -80,10 +81,12 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn) + case 1: gb_tile_config |= R300_PIPE_COUNT_RV350; break; + } + +- BEGIN_ACCEL(5); ++ size = (info->ChipFamily >= CHIP_FAMILY_R420) ? 5 : 4; ++ BEGIN_ACCEL(size); + OUT_ACCEL_REG(R300_GB_TILE_CONFIG, gb_tile_config); + OUT_ACCEL_REG(RADEON_WAIT_UNTIL, RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_3D_IDLECLEAN); +- OUT_ACCEL_REG(R300_DST_PIPE_CONFIG, R300_PIPE_AUTO_CONFIG); ++ if (info->ChipFamily >= CHIP_FAMILY_R420) ++ OUT_ACCEL_REG(R300_DST_PIPE_CONFIG, R300_PIPE_AUTO_CONFIG); + OUT_ACCEL_REG(R300_GB_SELECT, 0); + OUT_ACCEL_REG(R300_GB_ENABLE, 0); + FINISH_ACCEL(); diff --git a/xorg-x11-drv-ati.spec b/xorg-x11-drv-ati.spec index 502d08b..2c5cc47 100644 --- a/xorg-x11-drv-ati.spec +++ b/xorg-x11-drv-ati.spec @@ -5,7 +5,7 @@ Summary: Xorg X11 ati video driver Name: xorg-x11-drv-ati Version: 6.9.0 -Release: 8%{?dist} +Release: 9%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X Hardware Support @@ -17,6 +17,7 @@ Source1: radeon.xinf Patch0: radeon-6.9.0-to-git.patch Patch1: radeon-modeset.patch Patch2: radeon-suspend-fix.patch +Patch3: radeon-fix-pipe-config.patch ExcludeArch: s390 s390x @@ -38,6 +39,7 @@ X.Org X11 ati video driver. %patch0 -p1 -b .git %patch1 -p1 -b .modeset %patch2 -p1 -b .suspend +%patch3 -p1 -b .pipe-config %build autoreconf @@ -69,6 +71,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man4/radeon.4* %changelog +* Fri Sep 05 2008 Dave Airlie 6.9.0-9 +- add fix for pipe register emits on r300 + * Fri Sep 05 2008 Dave Airlie 6.9.0-8 - fix suspend/resume support - needs new pinning API