xf86-video-ati: Branch 'master' - 2 commits

Dave Airlie airlied at kemper.freedesktop.org
Fri Jan 12 14:09:01 EET 2007


 src/atiprobe.c       |   12 +++++++++++-
 src/radeon_display.c |    3 ---
 2 files changed, 11 insertions(+), 4 deletions(-)

New commits:
diff-tree f5ffb9fb3bdd7cec020240c5831ae92ee744972c (from 1e690c57ad1dfaeb760ef6e799faa6398e9a0551)
Author: Timo Jyrinki <timo.jyrinki at hut.fi>
Date:   Fri Jan 12 23:08:50 2007 +1100

    ati: fix detection of some newer radeons using ati wrapper
    
    This is mainly due to the cards having a different resource 1.
    Fixes 6796

diff --git a/src/atiprobe.c b/src/atiprobe.c
index 622c1f7..9c30a31 100644
--- a/src/atiprobe.c
+++ b/src/atiprobe.c
@@ -1566,8 +1566,14 @@ ATIProbe
             /* Next, look for sparse I/O Mach64's */
             for (i = 0;  (pVideo = xf86PciVideoInfo[i++]);  )
             {
+            /* For some Radeons, pvideo->size[1] is not there but the card 
+             * still works properly. Thus adding check that if the chip was 
+             * correctly identified as being Rage128 or a Radeon, continue 
+             * also in that case. See fd.o bug 6796. */
+                Chip = ATIChipID(pVideo->chipType, pVideo->chipRev);
                 if ((pVideo->vendor != PCI_VENDOR_ATI) ||
                     (pVideo->chipType == PCI_CHIP_MACH32) ||
+                    (Chip > ATI_CHIP_Mach64) || 
                     pVideo->size[1])
                     continue;
 
@@ -1728,9 +1734,13 @@ ATIProbe
         /* Lastly, look for block I/O devices */
         for (i = 0;  (pVideo = xf86PciVideoInfo[i++]);  )
         {
+        /* For some Radeons, !pvideo->size[1] applies but the card still 
+         * works properly. Thus don't make !pVideo->size[1] check to continue 
+         * automatically (instead check that the chip actually is below 
+         * ATI_CHIP_Mach64 (includes ATI_CHIP_NONE)). See fd.o bug 6796. */
             if ((pVideo->vendor != PCI_VENDOR_ATI) ||
                 (pVideo->chipType == PCI_CHIP_MACH32) ||
-                !pVideo->size[1])
+                (!pVideo->size[1] && Chip < ATI_CHIP_Mach64))
                 continue;
 
             /* Check for Rage128's, Radeon's and later adapters */
diff-tree 1e690c57ad1dfaeb760ef6e799faa6398e9a0551 (from c54a31565e3ea50f1af7b81b1bf0c0e437099f47)
Author: Dave Airlie <airlied at linux.ie>
Date:   Fri Jan 12 23:03:10 2007 +1100

    always create a second CRTC I think this should solve any problems

diff --git a/src/radeon_display.c b/src/radeon_display.c
index 3679e4f..d661c17 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -2359,9 +2359,6 @@ Bool RADEONAllocateControllers(ScrnInfoP
     if (!pRADEONEnt->Controller[0])
         return FALSE;
     
-    if (!pRADEONEnt->HasCRTC2)
-	return TRUE;
-
     pRADEONEnt->Controller[1] = xcalloc(sizeof(RADEONController), 1);
     if (!pRADEONEnt->Controller[1])
     {



More information about the xorg-commit mailing list