This patch (originally called ati-radeon-mobility-LX) adds support to
XFree86 4.2.0 for the ATI Radeon Mobility M7 (LX) more commonly known as
the Radeon Mobilty FireGL 7800.  This support was implemented without access
to the actual hardware using the existing Radeon driver support for the
other M7 chip as a guide.

So far, one user has reported that 2D works, and I've received no bug reports
or heard of any problems, although that certainly doesn't mean there aren't
any. If anyone else uses this patch, please report back to me your success,
wether or not 2D works, 3D, Xvideo, etc.

Mike A. Harris <mharris@redhat.com>


--- xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h.ati-radeon-mobility-LX	Tue Jan 15 21:00:43 2002
+++ xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h	Sun Feb 10 22:01:08 2002
@@ -237,6 +237,7 @@
 #define PCI_CHIP_MACH64LR	0x4C52
 #define PCI_CHIP_MACH64LS	0x4C53
 #define PCI_CHIP_RADEON_LW	0x4C57
+#define PCI_CHIP_RADEON_LX	0x4C58
 #define PCI_CHIP_RADEON_LY	0x4C59
 #define PCI_CHIP_RADEON_LZ	0x4C5A
 #define PCI_CHIP_RAGE128MF	0x4D46
@@ -894,6 +895,7 @@
 				{PCI_CHIP_RADEON_QZ,	"Radeon VE QZ",0},
 				{PCI_CHIP_R200_Ql,	"Radeon 8500 Ql",0},
 				{PCI_CHIP_RADEON_LW,	"Radeon Mobility M7 LW",0},
+				{PCI_CHIP_RADEON_LX,	"Radeon Mobility M7 LX",0},
 				{PCI_CHIP_RADEON_LY,	"Radeon Mobility M6 LY",0},
 				{PCI_CHIP_RADEON_LZ,	"Radeon Mobility M6 LZ",0},
 				{PCI_CHIP_RAGE128SM,	"Rage 128 SM",0},
--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.ati-radeon-mobility-LX	Tue Jan 15 21:00:43 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	Sun Feb 10 22:01:08 2002
@@ -1143,6 +1143,7 @@
             break;
    	case PCI_CHIP_RV200_QW:   /* RV200 desktop */
    	case PCI_CHIP_RADEON_LW:  /* M7 */
+   	case PCI_CHIP_RADEON_LX:  /* M7 */
             info->HasCRTC2 = TRUE;  
             info->IsRV200 = TRUE;
             break;
@@ -1273,6 +1274,7 @@
 	case PCI_CHIP_RADEON_QY:
 	case PCI_CHIP_RADEON_QZ:
 	case PCI_CHIP_RADEON_LW:
+	case PCI_CHIP_RADEON_LX:
 	case PCI_CHIP_RADEON_LY:
 	case PCI_CHIP_RADEON_LZ:
 	case PCI_CHIP_RADEON_QD:
--- xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c.ati-radeon-mobility-LX	Wed Jan 16 11:22:25 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c	Mon Feb 11 05:23:53 2002
@@ -439,9 +439,14 @@
         case OldChipID('X', 'X'):  case NewChipID('X', 'X'):
             return ATI_CHIP_68800_6;
 
-        case OldChipID('L', 'X'):  case NewChipID('L', 'X'):
-            return ATI_CHIP_68800LX;
-
+/* The following is disabled because it causes a conflict with the
+ * ATI Radeon Mobility M7 LX adaptor, and having the LX is more important to
+ * me than this ancient Mach32 card, or fixing this code so both work.
+ *                        Mike A. Harris <mharris@redhat.com> - Feb 10, 2002
+ *
+ *       case OldChipID('L', 'X'):  case NewChipID('L', 'X'):
+ *           return ATI_CHIP_68800LX;
+ */
         case OldChipID('A', 'X'):  case NewChipID('A', 'X'):
             return ATI_CHIP_68800AX;
 
@@ -605,6 +610,7 @@
             return ATI_CHIP_RADEONMOBILITY6;
 
         case NewChipID('L', 'W'):
+        case NewChipID('L', 'X'):
             return ATI_CHIP_RADEONMOBILITY7;
 
         case NewChipID('Q', 'L'):
--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c.ati-radeon-mobility-LX	Tue Jan 15 21:00:44 2002
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c	Sun Feb 10 22:01:08 2002
@@ -81,6 +81,7 @@
     { PCI_CHIP_RADEON_QY, "ATI Radeon VE QY (AGP)" },
     { PCI_CHIP_RADEON_QZ, "ATI Radeon VE QZ (AGP)" },
     { PCI_CHIP_RADEON_LW, "ATI Radeon Mobility LW (AGP)" },
+    { PCI_CHIP_RADEON_LX, "ATI Radeon Mobility LX (AGP)" },
     { PCI_CHIP_RADEON_LY, "ATI Radeon Mobility LY (AGP)" },
     { PCI_CHIP_RADEON_LZ, "ATI Radeon Mobility LZ (AGP)" },
     { PCI_CHIP_R200_QL, "ATI Radeon 8500 QL (AGP)" },
@@ -100,6 +101,7 @@
     { PCI_CHIP_RADEON_QY, PCI_CHIP_RADEON_QY, RES_SHARED_VGA },
     { PCI_CHIP_RADEON_QZ, PCI_CHIP_RADEON_QZ, RES_SHARED_VGA },
     { PCI_CHIP_RADEON_LW, PCI_CHIP_RADEON_LW, RES_SHARED_VGA },
+    { PCI_CHIP_RADEON_LX, PCI_CHIP_RADEON_LX, RES_SHARED_VGA },
     { PCI_CHIP_RADEON_LY, PCI_CHIP_RADEON_LY, RES_SHARED_VGA },
     { PCI_CHIP_RADEON_LZ, PCI_CHIP_RADEON_LZ, RES_SHARED_VGA },
     { PCI_CHIP_R200_QL, PCI_CHIP_R200_QL, RES_SHARED_VGA },
@@ -241,6 +243,7 @@
            pEnt->chipset == PCI_CHIP_R200_BB ||
            pEnt->chipset == PCI_CHIP_RV200_QW ||
            pEnt->chipset == PCI_CHIP_RADEON_LW ||
+           pEnt->chipset == PCI_CHIP_RADEON_LX ||
            pEnt->chipset == PCI_CHIP_RADEON_LY ||
            pEnt->chipset == PCI_CHIP_RADEON_LZ)
         {

