summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2006-03-12 04:47:36 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2006-03-12 04:47:36 +0000
commita5b73cd40e7734c884f578d602441c659a2b06da (patch)
tree7594ad9a1c2c945b0d4eb0cbc17eedfbbce5b6b0 /src
parente19ccfa18fee046c54d7a9401e4e0098b2300598 (diff)
Bugzilla #5766 <https://bugs.freedesktop.org/show_bug.cgi?id=5766> Patch
#4636 <https://bugs.freedesktop.org/attachment.cgi?id=4636> - Acknowledge that RN50 only has one CRTC, and use this to distinguish it from RV100. - Fix detection of RN50 memory type and bus width. - Model RN50 memory bandwidth limits by capping the pixel clock range based on memory clock, bpp and memory bus width. (ATI Technologies Inc.)
Diffstat (limited to 'src')
-rw-r--r--src/ati.h2
-rw-r--r--src/atiadapter.h2
-rw-r--r--src/atiaudio.h2
-rw-r--r--src/aticrtc.h2
-rw-r--r--src/atidecoder.h2
-rw-r--r--src/atiio.h2
-rw-r--r--src/atimodule.h2
-rw-r--r--src/atimono.h2
-rw-r--r--src/atipriv.h2
-rw-r--r--src/atituner.h2
-rw-r--r--src/r128_dripriv.h2
-rw-r--r--src/radeon_driver.c20
12 files changed, 28 insertions, 14 deletions
diff --git a/src/ati.h b/src/ati.h
index 3861a9e1..38e27158 100644
--- a/src/ati.h
+++ b/src/ati.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h,v 1.9 2003/01/01 19:16:30 tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiadapter.h b/src/atiadapter.h
index 8db366e8..5cfb79ca 100644
--- a/src/atiadapter.h
+++ b/src/atiadapter.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h,v 1.10 2003/01/01 19:16:30 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiaudio.h b/src/atiaudio.h
index 19080d2b..f2eb94ce 100644
--- a/src/atiaudio.h
+++ b/src/atiaudio.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h,v 1.1 2003/07/24 22:08:27 tsi Exp $ */
/*
- * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/aticrtc.h b/src/aticrtc.h
index 9f6ec388..ba2a7a10 100644
--- a/src/aticrtc.h
+++ b/src/aticrtc.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h,v 1.8 2003/01/01 19:16:31 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atidecoder.h b/src/atidecoder.h
index e88b89f7..0c3cc5c2 100644
--- a/src/atidecoder.h
+++ b/src/atidecoder.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h,v 1.1 2003/07/24 22:08:28 tsi Exp $ */
/*
- * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atiio.h b/src/atiio.h
index f6f871b7..9405033e 100644
--- a/src/atiio.h
+++ b/src/atiio.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.14 2003/01/01 19:16:32 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atimodule.h b/src/atimodule.h
index 833e421b..1a203aeb 100644
--- a/src/atimodule.h
+++ b/src/atimodule.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h,v 1.9 2003/01/01 19:16:32 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atimono.h b/src/atimono.h
index 6325cbe4..f050ceb3 100644
--- a/src/atimono.h
+++ b/src/atimono.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h,v 1.7 2003/01/01 19:16:33 tsi Exp $ */
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atipriv.h b/src/atipriv.h
index 69341ba6..723bf9af 100644
--- a/src/atipriv.h
+++ b/src/atipriv.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h,v 1.5 2003/01/01 19:16:33 tsi Exp $ */
/*
- * Copyright 1999 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1999 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/atituner.h b/src/atituner.h
index 0c3c67f4..2b40d309 100644
--- a/src/atituner.h
+++ b/src/atituner.h
@@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h,v 1.1 2003/07/24 22:08:28 tsi Exp $ */
/*
- * Copyright 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2003 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
diff --git a/src/r128_dripriv.h b/src/r128_dripriv.h
index 7f849879..043e7bdb 100644
--- a/src/r128_dripriv.h
+++ b/src/r128_dripriv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h,v 1.3 2000/11/18 19:37:11 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h,v 1.2 2000/11/09 03:24:35 martin Exp $ */
/*
* Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
* Precision Insight, Inc., Cedar Park, Texas, and
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 937545ff..70ccba6f 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1,5 +1,5 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.117 2004/02/19 22:38:12 tsi Exp $ */
-/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.91 2006-03-02 02:05:17 benh Exp $ */
+/* $XdotOrg: driver/xf86-video-ati/src/radeon_driver.c,v 1.92 2006/03/03 16:41:41 daenzer Exp $ */
/*
* Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
* VA Linux Systems Inc., Fremont, California.
@@ -1732,6 +1732,15 @@ static void RADEONGetClockInfo(ScrnInfoPtr pScrn)
info->mclk = 200.00;
}
+ if (info->ChipFamily == CHIP_FAMILY_RV100 && !info->HasCRTC2) {
+ /* Avoid RN50 corruption due to memory bandwidth starvation.
+ * 18 is an empirical value based on the databook and Windows driver.
+ */
+ pll->max_pll_freq = min(pll->max_pll_freq,
+ 18 * info->mclk * 100 / pScrn->bitsPerPixel *
+ info->RamWidth / 16);
+ }
+
xf86DrvMsg (pScrn->scrnIndex, X_INFO,
"PLL parameters: rf=%d rd=%d min=%ld max=%ld; xclk=%d\n",
pll->reference_freq,
@@ -2366,6 +2375,10 @@ static void RADEONGetVRamType(ScrnInfoPtr pScrn)
(info->ChipFamily == CHIP_FAMILY_RS200)){
if (tmp & RV100_HALF_MODE) info->RamWidth = 32;
else info->RamWidth = 64;
+ if (!info->HasCRTC2) {
+ info->RamWidth /= 4;
+ info->IsDDR = TRUE;
+ }
} else {
if (tmp & RADEON_MEM_NUM_CHANNELS_MASK) info->RamWidth = 128;
else info->RamWidth = 64;
@@ -2481,10 +2494,11 @@ static Bool RADEONPreInitConfig(ScrnInfoPtr pScrn)
info->ChipFamily = CHIP_FAMILY_RV100;
break;
- case PCI_CHIP_RV100_QY:
- case PCI_CHIP_RV100_QZ:
case PCI_CHIP_RN50_515E: /* RN50 is based on the RV100 but 3D isn't guaranteed to work. YMMV. */
case PCI_CHIP_RN50_5969:
+ info->HasCRTC2 = FALSE;
+ case PCI_CHIP_RV100_QY:
+ case PCI_CHIP_RV100_QZ:
info->ChipFamily = CHIP_FAMILY_RV100;
/* DELL triple-head configuration. */