[arch-commits] CVS update of extra/x11-drivers/xf86-video-ati (3 files)
Alexander Baldeck
alexander at archlinux.org
Fri Nov 9 13:51:42 UTC 2007
Date: Friday, November 9, 2007 @ 08:51:42
Author: alexander
Path: /home/cvs-extra/extra/x11-drivers/xf86-video-ati
Added: 01_gen_pci_ids.diff (1.1) 02_add_option_for_lvds_mode.diff (1.1)
Modified: PKGBUILD (1.25 -> 1.26)
* fixes for output handling issues, may relate to FS#8558
----------------------------------+
01_gen_pci_ids.diff | 18 ++++
02_add_option_for_lvds_mode.diff | 141 +++++++++++++++++++++++++++++++++++++
PKGBUILD | 12 ++-
3 files changed, 168 insertions(+), 3 deletions(-)
Index: extra/x11-drivers/xf86-video-ati/01_gen_pci_ids.diff
diff -u /dev/null extra/x11-drivers/xf86-video-ati/01_gen_pci_ids.diff:1.1
--- /dev/null Fri Nov 9 08:51:42 2007
+++ extra/x11-drivers/xf86-video-ati/01_gen_pci_ids.diff Fri Nov 9 08:51:42 2007
@@ -0,0 +1,18 @@
+---
+ src/Makefile.am | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: xserver-xorg-video-ati/src/Makefile.am
+===================================================================
+--- xserver-xorg-video-ati.orig/src/Makefile.am 2007-10-06 02:44:47.000000000 +0200
++++ xserver-xorg-video-ati/src/Makefile.am 2007-10-06 02:48:34.000000000 +0200
+@@ -192,3 +192,9 @@
+ theatre_reg.h \
+ atipciids.h \
+ atipcirename.h
++
++pcidatadir = $(datadir)/xserver-xorg/pci
++pcidata_DATA = ati.ids
++
++ati.ids: atipciids.h
++ awk '/^#define.*PCI_CHIP/ {print $$3}' ${srcdir}/atipciids.h | sed -e 's/0x/1002/' > ati.ids
Index: extra/x11-drivers/xf86-video-ati/02_add_option_for_lvds_mode.diff
diff -u /dev/null extra/x11-drivers/xf86-video-ati/02_add_option_for_lvds_mode.diff:1.1
--- /dev/null Fri Nov 9 08:51:42 2007
+++ extra/x11-drivers/xf86-video-ati/02_add_option_for_lvds_mode.diff Fri Nov 9 08:51:42 2007
@@ -0,0 +1,141 @@
+From: Alex Deucher <alex at t41p.hsd1.va.comcast.net>
+Date: Sun, 7 Oct 2007 23:39:47 +0000 (-0400)
+Subject: RADEON: still more LVDS fixes
+X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-ati.git;a=commitdiff;h=051435610a66735fd455bbb526fa294fcfe8c0b6
+
+RADEON: still more LVDS fixes
+
+Seems some laptops need the native mode from the bios for
+LVDS while others seem to prefer a CVT mode. Add an option
+to pick the preferred mode. The default it to use the bios
+table timing.
+---
+
+--- a/man/radeon.man
++++ b/man/radeon.man
+@@ -383,6 +383,14 @@ case. This is only useful for LVDS pane
+ The default is
+ .B on.
+ .TP
++.BI "Option \*qLVDSBiosNativeMode\*q \*q" boolean \*q
++On some laptops, the LVDS mode from the timing tables in the bios does
++not work properly. In those cases, a CVT mode seems to work better.
++If you get a blank screen or have LVDS display problems, disable this
++option to use a CVT mode.
++The default is
++.B on.
++.TP
+ .BI "Option \*qDRI\*q \*q" boolean \*q
+ Enable DRI support. This option allows you to enable to disable the DRI.
+ The default is
+--- a/src/radeon.h
++++ b/src/radeon.h
+@@ -157,7 +157,8 @@ typedef enum {
+ #if defined(__powerpc__)
+ OPTION_MAC_MODEL,
+ #endif
+- OPTION_DEFAULT_TMDS_PLL
++ OPTION_DEFAULT_TMDS_PLL,
++ OPTION_LVDS_BIOS_NATIVE_MODE
+ } RADEONOpts;
+
+
+@@ -816,6 +817,8 @@ typedef struct {
+ RADEONMacModel MacModel;
+ #endif
+
++ Bool LVDSBiosNativeMode;
++
+ Rotation rotation;
+ void (*PointerMoved)(int, int, int);
+ CreateScreenResourcesProcPtr CreateScreenResources;
+--- a/src/radeon_driver.c
++++ b/src/radeon_driver.c
+@@ -190,6 +190,7 @@ static const OptionInfoRec RADEONOptions
+ #if defined(__powerpc__)
+ { OPTION_MAC_MODEL, "MacModel", OPTV_STRING, {0}, FALSE },
+ #endif
++ { OPTION_LVDS_BIOS_NATIVE_MODE, "LVDSBiosNativeMode", OPTV_BOOLEAN, {0}, TRUE },
+ { -1, NULL, OPTV_NONE, {0}, FALSE }
+ };
+
+--- a/src/radeon_modes.c
++++ b/src/radeon_modes.c
+@@ -95,20 +95,45 @@ static DisplayModePtr RADEONTVModes(xf86
+ static DisplayModePtr RADEONFPNativeMode(xf86OutputPtr output)
+ {
+ ScrnInfoPtr pScrn = output->scrn;
++ RADEONInfoPtr info = RADEONPTR(pScrn);
+ RADEONOutputPrivatePtr radeon_output = output->driver_private;
+ DisplayModePtr new = NULL;
++ char stmp[32];
+
+ if (radeon_output->PanelXRes != 0 &&
+ radeon_output->PanelYRes != 0 &&
+ radeon_output->DotClock != 0) {
+
+- /* Add native panel size */
+- new = xf86CVTMode(radeon_output->PanelXRes, radeon_output->PanelYRes, 60.0, TRUE, FALSE);
++ if (info->LVDSBiosNativeMode) {
++ new = xnfcalloc(1, sizeof (DisplayModeRec));
++ sprintf(stmp, "%dx%d", radeon_output->PanelXRes, radeon_output->PanelYRes);
++ new->name = xnfalloc(strlen(stmp) + 1);
++ strcpy(new->name, stmp);
++ new->HDisplay = radeon_output->PanelXRes;
++ new->VDisplay = radeon_output->PanelYRes;
++
++ new->HTotal = new->HDisplay + radeon_output->HBlank;
++ new->HSyncStart = new->HDisplay + radeon_output->HOverPlus;
++ new->HSyncEnd = new->HSyncStart + radeon_output->HSyncWidth;
++ new->VTotal = new->VDisplay + radeon_output->VBlank;
++ new->VSyncStart = new->VDisplay + radeon_output->VOverPlus;
++ new->VSyncEnd = new->VSyncStart + radeon_output->VSyncWidth;
++
++ new->Clock = radeon_output->DotClock;
++ new->Flags = 0;
++
++ } else {
++ /* Add native panel size */
++ new = xf86CVTMode(radeon_output->PanelXRes, radeon_output->PanelYRes, 60.0, FALSE, FALSE);
+
+- new->type = M_T_DRIVER | M_T_PREFERRED;
++ }
+
+- new->next = NULL;
+- new->prev = NULL;
++ if (new) {
++ new->type = M_T_DRIVER | M_T_PREFERRED;
++
++ new->next = NULL;
++ new->prev = NULL;
++ }
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Added native panel mode: %dx%d\n",
+ radeon_output->PanelXRes, radeon_output->PanelYRes);
+@@ -159,7 +184,7 @@ static void RADEONAddScreenModes(xf86Out
+ }
+ }
+
+- new = xf86CVTMode(width, height, 60.0, TRUE, FALSE);
++ new = xf86CVTMode(width, height, 60.0, FALSE, FALSE);
+
+ new->type |= M_T_USERDEF;
+
+--- a/src/radeon_output.c
++++ b/src/radeon_output.c
+@@ -2440,6 +2440,15 @@ RADEONGetLVDSInfo (xf86OutputPtr output)
+ }
+ }
+
++ info->LVDSBiosNativeMode = TRUE;
++ if (!xf86ReturnOptValBool(info->Options, OPTION_LVDS_BIOS_NATIVE_MODE, TRUE)) {
++ info->LVDSBiosNativeMode = FALSE;
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using CVT mode for LVDS\n");
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using LVDS Native Mode\n");
++ }
++
++
+ /* The panel size we collected from BIOS may not be the
+ * maximum size supported by the panel. If not, we update
+ * it now. These will be used if no matching mode can be
Index: extra/x11-drivers/xf86-video-ati/PKGBUILD
diff -u extra/x11-drivers/xf86-video-ati/PKGBUILD:1.25 extra/x11-drivers/xf86-video-ati/PKGBUILD:1.26
--- extra/x11-drivers/xf86-video-ati/PKGBUILD:1.25 Fri Nov 9 08:35:13 2007
+++ extra/x11-drivers/xf86-video-ati/PKGBUILD Fri Nov 9 08:51:42 2007
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD,v 1.25 2007/11/09 13:35:13 alexander Exp $
+# $Id: PKGBUILD,v 1.26 2007/11/09 13:51:42 alexander Exp $
# Maintainer: Alexander Baldeck <alexander at archlinux.org>
# Contributor: Jan de Groot <jgc at archlinux.org>
pkgname=xf86-video-ati
@@ -15,11 +15,15 @@
license=('custom')
source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
http://dl.sourceforge.net/mesa3d/MesaLib-${_mesaver}.tar.bz2
- radeon-dualhead-mouse.patch)
+ radeon-dualhead-mouse.patch
+ 01_gen_pci_ids.diff
+ 02_add_option_for_lvds_mode.diff)
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
patch -Np1 -i ${startdir}/src/radeon-dualhead-mouse.patch || return 1
+ patch -Np1 -i ${startdir}/src/01_gen_pci_ids.diff || return 1
+ patch -Np1 -i ${startdir}/src/02_add_option_for_lvds_mode.diff || return 1
./configure --prefix=/usr \
--enable-dri
make || return 1
@@ -53,4 +57,6 @@
md5sums=('2f11b8e699fadd93e6932b07cc01bc64'
'c056abd763e899114bf745c9eedbf9ad'
- '7d3d5de7effe85120076f86e4d28a242')
+ '7d3d5de7effe85120076f86e4d28a242'
+ '3dce80ebe3d814b1a6a54ee85357622a'
+ '712dd9988e181e56fca67841888bfbee')
More information about the arch-commits
mailing list