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