--- xserver-xorg-video-radeonhd-1.3.0.orig/src/rhd_driver.c
+++ xserver-xorg-video-radeonhd-1.3.0/src/rhd_driver.c
@@ -2,6 +2,7 @@
  * Copyright 2007-2009  Luc Verhaegen <libv@exsuse.de>
  * Copyright 2007-2009  Matthias Hopf <mhopf@novell.com>
  * Copyright 2007-2009  Egbert Eich   <eich@novell.com>
+ * Copyright      2009  Hans Ulrich Niedermann <hun@n-dimensional.de>
  * Copyright 2007-2009  Advanced Micro Devices, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -88,6 +89,9 @@
 #define _XF86DRI_SERVER_
 #include "dri.h"
 #include "GL/glxint.h"
+#ifdef HAVE_XF86DRMMODE_H
+#include "xf86drmMode.h"
+#endif
 #endif
 
 #if HAVE_XF86_ANSIC_H
@@ -398,6 +402,7 @@
  *
  */
 #ifdef XSERVER_LIBPCIACCESS
+
 static Bool
 RHDPciProbe(DriverPtr drv, int entityNum,
 	    struct pci_device *dev, intptr_t matchData)
@@ -409,6 +414,20 @@
 				RES_SHARED_VGA, NULL, NULL, NULL, NULL);
     if (pScrn != NULL) {
 
+	if (dev) {
+#ifdef USE_DRI
+	    Bool kms = RHDKMSEnabled(pScrn, dev);
+	    if (kms) {
+		xf86DrvMsgVerb(pScrn->scrnIndex, X_ERROR, 0,
+		    "FATAL: RadeonHD presently does not work with kernel modesetting (KMS).\n"
+		    "Please disable KMS in your kernel.\n");
+		return FALSE;
+	    } else {
+		xf86DrvMsgVerb(pScrn->scrnIndex, X_ERROR, 0,
+		    "KMS is disabled. This is good for us, because RADEONHD conflicts with KMS.\n");
+	    }
+	}
+#endif
 	pScrn->driverVersion = RHD_VERSION;
 	pScrn->driverName    = RHD_DRIVER_NAME;
 	pScrn->name          = RHD_NAME;
