summaryrefslogtreecommitdiff
path: root/src/radeon_driver.c
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2011-08-17 11:10:34 +0200
committerMichel Dänzer <michel@daenzer.net>2011-08-17 11:10:34 +0200
commit95991fcce45f0dd904f76b9f98f9c7ed5708e4fa (patch)
tree618f98dfa03968a455a53bb5c3cf3d1ebab6c064 /src/radeon_driver.c
parentf95a41b7851565c282d22f8d679db1377428f165 (diff)
Bail if we're trying to start up in UMS mode on KMS.
Ideally, the display manager will start the X server again, and everything will be fine and dandy. But in the worst case, at least we won't hit the hardware behind the KMS driver's back. (This change intentionally makes (ab)use of the fact that Bool is defined as int). Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/radeon_driver.c')
-rw-r--r--src/radeon_driver.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 202951fd..293897a9 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2336,6 +2336,7 @@ static Bool RADEONPreInitInt10(ScrnInfoPtr pScrn, xf86Int10InfoPtr *ppInt10)
static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
{
RADEONInfoPtr info = RADEONPTR(pScrn);
+ Bool ret;
MessageType from;
char *reason;
@@ -2402,8 +2403,9 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr pScrn)
info->dri->pLibDRMVersion = NULL;
info->dri->pKernelDRMVersion = NULL;
- if (!RADEONDRIGetVersion(pScrn))
- return FALSE;
+ ret = RADEONDRIGetVersion(pScrn);
+ if (ret <= 0)
+ return ret;
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"[dri] Found DRI library version %d.%d.%d and kernel"
@@ -3166,6 +3168,8 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
* memory map
*/
info->directRenderingEnabled = RADEONPreInitDRI(pScrn);
+ if (info->directRenderingEnabled < 0)
+ goto fail;
#endif
if (!info->directRenderingEnabled) {
if (info->ChipFamily >= CHIP_FAMILY_R600) {