summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2007-11-16 16:28:01 +0000
committerMart Raudsepp <leio@gentoo.org>2007-11-16 16:28:01 +0000
commit1112a57e963de5a81cc627b2d0ba492d4868164c (patch)
tree26efc9ce32ea04084faa26de582afc0481c6f27a /x11-drivers
parentStable on ppc wrt bug 182392 (diff)
downloadgentoo-2-1112a57e963de5a81cc627b2d0ba492d4868164c.tar.gz
gentoo-2-1112a57e963de5a81cc627b2d0ba492d4868164c.tar.bz2
gentoo-2-1112a57e963de5a81cc627b2d0ba492d4868164c.zip
Fix "washed out colors" problem on IGP chips over analog link
(Portage version: 2.1.3.19)
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/xf86-video-ati/ChangeLog8
-rw-r--r--x11-drivers/xf86-video-ati/files/6.7.196-fix_washed_color.patch99
-rw-r--r--x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.7.196-r16
-rw-r--r--x11-drivers/xf86-video-ati/xf86-video-ati-6.7.196-r1.ebuild37
4 files changed, 149 insertions, 1 deletions
diff --git a/x11-drivers/xf86-video-ati/ChangeLog b/x11-drivers/xf86-video-ati/ChangeLog
index 7fb834816932..4552ce434e7a 100644
--- a/x11-drivers/xf86-video-ati/ChangeLog
+++ b/x11-drivers/xf86-video-ati/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for x11-drivers/xf86-video-ati
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-ati/ChangeLog,v 1.55 2007/11/13 04:53:45 dberkholz Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-ati/ChangeLog,v 1.56 2007/11/16 16:28:00 leio Exp $
+
+*xf86-video-ati-6.7.196-r1 (16 Nov 2007)
+
+ 16 Nov 2007; Mart Raudsepp <leio@gentoo.org>
+ +files/6.7.196-fix_washed_color.patch, +xf86-video-ati-6.7.196-r1.ebuild:
+ Fix "washed out colors" problem on IGP chips over analog link
*xf86-video-ati-6.7.196 (13 Nov 2007)
diff --git a/x11-drivers/xf86-video-ati/files/6.7.196-fix_washed_color.patch b/x11-drivers/xf86-video-ati/files/6.7.196-fix_washed_color.patch
new file mode 100644
index 000000000000..2bf48dc86211
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/6.7.196-fix_washed_color.patch
@@ -0,0 +1,99 @@
+From the fix for https://bugs.freedesktop.org/show_bug.cgi?id=12844 - "Display is washed out, too bright. No adjustment will correct for over bright display"
+Affecting mostly radeon IGP chips, such as the Radeon XPRESS
+Fixed by setting the TV DAC up correctly, etc
+
+diff --git a/src/radeon_output.c b/src/radeon_output.c
+index 599a89c..54c27cd 100644
+--- a/src/radeon_output.c
++++ b/src/radeon_output.c
+@@ -1039,11 +1039,12 @@ static void RADEONInitDACRegisters(xf86OutputPtr output, RADEONSavePtr save,
+ save->dac_macro_cntl = info->SavedReg.dac_macro_cntl;
+ }
+
+-/* XXX: fix me */
+ static void
+-RADEONInitTvDacCntl(ScrnInfoPtr pScrn, RADEONSavePtr save)
++RADEONInitTvDacCntl(xf86OutputPtr output, RADEONSavePtr save)
+ {
++ ScrnInfoPtr pScrn = output->scrn;
+ RADEONInfoPtr info = RADEONPTR(pScrn);
++ RADEONOutputPrivatePtr radeon_output = output->driver_private;
+
+ if (info->ChipFamily == CHIP_FAMILY_R420 ||
+ info->ChipFamily == CHIP_FAMILY_RV410) {
+@@ -1064,10 +1065,11 @@ RADEONInitTvDacCntl(ScrnInfoPtr pScrn, RADEONSavePtr save)
+ RADEON_TV_DAC_GDACPD |
+ RADEON_TV_DAC_GDACPD);
+ }
+- /* FIXME: doesn't make sense, this just replaces the previous value... */
++
+ save->tv_dac_cntl |= (RADEON_TV_DAC_NBLANK |
+- RADEON_TV_DAC_NHOLD |
+- RADEON_TV_DAC_STD_PS2);
++ RADEON_TV_DAC_NHOLD |
++ RADEON_TV_DAC_STD_PS2 |
++ radeon_output->tv_dac_adj);
+
+ }
+
+@@ -1078,7 +1080,7 @@ static void RADEONInitDAC2Registers(xf86OutputPtr output, RADEONSavePtr save,
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+
+ /*0x0028023;*/
+- RADEONInitTvDacCntl(pScrn, save);
++ RADEONInitTvDacCntl(output, save);
+
+ if (IS_R300_VARIANT)
+ save->gpiopad_a = info->SavedReg.gpiopad_a | 1;
+@@ -1671,9 +1673,13 @@ radeon_detect(xf86OutputPtr output)
+ * so we can get something on the screen
+ */
+ if (((radeon_output->type == OUTPUT_VGA || radeon_output->type == OUTPUT_DVI) &&
+- radeon_output->DACType == DAC_TVDAC) ||
+- (info->IsIGP && radeon_output->type == OUTPUT_DVI))
++ radeon_output->DACType == DAC_TVDAC)) {
++ radeon_output->MonType = MT_CRT;
+ return XF86OutputStatusUnknown;
++ } else if (info->IsIGP && radeon_output->type == OUTPUT_DVI) {
++ radeon_output->MonType = MT_DFP; /* MT_LCD ??? */
++ return XF86OutputStatusUnknown;
++ }
+ }
+
+ if (connected)
+@@ -2623,6 +2629,7 @@ void RADEONInitConnector(xf86OutputPtr output)
+ if (radeon_output->type == OUTPUT_STV ||
+ radeon_output->type == OUTPUT_CTV) {
+ RADEONGetTVInfo(output);
++ RADEONGetTVDacAdjInfo(output);
+ }
+
+ if (radeon_output->DACType == DAC_TVDAC) {
+diff --git a/src/radeon_tv.c b/src/radeon_tv.c
+index 3a26a0a..2a8873c 100644
+--- a/src/radeon_tv.c
++++ b/src/radeon_tv.c
+@@ -434,7 +434,7 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+
+ save->tv_vscaler_cntl2 = ((save->tv_vscaler_cntl2 & 0x00fffff0)
+ | (0x10 << 24)
+- | RADEON_DITHER_MODE
++ | RADEON_DITHER_MODE
+ | RADEON_Y_OUTPUT_DITHER_EN
+ | RADEON_UV_OUTPUT_DITHER_EN
+ | RADEON_UV_TO_BUF_DITHER_EN);
+@@ -444,10 +444,12 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+ tmp = (tmp << RADEON_UV_OUTPUT_POST_SCALE_SHIFT) | 0x000b0000;
+ save->tv_timing_cntl = tmp;
+
+- save->tv_dac_cntl = RADEON_TV_DAC_NBLANK | RADEON_TV_DAC_NHOLD | (8 << 16) | (6 << 20);
++ save->tv_dac_cntl = (RADEON_TV_DAC_NBLANK |
++ RADEON_TV_DAC_NHOLD |
++ radeon_output->tv_dac_adj /*(8 << 16) | (6 << 20)*/);
+
+ if (radeon_output->tvStd == TV_STD_NTSC ||
+- radeon_output->tvStd == TV_STD_NTSC_J)
++ radeon_output->tvStd == TV_STD_NTSC_J)
+ save->tv_dac_cntl |= RADEON_TV_DAC_STD_NTSC;
+ else
+ save->tv_dac_cntl |= RADEON_TV_DAC_STD_PAL;
diff --git a/x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.7.196-r1 b/x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.7.196-r1
new file mode 100644
index 000000000000..97f34ffcf0c4
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/files/digest-xf86-video-ati-6.7.196-r1
@@ -0,0 +1,6 @@
+MD5 56566e8c3fb4bb99791d1788d0a9a1a8 x11-driver-patches-4.tar.bz2 346
+RMD160 fcbd405de080d07612d46f455b927035fd8123a8 x11-driver-patches-4.tar.bz2 346
+SHA256 07069bbd072f2def50e83801a8f2a41a4c96495104f15cd6f56f7df7f89769bf x11-driver-patches-4.tar.bz2 346
+MD5 06db625391c75c8be86c4dd5a5d713e6 xf86-video-ati-6.7.196.tar.bz2 787475
+RMD160 fae77f0f9e4acaed755617ce53214e73f53c10cf xf86-video-ati-6.7.196.tar.bz2 787475
+SHA256 8923a08232255ceacf770ef767d86bbfb195dffa9559baa1b1de90f9c947a6d9 xf86-video-ati-6.7.196.tar.bz2 787475
diff --git a/x11-drivers/xf86-video-ati/xf86-video-ati-6.7.196-r1.ebuild b/x11-drivers/xf86-video-ati/xf86-video-ati-6.7.196-r1.ebuild
new file mode 100644
index 000000000000..8f5d54b6b2ba
--- /dev/null
+++ b/x11-drivers/xf86-video-ati/xf86-video-ati-6.7.196-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-drivers/xf86-video-ati/xf86-video-ati-6.7.196-r1.ebuild,v 1.1 2007/11/16 16:28:00 leio Exp $
+
+# Must be before x-modular eclass is inherited
+#SNAPSHOT="yes"
+XDPVER=4
+
+inherit x-modular
+
+DESCRIPTION="ATI video driver"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="dri"
+
+RDEPEND=">=x11-base/xorg-server-1.2"
+DEPEND="${RDEPEND}
+ x11-proto/fontsproto
+ x11-proto/randrproto
+ x11-proto/videoproto
+ x11-proto/xextproto
+ x11-proto/xineramaproto
+ x11-proto/xf86miscproto
+ x11-proto/xproto
+ dri? ( x11-proto/glproto
+ x11-proto/xf86driproto
+ >=x11-libs/libdrm-2 )"
+
+PATCHES="${PV}-fix_washed_color.patch"
+
+CONFIGURE_OPTIONS="$(use_enable dri)"
+
+pkg_setup() {
+ if use dri && ! built_with_use x11-base/xorg-server dri; then
+ die "Build x11-base/xorg-server with USE=dri."
+ fi
+}