Hello community,
here is the log from the commit of package xorg-x11-driver-video for openSUSE:Factory
checked in at Wed Mar 17 14:20:09 CET 2010.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2010-03-06 15:08:49.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2010-03-17 08:33:36.000000000 +0100
@@ -1,0 +2,23 @@
+Wed Mar 17 08:08:55 CET 2010 - sndirsch@suse.de
+
+- xf86-video-ati 6.12.191 (6.13.0rc2)
+ * Mostly bug fixes. The r6xx/r7xx domain fix improves KMS EXA
+ DFS (and hence GetImage) performance significantly.
+- xf86-video-nv 2.1.17
+ * support for RandR 1.2's new-style gamma control, which also
+ fixes a problem on xserver 1.7 where the screen may be black
+ or strange colors.
+ * support for MCP7x-based motherboard GPUs.
+- obsoletes xf86-video-nv-commit-7b01fc8.diff,
+ xf86-video-nv-commit-49349f6.diff,
+ xf86-video-nv-commit-9378ecd.diff
+- xf86-video-nv-commit-e6b0463.diff
+ * Don't crash if LVDS initialization fails (bfo #24787)
+- xf86-video-nv-commit-347625b.diff
+ * Add support for GeForce 7025 and 7050 (bfo #19817)
+- xf86-video-nv-commit-250a3a7.diff
+ * Update MCP6x supported products. Use the official names for
+ 10DE:053B and 10DE:053E. Add some additional product IDs
+ and update the documentation.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xf86-video-ati-6.12.191.tar.bz2
xf86-video-nv-2.1.16.tar.bz2
xf86-video-nv-commit-49349f6.diff
xf86-video-nv-commit-7b01fc8.diff
xf86-video-nv-commit-9378ecd.diff
New:
----
xf86-video-ati-6.12.192.tar.bz2
xf86-video-nv-2.1.17.tar.bz2
xf86-video-nv-commit-250a3a7.diff
xf86-video-nv-commit-347625b.diff
xf86-video-nv-commit-e6b0463.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.t0AkrS/_old 2010-03-17 14:19:06.000000000 +0100
+++ /var/tmp/diff_new_pack.t0AkrS/_new 2010-03-17 14:19:06.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package xorg-x11-driver-video (Version 7.4)
+# spec file for package xorg-x11-driver-video (Version 7.5)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -22,8 +22,8 @@
Name: xorg-x11-driver-video
BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
-Version: 7.4
-Release: 98
+Version: 7.5
+Release: 1
License: MIT License (or similar)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -49,7 +49,7 @@
Source15: xf86-video-neomagic-1.2.4.tar.bz2
Source16: xf86-video-newport-0.2.3.tar.bz2
Source17: xf86-video-nsc-2.8.3.tar.bz2
-Source18: xf86-video-nv-2.1.16.tar.bz2
+Source18: xf86-video-nv-2.1.17.tar.bz2
Source19: xf86-video-rendition-4.2.3.tar.bz2
Source20: xf86-video-s3-0.6.3.tar.bz2
Source21: xf86-video-s3virge-1.10.4.tar.bz2
@@ -69,7 +69,7 @@
Source43: xf86-video-impact-0.2.0.tar.bz2
Source44: HALlib-4.1.tar.gz
Source45: xf86-video-intel-2.10.0.tar.bz2
-Source46: xf86-video-ati-6.12.191.tar.bz2
+Source46: xf86-video-ati-6.12.192.tar.bz2
Source48: xf86-video-mga-1.9.100.tar.bz2
Source50: xf86-video-xgi-1.5.1.tar.bz2
Source51: xf86-video-geode-2.11.6.tar.bz2
@@ -106,9 +106,9 @@
Patch131: xf86-video-ati-bug519261-increase-virtual.diff
Patch132: xf86-video-nv-bug519261-increase-virtual.diff
Patch133: xf86-video-sis-19070.diff
-Patch137: xf86-video-nv-commit-7b01fc8.diff
-Patch138: xf86-video-nv-commit-49349f6.diff
-Patch139: xf86-video-nv-commit-9378ecd.diff
+Patch134: xf86-video-nv-commit-e6b0463.diff
+Patch135: xf86-video-nv-commit-347625b.diff
+Patch136: xf86-video-nv-commit-250a3a7.diff
%description
This package contains X.Org video drivers.
@@ -189,9 +189,9 @@
popd
pushd xf86-video-nv-*
%patch132 -p1
-%patch137 -p1
-%patch138 -p1
-%patch139 -p1
+%patch134 -p1
+%patch135 -p1
+%patch136 -p1
popd
pushd xf86-video-sis-*
%patch133 -p1
++++++ xf86-video-ati-6.12.191.tar.bz2 -> xf86-video-ati-6.12.192.tar.bz2 ++++++
++++ 65677 lines of diff (skipped)
++++++ xf86-video-nv-2.1.16.tar.bz2 -> xf86-video-nv-2.1.17.tar.bz2 ++++++
++++ 7444 lines of diff (skipped)
++++++ xf86-video-nv-commit-49349f6.diff -> xf86-video-nv-commit-250a3a7.diff ++++++
--- xorg-x11-driver-video/xf86-video-nv-commit-49349f6.diff 2010-03-02 22:36:27.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xf86-video-nv-commit-250a3a7.diff 2010-03-17 08:33:35.000000000 +0100
@@ -1,54 +1,51 @@
-commit 49349f6e47b7315088a80789f134895677f57287
+commit 250a3a7cee1a4bbfc432ab6da5b986e889207526
Author: Aaron Plattner
-Date: Tue Mar 2 12:53:54 2010 -0800
+Date: Wed Mar 10 18:31:08 2010 -0800
- G80: Log unrecognized outputs
+ Update MCP6x supported products.
+
+ Use the official names for 10DE:053B and 10DE:053E. Add some additional
+ product IDs and update the documentation.
Signed-off-by: Aaron Plattner
- Reviewed-by: Andy Ritger
-diff --git a/src/g80_output.c b/src/g80_output.c
-index b2d8b07..887208b 100644
---- a/src/g80_output.c
-+++ b/src/g80_output.c
-@@ -106,9 +106,13 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
- port = (b >> 4) & 0xf;
- or = ffs((b >> 24) & 0xf) - 1;
-
-- if(b & 0x300000)
-+ if(b & 0x300000) {
- /* Can't handle this type of output yet */
-+ xf86DrvMsg(scrnIndex, X_INFO,
-+ "Ignoring unsupported external output type %d at output "
-+ "%d\n", type, or);
- continue;
-+ }
-
- if(type == 0xe) break;
-
-@@ -140,7 +144,8 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
- pNv->i2cMap[port].dac = or;
- break;
- case 1: /* TV */
-- /* Ignore TVs */
-+ xf86DrvMsg(scrnIndex, X_INFO,
-+ "Ignoring unsupported TV output %d\n", or);
- break;
-
- case 2: /* TMDS */
-@@ -200,7 +205,15 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
-
- break;
+diff --git a/man/nv.man b/man/nv.man
+index d7d8ae9..228f1da 100644
+--- a/man/nv.man
++++ b/man/nv.man
+@@ -57,7 +57,7 @@ NV30, NV31, NV34, NV35, NV36, NV37, NV38
+ NV40, NV41, NV43, NV44, NV45, C51
+ .TP 22
+ .B GeForce 7XXX
+-G70, G71, G72, G73
++G70, G71, G72, G73, MCP6x
+ .TP 22
+ .B GeForce 8XXX, GeForce 9XXX, nForce 7, GeForce G, ION
+ G8x, G9x, GT21x, MCP7x
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index 99d172f..0d017f9 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -125,7 +125,7 @@ _X_EXPORT DriverRec NV = {
+ #endif
+ };
+
+-/* Known cards as of 2010/03/08 */
++/* Known cards as of 2010/03/10 */
+
+ static SymTabRec NVKnownChipsets[] =
+ {
+@@ -380,8 +380,11 @@ static SymTabRec NVKnownChipsets[] =
+ { 0x10DE03D2, "GeForce 6100 nForce 400" },
+ { 0x10DE03D5, "GeForce 6100 nForce 420" },
+
+- { 0x10DE053E, "GeForce 7025" },
+- { 0x10DE053B, "GeForce 7050" },
++ { 0x10DE0531, "GeForce 7150M / nForce 630M" },
++ { 0x10DE0533, "GeForce 7000M / nForce 610M" },
++ { 0x10DE053A, "GeForce 7050 PV / nForce 630a" },
++ { 0x10DE053B, "GeForce 7050 PV / nForce 630a" },
++ { 0x10DE053E, "GeForce 7025 / nForce 630a" },
-+ case 6: /* DisplayPort */
-+ xf86DrvMsg(scrnIndex, X_INFO,
-+ "Ignoring unsupported DisplayPort output %d\n", or);
-+ break;
-+
- default:
-+ xf86DrvMsg(scrnIndex, X_INFO,
-+ "Ignoring unsupported output type %d at port %d\n",
-+ type, or);
- break;
- }
- }
+ /*************** G8x ***************/
+ { 0x10DE0191, "GeForce 8800 GTX" },
++++++ xf86-video-nv-commit-7b01fc8.diff -> xf86-video-nv-commit-347625b.diff ++++++
--- xorg-x11-driver-video/xf86-video-nv-commit-7b01fc8.diff 2010-03-02 17:52:33.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xf86-video-nv-commit-347625b.diff 2010-03-17 08:33:35.000000000 +0100
@@ -1,270 +1,70 @@
-commit 7b01fc8f4ba1182370980f54a34bdb959e291e02
-Author: Aaron Plattner
-Date: Mon Mar 1 14:26:51 2010 -0800
+commit 347625b8e187c4ab696cd1dad95e49c31ced12f6
+Author: Markus Strobl
+Date: Wed Mar 10 18:26:33 2010 -0800
- Bug #26612: Separate LUTs per output.
-
- Wire up the RandR 1.2 gamma_set hook. Call it from G80SetPalette like the Intel
- driver does.
+ Bug #19817: Add support for GeForce 7025 and 7050.
Signed-off-by: Aaron Plattner
- Signed-off-by: Andy Ritger
- Reviewed-by: Christian Zander
-diff --git a/src/g80_display.c b/src/g80_display.c
-index 0cb9860..8c8e5bd 100644
---- a/src/g80_display.c
-+++ b/src/g80_display.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2007 NVIDIA, Corporation
-+ * Copyright (c) 2007,2010 NVIDIA Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
-@@ -42,6 +42,8 @@ typedef struct G80CrtcPrivRec {
- Bool cursorVisible;
- Bool skipModeFixup;
- Bool dither;
-+ /* Look-up table values to be set when the CRTC is enabled */
-+ uint16_t lut_r[256], lut_g[256], lut_b[256];
- } G80CrtcPrivRec, *G80CrtcPrivPtr;
-
- static void G80CrtcShowHideCursor(xf86CrtcPtr crtc, Bool show, Bool update);
-@@ -488,7 +490,7 @@ G80CrtcBlankScreen(xf86CrtcPtr crtc, Bool blank)
- if(pPriv->cursorVisible)
- G80CrtcShowHideCursor(crtc, TRUE, FALSE);
- C(0x00000840 + headOff, pScrn->depth == 8 ? 0x80000000 : 0xc0000000);
-- C(0x00000844 + headOff, (pNv->videoRam * 1024 - 0x5000) >> 8);
-+ C(0x00000844 + headOff, (pNv->videoRam * 1024 - 0x5000 - 0x1000 * pPriv->head) >> 8);
- if(pNv->architecture != 0x50)
- C(0x0000085C + headOff, 1);
- C(0x00000874 + headOff, 1);
-@@ -646,9 +648,98 @@ G80CrtcCommit(xf86CrtcPtr crtc)
- }
-
- static void
--G80DispGammaSet(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
-- int size)
-+G80CrtcGammaSet(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue,
-+ int size)
- {
-+ ScrnInfoPtr pScrn = crtc->scrn;
-+ G80Ptr pNv = G80PTR(pScrn);
-+ G80CrtcPrivPtr pPriv = crtc->driver_private;
-+ int i;
-+ volatile struct {
-+ uint16_t red, green, blue, unused;
-+ } *lut = (void*)&pNv->mem[pNv->videoRam * 1024 - 0x5000 - 0x1000 * pPriv->head];
-+
-+ assert(size == 256);
-+
-+ for(i = 0; i < size; i++) {
-+ pPriv->lut_r[i] = lut[i].red = red[i] >> 2;
-+ pPriv->lut_g[i] = lut[i].green = green[i] >> 2;
-+ pPriv->lut_b[i] = lut[i].blue = blue[i] >> 2;
-+ }
-+
-+ lut[256] = lut[255];
-+}
-+
-+void
-+G80LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
-+ VisualPtr pVisual)
-+{
-+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
-+ int i, j, index;
-+ int p;
-+ uint16_t lut_r[256], lut_g[256], lut_b[256];
-+
-+ for(p = 0; p < xf86_config->num_crtc; p++) {
-+ xf86CrtcPtr crtc = xf86_config->crtc[p];
-+ G80CrtcPrivPtr pPriv = crtc->driver_private;
-+
-+ /* Initialize to the old lookup table values. */
-+ for(i = 0; i < 256; i++) {
-+ lut_r[i] = pPriv->lut_r[i] << 2;
-+ lut_g[i] = pPriv->lut_g[i] << 2;
-+ lut_b[i] = pPriv->lut_b[i] << 2;
-+ }
-+
-+ switch(pScrn->depth) {
-+ case 15:
-+ for(i = 0; i < numColors; i++) {
-+ index = indices[i];
-+ for(j = 0; j < 8; j++) {
-+ lut_r[index * 8 + j] =
-+ colors[index].red << 8;
-+ lut_g[index * 8 + j] =
-+ colors[index].green << 8;
-+ lut_b[index * 8 + j] =
-+ colors[index].blue << 8;
-+ }
-+ }
-+ break;
-+ case 16:
-+ for(i = 0; i < numColors; i++) {
-+ index = indices[i];
-+
-+ if(index <= 31) {
-+ for(j = 0; j < 8; j++) {
-+ lut_r[index * 8 + j] =
-+ colors[index].red << 8;
-+ lut_b[index * 8 + j] =
-+ colors[index].blue << 8;
-+ }
-+ }
-+
-+ for(j = 0; j < 4; j++) {
-+ lut_g[index * 4 + j] =
-+ colors[index].green << 8;
-+ }
-+ }
-+ break;
-+ default:
-+ for(i = 0; i < numColors; i++) {
-+ index = indices[i];
-+ lut_r[index] = colors[index].red << 8;
-+ lut_g[index] = colors[index].green << 8;
-+ lut_b[index] = colors[index].blue << 8;
-+ }
-+ break;
-+ }
-+
-+ /* Make the change through RandR */
-+#ifdef RANDR_12_INTERFACE
-+ RRCrtcGammaSet(crtc->randr_crtc, lut_r, lut_g, lut_b);
-+#else
-+ crtc->funcs->gamma_set(crtc, lut_r, lut_g, lut_b, 256);
-+#endif
-+ }
- }
-
- static const xf86CrtcFuncsRec g80_crtc_funcs = {
-@@ -660,7 +751,7 @@ static const xf86CrtcFuncsRec g80_crtc_funcs = {
- .mode_fixup = G80CrtcModeFixup,
- .prepare = G80CrtcPrepare,
- .mode_set = G80CrtcModeSet,
-- .gamma_set = G80DispGammaSet,
-+ .gamma_set = G80CrtcGammaSet,
- .commit = G80CrtcCommit,
- .shadow_create = NULL,
- .shadow_destroy = NULL,
-diff --git a/src/g80_display.h b/src/g80_display.h
-index 2031fed..43c6e12 100644
---- a/src/g80_display.h
-+++ b/src/g80_display.h
-@@ -22,5 +22,6 @@ void G80CrtcSetCursorPosition(xf86CrtcPtr, int x, int y);
- void G80CrtcSkipModeFixup(xf86CrtcPtr);
- void G80CrtcSetDither(xf86CrtcPtr, Bool dither, Bool update);
- void G80CrtcSetScale(xf86CrtcPtr, DisplayModePtr, enum G80ScaleMode);
-+void G80LoadPalette(ScrnInfoPtr, int numColors, int *indices, LOCO *, VisualPtr);
-
- void G80DispCreateCrtcs(ScrnInfoPtr pScrn);
-diff --git a/src/g80_driver.c b/src/g80_driver.c
-index 13e417a..8ea45af 100644
---- a/src/g80_driver.c
-+++ b/src/g80_driver.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2007 NVIDIA, Corporation
-+ * Copyright (c) 2007,2010 NVIDIA Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
-@@ -57,7 +57,7 @@
- #include "g80_xaa.h"
-
- #define G80_REG_SIZE (1024 * 1024 * 16)
--#define G80_RESERVED_VIDMEM 0xd000
-+#define G80_RESERVED_VIDMEM 0xe000
-
- typedef enum {
- OPTION_HW_CURSOR,
-@@ -630,7 +630,7 @@ G80InitHW(ScrnInfoPtr pScrn)
-
- pNv->reg[0x00003224/4] = 0x000f0078;
- pNv->reg[0x0000322c/4] = 0x00000644;
-- pNv->reg[0x00003234/4] = G80_RESERVED_VIDMEM - 0x5001;
-+ pNv->reg[0x00003234/4] = G80_RESERVED_VIDMEM - 0x6001;
- pNv->reg[0x00003254/4] = 0x00000001;
- pNv->reg[0x00002210/4] = 0x1c001000;
-
-@@ -655,7 +655,7 @@ G80InitHW(ScrnInfoPtr pScrn)
-
- pNv->dmaPut = 0;
- pNv->dmaCurrent = SKIPS;
-- pNv->dmaMax = (G80_RESERVED_VIDMEM - 0x5000) / 4 - 2;
-+ pNv->dmaMax = (G80_RESERVED_VIDMEM - 0x6000) / 4 - 2;
- pNv->dmaFree = pNv->dmaMax - pNv->dmaCurrent;
-
- G80DmaStart(pNv, 0, 1);
-@@ -726,48 +726,6 @@ G80InitHW(ScrnInfoPtr pScrn)
- pNv->currentRop = ~0; /* Set to something invalid */
- }
-
--#define DEPTH_SHIFT(val, w) ((val << (8 - w)) | (val >> ((w << 1) - 8)))
--#define COLOR(c) (unsigned int)(0x3fff * ((c)/255.0))
--static void
--G80LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
-- VisualPtr pVisual)
--{
-- G80Ptr pNv = G80PTR(pScrn);
-- int i, index;
-- volatile struct {
-- unsigned short red, green, blue, unused;
-- } *lut = (void*)&pNv->mem[pNv->videoRam * 1024 - 0x5000];
--
-- switch(pScrn->depth) {
-- case 15:
-- for(i = 0; i < numColors; i++) {
-- index = indices[i];
-- lut[DEPTH_SHIFT(index, 5)].red = COLOR(colors[index].red);
-- lut[DEPTH_SHIFT(index, 5)].green = COLOR(colors[index].green);
-- lut[DEPTH_SHIFT(index, 5)].blue = COLOR(colors[index].blue);
-- }
-- break;
-- case 16:
-- for(i = 0; i < numColors; i++) {
-- index = indices[i];
-- lut[DEPTH_SHIFT(index, 6)].green = COLOR(colors[index].green);
-- if(index < 32) {
-- lut[DEPTH_SHIFT(index, 5)].red = COLOR(colors[index].red);
-- lut[DEPTH_SHIFT(index, 5)].blue = COLOR(colors[index].blue);
-- }
-- }
-- break;
-- default:
-- for(i = 0; i < numColors; i++) {
-- index = indices[i];
-- lut[index].red = COLOR(colors[index].red);
-- lut[index].green = COLOR(colors[index].green);
-- lut[index].blue = COLOR(colors[index].blue);
-- }
-- break;
-- }
--}
--
- static Bool
- G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- {
-@@ -866,6 +824,9 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- Must precede creation of the default colormap */
- miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
-
-+ if(!xf86CrtcScreenInit(pScreen))
-+ return FALSE;
-+
- /* Initialize default colormap */
- if(!miCreateDefColormap(pScreen))
- return FALSE;
-@@ -909,9 +870,6 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
- pNv->BlockHandler = pScreen->BlockHandler;
- pScreen->BlockHandler = G80BlockHandler;
-
-- if(!xf86CrtcScreenInit(pScreen))
-- return FALSE;
--
- return TRUE;
- }
-
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index 31fe78b..99d172f 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -380,6 +380,9 @@ static SymTabRec NVKnownChipsets[] =
+ { 0x10DE03D2, "GeForce 6100 nForce 400" },
+ { 0x10DE03D5, "GeForce 6100 nForce 420" },
+
++ { 0x10DE053E, "GeForce 7025" },
++ { 0x10DE053B, "GeForce 7050" },
++
+ /*************** G8x ***************/
+ { 0x10DE0191, "GeForce 8800 GTX" },
+ { 0x10DE0193, "GeForce 8800 GTS" },
+@@ -817,6 +820,7 @@ NVIsSupported(CARD32 id)
+ case 0x0340:
+ case 0x0390:
+ case 0x03D0:
++ case 0x0530:
+ return TRUE;
+ }
+
+@@ -1741,6 +1745,7 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
+ case 0x0290: /* GeForce 7900 */
+ case 0x0390: /* GeForce 7600 */
+ case 0x0240: /* GeForce 6100 */
++ case 0x0530: /* GeForce 7050, 7025 */
+ case 0x03D0:
+ pNv->Architecture = NV_ARCH_40;
+ break;
+diff --git a/src/nv_hw.c b/src/nv_hw.c
+index 83eeab2..9291912 100644
+--- a/src/nv_hw.c
++++ b/src/nv_hw.c
+@@ -890,7 +890,8 @@ void NVCalcStateExt (
+ case NV_ARCH_30:
+ default:
+ if(((pNv->Chipset & 0xfff0) == 0x0240) ||
+- ((pNv->Chipset & 0xfff0) == 0x03D0))
++ ((pNv->Chipset & 0xfff0) == 0x03D0) ||
++ ((pNv->Chipset & 0xfff0) == 0x0530))
+ {
+ state->arbitration0 = 128;
+ state->arbitration1 = 0x0480;
+@@ -1226,6 +1227,7 @@ void NVLoadStateExt (
+ case 0x01D0:
+ case 0x0240:
+ case 0x03D0:
++ case 0x0530:
+ pNv->PMC[0x1700/4] = pNv->PFB[0x020C/4];
+ pNv->PMC[0x1704/4] = 0;
+ pNv->PMC[0x1708/4] = 0;
+@@ -1316,7 +1318,8 @@ void NVLoadStateExt (
+ pNv->PGRAPH[(0x0900/4) + i] = pNv->PFB[(0x0600/4) + i];
+ if(((pNv->Chipset & 0xfff0) != 0x0160) &&
+ ((pNv->Chipset & 0xfff0) != 0x0220) &&
+- ((pNv->Chipset & 0xfff0) != 0x0240))
++ ((pNv->Chipset & 0xfff0) != 0x0240) &&
++ ((pNv->Chipset & 0xfff0) != 0x0530))
+ {
+ pNv->PGRAPH[(0x6900/4) + i] = pNv->PFB[(0x0600/4) + i];
+ }
++++++ xf86-video-nv-commit-e6b0463.diff ++++++
commit e6b046329480a26ecebadf4314673db3f107f83e
Author: Aaron Plattner
Date: Mon Mar 8 16:49:24 2010 -0800
Bug #24787: Don't crash if LVDS initialization fails
Signed-off-by: Aaron Plattner
diff --git a/src/g80_output.c b/src/g80_output.c
index 887208b..5744d94 100644
--- a/src/g80_output.c
+++ b/src/g80_output.c
@@ -481,19 +481,22 @@ G80CreateOutputs(ScrnInfoPtr pScrn)
if(pNv->lvds.present) {
xf86OutputPtr lvds = G80CreateSor(pScrn, pNv->lvds.or, LVDS);
- G80OutputPrivPtr pPriv = lvds->driver_private;
- pPriv->scale = G80_SCALE_ASPECT;
+ if (lvds) {
+ G80OutputPrivPtr pPriv = lvds->driver_private;
- if(pNv->lvds.i2cPort != -1) {
- char i2cName[16];
+ pPriv->scale = G80_SCALE_ASPECT;
+
+ if(pNv->lvds.i2cPort != -1) {
+ char i2cName[16];
- snprintf(i2cName, sizeof(i2cName), "I2C%i (LVDS)", pNv->lvds.i2cPort);
- pPriv->i2c = G80I2CInit(pScrn, i2cName, pNv->lvds.i2cPort);
- if(!pPriv->i2c) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Failed to initialize I2C for port %i (LVDS)!\n",
- pNv->lvds.i2cPort);
+ snprintf(i2cName, sizeof(i2cName), "I2C%i (LVDS)", pNv->lvds.i2cPort);
+ pPriv->i2c = G80I2CInit(pScrn, i2cName, pNv->lvds.i2cPort);
+ if(!pPriv->i2c) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to initialize I2C for port %i (LVDS)!\n",
+ pNv->lvds.i2cPort);
+ }
}
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org