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 >