File xf86-video-ati-ibm-xen.diff of Package xorg-x11-driver-video
diff -urpw xf86-video-ati-6.9.0/src/atipciids.h xf86-video-ati-6.9.0-mo/src/atipciids.h
--- xf86-video-ati-6.9.0/src/atipciids.h 2008-02-18 09:41:27.000000000 -0500
+++ xf86-video-ati-6.9.0-mo/src/atipciids.h 2009-04-15 10:25:47.000000000 -0400
@@ -38,6 +38,7 @@
#define PCI_VENDOR_AMD 0x1022
#define PCI_VENDOR_DELL 0x1028
#define PCI_VENDOR_HP 0x103c
+#define PCI_VENDOR_IBM 0x1014
#include "ati_pciids_gen.h"
diff -urpw xf86-video-ati-6.9.0/src/radeon_driver.c xf86-video-ati-6.9.0-mo/src/radeon_driver.c
--- xf86-video-ati-6.9.0/src/radeon_driver.c 2008-06-23 09:38:42.000000000 -0400
+++ xf86-video-ati-6.9.0-mo/src/radeon_driver.c 2009-04-15 10:24:56.000000000 -0400
@@ -2841,6 +2841,13 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in
* memory map
*/
info->directRenderingEnabled = RADEONPreInitDRI(pScrn);
+
+ /*
+ * IBM server with RV100 always uses MMIO rather than CP
+ */
+ if ((info->Chipset == PCI_CHIP_RV100_QY) &&
+ (PCI_SUB_VENDOR_ID(info->PciInfo) == PCI_VENDOR_IBM))
+ info->directRenderingEnabled = 0;
#endif
if (!RADEONPreInitVRAM(pScrn))
goto fail;