Hello community,
here is the log from the commit of package xorg-x11-driver-video for openSUSE:Factory
checked in at Fri Mar 5 12:19:08 CET 2010.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2010-02-25 01:12:45.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2010-03-03 05:07:21.000000000 +0100
@@ -1,0 +2,35 @@
+Wed Mar 3 04:53:50 CET 2010 - sndirsch@suse.de
+
+- xf86-video-ati 6.12.191
+ * pre-release for the upcoming 6.13 release
+ * KMS/DRI2 support for all families r100->r700 for KMS driver
+ in Linux 2.6.33.
+ * Initial evergreen KMS support for planned 2.6.34 driver.
+ * Userspace modesetting support for r600/r700 families
+ * experimental userspace modesetting support for evergreen
+ families
+ * r600/r700 acceleration support.
+ * Userspace modesetting basic power management controls
+ * textured Xv controls (brightness, contrast, etc.)
+ * Displayport support.
+ * Improved Zaphod support - per-screen output assignment.
+ * CustomEDID option - force the driver to use EDID from a file
+ * lots of quirks and fixes and optimisations.
+- adjusted xf86-video-ati-bug519261-increase-virtual.diff
+- obsoletes xf86-video-ati-bug-561880-keep_crtc_enabled.diff
+
+-------------------------------------------------------------------
+Tue Mar 2 22:34:15 CET 2010 - sndirsch@suse.de
+
+- xf86-video-nv-commit-49349f6.diff
+ * G80: Log unrecognized outputs
+
+-------------------------------------------------------------------
+Tue Mar 2 17:37:08 CET 2010 - sndirsch@suse.de
+
+- xf86-video-nv-commit-7b01fc8.diff:
+ Separate LUTs per output. Wire up the RandR 1.2 gamma_set hook.
+ Call it from G80SetPalette like the Intel driver does.
+ (bfo #26612, likely bnc #577140)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xf86-video-ati-6.12.4.tar.bz2
xf86-video-ati-bug-561880-keep_crtc_enabled.diff
New:
----
xf86-video-ati-6.12.191.tar.bz2
xf86-video-nv-commit-49349f6.diff
xf86-video-nv-commit-7b01fc8.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.09qMpb/_old 2010-03-05 12:18:36.000000000 +0100
+++ /var/tmp/diff_new_pack.09qMpb/_new 2010-03-05 12:18:36.000000000 +0100
@@ -23,7 +23,7 @@
BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.4
-Release: 96
+Release: 97
License: MIT License (or similar)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -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.4.tar.bz2
+Source46: xf86-video-ati-6.12.191.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,7 +106,8 @@
Patch131: xf86-video-ati-bug519261-increase-virtual.diff
Patch132: xf86-video-nv-bug519261-increase-virtual.diff
Patch133: xf86-video-sis-19070.diff
-Patch136: xf86-video-ati-bug-561880-keep_crtc_enabled.diff
+Patch137: xf86-video-nv-commit-7b01fc8.diff
+Patch138: xf86-video-nv-commit-49349f6.diff
%description
This package contains X.Org video drivers.
@@ -172,7 +173,6 @@
%patch68 -p2
%patch69 -p2
%patch131 -p1
-%patch136 -p1
popd
pushd xf86-video-fbdev-*
%patch71
@@ -188,6 +188,8 @@
popd
pushd xf86-video-nv-*
%patch132 -p1
+%patch137 -p1
+%patch138 -p1
popd
pushd xf86-video-sis-*
%patch133 -p1
++++++ xf86-video-ati-6.12.4.tar.bz2 -> xf86-video-ati-6.12.191.tar.bz2 ++++++
++++ 103090 lines of diff (skipped)
++++++ xf86-video-ati-bug519261-increase-virtual.diff ++++++
--- /var/tmp/diff_new_pack.09qMpb/_old 2010-03-05 12:18:37.000000000 +0100
+++ /var/tmp/diff_new_pack.09qMpb/_new 2010-03-05 12:18:37.000000000 +0100
@@ -1,8 +1,6 @@
-diff --git a/src/radeon_driver.c b/src/radeon_driver.c
-index 67fb9b7..15c49b4 100644
---- a/src/radeon_driver.c
-+++ b/src/radeon_driver.c
-@@ -3053,6 +3053,20 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
+--- xf86-video-ati-6.12.191/src/radeon_driver.c.orig 2010-03-03 04:45:29.000000000 +0100
++++ xf86-video-ati-6.12.191/src/radeon_driver.c 2010-03-03 04:47:17.000000000 +0100
+@@ -3223,6 +3223,21 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in
if (!RADEONPreInitControllers(pScrn))
goto fail;
@@ -20,6 +18,7 @@
+ pScrn->display->virtualY = 1280;
+ }
+ }
-
- ErrorF("before xf86InitialConfiguration\n");
-
++
+ if (!xf86InitialConfiguration (pScrn, FALSE))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes.\n");
++++++ xf86-video-nv-commit-49349f6.diff ++++++
commit 49349f6e47b7315088a80789f134895677f57287
Author: Aaron Plattner
Date: Tue Mar 2 12:53:54 2010 -0800
G80: Log unrecognized outputs
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;
+ 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;
}
}
++++++ xf86-video-nv-commit-7b01fc8.diff ++++++
commit 7b01fc8f4ba1182370980f54a34bdb959e291e02
Author: Aaron Plattner
Date: Mon Mar 1 14:26:51 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.
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;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org