Mailinglist Archive: opensuse-commit (1426 mails)
| < Previous | Next > |
commit xorg-x11-driver-video
- From: root@xxxxxxxxxxxxxxx (h_root)
- Date: Thu, 29 Mar 2007 01:03:02 +0200
- Message-id: <20070328230302.E87E967817D@xxxxxxxxxxxxxxx>
Hello community,
here is the log from the commit of package xorg-x11-driver-video
checked in at Thu Mar 29 01:03:02 CEST 2007.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-03-21 12:03:11.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2007-03-28 23:44:49.000000000 +0200
@@ -1,0 +2,50 @@
+Wed Mar 28 23:42:30 CEST 2007 - sndirsch@xxxxxxx
+
+- updated "nvrandr12" driver to current git:
+ * G80: Use xf86CrtcScreenInit and xf86SetDesiredModes.
+ * G80: Improve output detection.
+ * Detect output status for paired outputs together and cache
+ status until the BlockHandler to avoid redundantly probing for
+ EDIDs or performing load detection.
+
+-------------------------------------------------------------------
+Wed Mar 28 07:17:59 CEST 2007 - sndirsch@xxxxxxx
+
+- updated nv driver to release 2.0.1:
+ * NVSync hangs in EnterVT, so don't call it there.
+ * Fix broken prototype.
+ * Fix warnings and bump to 2.0.1.
+ * REALLY bump to 2.0.1.
+- obsoletes xf86-video-nv-NVSync.diff
+- updated "nvrandr12" driver to current git:
+ * G80: Create output partners.
+ * Each pair of outputs shares an I2C rec. This will be used in
+ a future change for the detect and get_modes routines.
+ * Fix warnings.
+
+-------------------------------------------------------------------
+Tue Mar 27 21:56:13 CEST 2007 - sndirsch@xxxxxxx
+
+- update ati driver to release 6.6.191:
+ * This is pre-release of the ATI driver aimed at 7.3. It doesn't
+ contain randr1.2 support it does however contain a major
+ re-write of the output mappings from what was known as Alex's
+ superpatch. Please logs all regressions into bugzilla so we can
+ fix them before the 6.7 release.
+- obsoletes rn50_pixel_clock_limit.patch
+- disabled radeon-xrandr-dotclock.diff for now (Bug #135749)
+- disabled radeon_dell.diff (obsolete?) (Bug #138458)
+- disabled "radeonrandr12" driver for now
+
+-------------------------------------------------------------------
+Tue Mar 27 16:28:08 CEST 2007 - sndirsch@xxxxxxx
+
+- intel driver release 1.9.93 (2.0 RC3)
+ * Significant differences over the previous RC include fixes for
+ larger 915-generation LVDS panels, fixes for rotation on the
+ 965, improved TV format selection, some SDVO output enabling
+ fixes, I2C timing fixes to improve the chances of DDC, and
+ cursor behavior fixes with RandR.
+- obsoletes xf86-video-intel-[1-5].diff
+
+-----------------------------------------------------------
Old:
----
rn50_pixel_clock_limit.patch
xf86-video-ati-6.6.3.tar.bz2
xf86-video-intel-1.9.92.tar.bz2
xf86-video-intel-1.diff
xf86-video-intel-2.diff
xf86-video-intel-3.diff
xf86-video-intel-4.diff
xf86-video-intel-5.diff
xf86-video-nv-2.0.0.tar.bz2
xf86-video-nv-NVSync.diff
xf86-video-nv.randr12-20070318.tar.bz2
New:
----
xf86-video-ati-6.6.191.diff
xf86-video-ati-6.6.191.tar.bz2
xf86-video-intel-1.9.93.tar.bz2
xf86-video-nv-2.0.1.tar.bz2
xf86-video-nv.randr12-20070328.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.n13001/_old 2007-03-29 01:02:03.000000000 +0200
+++ /var/tmp/diff_new_pack.n13001/_new 2007-03-29 01:02:03.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.2
-Release: 71
+Release: 74
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -24,7 +24,7 @@
Source0: xf86-video-apm-X11R7.1-1.1.1.tar.bz2
Source1: xf86-video-ark-X11R7.1-0.6.0.tar.bz2
Source2: xf86-video-ast-X11R7.1-0.81.0.tar.bz2
-Source3: xf86-video-ati-6.6.3.tar.bz2
+Source3: xf86-video-ati-6.6.191.tar.bz2
Source4: xf86-video-chips-X11R7.1-1.1.1.tar.bz2
Source5: xf86-video-cirrus-X11R7.1-1.1.0.tar.bz2
Source6: xf86-video-cyrix-X11R7.1-1.1.0.tar.bz2
@@ -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.2.tar.bz2
-Source18: xf86-video-nv-2.0.0.tar.bz2
+Source18: xf86-video-nv-2.0.1.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
@@ -66,15 +66,14 @@
Source42: xf86-video-voodoo-1.1.1.tar.bz2
Source43: xf86-video-impact-0.2.0.tar.bz2
Source44: HALlib-4.1.tar.gz
-Source45: xf86-video-intel-1.9.92.tar.bz2
+Source45: xf86-video-intel-1.9.93.tar.bz2
Source46: xf86-video-ati.randr12-20070318.tar.bz2
-Source47: xf86-video-nv.randr12-20070318.tar.bz2
+Source47: xf86-video-nv.randr12-20070328.tar.bz2
Source48: xf86-video-mga.randr12-20070318.tar.bz2
Patch: xf86-video-intel.diff
Patch1: radeon-xrandr-dotclock.diff
Patch2: radeon_dell.diff
Patch3: ps_nv.diff
-Patch4: xf86-video-nv-NVSync.diff
Patch5: mga-g200se_pci-fix.diff
Patch9: xf86-video-sunffb.diff
Patch10: xf86-video-tdfx.diff
@@ -83,16 +82,11 @@
Patch14: xf86-video-rendition.diff
Patch16: xf86-video-nsc.diff
Patch18: radeon-vbios-ppc.diff
-Patch26: rn50_pixel_clock_limit.patch
Patch27: xf86-video-ati-mergedfb-dpi.diff
Patch28: xf86-video-ati.randr12.diff
Patch29: xf86-video-nv.randr12.diff
Patch30: xf86-video-mga.randr12.diff
-Patch31: xf86-video-intel-1.diff
-Patch32: xf86-video-intel-2.diff
-Patch33: xf86-video-intel-3.diff
-Patch34: xf86-video-intel-4.diff
-Patch35: xf86-video-intel-5.diff
+Patch31: xf86-video-ati-6.6.191.diff
%description
This package contains X.Org video drivers.
@@ -112,22 +106,18 @@
%patch30
pushd xf86-video-intel-*
%patch -p0
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
-%patch34 -p1
-%patch35 -p1
popd
pushd xf86-video-ati-*/src
-%patch1 -p1
-%patch2 -p0
+### disabled for now (Bug #135749)
+#%patch1 -p1
+### disabled (obsolete?) (Bug #138458)
+#%patch2 -p0
%patch18 -p1
-%patch26 -p2
%patch27 -p0
+%patch31 -p0
popd
pushd xf86-video-nv-*/src
%patch3 -p6
-%patch4 -p2
popd
pushd xf86-video-mga-*/src
tar xzf %{SOURCE44}
@@ -159,6 +149,7 @@
-e xf86-video-nv \
-e randr12 \
); do
+ test "$dir" == "xf86-video-ati.randr12" && continue
pushd $dir
case $dir in
xf86-video-mga-* | \
@@ -180,6 +171,7 @@
-e xf86-video-nv \
-e randr12
); do
+ test "$dir" == "xf86-video-ati.randr12" && continue
make -C $dir install DESTDIR=$RPM_BUILD_ROOT
done
ln -snf nv_drv.so \
@@ -264,6 +256,44 @@
%{_mandir}/man4/*
%changelog
+* Wed Mar 28 2007 - sndirsch@xxxxxxx
+- updated "nvrandr12" driver to current git:
+ * G80: Use xf86CrtcScreenInit and xf86SetDesiredModes.
+ * G80: Improve output detection.
+ * Detect output status for paired outputs together and cache
+ status until the BlockHandler to avoid redundantly probing for
+ EDIDs or performing load detection.
+* Wed Mar 28 2007 - sndirsch@xxxxxxx
+- updated nv driver to release 2.0.1:
+ * NVSync hangs in EnterVT, so don't call it there.
+ * Fix broken prototype.
+ * Fix warnings and bump to 2.0.1.
+ * REALLY bump to 2.0.1.
+- obsoletes xf86-video-nv-NVSync.diff
+- updated "nvrandr12" driver to current git:
+ * G80: Create output partners.
+ * Each pair of outputs shares an I2C rec. This will be used in
+ a future change for the detect and get_modes routines.
+ * Fix warnings.
+* Tue Mar 27 2007 - sndirsch@xxxxxxx
+- update ati driver to release 6.6.191:
+ * This is pre-release of the ATI driver aimed at 7.3. It doesn't
+ contain randr1.2 support it does however contain a major
+ re-write of the output mappings from what was known as Alex's
+ superpatch. Please logs all regressions into bugzilla so we can
+ fix them before the 6.7 release.
+- obsoletes rn50_pixel_clock_limit.patch
+- disabled radeon-xrandr-dotclock.diff for now (Bug #135749)
+- disabled radeon_dell.diff (obsolete?) (Bug #138458)
+- disabled "radeonrandr12" driver for now
+* Tue Mar 27 2007 - sndirsch@xxxxxxx
+- intel driver release 1.9.93 (2.0 RC3)
+ * Significant differences over the previous RC include fixes for
+ larger 915-generation LVDS panels, fixes for rotation on the
+ 965, improved TV format selection, some SDVO output enabling
+ fixes, I2C timing fixes to improve the chances of DDC, and
+ cursor behavior fixes with RandR.
+- obsoletes xf86-video-intel-[1-5].diff
* Wed Mar 21 2007 - sndirsch@xxxxxxx
- added a bunch of intel driver patches (xf86-video-intel-[1-5].diff)
from git (master branch):
++++++ xf86-video-ati-6.6.191.diff ++++++
--- radeon_driver.c.orig 2007-03-27 23:44:41.880474373 +0200
+++ radeon_driver.c 2007-03-27 23:45:47.299562850 +0200
@@ -6333,9 +6333,8 @@
ScrnInfoPtr pScrn0 = NULL;
#if RADEON_DEBUG
- ErrorF("%-12.12s %7.2f %4d %4d %4d %4d %4d %4d %4d %4d (%d,%d)",
+ ErrorF("%-12.12s <dot_clock> %4d %4d %4d %4d %4d %4d %4d %4d (%d,%d)",
crtc1->name,
- dot_clock,
crtc1->HDisplay,
crtc1->HSyncStart,
++++++ xf86-video-ati-6.6.3.tar.bz2 -> xf86-video-ati-6.6.191.tar.bz2 ++++++
++++ 63313 lines of diff (skipped)
++++++ xf86-video-intel-1.9.92.tar.bz2 -> xf86-video-intel-1.9.93.tar.bz2 ++++++
++++ 58257 lines of diff (skipped)
++++++ xf86-video-nv-2.0.0.tar.bz2 -> xf86-video-nv-2.0.1.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.0/ChangeLog new/xf86-video-nv-2.0.1/ChangeLog
--- old/xf86-video-nv-2.0.0/ChangeLog 2007-03-19 04:52:08.000000000 +0100
+++ new/xf86-video-nv-2.0.1/ChangeLog 2007-03-28 01:05:56.000000000 +0200
@@ -1,3 +1,35 @@
+commit 4d929d383abe064b5334847eb466321a6bf30999
+Author: Aaron Plattner <aplattner@xxxxxxxxxx>
+Date: Tue Mar 27 15:56:52 2007 -0700
+
+ REALLY bump to 2.0.1.
+
+ I need more caffeine, or something.
+
+commit 0953f081d1592b123dc27fb82d1cfecca079d5de
+Author: Aaron Plattner <aplattner@xxxxxxxxxx>
+Date: Tue Mar 27 15:46:38 2007 -0700
+
+ Fix warnings and bump to 2.0.1.
+
+commit 7c2a31dec3d04111eaee5292c156753c316d52a9
+Author: Aaron Plattner <aplattner@xxxxxxxxxx>
+Date: Tue Mar 27 14:45:17 2007 -0700
+
+ Fix broken prototype.
+
+commit 16f51977d49e52079754b62f4a13754e56da1c9c
+Author: Aaron Plattner <aplattner@xxxxxxxxxx>
+Date: Mon Mar 19 12:00:36 2007 -0700
+
+ NVSync hangs in EnterVT, so don't call it there.
+
+commit ac84f228de689c6cb85eae827ec2443fabe67786
+Author: Aaron Plattner <aplattner@xxxxxxxxxx>
+Date: Sun Mar 18 20:53:46 2007 -0700
+
+ Bump to 2.0.0.
+
commit 4d15dd2c490cce739f2eb1474019c723da8ce32b
Author: Aaron Plattner <aplattner@xxxxxxxxxx>
Date: Fri Mar 16 16:14:00 2007 -0700
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.0/configure new/xf86-video-nv-2.0.1/configure
--- old/xf86-video-nv-2.0.0/configure 2007-03-19 04:51:53.000000000 +0100
+++ new/xf86-video-nv-2.0.1/configure 2007-03-28 01:03:55.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.0.0.
+# Generated by GNU Autoconf 2.61 for xf86-video-nv 2.0.1.
#
# 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.0.0'
-PACKAGE_STRING='xf86-video-nv 2.0.0'
+PACKAGE_VERSION='2.0.1'
+PACKAGE_STRING='xf86-video-nv 2.0.1'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -1414,7 +1414,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.0.0 to adapt to many kinds of systems.
+\`configure' configures xf86-video-nv 2.0.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1484,7 +1484,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-video-nv 2.0.0:";;
+ short | recursive ) echo "Configuration of xf86-video-nv 2.0.1:";;
esac
cat <<\_ACEOF
@@ -1597,7 +1597,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-video-nv configure 2.0.0
+xf86-video-nv configure 2.0.1
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1611,7 +1611,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.0.0, which was
+It was created by xf86-video-nv $as_me 2.0.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2286,7 +2286,7 @@
# Define the identity of the package.
PACKAGE='xf86-video-nv'
- VERSION='2.0.0'
+ VERSION='2.0.1'
cat >>confdefs.h <<_ACEOF
@@ -21465,7 +21465,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.0.0, which was
+This file was extended by xf86-video-nv $as_me 2.0.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21518,7 +21518,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-xf86-video-nv config.status 2.0.0
+xf86-video-nv config.status 2.0.1
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.0.0/configure.ac new/xf86-video-nv-2.0.1/configure.ac
--- old/xf86-video-nv-2.0.0/configure.ac 2007-03-19 04:51:44.000000000 +0100
+++ new/xf86-video-nv-2.0.1/configure.ac 2007-03-28 01:01:07.000000000 +0200
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-nv],
- 2.0.0,
+ 2.0.1,
[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.0.0/src/g80_ddc.c new/xf86-video-nv-2.0.1/src/g80_ddc.c
--- old/xf86-video-nv-2.0.0/src/g80_ddc.c 2007-03-16 02:28:05.000000000 +0100
+++ new/xf86-video-nv-2.0.1/src/g80_ddc.c 2007-03-28 01:01:07.000000000 +0200
@@ -31,6 +31,7 @@
#include "g80_type.h"
#include "g80_ddc.h"
+#include "g80_display.h"
static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv)
{
@@ -58,7 +59,7 @@
entries = table2[2];
for(i = 0; i < entries; i++) {
- CARD32 type, port;
+ int type, port;
ORNum or;
b = *(CARD32*)&table2[headerSize + 8*i];
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.0/src/g80_display.h new/xf86-video-nv-2.0.1/src/g80_display.h
--- old/xf86-video-nv-2.0.0/src/g80_display.h 2007-03-16 02:28:05.000000000 +0100
+++ new/xf86-video-nv-2.0.1/src/g80_display.h 2007-03-28 01:01:07.000000000 +0200
@@ -1,5 +1,5 @@
Bool G80LoadDetect(ScrnInfoPtr);
-Bool G80DispLoadDetect(ScrnInfoPtr, ORNum or);
+Bool G80DispDetectLoad(ScrnInfoPtr, ORNum or);
Bool G80DispInit(ScrnInfoPtr);
Bool G80DispSetMode(ScrnInfoPtr, DisplayModePtr);
void G80DispShutdown(ScrnInfoPtr);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv-2.0.0/src/nv_driver.c new/xf86-video-nv-2.0.1/src/nv_driver.c
--- old/xf86-video-nv-2.0.0/src/nv_driver.c 2007-03-17 00:12:13.000000000 +0100
+++ new/xf86-video-nv-2.0.1/src/nv_driver.c 2007-03-28 01:01:07.000000000 +0200
@@ -816,7 +816,10 @@
Bool
NVSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
{
- return NVModeInit(xf86Screens[scrnIndex], mode);
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+
+ NVSync(pScrn);
+ return NVModeInit(pScrn, mode);
}
/*
@@ -1736,8 +1739,6 @@
NVPtr pNv = NVPTR(pScrn);
NVRegPtr nvReg;
- NVSync(pScrn);
-
/* Initialise the ModeReg values */
if (!vgaHWInit(pScrn, mode))
return FALSE;
++++++ xf86-video-nv.randr12-20070318.tar.bz2 -> xf86-video-nv.randr12-20070328.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_dac.c new/xf86-video-nv.randr12/src/g80_dac.c
--- old/xf86-video-nv.randr12/src/g80_dac.c 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_dac.c 2007-03-28 23:39:59.000000000 +0200
@@ -76,6 +76,19 @@
static xf86OutputStatus
G80DacDetect(xf86OutputPtr output)
{
+ G80OutputPrivPtr pPriv = output->driver_private;
+
+ /* Assume physical status isn't going to change before the BlockHandler */
+ if(pPriv->cached_status != XF86OutputStatusUnknown)
+ return pPriv->cached_status;
+
+ G80OutputPartnersDetect(output, pPriv->partner, pPriv->i2c);
+ return pPriv->cached_status;
+}
+
+Bool
+G80DacLoadDetect(xf86OutputPtr output)
+{
ScrnInfoPtr pScrn = output->scrn;
G80Ptr pNv = G80PTR(pScrn);
G80OutputPrivPtr pPriv = output->driver_private;
@@ -99,11 +112,11 @@
// Use this DAC if all three channels show load.
if((load & 0x38000000) == 0x38000000) {
xf86ErrorF("found one!\n");
- return XF86OutputStatusConnected;
+ return TRUE;
}
xf86ErrorF("nothing.\n");
- return XF86OutputStatusDisconnected;
+ return FALSE;
}
static void
@@ -130,7 +143,7 @@
};
xf86OutputPtr
-G80CreateDac(ScrnInfoPtr pScrn, ORNum or, int i2cPort)
+G80CreateDac(ScrnInfoPtr pScrn, ORNum or)
{
G80OutputPrivPtr pPriv = xnfcalloc(sizeof(*pPriv), 1);
xf86OutputPtr output;
@@ -144,13 +157,11 @@
pPriv->type = DAC;
pPriv->or = or;
+ pPriv->cached_status = XF86OutputStatusUnknown;
pPriv->set_pclk = G80DacSetPClk;
output->driver_private = pPriv;
output->interlaceAllowed = TRUE;
output->doubleScanAllowed = TRUE;
- /* Create an I2C object */
- G80I2CInit(output, i2cPort);
-
return output;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_display.c new/xf86-video-nv.randr12/src/g80_display.c
--- old/xf86-video-nv.randr12/src/g80_display.c 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_display.c 2007-03-28 23:39:59.000000000 +0200
@@ -322,7 +322,6 @@
DisplayModePtr adjusted_mode, int x, int y)
{
ScrnInfoPtr pScrn = crtc->scrn;
- G80Ptr pNv = G80PTR(pScrn);
G80CrtcPrivPtr pPriv = crtc->driver_private;
const int HDisplay = mode->HDisplay, VDisplay = mode->VDisplay;
const int headOff = 0x400 * G80CrtcGetHead(crtc);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_driver.c new/xf86-video-nv.randr12/src/g80_driver.c
--- old/xf86-video-nv.randr12/src/g80_driver.c 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_driver.c 2007-03-28 23:39:59.000000000 +0200
@@ -30,6 +30,7 @@
#include <xf86_OSproc.h>
#include <xf86Resources.h>
+#include <xf86RandR12.h>
#include <mipointer.h>
#include <mibstore.h>
#include <micmap.h>
@@ -44,6 +45,7 @@
#include "g80_display.h"
#include "g80_ddc.h"
#include "g80_dma.h"
+#include "g80_output.h"
#include "g80_xaa.h"
#define G80_REG_SIZE (1024 * 1024 * 16)
@@ -119,6 +121,7 @@
pScrn->driverPrivate = NULL;
}
+static Bool
G80ResizeScreen(ScrnInfoPtr pScrn, int width, int height)
{
G80Ptr pNv = G80PTR(pScrn);
@@ -161,7 +164,6 @@
PCITAG pcitag;
MessageType from;
Bool primary;
- char *s;
const rgb zeros = {0, 0, 0};
const Gamma gzeros = {0.0, 0.0, 0.0};
CARD32 tmp;
@@ -395,7 +397,7 @@
static Bool
AcquireDisplay(ScrnInfoPtr pScrn)
{
- G80Ptr pNv = G80PTR(pScrn);
+// G80Ptr pNv = G80PTR(pScrn);
if(!G80DispInit(pScrn))
return FALSE;
@@ -406,8 +408,7 @@
return FALSE;
G80DispDPMSSet(pScrn, DPMSModeOn, 0);
#endif
- ErrorF("TODO: Set the current config, rather than using xf86SetSingleMode\n");
- xf86SetSingleMode(pScrn, pScrn->currentMode, RR_Rotate_0);
+ xf86SetDesiredModes(pScrn);
return TRUE;
}
@@ -466,7 +467,6 @@
pScrn->vtSema = FALSE;
pScreen->CloseScreen = pNv->CloseScreen;
pScreen->BlockHandler = pNv->BlockHandler;
- pScreen->CreateScreenResources = pNv->CreateScreenResources;
return (*pScreen->CloseScreen)(scrnIndex, pScreen);
}
@@ -480,6 +480,8 @@
if(pNv->DMAKickoffCallback)
(*pNv->DMAKickoffCallback)(pScrnInfo);
+ G80OutputResetCachedStatus(pScrnInfo);
+
pScreen->BlockHandler = pNv->BlockHandler;
(*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
pScreen->BlockHandler = G80BlockHandler;
@@ -497,21 +499,6 @@
return FALSE;
}
-static Bool
-G80CreateScreenResources(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- G80Ptr pNv = G80PTR(pScrn);
-
- pScreen->CreateScreenResources = pNv->CreateScreenResources;
- if(!(*pScreen->CreateScreenResources)(pScreen))
- return FALSE;
-
- if(!xf86RandR12CreateScreenResources(pScreen))
- return FALSE;
- return TRUE;
- }
-
static void
G80InitHW(ScrnInfoPtr pScrn)
{
@@ -846,19 +833,14 @@
pScreen->SaveScreen = G80SaveScreen;
- pNv->CreateScreenResources = pScreen->CreateScreenResources;
- pScreen->CreateScreenResources = G80CreateScreenResources;
-
pNv->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = G80CloseScreen;
pNv->BlockHandler = pScreen->BlockHandler;
pScreen->BlockHandler = G80BlockHandler;
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "RandR 1.2 enabled. Please ignore the following RandR disabled message.\n");
- xf86DisableRandR();
- xf86RandR12Init(pScreen);
- xf86RandR12SetRotations(pScreen, RR_Rotate_0);
+ if(!xf86CrtcScreenInit(pScreen))
+ return FALSE;
return TRUE;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_output.c new/xf86-video-nv.randr12/src/g80_output.c
--- old/xf86-video-nv.randr12/src/g80_output.c 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_output.c 2007-03-28 23:39:59.000000000 +0200
@@ -127,18 +127,17 @@
*data = !!(val & 2);
}
-Bool
-G80I2CInit(xf86OutputPtr output, const int port)
+static I2CBusPtr
+G80I2CInit(ScrnInfoPtr pScrn, const char *name, const int port)
{
- G80OutputPrivPtr pPriv = output->driver_private;
I2CBusPtr i2c;
/* Allocate the I2C bus structure */
i2c = xf86CreateI2CBusRec();
- if(!i2c) return FALSE;
+ if(!i2c) return NULL;
- i2c->BusName = output->name;
- i2c->scrnIndex = output->scrn->scrnIndex;
+ i2c->BusName = strdup(name);
+ i2c->scrnIndex = pScrn->scrnIndex;
i2c->I2CPutBits = G80_I2CPutBits;
i2c->I2CGetBits = G80_I2CGetBits;
i2c->ByteTimeout = 2200; /* VESA DDC spec 3 p. 43 (+10 %) */
@@ -149,11 +148,10 @@
i2c->DriverPrivate.val = port;
if(xf86I2CBusInit(i2c)) {
- pPriv->i2c = i2c;
- return TRUE;
+ return i2c;
} else {
xfree(i2c);
- return FALSE;
+ return NULL;
}
}
@@ -190,26 +188,21 @@
{
}
-DisplayModePtr
-G80OutputGetDDCModes(xf86OutputPtr output)
+static xf86MonPtr
+ProbeDDC(I2CBusPtr i2c)
{
- ScrnInfoPtr pScrn = output->scrn;
+ ScrnInfoPtr pScrn = xf86Screens[i2c->scrnIndex];
G80Ptr pNv = G80PTR(pScrn);
- G80OutputPrivPtr pPriv = output->driver_private;
- I2CBusPtr i2c = pPriv->i2c;
xf86MonPtr monInfo = NULL;
- DisplayModePtr modes;
const int bus = i2c->DriverPrivate.val, off = bus * 0x18;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Probing for EDID on I2C bus %i...\n", bus);
pNv->reg[(0x0000E138+off)/4] = 7;
- monInfo = xf86OutputGetEDID(output, i2c);
+ /* Should probably use xf86OutputGetEDID here */
+ monInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, i2c);
pNv->reg[(0x0000E138+off)/4] = 3;
- xf86OutputSetEDID(output, monInfo);
- modes = xf86OutputGetEDIDModes(output);
-
if(monInfo) {
xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
"DDC detected a %s:\n", monInfo->features.input_type ?
@@ -219,7 +212,67 @@
xf86DrvMsg(pScrn->scrnIndex, X_INFO, " ... none found\n");
}
- return modes;
+ return monInfo;
+}
+
+/*
+ * Read an EDID from the i2c port. Perform load detection on the DAC (if
+ * present) to see if the display is connected via VGA. Sets the cached status
+ * of both outputs. The status is marked dirty again in the BlockHandler.
+ */
+void G80OutputPartnersDetect(xf86OutputPtr dac, xf86OutputPtr sor, I2CBusPtr i2c)
+{
+ xf86MonPtr monInfo = ProbeDDC(i2c);
+ xf86OutputPtr connected = NULL;
+ Bool load = dac && G80DacLoadDetect(dac);
+
+ if(dac) {
+ G80OutputPrivPtr pPriv = dac->driver_private;
+
+ if(load) {
+ pPriv->cached_status = XF86OutputStatusConnected;
+ connected = dac;
+ } else {
+ pPriv->cached_status = XF86OutputStatusDisconnected;
+ }
+ }
+
+ if(sor) {
+ G80OutputPrivPtr pPriv = sor->driver_private;
+
+ if(monInfo && !load) {
+ pPriv->cached_status = XF86OutputStatusConnected;
+ connected = sor;
+ } else {
+ pPriv->cached_status = XF86OutputStatusDisconnected;
+ }
+ }
+
+ if(connected)
+ xf86OutputSetEDID(connected, monInfo);
+}
+
+/*
+ * Reset the cached output status for all outputs. Called from G80BlockHandler.
+ */
+void
+G80OutputResetCachedStatus(ScrnInfoPtr pScrn)
+{
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
+ int i;
+
+ for(i = 0; i < xf86_config->num_output; i++) {
+ G80OutputPrivPtr pPriv = xf86_config->output[i]->driver_private;
+ pPriv->cached_status = XF86OutputStatusUnknown;
+ }
+}
+
+DisplayModePtr
+G80OutputGetDDCModes(xf86OutputPtr output)
+{
+ /* The EDID is read as part of the detect step */
+ output->funcs->detect(output);
+ return xf86OutputGetEDIDModes(output);
}
void
@@ -227,7 +280,10 @@
{
G80OutputPrivPtr pPriv = output->driver_private;
- xf86DestroyI2CBusRec(pPriv->i2c, TRUE, TRUE);
+ if(pPriv->partner)
+ ((G80OutputPrivPtr)pPriv->partner->driver_private)->partner = NULL;
+ else
+ xf86DestroyI2CBusRec(pPriv->i2c, TRUE, TRUE);
pPriv->i2c = NULL;
}
@@ -236,23 +292,52 @@
{
G80Ptr pNv = G80PTR(pScrn);
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
- int i, count = 0;
+ int i;
if(!G80ReadPortMapping(pScrn->scrnIndex, pNv))
return FALSE;
/* For each DDC port, create an output for the attached ORs */
for(i = 0; i < 4; i++) {
+ xf86OutputPtr dac = NULL, sor = NULL;
+ I2CBusPtr i2c;
+ char i2cName[16];
+
+ if(pNv->i2cMap[i].dac == -1 && pNv->i2cMap[i].sor == -1)
+ /* No outputs on this port */
+ continue;
+
+ snprintf(i2cName, sizeof(i2cName), "I2C%i", i);
+ i2c = G80I2CInit(pScrn, i2cName, i);
+ if(!i2c) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Failed to initialize I2C for port %i.\n",
+ i);
+ continue;
+ }
+
if(pNv->i2cMap[i].dac != -1)
- G80CreateDac(pScrn, pNv->i2cMap[i].dac, i);
+ dac = G80CreateDac(pScrn, pNv->i2cMap[i].dac);
if(pNv->i2cMap[i].sor != -1)
- G80CreateSor(pScrn, pNv->i2cMap[i].sor, i);
+ sor = G80CreateSor(pScrn, pNv->i2cMap[i].sor);
+
+ if(dac) {
+ G80OutputPrivPtr pPriv = dac->driver_private;
+
+ pPriv->partner = sor;
+ pPriv->i2c = i2c;
+ }
+ if(sor) {
+ G80OutputPrivPtr pPriv = sor->driver_private;
+
+ pPriv->partner = dac;
+ pPriv->i2c = i2c;
+ }
}
/* For each output, set the crtc and clone masks */
for(i = 0; i < xf86_config->num_output; i++) {
xf86OutputPtr output = xf86_config->output[i];
- G80OutputPrivPtr pPriv = output->driver_private;
/* Any output can connect to any head */
output->possible_crtcs = 0x3;
@@ -261,4 +346,3 @@
return TRUE;
}
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_output.h new/xf86-video-nv.randr12/src/g80_output.h
--- old/xf86-video-nv.randr12/src/g80_output.h 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_output.h 2007-03-28 23:39:59.000000000 +0200
@@ -2,23 +2,28 @@
ORType type;
ORNum or;
+ xf86OutputPtr partner;
I2CBusPtr i2c;
+ xf86OutputStatus cached_status;
+
void (*set_pclk)(xf86OutputPtr, int pclk);
} G80OutputPrivRec, *G80OutputPrivPtr;
-Bool G80I2CInit(xf86OutputPtr, const int port);
void G80OutputSetPClk(xf86OutputPtr, int pclk);
int G80OutputModeValid(xf86OutputPtr, DisplayModePtr);
Bool G80OutputModeFixup(xf86OutputPtr, DisplayModePtr mode, DisplayModePtr adjusted_mode);
void G80OutputPrepare(xf86OutputPtr);
void G80OutputCommit(xf86OutputPtr);
+void G80OutputPartnersDetect(xf86OutputPtr dac, xf86OutputPtr sor, I2CBusPtr i2c);
+void G80OutputResetCachedStatus(ScrnInfoPtr);
DisplayModePtr G80OutputGetDDCModes(xf86OutputPtr);
void G80OutputDestroy(xf86OutputPtr);
Bool G80CreateOutputs(ScrnInfoPtr);
/* g80_dac.c */
-xf86OutputPtr G80CreateDac(ScrnInfoPtr, ORNum, int i2cPort);
+xf86OutputPtr G80CreateDac(ScrnInfoPtr, ORNum);
+Bool G80DacLoadDetect(xf86OutputPtr);
/* g80_sor.c */
-xf86OutputPtr G80CreateSor(ScrnInfoPtr, ORNum, int i2cPort);
+xf86OutputPtr G80CreateSor(ScrnInfoPtr, ORNum);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_sor.c new/xf86-video-nv.randr12/src/g80_sor.c
--- old/xf86-video-nv.randr12/src/g80_sor.c 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_sor.c 2007-03-28 23:39:59.000000000 +0200
@@ -25,8 +25,6 @@
#include "config.h"
#endif
-#include <X11/Xatom.h>
-
#include "g80_type.h"
#include "g80_display.h"
#include "g80_output.h"
@@ -74,20 +72,15 @@
static xf86OutputStatus
G80SorDetect(xf86OutputPtr output)
{
- return XF86OutputStatusUnknown;
-#if 0
- DisplayModePtr modes = output->funcs->get_modes(output);
- xf86OutputStatus status;
-
- if(modes)
- status = XF86OutputStatusConnected;
- else
- status = XF86OutputStatusDisconnected;
- xfree(modes);
+ G80OutputPrivPtr pPriv = output->driver_private;
- return status;
-#endif
+ /* Assume physical status isn't going to change before the BlockHandler */
+ if(pPriv->cached_status != XF86OutputStatusUnknown)
+ return pPriv->cached_status;
+
+ G80OutputPartnersDetect(pPriv->partner, output, pPriv->i2c);
+ return pPriv->cached_status;
}
static void
@@ -114,7 +107,7 @@
};
xf86OutputPtr
-G80CreateSor(ScrnInfoPtr pScrn, ORNum or, int i2cPort)
+G80CreateSor(ScrnInfoPtr pScrn, ORNum or)
{
G80OutputPrivPtr pPriv = xnfcalloc(sizeof(*pPriv), 1);
xf86OutputPtr output;
@@ -128,13 +121,11 @@
pPriv->type = SOR;
pPriv->or = or;
+ pPriv->cached_status = XF86OutputStatusUnknown;
pPriv->set_pclk = G80SorSetPClk;
output->driver_private = pPriv;
output->interlaceAllowed = TRUE;
output->doubleScanAllowed = TRUE;
- /* Create an I2C object */
- G80I2CInit(output, i2cPort);
-
return output;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-nv.randr12/src/g80_type.h new/xf86-video-nv.randr12/src/g80_type.h
--- old/xf86-video-nv.randr12/src/g80_type.h 2007-03-18 11:40:41.000000000 +0100
+++ new/xf86-video-nv.randr12/src/g80_type.h 2007-03-28 23:39:59.000000000 +0200
@@ -64,7 +64,6 @@
CARD32 * dmaBase;
void (*DMAKickoffCallback)(ScrnInfoPtr);
- CreateScreenResourcesProcPtr CreateScreenResources;
CloseScreenProcPtr CloseScreen;
ScreenBlockHandlerProcPtr BlockHandler;
} G80Rec, *G80Ptr;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx
| < Previous | Next > |