Radeonfb Xpress 200M RC410 support
authorSellout Bessie <sellout@beautyisfleeting.com>
Tue, 16 Oct 2007 08:29:30 +0000 (01:29 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 16 Oct 2007 16:43:19 +0000 (09:43 -0700)
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>
drivers/video/aty/ati_ids.h
drivers/video/aty/radeon_base.c
drivers/video/aty/radeonfb.h

index dca2eb8f2dde85fb6659a0abad2ded97a7bc7c93..3e9d28bcd9f84db780dea74e19c051aeb420e027 100644 (file)
 #define PCI_CHIP_MACH64VT              0x5654
 #define PCI_CHIP_MACH64VU              0x5655
 #define PCI_CHIP_MACH64VV              0x5656
+#define PCI_CHIP_RC410_5A62             0x5A62
 #define PCI_CHIP_RS300_5834            0x5834
 #define PCI_CHIP_RS300_5835            0x5835
 #define PCI_CHIP_RS300_5836            0x5836
index 4f5dcd5f5c7eaf3581d8afa7459d24f8a8883e2c..1e32b3d13f2e7123bc86d9be742d747111f763d2 100644 (file)
@@ -145,6 +145,8 @@ static struct pci_device_id radeonfb_pci_table[] = {
        /* 9000/Pro */
        CHIP_DEF(PCI_CHIP_RV250_If,     RV250,  CHIP_HAS_CRTC2),
        CHIP_DEF(PCI_CHIP_RV250_Ig,     RV250,  CHIP_HAS_CRTC2),
+
+       CHIP_DEF(PCI_CHIP_RC410_5A62,   RC410,  CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY),
        /* Mobility 9100 IGP (U3) */
        CHIP_DEF(PCI_CHIP_RS300_5835,   RS300,  CHIP_HAS_CRTC2 | CHIP_IS_IGP | CHIP_IS_MOBILITY),
        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)
         if ((rinfo->family == CHIP_FAMILY_RS100) ||
             (rinfo->family == CHIP_FAMILY_RS200) ||
             (rinfo->family == CHIP_FAMILY_RS300) ||
+            (rinfo->family == CHIP_FAMILY_RC410) ||
            (rinfo->family == CHIP_FAMILY_RS480) ) {
           u32 tom = INREG(NB_TOM);
           tmp = ((((tom >> 16) - (tom & 0xffff) + 1) << 6) * 1024);
index 7c922c7b460b3c51903deb41fc79b084a95e656e..5eac1ce52e72001d078248026f501c6efb7082ad 100644 (file)
@@ -48,6 +48,7 @@ enum radeon_family {
        CHIP_FAMILY_RV350,
        CHIP_FAMILY_RV380,    /* RV370/RV380/M22/M24 */
        CHIP_FAMILY_R420,     /* R420/R423/M18 */
+       CHIP_FAMILY_RC410,
        CHIP_FAMILY_RS480,
        CHIP_FAMILY_LAST,
 };
@@ -66,7 +67,8 @@ enum radeon_family {
                                ((rinfo)->family == CHIP_FAMILY_R350)  || \
                                ((rinfo)->family == CHIP_FAMILY_RV380) || \
                                ((rinfo)->family == CHIP_FAMILY_R420)  || \
-                               ((rinfo)->family == CHIP_FAMILY_RS480) )
+                               ((rinfo)->family == CHIP_FAMILY_RC410) || \
+                               ((rinfo)->family == CHIP_FAMILY_RS480))
 
 /*
  * Chip flags