[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