aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorSellout Bessie <sellout@beautyisfleeting.com>2007-10-16 04:29:30 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 12:43:19 -0400
commit0b693eafc4be2bc9fceb318501930c66f38dbb10 (patch)
tree9bb9252f707deb8ad6d068a3475f5acfe97fc9e0 /drivers/video
parent80185a9d919847190d1b3812ffe5deeae7abc9c6 (diff)
Radeonfb Xpress 200M RC410 support
Make radeonfb work ith the 200m Xpress RC410. In my tests it was terribly unstable and would freeze until I set a refresh rate in the kernel argument to 75. e.g video=radeonfb:1280x800@75 Now it is rock solid. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/aty/ati_ids.h1
-rw-r--r--drivers/video/aty/radeon_base.c3
-rw-r--r--drivers/video/aty/radeonfb.h4
3 files changed, 7 insertions, 1 deletions
diff --git a/drivers/video/aty/ati_ids.h b/drivers/video/aty/ati_ids.h
index dca2eb8f2dde..3e9d28bcd9f8 100644
--- a/drivers/video/aty/ati_ids.h
+++ b/drivers/video/aty/ati_ids.h
@@ -188,6 +188,7 @@
188#define PCI_CHIP_MACH64VT 0x5654 188#define PCI_CHIP_MACH64VT 0x5654
189#define PCI_CHIP_MACH64VU 0x5655 189#define PCI_CHIP_MACH64VU 0x5655
190#define PCI_CHIP_MACH64VV 0x5656 190#define PCI_CHIP_MACH64VV 0x5656
191#define PCI_CHIP_RC410_5A62 0x5A62
191#define PCI_CHIP_RS300_5834 0x5834 192#define PCI_CHIP_RS300_5834 0x5834
192#define PCI_CHIP_RS300_5835 0x5835 193#define PCI_CHIP_RS300_5835 0x5835
193#define PCI_CHIP_RS300_5836 0x5836 194#define PCI_CHIP_RS300_5836 0x5836
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
index 4f5dcd5f5c7e..1e32b3d13f2e 100644
--- a/drivers/video/aty/radeon_base.c
+++ b/drivers/video/aty/radeon_base.c
@@ -145,6 +145,8 @@ static struct pci_device_id radeonfb_pci_table[] = {
145 /* 9000/Pro */ 145 /* 9000/Pro */
146 CHIP_DEF(PCI_CHIP_RV250_If, RV250, CHIP_HAS_CRTC2), 146 CHIP_DEF(PCI_CHIP_RV250_If, RV250, CHIP_HAS_CRTC2),
147 CHIP_DEF(PCI_CHIP_RV250_Ig, RV250, CHIP_HAS_CRTC2), 147 CHIP_DEF(PCI_CHIP_RV250_Ig, RV250, CHIP_HAS_CRTC2),
148
149 CHIP_DEF(PCI_CHIP_RC410_5A62, RC410, CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY),
148 /* Mobility 9100 IGP (U3) */ 150 /* Mobility 9100 IGP (U3) */
149 CHIP_DEF(PCI_CHIP_RS300_5835, RS300, CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY), 151 CHIP_DEF(PCI_CHIP_RS300_5835, RS300, CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY),
150 CHIP_DEF(PCI_CHIP_RS350_7835, RS300, CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY), 152 CHIP_DEF(PCI_CHIP_RS350_7835, RS300, CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY),
@@ -1999,6 +2001,7 @@ static void radeon_identify_vram(struct radeonfb_info *rinfo)
1999 if ((rinfo->family == CHIP_FAMILY_RS100) || 2001 if ((rinfo->family == CHIP_FAMILY_RS100) ||
2000 (rinfo->family == CHIP_FAMILY_RS200) || 2002 (rinfo->family == CHIP_FAMILY_RS200) ||
2001 (rinfo->family == CHIP_FAMILY_RS300) || 2003 (rinfo->family == CHIP_FAMILY_RS300) ||
2004 (rinfo->family == CHIP_FAMILY_RC410) ||
2002 (rinfo->family == CHIP_FAMILY_RS480) ) { 2005 (rinfo->family == CHIP_FAMILY_RS480) ) {
2003 u32 tom = INREG(NB_TOM); 2006 u32 tom = INREG(NB_TOM);
2004 tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024); 2007 tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024);
diff --git a/drivers/video/aty/radeonfb.h b/drivers/video/aty/radeonfb.h
index 7c922c7b460b..5eac1ce52e72 100644
--- a/drivers/video/aty/radeonfb.h
+++ b/drivers/video/aty/radeonfb.h
@@ -48,6 +48,7 @@ enum radeon_family {
48 CHIP_FAMILY_RV350, 48 CHIP_FAMILY_RV350,
49 CHIP_FAMILY_RV380, /* RV370/RV380/M22/M24 */ 49 CHIP_FAMILY_RV380, /* RV370/RV380/M22/M24 */
50 CHIP_FAMILY_R420, /* R420/R423/M18 */ 50 CHIP_FAMILY_R420, /* R420/R423/M18 */
51 CHIP_FAMILY_RC410,
51 CHIP_FAMILY_RS480, 52 CHIP_FAMILY_RS480,
52 CHIP_FAMILY_LAST, 53 CHIP_FAMILY_LAST,
53}; 54};
@@ -66,7 +67,8 @@ enum radeon_family {
66 ((rinfo)->family == CHIP_FAMILY_R350) || \ 67 ((rinfo)->family == CHIP_FAMILY_R350) || \
67 ((rinfo)->family == CHIP_FAMILY_RV380) || \ 68 ((rinfo)->family == CHIP_FAMILY_RV380) || \
68 ((rinfo)->family == CHIP_FAMILY_R420) || \ 69 ((rinfo)->family == CHIP_FAMILY_R420) || \
69 ((rinfo)->family == CHIP_FAMILY_RS480) ) 70 ((rinfo)->family == CHIP_FAMILY_RC410) || \
71 ((rinfo)->family == CHIP_FAMILY_RS480))
70 72
71/* 73/*
72 * Chip flags 74 * Chip flags