diff options
author | Sellout Bessie <sellout@beautyisfleeting.com> | 2007-10-16 04:29:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:19 -0400 |
commit | 0b693eafc4be2bc9fceb318501930c66f38dbb10 (patch) | |
tree | 9bb9252f707deb8ad6d068a3475f5acfe97fc9e0 | |
parent | 80185a9d919847190d1b3812ffe5deeae7abc9c6 (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>
-rw-r--r-- | drivers/video/aty/ati_ids.h | 1 | ||||
-rw-r--r-- | drivers/video/aty/radeon_base.c | 3 | ||||
-rw-r--r-- | drivers/video/aty/radeonfb.h | 4 |
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 |