Hello community,
here is the log from the commit of package xorg-x11-driver-video
checked in at Wed Oct 24 10:24:28 CEST 2007.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-10-18 19:26:43.000000000 +0200
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-10-24 04:26:06.950852000 +0200
@@ -1,0 +2,9 @@
+Wed Oct 24 04:30:14 CEST 2007 - sndirsch@suse.de
+
+- xf86-video-nv 2.1.6
+ * Remove unused headers.
+ * G80 bug #12637: Unwedge the hardware if the BIOS left it stuck.
+ * G80 bug #12397: Fix LVDS detection on certain laptops.
+- obsoletes xf86-video-nv.diff
+
+-------------------------------------------------------------------
Old:
----
xf86-video-nv-2.1.5.tar.bz2
xf86-video-nv.diff
New:
----
xf86-video-nv-2.1.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.eZ6087/_old 2007-10-24 10:24:18.000000000 +0200
+++ /var/tmp/diff_new_pack.eZ6087/_new 2007-10-24 10:24:18.000000000 +0200
@@ -14,7 +14,7 @@
BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.3
-Release: 14
+Release: 19
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -39,7 +39,7 @@
Source15: xf86-video-neomagic-X11R7.1-1.1.1.tar.bz2
Source16: xf86-video-newport-0.2.1.tar.bz2
Source17: xf86-video-nsc-2.8.3.tar.bz2
-Source18: xf86-video-nv-2.1.5.tar.bz2
+Source18: xf86-video-nv-2.1.6.tar.bz2
Source19: xf86-video-rendition-4.1.3.tar.bz2
Source20: xf86-video-s3-0.5.0.tar.bz2
Source21: xf86-video-s3virge-X11R7.1-1.9.1.tar.bz2
@@ -69,7 +69,6 @@
Patch1: radeon-xrandr-dotclock.diff
Patch2: radeon_dell.diff
Patch3: ps_nv.diff
-Patch4: xf86-video-nv.diff
Patch5: mga-g200se_pci-fix.diff
Patch10: xf86-video-tdfx.diff
Patch11: xf86-video-glint.diff
@@ -161,7 +160,6 @@
popd
pushd xf86-video-nv-*/src
%patch3 -p6
-%patch4 -p2
popd
pushd xf86-video-mga-1.4.6.1/src
tar xzf %{SOURCE44}
@@ -253,6 +251,12 @@
/usr/%{_lib}/xorg/modules/
%{_mandir}/man4/*
%changelog
+* Wed Oct 24 2007 - sndirsch@suse.de
+- xf86-video-nv 2.1.6
+ * Remove unused headers.
+ * G80 bug #12637: Unwedge the hardware if the BIOS left it stuck.
+ * G80 bug #12397: Fix LVDS detection on certain laptops.
+- obsoletes xf86-video-nv.diff
* Thu Oct 18 2007 - sndirsch@suse.de
- back to xf86-video-mga 1.4.6.1 to fix traditional Xinerama setups
(Bug #331550)
++++++ xf86-video-nv-2.1.5.tar.bz2 -> xf86-video-nv-2.1.6.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/ChangeLog new/xf86-video-nv-2.1.6/ChangeLog
--- old/xf86-video-nv-2.1.5/ChangeLog 2007-09-22 03:56:03.000000000 +0200
+++ new/xf86-video-nv-2.1.6/ChangeLog 2007-10-23 22:17:51.000000000 +0200
@@ -1,3 +1,27 @@
+commit 58dbd31953d0e2f30d06b3fc5118a016a17666fe
+Author: Aaron Plattner
+Date: Tue Oct 23 13:17:27 2007 -0700
+
+ Bump to 2.1.6.
+
+commit 0887084730af8428e902dabc6e00c505f383f57f
+Author: Aaron Plattner
+Date: Sun Oct 14 14:15:07 2007 -0700
+
+ G80 bug #12397: Fix LVDS detection on certain laptops.
+
+commit 1003bcbe4381201f1d7b34dc1af72f57b2943b67
+Author: Aaron Plattner
+Date: Sat Oct 13 14:36:49 2007 -0700
+
+ G80 bug #12637: Unwedge the hardware if the BIOS left it stuck.
+
+commit 1e12277650dff10b1083915cb73961525e21a471
+Author: Aaron Plattner
+Date: Sat Oct 13 13:50:04 2007 -0700
+
+ Remove unused headers.
+
commit 7a124edd1fcc0be6bdad489b0e8d7db3efe44b14
Author: Aaron Plattner
Date: Fri Sep 21 18:55:21 2007 -0700
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/compat/modes/xf86Crtc.c new/xf86-video-nv-2.1.6/compat/modes/xf86Crtc.c
--- old/xf86-video-nv-2.1.5/compat/modes/xf86Crtc.c 2007-09-22 00:41:07.000000000 +0200
+++ new/xf86-video-nv-2.1.6/compat/modes/xf86Crtc.c 2007-10-23 21:07:18.000000000 +0200
@@ -711,7 +711,8 @@
for (mode = output->probed_modes; mode; mode = mode->next)
{
int dpi;
- int preferred = (mode->type & M_T_PREFERRED) != 0;
+ int preferred = (((mode->type & M_T_PREFERRED) != 0) +
+ ((mode->type & M_T_USERPREF) != 0));
int diff;
if (xf86ModeWidth (mode, output->initial_rotation) > width ||
@@ -1415,10 +1416,9 @@
mode->prev = NULL;
output->probed_modes = mode;
}
- mode->type |= M_T_PREFERRED;
+ mode->type |= (M_T_PREFERRED|M_T_USERPREF);
+ break;
}
- else
- mode->type &= ~M_T_PREFERRED;
}
}
@@ -1532,6 +1532,7 @@
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
int o, c;
DisplayModePtr target_mode = NULL;
+ int target_preferred = 0;
Rotation target_rotation = RR_Rotate_0;
xf86CrtcPtr *crtcs;
DisplayModePtr *modes;
@@ -1572,43 +1573,34 @@
}
/*
- * Let outputs with preferred modes drive screen size
+ * User preferred > preferred > other modes
*/
for (o = 0; o < config->num_output; o++)
{
- xf86OutputPtr output = config->output[o];
+ xf86OutputPtr output = config->output[o];
+ DisplayModePtr default_mode;
+ int default_preferred;
- if (enabled[o] &&
- xf86OutputHasPreferredMode (output, width, height))
+ if (!enabled[o])
+ continue;
+ default_mode = xf86DefaultMode (output, width, height);
+ if (!default_mode)
+ continue;
+ default_preferred = (((default_mode->type & M_T_PREFERRED) != 0) +
+ ((default_mode->type & M_T_USERPREF) != 0));
+ if (default_preferred > target_preferred || !target_mode)
{
- target_mode = xf86DefaultMode (output, width, height);
+ target_mode = default_mode;
+ target_preferred = default_preferred;
target_rotation = output->initial_rotation;
- if (target_mode)
- {
- modes[o] = target_mode;
- config->compat_output = o;
- break;
- }
- }
- }
- if (!target_mode)
- {
- for (o = 0; o < config->num_output; o++)
- {
- xf86OutputPtr output = config->output[o];
- if (enabled[o])
- {
- target_mode = xf86DefaultMode (output, width, height);
- target_rotation = output->initial_rotation;
- if (target_mode)
- {
- modes[o] = target_mode;
- config->compat_output = o;
- break;
- }
- }
+ config->compat_output = o;
}
}
+ if (target_mode)
+ modes[config->compat_output] = target_mode;
+ /*
+ * Fill in other output modes
+ */
for (o = 0; o < config->num_output; o++)
{
xf86OutputPtr output = config->output[o];
@@ -2134,8 +2126,12 @@
xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus)
{
ScrnInfoPtr scrn = output->scrn;
+ xf86MonPtr mon;
+
+ mon = xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus);
+ xf86DDCApplyQuirks (scrn->scrnIndex, pDDCBus);
- return xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus);
+ return mon;
}
static char *_xf86ConnectorNames[] = { "None", "VGA", "DVI-I", "DVI-D",
@@ -2220,7 +2216,10 @@
/*
* For overlay video, compute the relevant CRTC and
- * clip video to that
+ * clip video to that.
+ *
+ * returning FALSE means there was a memory failure of some kind,
+ * not that the video shouldn't be displayed
*/
_X_EXPORT Bool
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/compat/modes/xf86Crtc.h new/xf86-video-nv-2.1.6/compat/modes/xf86Crtc.h
--- old/xf86-video-nv-2.1.5/compat/modes/xf86Crtc.h 2007-09-22 00:41:07.000000000 +0200
+++ new/xf86-video-nv-2.1.6/compat/modes/xf86Crtc.h 2007-10-19 23:21:13.000000000 +0200
@@ -39,6 +39,9 @@
#ifndef M_T_DRIVER
#define M_T_DRIVER 0x40
#endif
+#ifndef M_T_USERPREF
+#define M_T_USERPREF 0x80
+#endif
#ifndef HARDWARE_CURSOR_ARGB
#define HARDWARE_CURSOR_ARGB 0x00004000
#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/compat/modes/xf86EdidModes.c new/xf86-video-nv-2.1.6/compat/modes/xf86EdidModes.c
--- old/xf86-video-nv-2.1.5/compat/modes/xf86EdidModes.c 2007-09-22 00:41:07.000000000 +0200
+++ new/xf86-video-nv-2.1.6/compat/modes/xf86EdidModes.c 2007-10-19 23:21:13.000000000 +0200
@@ -54,6 +54,18 @@
DDC_QUIRK_PREFER_LARGE_60 = 1 << 0,
/* 135MHz clock is too high, drop a bit */
DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1,
+ /* Prefer the largest mode at 75 Hz */
+ DDC_QUIRK_PREFER_LARGE_75 = 1 << 2,
+ /* Convert detailed timing's horizontal from units of cm to mm */
+ DDC_QUIRK_DETAILED_H_IN_CM = 1 << 3,
+ /* Convert detailed timing's vertical from units of cm to mm */
+ DDC_QUIRK_DETAILED_V_IN_CM = 1 << 4,
+ /* Detailed timing descriptors have bogus size values, so just take the
+ * maximum size and use that.
+ */
+ DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE = 1 << 5,
+ /* Monitor forgot to set the first detailed is preferred bit. */
+ DDC_QUIRK_FIRST_DETAILED_PREFERRED = 1 << 6,
} ddc_quirk_t;
static Bool quirk_prefer_large_60 (int scrnIndex, xf86MonPtr DDC)
@@ -81,6 +93,52 @@
return FALSE;
}
+static Bool quirk_prefer_large_75 (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #11603: Funai Electronics PM36B */
+ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 &&
+ DDC->vendor.prod_id == 13600)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool quirk_detailed_h_in_cm (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #10304: "LGPhilipsLCD LP154W01-A5" */
+ /* Bug #12784: "LGPhilipsLCD LP154W01-TLA2" */
+ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
+ DDC->vendor.prod_id == 0)
+ return TRUE;
+
+ /* Bug #11603: Funai Electronics PM36B */
+ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 &&
+ DDC->vendor.prod_id == 13600)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #11603: Funai Electronics PM36B */
+ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 &&
+ DDC->vendor.prod_id == 13600)
+ return TRUE;
+
+ return FALSE;
+}
+
+static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Bug #10304: LGPhilipsLCD LP154W01-A5 */
+ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
+ DDC->vendor.prod_id == 0)
+ return TRUE;
+
+ return FALSE;
+}
+
static Bool quirk_135_clock_too_high (int scrnIndex, xf86MonPtr DDC)
{
/* Envision Peripherals, Inc. EN-7100e. See bug #9550. */
@@ -91,6 +149,16 @@
return FALSE;
}
+static Bool quirk_first_detailed_preferred (int scrnIndex, xf86MonPtr DDC)
+{
+ /* Philips 107p5 CRT. Reported on xorg@ with pastebin. */
+ if (memcmp (DDC->vendor.name, "PHL", 4) == 0 &&
+ DDC->vendor.prod_id == 57364)
+ return TRUE;
+
+ return FALSE;
+}
+
typedef struct {
Bool (*detect) (int scrnIndex, xf86MonPtr DDC);
ddc_quirk_t quirk;
@@ -106,6 +174,26 @@
quirk_135_clock_too_high, DDC_QUIRK_135_CLOCK_TOO_HIGH,
"Recommended 135MHz pixel clock is too high"
},
+ {
+ quirk_prefer_large_75, DDC_QUIRK_PREFER_LARGE_75,
+ "Detailed timing is not preferred, use largest mode at 75Hz"
+ },
+ {
+ quirk_detailed_h_in_cm, DDC_QUIRK_DETAILED_H_IN_CM,
+ "Detailed timings give horizontal size in cm."
+ },
+ {
+ quirk_detailed_v_in_cm, DDC_QUIRK_DETAILED_V_IN_CM,
+ "Detailed timings give vertical size in cm."
+ },
+ {
+ quirk_detailed_use_maximum_size, DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE,
+ "Detailed timings give sizes in cm."
+ },
+ {
+ quirk_first_detailed_preferred, DDC_QUIRK_FIRST_DETAILED_PREFERRED,
+ "First detailed timing was not marked as preferred."
+ },
{
NULL, DDC_QUIRK_NONE,
"No known quirks"
@@ -185,7 +273,7 @@
*/
static DisplayModePtr
DDCModeFromDetailedTiming(int scrnIndex, struct detailed_timings *timing,
- int preferred, ddc_quirk_t quirks)
+ Bool preferred, ddc_quirk_t quirks)
{
DisplayModePtr Mode;
@@ -303,27 +391,116 @@
}
}
+static ddc_quirk_t
+xf86DDCDetectQuirks(int scrnIndex, xf86MonPtr DDC, Bool verbose)
+{
+ ddc_quirk_t quirks;
+ int i;
+
+ quirks = DDC_QUIRK_NONE;
+ for (i = 0; ddc_quirks[i].detect; i++) {
+ if (ddc_quirks[i].detect (scrnIndex, DDC)) {
+ if (verbose) {
+ xf86DrvMsg (scrnIndex, X_INFO, " EDID quirk: %s\n",
+ ddc_quirks[i].description);
+ }
+ quirks |= ddc_quirks[i].quirk;
+ }
+ }
+
+ return quirks;
+}
+
+/**
+ * Applies monitor-specific quirks to the decoded EDID information.
+ *
+ * Note that some quirks applying to the mode list are still implemented in
+ * xf86DDCGetModes.
+ */
+void
+xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC)
+{
+ ddc_quirk_t quirks = xf86DDCDetectQuirks (scrnIndex, DDC, FALSE);
+ int i;
+
+ for (i = 0; i < DET_TIMINGS; i++) {
+ struct detailed_monitor_section *det_mon = &DDC->det_mon[i];
+
+ if (det_mon->type != DT)
+ continue;
+
+ if (quirks & DDC_QUIRK_DETAILED_H_IN_CM)
+ det_mon->section.d_timings.h_size *= 10;
+
+ if (quirks & DDC_QUIRK_DETAILED_V_IN_CM)
+ det_mon->section.d_timings.v_size *= 10;
+
+ if (quirks & DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE) {
+ det_mon->section.d_timings.h_size = 10 * DDC->features.hsize;
+ det_mon->section.d_timings.v_size = 10 * DDC->features.vsize;
+ }
+ }
+}
+
+/**
+ * Walks the modes list, finding the mode with the largest area which is
+ * closest to the target refresh rate, and marks it as the only preferred mode.
+*/
+static void
+xf86DDCSetPreferredRefresh(int scrnIndex, DisplayModePtr modes,
+ float target_refresh)
+{
+ DisplayModePtr mode, best = modes;
+
+ for (mode = modes; mode; mode = mode->next)
+ {
+ mode->type &= ~M_T_PREFERRED;
+
+ if (mode == best) continue;
+
+ if (mode->HDisplay * mode->VDisplay >
+ best->HDisplay * best->VDisplay)
+ {
+ best = mode;
+ continue;
+ }
+ if (mode->HDisplay * mode->VDisplay ==
+ best->HDisplay * best->VDisplay)
+ {
+ double mode_refresh = xf86ModeVRefresh (mode);
+ double best_refresh = xf86ModeVRefresh (best);
+ double mode_dist = fabs(mode_refresh - target_refresh);
+ double best_dist = fabs(best_refresh - target_refresh);
+
+ if (mode_dist < best_dist)
+ {
+ best = mode;
+ continue;
+ }
+ }
+ }
+ if (best)
+ best->type |= M_T_PREFERRED;
+}
+
_X_EXPORT DisplayModePtr
xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC)
{
- int preferred, i;
+ int i;
DisplayModePtr Modes = NULL, Mode;
ddc_quirk_t quirks;
+ Bool preferred;
xf86DrvMsg (scrnIndex, X_INFO, "EDID vendor \"%s\", prod id %d\n",
DDC->vendor.name, DDC->vendor.prod_id);
- quirks = DDC_QUIRK_NONE;
- for (i = 0; ddc_quirks[i].detect; i++)
- if (ddc_quirks[i].detect (scrnIndex, DDC))
- {
- xf86DrvMsg (scrnIndex, X_INFO, " EDID quirk: %s\n",
- ddc_quirks[i].description);
- quirks |= ddc_quirks[i].quirk;
- }
-
+
+ quirks = xf86DDCDetectQuirks(scrnIndex, DDC, TRUE);
+
preferred = PREFERRED_TIMING_MODE(DDC->features.msc);
- if (quirks & DDC_QUIRK_PREFER_LARGE_60)
- preferred = 0;
+ if (quirks & DDC_QUIRK_FIRST_DETAILED_PREFERRED)
+ preferred = TRUE;
+ if (quirks & (DDC_QUIRK_PREFER_LARGE_60 | DDC_QUIRK_PREFER_LARGE_75))
+ preferred = FALSE;
for (i = 0; i < DET_TIMINGS; i++) {
struct detailed_monitor_section *det_mon = &DDC->det_mon[i];
@@ -334,7 +511,7 @@
&det_mon->section.d_timings,
preferred,
quirks);
- preferred = 0;
+ preferred = FALSE;
Modes = xf86ModesAdd(Modes, Mode);
break;
case DS_STD_TIMINGS:
@@ -357,32 +534,11 @@
Modes = xf86ModesAdd(Modes, Mode);
if (quirks & DDC_QUIRK_PREFER_LARGE_60)
- {
- DisplayModePtr best = Modes;
- for (Mode = Modes; Mode; Mode = Mode->next)
- {
- if (Mode == best) continue;
- if (Mode->HDisplay * Mode->VDisplay > best->HDisplay * best->VDisplay)
- {
- best = Mode;
- continue;
- }
- if (Mode->HDisplay * Mode->VDisplay == best->HDisplay * best->VDisplay)
- {
- double mode_refresh = xf86ModeVRefresh (Mode);
- double best_refresh = xf86ModeVRefresh (best);
- double mode_dist = fabs(mode_refresh - 60.0);
- double best_dist = fabs(best_refresh - 60.0);
- if (mode_dist < best_dist)
- {
- best = Mode;
- continue;
- }
- }
- }
- if (best)
- best->type |= M_T_PREFERRED;
- }
+ xf86DDCSetPreferredRefresh(scrnIndex, Modes, 60);
+
+ if (quirks & DDC_QUIRK_PREFER_LARGE_75)
+ xf86DDCSetPreferredRefresh(scrnIndex, Modes, 75);
+
return Modes;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/compat/modes/xf86Modes.c new/xf86-video-nv-2.1.6/compat/modes/xf86Modes.c
--- old/xf86-video-nv-2.1.5/compat/modes/xf86Modes.c 2007-09-22 00:41:07.000000000 +0200
+++ new/xf86-video-nv-2.1.6/compat/modes/xf86Modes.c 2007-10-16 01:16:21.000000000 +0200
@@ -389,8 +389,8 @@
bad = TRUE;
for (i = 0; i < mon->nHsync; i++) {
- if (xf86ModeHSync(mode) >= mon->hsync[i].lo &&
- xf86ModeHSync(mode) <= mon->hsync[i].hi)
+ if (xf86ModeHSync(mode) >= mon->hsync[i].lo * (1-SYNC_TOLERANCE) &&
+ xf86ModeHSync(mode) <= mon->hsync[i].hi * (1+SYNC_TOLERANCE))
{
bad = FALSE;
}
@@ -400,8 +400,8 @@
bad = TRUE;
for (i = 0; i < mon->nVrefresh; i++) {
- if (xf86ModeVRefresh(mode) >= mon->vrefresh[i].lo &&
- xf86ModeVRefresh(mode) <= mon->vrefresh[i].hi)
+ if (xf86ModeVRefresh(mode) >= mon->vrefresh[i].lo * (1-SYNC_TOLERANCE) &&
+ xf86ModeVRefresh(mode) <= mon->vrefresh[i].hi * (1+SYNC_TOLERANCE))
{
bad = FALSE;
}
@@ -434,7 +434,8 @@
for (mode = modeList; mode != NULL; mode = mode->next) {
Bool good = FALSE;
for (i = 0; i < n_ranges; i++) {
- if (mode->Clock >= min[i] && mode->Clock <= max[i]) {
+ if (mode->Clock >= min[i] * (1-SYNC_TOLERANCE) &&
+ mode->Clock <= max[i] * (1+SYNC_TOLERANCE)) {
good = TRUE;
break;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/compat/modes/xf86Modes.h new/xf86-video-nv-2.1.6/compat/modes/xf86Modes.h
--- old/xf86-video-nv-2.1.5/compat/modes/xf86Modes.h 2007-09-22 00:41:07.000000000 +0200
+++ new/xf86-video-nv-2.1.6/compat/modes/xf86Modes.h 2007-10-16 01:16:21.000000000 +0200
@@ -95,4 +95,7 @@
DisplayModePtr
xf86GetDefaultModes (Bool interlaceAllowed, Bool doubleScanAllowed);
+void
+xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC);
+
#endif /* _XF86MODES_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/configure new/xf86-video-nv-2.1.6/configure
--- old/xf86-video-nv-2.1.5/configure 2007-09-22 03:55:41.000000000 +0200
+++ new/xf86-video-nv-2.1.6/configure 2007-10-23 22:17:36.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.1.5.
+# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.1.6.
#
# Report bugs to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg.
#
@@ -728,8 +728,8 @@
# Identity of this package.
PACKAGE_NAME='xf86-video-nv'
PACKAGE_TARNAME='xf86-video-nv'
-PACKAGE_VERSION='2.1.5'
-PACKAGE_STRING='xf86-video-nv 2.1.5'
+PACKAGE_VERSION='2.1.6'
+PACKAGE_STRING='xf86-video-nv 2.1.6'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -1423,7 +1423,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-video-nv 2.1.5 to adapt to many kinds of systems.
+\`configure' configures xf86-video-nv 2.1.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1493,7 +1493,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-video-nv 2.1.5:";;
+ short | recursive ) echo "Configuration of xf86-video-nv 2.1.6:";;
esac
cat <<\_ACEOF
@@ -1611,7 +1611,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-video-nv configure 2.1.5
+xf86-video-nv configure 2.1.6
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1625,7 +1625,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-video-nv $as_me 2.1.5, which was
+It was created by xf86-video-nv $as_me 2.1.6, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2320,7 +2320,7 @@
# Define the identity of the package.
PACKAGE='xf86-video-nv'
- VERSION='2.1.5'
+ VERSION='2.1.6'
cat >>confdefs.h <<_ACEOF
@@ -21808,7 +21808,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xf86-video-nv $as_me 2.1.5, which was
+This file was extended by xf86-video-nv $as_me 2.1.6, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21861,7 +21861,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-xf86-video-nv config.status 2.1.5
+xf86-video-nv config.status 2.1.6
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/configure.ac new/xf86-video-nv-2.1.6/configure.ac
--- old/xf86-video-nv-2.1.5/configure.ac 2007-09-22 03:55:12.000000000 +0200
+++ new/xf86-video-nv-2.1.6/configure.ac 2007-10-23 22:17:19.000000000 +0200
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-nv],
- 2.1.5,
+ 2.1.6,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-nv)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/src/g80_display.c new/xf86-video-nv-2.1.6/src/g80_display.c
--- old/xf86-video-nv-2.1.5/src/g80_display.c 2007-09-18 00:41:56.000000000 +0200
+++ new/xf86-video-nv-2.1.6/src/g80_display.c 2007-10-14 00:17:41.000000000 +0200
@@ -250,6 +250,7 @@
G80DispInit(ScrnInfoPtr pScrn)
{
G80Ptr pNv = G80PTR(pScrn);
+ CARD32 val;
if(pNv->reg[0x00610024/4] & 0x100) {
pNv->reg[0x00610024/4] = 0x100;
@@ -258,7 +259,15 @@
}
pNv->reg[0x00610200/4] = 0x2b00;
- while((pNv->reg[0x00610200/4] & 0x1e0000) != 0);
+ do {
+ val = pNv->reg[0x00610200/4];
+
+ if ((val & 0x9f0000) == 0x20000)
+ pNv->reg[0x00610200/4] = val | 0x800000;
+
+ if ((val & 0x3f0000) == 0x30000)
+ pNv->reg[0x00610200/4] = val | 0x200000;
+ } while ((val & 0x1e0000) != 0);
pNv->reg[0x00610300/4] = 1;
pNv->reg[0x00610200/4] = 0x1000b03;
while(!(pNv->reg[0x00610200/4] & 0x40000000));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/src/g80_sor.c new/xf86-video-nv-2.1.6/src/g80_sor.c
--- old/xf86-video-nv-2.1.5/src/g80_sor.c 2007-09-12 06:29:21.000000000 +0200
+++ new/xf86-video-nv-2.1.6/src/g80_sor.c 2007-10-23 22:16:01.000000000 +0200
@@ -427,20 +427,20 @@
};
static DisplayModePtr
-GetLVDSNativeMode(G80Ptr pNv)
+ReadLVDSNativeMode(G80Ptr pNv, const int off)
{
DisplayModePtr mode = xnfcalloc(1, sizeof(DisplayModeRec));
- const CARD32 size = pNv->reg[0x00610B4C/4];
+ const CARD32 size = pNv->reg[(0x00610B4C+off)/4];
const int width = size & 0x3fff;
const int height = (size >> 16) & 0x3fff;
mode->HDisplay = mode->CrtcHDisplay = width;
mode->VDisplay = mode->CrtcVDisplay = height;
- mode->Clock = pNv->reg[0x610AD4/4] & 0x3fffff;
- mode->CrtcHBlankStart = pNv->reg[0x610AFC/4];
- mode->CrtcHSyncEnd = pNv->reg[0x610B04/4];
- mode->CrtcHBlankEnd = pNv->reg[0x610AE8/4];
- mode->CrtcHTotal = pNv->reg[0x610AF4/4];
+ mode->Clock = pNv->reg[(0x610AD4+off)/4] & 0x3fffff;
+ mode->CrtcHBlankStart = pNv->reg[(0x610AFC+off)/4];
+ mode->CrtcHSyncEnd = pNv->reg[(0x610B04+off)/4];
+ mode->CrtcHBlankEnd = pNv->reg[(0x610AE8+off)/4];
+ mode->CrtcHTotal = pNv->reg[(0x610AF4+off)/4];
mode->next = mode->prev = NULL;
mode->status = MODE_OK;
@@ -451,6 +451,19 @@
return mode;
}
+static DisplayModePtr
+GetLVDSNativeMode(G80Ptr pNv)
+{
+ CARD32 val = pNv->reg[0x00610050/4];
+
+ if((val & 3) == 2)
+ return ReadLVDSNativeMode(pNv, 0);
+ else if((val & 0x300) == 0x200)
+ return ReadLVDSNativeMode(pNv, 0x540);
+
+ return NULL;
+}
+
xf86OutputPtr
G80CreateSor(ScrnInfoPtr pScrn, ORNum or, PanelType panelType)
{
@@ -467,6 +480,19 @@
if(panelType == LVDS) {
strcpy(orName, "LVDS");
funcs = &G80SorLVDSOutputFuncs;
+
+ pPriv->nativeMode = GetLVDSNativeMode(pNv);
+
+ if(!pPriv->nativeMode) {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Failed to find LVDS native mode\n");
+ xfree(pPriv);
+ return FALSE;
+ }
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%s native size %dx%d\n",
+ orName, pPriv->nativeMode->HDisplay,
+ pPriv->nativeMode->VDisplay);
} else {
snprintf(orName, 5, "DVI%d", or);
pNv->reg[(0x61C00C+off)/4] = 0x03010700;
@@ -488,13 +514,5 @@
output->interlaceAllowed = TRUE;
output->doubleScanAllowed = TRUE;
- if(panelType == LVDS) {
- pPriv->nativeMode = GetLVDSNativeMode(pNv);
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%s native size %dx%d\n",
- orName, pPriv->nativeMode->HDisplay,
- pPriv->nativeMode->VDisplay);
- }
-
return output;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/src/Makefile.am new/xf86-video-nv-2.1.6/src/Makefile.am
--- old/xf86-video-nv-2.1.5/src/Makefile.am 2007-08-22 02:40:24.000000000 +0200
+++ new/xf86-video-nv-2.1.6/src/Makefile.am 2007-10-14 00:17:41.000000000 +0200
@@ -41,11 +41,9 @@
nv_include.h \
nv_local.h \
nv_proto.h \
- nvreg.h \
nv_setup.c \
nv_shadow.c \
nv_type.h \
- nvvga.h \
nv_video.c \
nv_xaa.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/src/Makefile.in new/xf86-video-nv-2.1.6/src/Makefile.in
--- old/xf86-video-nv-2.1.5/src/Makefile.in 2007-09-22 03:55:42.000000000 +0200
+++ new/xf86-video-nv-2.1.6/src/Makefile.in 2007-10-23 22:17:37.000000000 +0200
@@ -258,11 +258,9 @@
nv_include.h \
nv_local.h \
nv_proto.h \
- nvreg.h \
nv_setup.c \
nv_shadow.c \
nv_type.h \
- nvvga.h \
nv_video.c \
nv_xaa.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/src/nvreg.h new/xf86-video-nv-2.1.6/src/nvreg.h
--- old/xf86-video-nv-2.1.5/src/nvreg.h 2007-09-12 06:24:16.000000000 +0200
+++ new/xf86-video-nv-2.1.6/src/nvreg.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,195 +0,0 @@
-/*
- * Copyright 1996-1997 David J. McKay
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * DAVID J. MCKAY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef __NVREG_H_
-#define __NVREG_H_
-
-/* Little macro to construct bitmask for contiguous ranges of bits */
-#define BITMASK(t,b) (((unsigned)(1U << (((t)-(b)+1)))-1) << (b))
-#define MASKEXPAND(mask) BITMASK(1?mask,0?mask)
-
-/* Macro to set specific bitfields (mask has to be a macro x:y) ! */
-#define SetBF(mask,value) ((value) << (0?mask))
-#define GetBF(var,mask) (((unsigned)((var) & MASKEXPAND(mask))) >> (0?mask) )
-
-#define MaskAndSetBF(var,mask,value) (var)=(((var)&(~MASKEXPAND(mask)) \
- | SetBF(mask,value)))
-
-#define DEVICE_BASE(device) (0?NV##_##device)
-#define DEVICE_SIZE(device) ((1?NV##_##device) - DEVICE_BASE(device)+1)
-
-/* This is where we will have to have conditional compilation */
-#define DEVICE_ACCESS(device,reg) \
- nv##device##Port[((NV_##device##_##reg)-DEVICE_BASE(device))/4]
-
-#define DEVICE_WRITE(device,reg,value) DEVICE_ACCESS(device,reg)=(value)
-#define DEVICE_READ(device,reg) DEVICE_ACCESS(device,reg)
-#define DEVICE_PRINT(device,reg) \
- ErrorF("NV_"#device"_"#reg"=#%08lx\n",DEVICE_ACCESS(device,reg))
-#define DEVICE_DEF(device,mask,value) \
- SetBF(NV_##device##_##mask,NV_##device##_##mask##_##value)
-#define DEVICE_VALUE(device,mask,value) SetBF(NV_##device##_##mask,value)
-#define DEVICE_MASK(device,mask) MASKEXPAND(NV_##device##_##mask)
-
-#define PDAC_Write(reg,value) DEVICE_WRITE(PDAC,reg,value)
-#define PDAC_Read(reg) DEVICE_READ(PDAC,reg)
-#define PDAC_Print(reg) DEVICE_PRINT(PDAC,reg)
-#define PDAC_Def(mask,value) DEVICE_DEF(PDAC,mask,value)
-#define PDAC_Val(mask,value) DEVICE_VALUE(PDAC,mask,value)
-#define PDAC_Mask(mask) DEVICE_MASK(PDAC,mask)
-
-#define PFB_Write(reg,value) DEVICE_WRITE(PFB,reg,value)
-#define PFB_Read(reg) DEVICE_READ(PFB,reg)
-#define PFB_Print(reg) DEVICE_PRINT(PFB,reg)
-#define PFB_Def(mask,value) DEVICE_DEF(PFB,mask,value)
-#define PFB_Val(mask,value) DEVICE_VALUE(PFB,mask,value)
-#define PFB_Mask(mask) DEVICE_MASK(PFB,mask)
-
-#define PRM_Write(reg,value) DEVICE_WRITE(PRM,reg,value)
-#define PRM_Read(reg) DEVICE_READ(PRM,reg)
-#define PRM_Print(reg) DEVICE_PRINT(PRM,reg)
-#define PRM_Def(mask,value) DEVICE_DEF(PRM,mask,value)
-#define PRM_Val(mask,value) DEVICE_VALUE(PRM,mask,value)
-#define PRM_Mask(mask) DEVICE_MASK(PRM,mask)
-
-#define PGRAPH_Write(reg,value) DEVICE_WRITE(PGRAPH,reg,value)
-#define PGRAPH_Read(reg) DEVICE_READ(PGRAPH,reg)
-#define PGRAPH_Print(reg) DEVICE_PRINT(PGRAPH,reg)
-#define PGRAPH_Def(mask,value) DEVICE_DEF(PGRAPH,mask,value)
-#define PGRAPH_Val(mask,value) DEVICE_VALUE(PGRAPH,mask,value)
-#define PGRAPH_Mask(mask) DEVICE_MASK(PGRAPH,mask)
-
-#define PDMA_Write(reg,value) DEVICE_WRITE(PDMA,reg,value)
-#define PDMA_Read(reg) DEVICE_READ(PDMA,reg)
-#define PDMA_Print(reg) DEVICE_PRINT(PDMA,reg)
-#define PDMA_Def(mask,value) DEVICE_DEF(PDMA,mask,value)
-#define PDMA_Val(mask,value) DEVICE_VALUE(PDMA,mask,value)
-#define PDMA_Mask(mask) DEVICE_MASK(PDMA,mask)
-
-#define PTIMER_Write(reg,value) DEVICE_WRITE(PTIMER,reg,value)
-#define PTIMER_Read(reg) DEVICE_READ(PTIMER,reg)
-#define PTIMER_Print(reg) DEVICE_PRINT(PTIMER,reg)
-#define PTIMER_Def(mask,value) DEVICE_DEF(PTIMER,mask,value)
-#define PTIMER_Val(mask,value) DEVICE_VALUE(PTIEMR,mask,value)
-#define PTIMER_Mask(mask) DEVICE_MASK(PTIMER,mask)
-
-#define PEXTDEV_Write(reg,value) DEVICE_WRITE(PEXTDEV,reg,value)
-#define PEXTDEV_Read(reg) DEVICE_READ(PEXTDEV,reg)
-#define PEXTDEV_Print(reg) DEVICE_PRINT(PEXTDEV,reg)
-#define PEXTDEV_Def(mask,value) DEVICE_DEF(PEXTDEV,mask,value)
-#define PEXTDEV_Val(mask,value) DEVICE_VALUE(PEXTDEV,mask,value)
-#define PEXTDEV_Mask(mask) DEVICE_MASK(PEXTDEV,mask)
-
-#define PFIFO_Write(reg,value) DEVICE_WRITE(PFIFO,reg,value)
-#define PFIFO_Read(reg) DEVICE_READ(PFIFO,reg)
-#define PFIFO_Print(reg) DEVICE_PRINT(PFIFO,reg)
-#define PFIFO_Def(mask,value) DEVICE_DEF(PFIFO,mask,value)
-#define PFIFO_Val(mask,value) DEVICE_VALUE(PFIFO,mask,value)
-#define PFIFO_Mask(mask) DEVICE_MASK(PFIFO,mask)
-
-#define PRAM_Write(reg,value) DEVICE_WRITE(PRAM,reg,value)
-#define PRAM_Read(reg) DEVICE_READ(PRAM,reg)
-#define PRAM_Print(reg) DEVICE_PRINT(PRAM,reg)
-#define PRAM_Def(mask,value) DEVICE_DEF(PRAM,mask,value)
-#define PRAM_Val(mask,value) DEVICE_VALUE(PRAM,mask,value)
-#define PRAM_Mask(mask) DEVICE_MASK(PRAM,mask)
-
-#define PRAMFC_Write(reg,value) DEVICE_WRITE(PRAMFC,reg,value)
-#define PRAMFC_Read(reg) DEVICE_READ(PRAMFC,reg)
-#define PRAMFC_Print(reg) DEVICE_PRINT(PRAMFC,reg)
-#define PRAMFC_Def(mask,value) DEVICE_DEF(PRAMFC,mask,value)
-#define PRAMFC_Val(mask,value) DEVICE_VALUE(PRAMFC,mask,value)
-#define PRAMFC_Mask(mask) DEVICE_MASK(PRAMFC,mask)
-
-#define PMC_Write(reg,value) DEVICE_WRITE(PMC,reg,value)
-#define PMC_Read(reg) DEVICE_READ(PMC,reg)
-#define PMC_Print(reg) DEVICE_PRINT(PMC,reg)
-#define PMC_Def(mask,value) DEVICE_DEF(PMC,mask,value)
-#define PMC_Val(mask,value) DEVICE_VALUE(PMC,mask,value)
-#define PMC_Mask(mask) DEVICE_MASK(PMC,mask)
-
-#define PMC_Write(reg,value) DEVICE_WRITE(PMC,reg,value)
-#define PMC_Read(reg) DEVICE_READ(PMC,reg)
-#define PMC_Print(reg) DEVICE_PRINT(PMC,reg)
-#define PMC_Def(mask,value) DEVICE_DEF(PMC,mask,value)
-#define PMC_Val(mask,value) DEVICE_VALUE(PMC,mask,value)
-#define PMC_Mask(mask) DEVICE_MASK(PMC,mask)
-
-
-#define PBUS_Write(reg,value) DEVICE_WRITE(PBUS,reg,value)
-#define PBUS_Read(reg) DEVICE_READ(PBUS,reg)
-#define PBUS_Print(reg) DEVICE_PRINT(PBUS,reg)
-#define PBUS_Def(mask,value) DEVICE_DEF(PBUS,mask,value)
-#define PBUS_Val(mask,value) DEVICE_VALUE(PBUS,mask,value)
-#define PBUS_Mask(mask) DEVICE_MASK(PBUS,mask)
-
-
-#define PRAMDAC_Write(reg,value) DEVICE_WRITE(PRAMDAC,reg,value)
-#define PRAMDAC_Read(reg) DEVICE_READ(PRAMDAC,reg)
-#define PRAMDAC_Print(reg) DEVICE_PRINT(PRAMDAC,reg)
-#define PRAMDAC_Def(mask,value) DEVICE_DEF(PRAMDAC,mask,value)
-#define PRAMDAC_Val(mask,value) DEVICE_VALUE(PRAMDAC,mask,value)
-#define PRAMDAC_Mask(mask) DEVICE_MASK(PRAMDAC,mask)
-
-
-#define PDAC_ReadExt(reg) \
- ((PDAC_Write(INDEX_LO,(NV_PDAC_EXT_##reg) & 0xff)),\
- (PDAC_Write(INDEX_HI,((NV_PDAC_EXT_##reg) >> 8) & 0xff)),\
- (PDAC_Read(INDEX_DATA)))
-
-#define PDAC_WriteExt(reg,value)\
- ((PDAC_Write(INDEX_LO,(NV_PDAC_EXT_##reg) & 0xff)),\
- (PDAC_Write(INDEX_HI,((NV_PDAC_EXT_##reg) >> 8) & 0xff)),\
- (PDAC_Write(INDEX_DATA,(value))))
-
-#define PCRTC_Def(mask,value) DEVICE_DEF(PCRTC,mask,value)
-#define PCRTC_Val(mask,value) DEVICE_VALUE(PCRTC,mask,value)
-#define PCRTC_Mask(mask) DEVICE_MASK(PCRTC,mask)
-
-
-/* These are the variables which actually point at the register blocks */
-extern volatile unsigned *nvPDACPort; /* Points to the DAC */
-extern volatile unsigned *nvPFBPort; /* Points to the Frame buffer */
-extern volatile unsigned *nvPRMPort; /* Points to real mode stuff */
-extern volatile unsigned *nvPGRAPHPort; /* Graphics unit */
-extern volatile unsigned *nvPDMAPort; /* DMA engine */
-extern volatile unsigned *nvPFIFOPort; /* FIFO registers */
-extern volatile unsigned *nvPTIMERPort; /* TIMER registers */
-extern volatile unsigned *nvPEXTDEVPort; /* EXTDEV registers */
-extern volatile unsigned *nvPRAMPort; /* Priviliged RAM registers */
-extern volatile unsigned *nvPRAMFCPort; /* Priviliged RAM (Fifo) */
-extern volatile unsigned *nvPRAMHTPort; /* Priviliged RAM (hash) */
-extern volatile unsigned *nvPMCPort; /* Priviliged RAM (hash) */
-extern volatile unsigned *nvCHAN0Port; /* User channel 0 */
-extern volatile unsigned *nvPRAMDACPort; /* Points to the RAMDAC */
-extern volatile unsigned *nvPRAMINPort; /* Privileges instance memory */
-extern volatile unsigned *nvPBUSPort; /* Priviled Bus */
-extern volatile unsigned *nvPNVMPort; /* Priviled Bus */
-extern volatile unsigned *dumb; /* FrameBuffer - hack!!!! */
-
-
-typedef enum {NV1,NV3,NV4,NV10,NumNVChips} NVChipType;
-
-NVChipType GetChipType(void);
-
-
-#endif /* __NVREG_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.1.5/src/nvvga.h new/xf86-video-nv-2.1.6/src/nvvga.h
--- old/xf86-video-nv-2.1.5/src/nvvga.h 2007-09-12 06:24:16.000000000 +0200
+++ new/xf86-video-nv-2.1.6/src/nvvga.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,80 +0,0 @@
-/*
- * Copyright 1996-1997 David J. McKay
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * DAVID J. MCKAY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef __NVVGA_H__
-#define __NVVGA_H__
-
-#include "riva_hw.h"
-
-#define PALETTE_SIZE 256
-
-#define NV_PDAC_CURSOR_SIZE 32
-#define NV_PDAC_CURSOR_PLANE_SIZE (NV_PDAC_CURSOR_SIZE*4)
-
-/* This is the structure for the NV1. It is not a VGA based core */
-
-typedef struct {
- unsigned char Nparam, Mparam, Oparam, Pparam;
- unsigned char NparamMPLL, MparamMPLL, OparamMPLL, PparamMPLL;
- unsigned char dacConfReg0;
- unsigned char dacConfReg1;
- unsigned char dacRgbPalCtrl;
- unsigned long confReg0;
- unsigned long green0; /* DPMS and sync polarity control */
- unsigned long memoryTrace;
- unsigned long startAddr; /* Where to start reading out from the buffer */
- /* All the following registers control the display */
- unsigned long prmConfig0; /* Controls if text mode on or off */
- unsigned long horFrontPorch; /* Front porch in pixels */
- unsigned long horSyncWidth; /* Sync Width in pixels */
- unsigned long horBackPorch; /* horizontal back porch in in pixels */
- unsigned long horDispWidth; /* Horizontal display width in pixels */
- unsigned long verFrontPorch; /* Vertical front porch in lines */
- unsigned long verSyncWidth; /* Vertical sync width in lines */
- unsigned long verBackPorch; /* Vertical back porch in lines */
- unsigned long verDispWidth; /* Vertical display width in lines */
- /* Hardware cursor registers */
- unsigned char cursorCtrl;
- unsigned char xHi,xLo,yHi,yLo;
- unsigned char colour1[3]; /* RGB values for cursor planes */
- unsigned char colour2[3];
- unsigned char colour3[3];
- unsigned char plane0[NV_PDAC_CURSOR_PLANE_SIZE];
- unsigned char plane1[NV_PDAC_CURSOR_PLANE_SIZE];
- unsigned char palette[PALETTE_SIZE][3];
-}NV1Registers;
-
-/*
- * Driver data structures.
- */
-typedef struct {
-/* vgaHWRec std; good old IBM VGA */
- int vgaValid; /* is the above state valid?? */
- NVChipType type; /* What the union holds */
-
- union {
- NV1Registers nv1;
- RIVA_HW_STATE RivaState;
- }regs;
-} vgaNVRec, *vgaNVPtr;
-
-#endif /* __NVVGA_H__ */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org