[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-ati: Changes to 'debian-experimental'



 ChangeLog            |  330 +++++++++++++++++++++++++++++++++++++++++++++++++++
 configure            |   20 +--
 configure.ac         |    2 
 debian/changelog     |   10 +
 man/radeon.man       |    6 
 src/radeon.h         |    3 
 src/radeon_display.c |    7 -
 src/radeon_driver.c  |   10 -
 src/radeon_modes.c   |  181 ++-------------------------
 src/radeon_output.c  |  146 ++++++++++++++--------
 src/radeon_probe.c   |    2 
 src/radeon_probe.h   |    9 +
 src/radeon_reg.h     |    6 
 src/radeon_video.c   |   27 ++++
 src/radeon_vip.c     |    7 +
 15 files changed, 522 insertions(+), 244 deletions(-)

New commits:
commit d9190780a32e9dcbd2384ce40d952b2a98d5e733
Author: Brice Goglin <bgoglin@debian.org>
Date:   Mon Sep 24 08:05:26 2007 +0200

    New upstream release candidate

diff --git a/ChangeLog b/ChangeLog
index 7a0e0de..0872b77 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,333 @@
+commit 22cccb99d762567757d3fd38795f71e943f1faf9
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Sep 24 00:10:01 2007 -0400
+
+    bump for RC release
+
+commit fad9e7b00de051f632000eb2304ac23a524f7c8e
+Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
+Date:   Sun Sep 23 23:43:26 2007 -0400
+
+    RADEON: Rework LVDS mode validation
+    
+    The old validation code wasn't really well suited to randr.
+    This fixes several issues:
+    - missing display size for panels with edid
+    - broken duplicate modes
+
+commit bf9674b9df351108e069d037ec10869a4154a881
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sun Sep 23 15:01:34 2007 -0400
+
+    RADEON: properly set default RMX types
+
+commit b27135bce8b41d69290613b440a338b0a7fe0200
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sun Sep 23 14:44:38 2007 -0400
+
+    RADEON: fix up LVDS handling for r3xx and newer
+
+commit d5cf268be2c9b3e320d7101f5213f7d5609b6308
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 22 18:31:51 2007 -0400
+
+    RADEON: Fix crash when Xv window is outside of either crtc
+
+commit 8aca0ca6be7122e0ece20985a1862553a1b225c0
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 22 17:56:50 2007 -0400
+
+    Revert "RADEON: fix crash when Xv window is outside of either crtc"
+    
+    This reverts commit 9109e62e3be7f96b41b534ab517fdf1baf458806.
+    
+    This breaks ABI.  better fix to come.
+
+commit d6e1d9be1cd5786a24ed4bb8e45fa7e04df56622
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 22 16:14:06 2007 -0400
+
+    RADEON: Don't make the entity as shareable
+    
+    This should prevent people from mistakenly trying to run
+    zaphod mode
+
+commit 81114af1cdddc0b10d076f2e38c7a00c1223cc48
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 22 15:51:23 2007 -0400
+
+    RADEON: preliminary support for mac mini
+    
+    Option "MacModel" "mini"
+    may not be 100% correct yet
+
+commit 6c482e453bc8156886294d0c1b8f3f1b3dcf4b36
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 22 15:11:20 2007 -0400
+
+    RADEON: Fix RMX on LVDS
+    
+    LVDS + RMX doesn't seem to like having the crtc values tweaked.
+
+commit 9109e62e3be7f96b41b534ab517fdf1baf458806
+Author: Michel Dänzer <daenzer@debian.org>
+Date:   Sat Sep 22 14:19:10 2007 -0400
+
+    RADEON: fix crash when Xv window is outside of either crtc
+    
+    Should fix bug 12175
+
+commit d2ce4a5003ce1291ea2327b2c00a0b24408fe26c
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 22 10:41:55 2007 -0400
+
+    RADEON: RMX updates
+    
+    - add option to turn off RMX
+    - turn off RMX by default on DVI
+    - add infrastructure to support more RMX modes
+
+commit f95b9ab729376083bf0d12987ee260ec2aba721e
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Fri Sep 21 00:12:37 2007 -0400
+
+    RADEON: remove more old cruft
+
+commit 5a6f74103f0ec0d451d0e2573442efe5922848af
+Author: Maciej Cencora <m.cencora@gmail.com>
+Date:   Thu Sep 20 23:56:08 2007 -0400
+
+    RADEON: fix video in on RV380 (tested on X600 VIVO)
+
+commit c72a365386e19f9257db041d44b09ad499cc9f6a
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Thu Sep 20 23:49:57 2007 -0400
+
+    RADEON: fix up dvo support (still no external chip init)
+
+commit 5e4d98470b6412a686883c554e7eb7badbe78c4d
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Thu Sep 20 23:22:48 2007 -0400
+
+    RADEON: round 3 on the PLLs.  should fix the LVDS issues
+
+commit c5e2a2f09af807006c7ea493a8e90ff77abe207c
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Wed Sep 19 19:58:28 2007 -0400
+
+    bump for RC release
+
+commit 46ff78b9f010ca24178d4363761be00eb3ecb632
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Wed Sep 19 19:49:58 2007 -0400
+
+    RADEON: add default connector setup for single crtc chips
+
+commit 509ca0cb0e1cde905b47db2bbac6f2a58523b279
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Wed Sep 19 19:41:17 2007 -0400
+
+    RADEON: fix external TMDS parsing in legacy bios connector table
+
+commit 5a59547ef7e986c9613023d941c3354cd476faf1
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Wed Sep 19 19:28:09 2007 -0400
+
+    Revert "RADEON: initial pass at external TMDS support"
+    
+    This reverts commit 4000a710c93dd2d82891e4082bc7fa922ba9c5f4.
+    
+    This needs to be reworked and needs more soak time.  so revert
+    for now.
+
+commit dc333884c540d536bffe51a5ebfaf1822af6a91c
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Sep 18 22:23:12 2007 -0400
+
+    RADEON: fix plls again
+    
+    previous fix seemed to break other chips.  Lets see how
+    this goes.
+
+commit 271e541088f455d1cfedff87e88c9a4fdbdbe424
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Sep 18 22:12:31 2007 -0400
+
+    RADEON: Remove more mergedfb cruft
+
+commit 8ae69c496eba701e744cca0605f73242673f7b3f
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Sep 18 20:12:21 2007 -0400
+
+    RADEON: adjust pll restore
+    
+    some chips seem to be pickier than others. fixes bug 12467
+
+commit 8a84dc8ee260716026fa661a6dced2000621efa2
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date:   Tue Sep 18 11:53:39 2007 +0200
+
+    radeon: Remove declaration of unused variable.
+
+commit 2fbbd9c5f0ec27e72780e8b054bc59502f1e5651
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Sep 18 00:45:56 2007 -0400
+
+    RADEON: note that MergedFB support has been replaced with randr 1.2
+
+commit 81b708dbd35c29bf2d67e8c655af97b60e61498b
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Sep 17 23:54:03 2007 -0400
+
+    RADEON: turn off load detection on tv dac by default
+    
+    it's just too unreliable and even when it is most people
+    don't want it.  enable it via output attribute or force
+    the outputs on with xrandr
+
+commit c3ab53159d42157985a25e9125eaa5362273b73d
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Sep 17 23:28:51 2007 -0400
+
+    RADEON: XPRESS connector tables are crap
+    
+    besides specifying the pimary DAC (which they don't have),
+    most seem to specify DDC_CRT2 for DDC, which does not seem
+    to ever work.  Some have reported success with DDC_MONID so
+    lets give that a try.
+
+commit 1fafa970fa78ddea29a8804b6cd0aea52e4fa2e1
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Sep 17 23:10:13 2007 -0400
+
+    RADEON: ignore edid digital bit on analog ports
+    
+    Some monitors have this bit set even on analog ports
+
+commit 4000a710c93dd2d82891e4082bc7fa922ba9c5f4
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Sep 17 23:04:17 2007 -0400
+
+    RADEON: initial pass at external TMDS support
+    
+    - Based on Dave Airlie's initial work and the dvo support
+    in the intel driver.
+    - Only sil164 is supported at the moment.
+    - Once we get some testing and such, we ought to move the dvo
+    drivers out of the drivers so they can be shared among all drivers
+    - Doesn't seem to work on my card (r4xx ATOM) card ATM
+    - Legacy bios table programming sequence not implemented yet
+
+commit 38515d402555eaa61c686d42973e59f659b07466
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 15 11:39:47 2007 -0400
+
+    RADEON: don't restore bios scratch regs
+    
+    Leave them as programmed by the bios
+    fixes bug 12424
+
+commit 0241cac643fa1c08a45ea44f5c670b290e760ad8
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date:   Sat Sep 8 00:22:40 2007 +0200
+
+    radeon: Reinstate sync in radeon_crtc_show/hide_cursor.
+    
+    Make sure the DRI lock is held though, as these can be called asynchronously.
+    
+    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=12245 .
+
+commit 49933e2f7d590811f2bc8c0d51a09f3b7f14845e
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Sat Sep 1 12:23:07 2007 -0400
+
+    RADEON: automatically disable tiling if requested virtual desktop exceeds surface limits
+    
+    Also, tweak default desktop sizes and add some informational messages
+
+commit d49a60bc939c9f3e9d57c23e44263f5bb52f09fb
+Author: Sjoerd Simons <sjoerd@luon.net>
+Date:   Thu Aug 30 11:40:13 2007 +0200
+
+    radeon: Fix Option "MacModel".
+
+commit 2b860726fff058623e0e8e1b0aca092c246875ce
+Author: Michel Dänzer <michel@tungstengraphics.com>
+Date:   Thu Aug 30 11:38:28 2007 +0200
+
+    radeon: Don't build currently unused RADEONSavePalette.
+
+commit 12187a6aa93049c002a4171344d03c713f7f3c5d
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Wed Aug 29 23:11:30 2007 -0400
+
+    RADEON: Add quirk and connector tables for apple laptops
+    
+    As far as I can tell there are three apple laptop variants:
+    ibook              - LVDS, TVDAC drives TV or VGA via dongle
+    powerbook-duallink - LVDS, TV, External TMDS/Primary DAC
+    powerbook          - LVDS, TV, Internal TMDS/Primary DAC
+    use Option "MacModel" "<string>"
+    to enable the appropriate quirks where string is one of the above
+    
+    We can't yet init the external TMDS directly, but if OF inits it,
+    it should work. This should also fix bug 9955.
+    
+    Please test!
+
+commit 61c1fdaa8553581944f78a11e6f9aa76163a468a
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Aug 28 23:47:19 2007 -0400
+
+    RADEON: add option to force tmds pll to default table
+    
+    Also rework the tmds pll output attribute handling a bit
+
+commit 0d9087bc60bb95c770b899cfed29699c02bdac49
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Aug 28 23:08:20 2007 -0400
+
+    RADEON: remove some cruft forgotten in a previous commit
+
+commit 673f799729824f4439dd5f681f75dd5aab50947f
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Aug 28 00:42:30 2007 -0400
+
+    RADEON: Update tv attributes immediately
+
+commit ad6f7ad1b2ccae0bc0a416b9b0ca22709c9d5199
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Tue Aug 28 00:08:41 2007 -0400
+
+    RADEON: remove the "default" tv_standard option
+
+commit 17e0f9e6cbfdb115034d327bd34d46339fd632b7
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Aug 27 23:59:03 2007 -0400
+
+    RADEON: enable load detection for tvdac if output count for tvdac < 2
+
+commit 42839fb5a8584196e7b18375bff6c426ed0347d9
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Aug 27 23:44:13 2007 -0400
+
+    RADEON: make load detection an output attribute for analog outputs
+    
+    Since TV/VGA/DVI-I can share the TV DAC, we often get false detection
+    of all inputs that share that DAC.  Make load detection an output
+    attribute.  Enabled by default on primary dac and on cards where
+    tv dac is (usually) dedicated to tv (non-IGP mobilities).
+
+commit a5a1055d64ab4fa16bfb03a412ae6c4fe69ff65d
+Author: Alex Deucher <alex@botch2.(none)>
+Date:   Mon Aug 27 22:42:22 2007 -0400
+
+    RADEON: make tmds pll an output attribute
+    
+    sometimes the bios tmds plls are busted for certain
+    monitors. sometimes the dirver tables are.  Let the user
+    pick at run time.
+
 commit a12e4aa01bf1c5723c3c791ff9bdc26eef21d5ea
 Author: Alex Deucher <alex@botch2.(none)>
 Date:   Sun Aug 26 18:51:29 2007 -0400
diff --git a/configure b/configure
index fc11c1d..f568204 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for xf86-video-ati 6.7.193.
+# Generated by GNU Autoconf 2.61 for xf86-video-ati 6.7.194.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='xf86-video-ati'
 PACKAGE_TARNAME='xf86-video-ati'
-PACKAGE_VERSION='6.7.193'
-PACKAGE_STRING='xf86-video-ati 6.7.193'
+PACKAGE_VERSION='6.7.194'
+PACKAGE_STRING='xf86-video-ati 6.7.194'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 
 ac_unique_file="Makefile.am"
@@ -1438,7 +1438,7 @@ if test "$ac_init_help" = "long"; then
   # 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-ati 6.7.193 to adapt to many kinds of systems.
+\`configure' configures xf86-video-ati 6.7.194 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1508,7 +1508,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-video-ati 6.7.193:";;
+     short | recursive ) echo "Configuration of xf86-video-ati 6.7.194:";;
    esac
   cat <<\_ACEOF
 
@@ -1624,7 +1624,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-video-ati configure 6.7.193
+xf86-video-ati configure 6.7.194
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1638,7 +1638,7 @@ cat >config.log <<_ACEOF
 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-ati $as_me 6.7.193, which was
+It was created by xf86-video-ati $as_me 6.7.194, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2333,7 +2333,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xf86-video-ati'
- VERSION='6.7.193'
+ VERSION='6.7.194'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -22445,7 +22445,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xf86-video-ati $as_me 6.7.193, which was
+This file was extended by xf86-video-ati $as_me 6.7.194, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22498,7 +22498,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-xf86-video-ati config.status 6.7.193
+xf86-video-ati config.status 6.7.194
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/debian/changelog b/debian/changelog
index 6821b8a..c66bc5d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+xserver-xorg-video-ati (1:6.7.194-1) experimental; urgency=low
+
+  * New upstream release candidate.
+    + Add MacModel "mini" option to support Mac Mini connector table,
+      closes: #443570.
+    + Fix crash when Xv window is outside of either crtc,
+      closes: #441902.
+
+ -- Brice Goglin <bgoglin@debian.org>  Mon, 24 Sep 2007 07:59:36 +0200
+
 xserver-xorg-video-ati (1:6.7.193-1) experimental; urgency=low
 
   * New upstream release candidate.

commit 22cccb99d762567757d3fd38795f71e943f1faf9
Author: Alex Deucher <alex@botch2.(none)>
Date:   Mon Sep 24 00:10:01 2007 -0400

    bump for RC release

diff --git a/configure.ac b/configure.ac
index bd5109b..7204a31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-ati],
-        6.7.193,
+        6.7.194,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-ati)
 

commit fad9e7b00de051f632000eb2304ac23a524f7c8e
Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
Date:   Sun Sep 23 23:43:26 2007 -0400

    RADEON: Rework LVDS mode validation
    
    The old validation code wasn't really well suited to randr.
    This fixes several issues:
    - missing display size for panels with edid
    - broken duplicate modes

diff --git a/src/radeon_modes.c b/src/radeon_modes.c
index 9c12ecb..af56cdf 100644
--- a/src/radeon_modes.c
+++ b/src/radeon_modes.c
@@ -82,7 +82,7 @@ static DisplayModePtr RADEONTVModes(xf86OutputPtr output)
 {
     DisplayModePtr new  = NULL;
 
-    /* just a place holder */    
+    /* just a place holder */
     new = xf86CVTMode(800, 600, 60.00, FALSE, FALSE);
     new->type = M_T_DRIVER | M_T_PREFERRED;
 
@@ -125,161 +125,25 @@ static DisplayModePtr RADEONFPNativeMode(xf86OutputPtr output)
 	new->next       = NULL;
 	new->prev       = NULL;
 
-	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-		   "No valid mode specified, force to native mode\n");
+	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Added native panel mode: %dx%d\n",
+		   radeon_output->PanelXRes, radeon_output->PanelYRes);
     }
 
     return new;
 }
 
-/* FP mode initialization routine for using on-chip RMX to scale
- */
-int RADEONValidateFPModes(xf86OutputPtr output, char **ppModeName, DisplayModePtr *modeList)
-{
-    ScrnInfoPtr pScrn = output->scrn;
-    RADEONOutputPrivatePtr radeon_output = output->driver_private;
-    DisplayModePtr  last       = NULL;
-    DisplayModePtr  new        = NULL;
-    DisplayModePtr  first      = NULL;
-    DisplayModePtr  p, tmp;
-    int             count      = 0;
-    int             i, width, height;
-
-    pScrn->virtualX = pScrn->display->virtualX;
-    pScrn->virtualY = pScrn->display->virtualY;
-
-    /* We have a flat panel connected to the primary display, and we
-     * don't have any DDC info.
-     */
-    for (i = 0; ppModeName[i] != NULL; i++) {
-
-	if (sscanf(ppModeName[i], "%dx%d", &width, &height) != 2) continue;
-
-	/* Note: We allow all non-standard modes as long as they do not
-	 * exceed the native resolution of the panel.  Since these modes
-	 * need the internal RMX unit in the video chips (and there is
-	 * only one per card), this will only apply to the primary head.
-	 */
-	if (width < 320 || width > radeon_output->PanelXRes ||
-	    height < 200 || height > radeon_output->PanelYRes) {
-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-		       "Mode %s is out of range.\n", ppModeName[i]);
-	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-		       "Valid modes must be between 320x200-%dx%d\n",
-		       radeon_output->PanelXRes, radeon_output->PanelYRes);
-	    continue;
-	}
-
-	new             = xnfcalloc(1, sizeof(DisplayModeRec));
-	new->name       = xnfalloc(strlen(ppModeName[i]) + 1);
-	strcpy(new->name, ppModeName[i]);
-	new->HDisplay   = width;
-	new->VDisplay   = height;
-
-	/* These values are effective values after expansion They are
-	 * not really used to set CRTC registers.
-	 */
-	new->HTotal     = radeon_output->PanelXRes + radeon_output->HBlank;
-	new->HSyncStart = radeon_output->PanelXRes + radeon_output->HOverPlus;
-	new->HSyncEnd   = new->HSyncStart + radeon_output->HSyncWidth;
-	new->VTotal     = radeon_output->PanelYRes + radeon_output->VBlank;
-	new->VSyncStart = radeon_output->PanelYRes + radeon_output->VOverPlus;
-	new->VSyncEnd   = new->VSyncStart + radeon_output->VSyncWidth;
-	new->Clock      = radeon_output->DotClock;
-	new->Flags     |= RADEON_USE_RMX;
-
-#ifdef M_T_PREFERRED
-	if (width == radeon_output->PanelXRes && height == radeon_output->PanelYRes)
-	  new->type |= M_T_PREFERRED;
-#endif
-
-	new->type      |= M_T_USERDEF;
-
-	new->next       = NULL;
-	new->prev       = last;
-
-	if (last) last->next = new;
-	last = new;
-        if (!first) first = new;
-
-	pScrn->display->virtualX =
-	    pScrn->virtualX = MAX(pScrn->virtualX, width);
-	pScrn->display->virtualY =
-	    pScrn->virtualY = MAX(pScrn->virtualY, height);
-	count++;
-	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-		   "Valid mode using on-chip RMX: %s\n", new->name);
-    }
-
-    /* If all else fails, add the native mode */
-    if (!count) {
-	first = last = RADEONFPNativeMode(output);
-	if (first) count = 1;
-    }
-
-    /* add in all default vesa modes smaller than panel size, used for randr*/
-    for (p = *modeList; p && p->next; p = p->next->next) {
-	if ((p->HDisplay <= radeon_output->PanelXRes) && (p->VDisplay <= radeon_output->PanelYRes)) {
-	    tmp = first;
-	    while (tmp) {
-		if ((p->HDisplay == tmp->HDisplay) && (p->VDisplay == tmp->VDisplay)) break;
-		tmp = tmp->next;
-	    }
-	    if (!tmp) {
-		new             = xnfcalloc(1, sizeof(DisplayModeRec));
-		new->name       = xnfalloc(strlen(p->name) + 1);
-		strcpy(new->name, p->name);
-		new->HDisplay   = p->HDisplay;
-		new->VDisplay   = p->VDisplay;
-
-		/* These values are effective values after expansion They are
-		 * not really used to set CRTC registers.
-		 */
-		new->HTotal     = radeon_output->PanelXRes + radeon_output->HBlank;
-		new->HSyncStart = radeon_output->PanelXRes + radeon_output->HOverPlus;
-		new->HSyncEnd   = new->HSyncStart + radeon_output->HSyncWidth;
-		new->VTotal     = radeon_output->PanelYRes + radeon_output->VBlank;
-		new->VSyncStart = radeon_output->PanelYRes + radeon_output->VOverPlus;
-		new->VSyncEnd   = new->VSyncStart + radeon_output->VSyncWidth;
-		new->Clock      = radeon_output->DotClock;
-		new->Flags     |= RADEON_USE_RMX;
-
-		new->type      |= M_T_DEFAULT;
-
-		if (last) last->next = new;
-	        last = new;
-		if (!first) first = new;
-	    }
-	}
-    }
-
-    /* Close the doubly-linked mode list, if we found any usable modes */
-    if (last) {
-	last->next   = NULL; //first;
-	first->prev  = NULL; //last;
-	*modeList = first;
-	//RADEONSetPitch(pScrn);
-    }
-
-    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-	       "Total number of valid FP mode(s) found: %d\n", count);
-
-    return count;
-}
-
 DisplayModePtr
 RADEONProbeOutputModes(xf86OutputPtr output)
 {
     ScrnInfoPtr	    pScrn = output->scrn;
     RADEONOutputPrivatePtr radeon_output = output->driver_private;
-    DisplayModePtr mode;
     xf86MonPtr		    edid_mon;
     DisplayModePtr	    modes = NULL;
 
 #if 0
     /* force reprobe */
     radeon_output->MonType = MT_UNKNOWN;
-	
+
     RADEONConnectorFindMonitor(pScrn, output);
 #endif
     ErrorF("in RADEONProbeOutputModes\n");
@@ -288,7 +152,7 @@ RADEONProbeOutputModes(xf86OutputPtr output)
 	if (radeon_output->type == OUTPUT_DVI || radeon_output->type == OUTPUT_VGA) {
 	    edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus);
 	    xf86OutputSetEDID (output, edid_mon);
-      
+
 	    modes = xf86OutputGetEDIDModes (output);
 	    return modes;
 	}
@@ -299,29 +163,17 @@ RADEONProbeOutputModes(xf86OutputPtr output)
 	if (radeon_output->type == OUTPUT_LVDS) {
 	    /* okay we got DDC info */
 	    if (output->MonInfo) {
-		/* Debug info for now, at least */
-		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EDID for output %d\n", radeon_output->num);
-		xf86PrintEDID(output->MonInfo);
-	
-		modes = xf86DDCGetModes(pScrn->scrnIndex, output->MonInfo);
-	
-		for (mode = modes; mode != NULL; mode = mode->next) {
-		    if (mode->Flags & V_DBLSCAN) {
-			if ((mode->CrtcHDisplay >= 1024) || (mode->CrtcVDisplay >= 768))
-			    mode->status = MODE_CLOCK_RANGE;
-		    }
-		}
-		xf86PruneInvalidModes(pScrn, &modes, TRUE);
-	
-		/* do some physcial size stuff */
-	    }
-      
-	    if (modes == NULL) {
-		RADEONValidateFPModes(output, pScrn->display->modes, &modes);
-	    }
+		edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus);
+		xf86OutputSetEDID (output, edid_mon);
+
+		modes = xf86OutputGetEDIDModes (output);
+		return modes;
+	    } else
+		/* add native panel mode */
+		modes = RADEONFPNativeMode(output);
 	}
     }
-    
+
     if (modes) {
 	xf86ValidateModesUserConfig(pScrn, modes);
 	xf86PruneInvalidModes(pScrn, &modes, FALSE);

commit bf9674b9df351108e069d037ec10869a4154a881
Author: Alex Deucher <alex@botch2.(none)>
Date:   Sun Sep 23 15:01:34 2007 -0400

    RADEON: properly set default RMX types

diff --git a/src/radeon_output.c b/src/radeon_output.c
index eab39a6..6ece28a 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2475,10 +2475,12 @@ void RADEONInitConnector(xf86OutputPtr output)
     }
 
     if (radeon_output->type == OUTPUT_LVDS) {
+	radeon_output->rmx_type = RMX_FULL;
 	RADEONGetLVDSInfo(output);
     }
 
     if (radeon_output->type == OUTPUT_DVI) {
+	radeon_output->rmx_type = RMX_OFF;
 	RADEONGetTMDSInfo(output);
     }
 

commit b27135bce8b41d69290613b440a338b0a7fe0200
Author: Alex Deucher <alex@botch2.(none)>
Date:   Sun Sep 23 14:44:38 2007 -0400

    RADEON: fix up LVDS handling for r3xx and newer

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 3b8454f..e7cccf6 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -4172,8 +4172,8 @@ void RADEONRestoreLVDSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore)
 
     if (info->IsMobility) {
 	OUTREG(RADEON_LVDS_GEN_CNTL,  restore->lvds_gen_cntl);
-	/*OUTREG(RADEON_LVDS_PLL_CNTL,  restore->lvds_pll_cntl);  
-	OUTREG(RADEON_BIOS_4_SCRATCH, restore->bios_4_scratch);
+	OUTREG(RADEON_LVDS_PLL_CNTL,  restore->lvds_pll_cntl);  
+	/*OUTREG(RADEON_BIOS_4_SCRATCH, restore->bios_4_scratch);
 	OUTREG(RADEON_BIOS_5_SCRATCH, restore->bios_5_scratch);
 	OUTREG(RADEON_BIOS_6_SCRATCH, restore->bios_6_scratch);*/
     }
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 346fdc4..eab39a6 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -790,7 +790,7 @@ static void RADEONInitFP2Registers(xf86OutputPtr output, RADEONSavePtr save,
     if (IsPrimary) {
         if ((info->ChipFamily == CHIP_FAMILY_R200) || IS_R300_VARIANT) {
             save->fp2_gen_cntl &= ~R200_FP2_SOURCE_SEL_MASK;
-	    if (mode->Flags & RADEON_USE_RMX) 
+	    if (mode->Flags & RADEON_USE_RMX)
 		save->fp2_gen_cntl |= R200_FP2_SOURCE_SEL_RMX;
         } else {
             save->fp2_gen_cntl &= ~RADEON_FP2_SRC_SEL_CRTC2;
@@ -812,16 +812,30 @@ static void RADEONInitLVDSRegisters(xf86OutputPtr output, RADEONSavePtr save,
     ScrnInfoPtr pScrn = output->scrn;
     RADEONInfoPtr  info       = RADEONPTR(pScrn);
 
-    save->lvds_pll_cntl = info->SavedReg.lvds_pll_cntl;
+    save->lvds_pll_cntl = (info->SavedReg.lvds_pll_cntl |
+			   RADEON_LVDS_PLL_EN);
+
+    save->lvds_pll_cntl &= ~RADEON_LVDS_PLL_RESET;
 
     save->lvds_gen_cntl = info->SavedReg.lvds_gen_cntl;
     save->lvds_gen_cntl |= RADEON_LVDS_DISPLAY_DIS;
     save->lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON);
 
-    if (IsPrimary)
-	save->lvds_gen_cntl &= ~RADEON_LVDS_SEL_CRTC2;
-    else
-	save->lvds_gen_cntl |= RADEON_LVDS_SEL_CRTC2;
+    if (IS_R300_VARIANT)
+	save->lvds_pll_cntl &= ~(R300_LVDS_SRC_SEL_MASK);
+
+    if (IsPrimary) {
+	if (IS_R300_VARIANT) {
+	    if (mode->Flags & RADEON_USE_RMX)
+		save->lvds_pll_cntl |= R300_LVDS_SRC_SEL_RMX;
+	} else
+	    save->lvds_gen_cntl &= ~RADEON_LVDS_SEL_CRTC2;
+    } else {
+	if (IS_R300_VARIANT) {
+	    save->lvds_pll_cntl |= R300_LVDS_SRC_SEL_CRTC2;
+	} else
+	    save->lvds_gen_cntl |= RADEON_LVDS_SEL_CRTC2;
+    }
 
 }
 
diff --git a/src/radeon_reg.h b/src/radeon_reg.h
index af62a69..96adb22 100644
--- a/src/radeon_reg.h
+++ b/src/radeon_reg.h
@@ -924,6 +924,12 @@
 #define RADEON_LVDS_PLL_CNTL                0x02d4
 #       define RADEON_HSYNC_DELAY_SHIFT     28
 #       define RADEON_HSYNC_DELAY_MASK      (0xf << 28)
+#       define RADEON_LVDS_PLL_EN           (1   << 16)
+#       define RADEON_LVDS_PLL_RESET        (1   << 17)
+#       define R300_LVDS_SRC_SEL_MASK       (3   << 18)
+#       define R300_LVDS_SRC_SEL_CRTC1      (0   << 18)
+#       define R300_LVDS_SRC_SEL_CRTC2      (1   << 18)
+#       define R300_LVDS_SRC_SEL_RMX        (2   << 18)
 
 #define RADEON_MAX_LATENCY                  0x0f3f /* PCI */
 #define RADEON_MC_AGP_LOCATION              0x014c

commit d5cf268be2c9b3e320d7101f5213f7d5609b6308
Author: Alex Deucher <alex@botch2.(none)>
Date:   Sat Sep 22 18:31:51 2007 -0400

    RADEON: Fix crash when Xv window is outside of either crtc

diff --git a/src/radeon_video.c b/src/radeon_video.c
index 271f7fe..dca9695 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -2907,6 +2907,15 @@ RADEONPutImage(
 				 clipBoxes, width, height))
        return Success;
 
+   if (!crtc) {
+       if (pPriv->videoStatus & CLIENT_VIDEO_ON) {
+	   unsigned char *RADEONMMIO = info->MMIO;
+	   OUTREG(RADEON_OV0_SCALE_CNTL, 0);
+	   pPriv->videoStatus &= ~CLIENT_VIDEO_ON;
+       }
+       return Success;
+   }
+
    dstBox.x1 -= crtc->x;
    dstBox.x2 -= crtc->x;
    dstBox.y1 -= crtc->y;
@@ -3285,6 +3294,15 @@ RADEONDisplaySurface(
 				  surface->width, surface->height))
         return Success;
 
+   if (!crtc) {
+       if (pPriv->isOn) {
+	   unsigned char *RADEONMMIO = info->MMIO;
+	   OUTREG(RADEON_OV0_SCALE_CNTL, 0);
+	   pPriv->isOn = FALSE;
+       }
+       return Success;
+   }
+
     dstBox.x1 -= crtc->x;
     dstBox.x2 -= crtc->x;
     dstBox.y1 -= crtc->y;
@@ -3419,6 +3437,15 @@ RADEONPutVideo(
 				 clipBoxes, width, height))
        return Success;
 
+   if (!crtc) {
+       if (pPriv->videoStatus & CLIENT_VIDEO_ON) {
+	   unsigned char *RADEONMMIO = info->MMIO;
+	   OUTREG(RADEON_OV0_SCALE_CNTL, 0);
+	   pPriv->videoStatus &= ~CLIENT_VIDEO_ON;
+       }
+       return Success;
+   }
+
    dstBox.x1 -= crtc->x;
    dstBox.x2 -= crtc->x;
    dstBox.y1 -= crtc->y;

commit 8aca0ca6be7122e0ece20985a1862553a1b225c0
Author: Alex Deucher <alex@botch2.(none)>
Date:   Sat Sep 22 17:56:50 2007 -0400

    Revert "RADEON: fix crash when Xv window is outside of either crtc"
    
    This reverts commit 9109e62e3be7f96b41b534ab517fdf1baf458806.
    
    This breaks ABI.  better fix to come.

diff --git a/src/radeon_video.c b/src/radeon_video.c
index bbd743b..271f7fe 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -215,8 +215,7 @@ radeon_clip_video_helper(ScrnInfoPtr pScrn,
 	    REGION_INIT (pScreen, &crtc_region_local, &crtc_box, 1);
 	    crtc_region = &crtc_region_local;
 	    REGION_INTERSECT (pScreen, crtc_region, crtc_region, reg);
-	} else
-	    return FALSE;
+	}
 	*crtc_ret = crtc;
     }
 

commit d6e1d9be1cd5786a24ed4bb8e45fa7e04df56622
Author: Alex Deucher <alex@botch2.(none)>
Date:   Sat Sep 22 16:14:06 2007 -0400

    RADEON: Don't make the entity as shareable
    
    This should prevent people from mistakenly trying to run
    zaphod mode

diff --git a/src/radeon_probe.c b/src/radeon_probe.c
index c697f65..207e537 100644
--- a/src/radeon_probe.c
+++ b/src/radeon_probe.c
@@ -314,7 +314,7 @@ RADEONProbe(DriverPtr drv, int flags)
 		DevUnion   *pPriv;
 		RADEONEntPtr pRADEONEnt;
 
-		xf86SetEntitySharable(usedChips[i]);
+		/*xf86SetEntitySharable(usedChips[i]);*/
 
 		if (gRADEONEntityIndex == -1)
 		    gRADEONEntityIndex = xf86AllocateEntityPrivateIndex();

commit 81114af1cdddc0b10d076f2e38c7a00c1223cc48
Author: Alex Deucher <alex@botch2.(none)>
Date:   Sat Sep 22 15:51:23 2007 -0400

    RADEON: preliminary support for mac mini
    
    Option "MacModel" "mini"
    may not be 100% correct yet

diff --git a/man/radeon.man b/man/radeon.man
index 8217262..35dd701 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -404,9 +404,11 @@ Used to specify Mac models for connector tables and quirks.  Only valid
 .br
 ibook                \-\- ibooks
 .br
-powerbook-duallink   \-\- Powerbooks with dual link DVI
+powerbook-duallink   \-\- Powerbooks with external DVI
 .br
-powerbook            \-\- Powerbooks with single link DVI
+powerbook            \-\- Powerbooks with integrated DVI
+.br
+mini                 \-\- Mac Mini
 .br
 The default value is
 .B undefined.
diff --git a/src/radeon.h b/src/radeon.h
index 4c586f6..cec06e9 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -429,7 +429,8 @@ typedef enum {
 typedef enum {
        RADEON_MAC_IBOOK             = 0x00000001,
        RADEON_MAC_POWERBOOK_DL      = 0x00000002,
-       RADEON_MAC_POWERBOOK         = 0x00000004
+       RADEON_MAC_POWERBOOK         = 0x00000004,
+       RADEON_MAC_MINI              = 0x00000008
 } RADEONMacModel;
 #endif
 
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 3e58d41..346fdc4 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2544,6 +2544,19 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn)
 	info->BiosConnector[2].DDCType = DDC_NONE_DETECTED;
 	info->BiosConnector[2].valid = TRUE;
 	return TRUE;
+    case RADEON_MAC_MINI:
+	info->BiosConnector[0].DDCType = DDC_CRT2;
+	info->BiosConnector[0].DACType = DAC_TVDAC;
+	info->BiosConnector[0].TMDSType = TMDS_EXT;
+	info->BiosConnector[0].ConnectorType = CONNECTOR_DVI_I;
+	info->BiosConnector[0].valid = TRUE;
+



Reply to: