From ab878118b9fb46c437a02f824d29f4a206e7fd80 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 27 Apr 2009 16:00:05 -0700 Subject: Don't initialize DRI2 if the fd we get is not master-capable. --- src/i830_dri.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/i830_dri.c b/src/i830_dri.c index 70b76aed..93bb3409 100644 --- a/src/i830_dri.c +++ b/src/i830_dri.c @@ -1829,8 +1829,22 @@ Bool I830DRI2ScreenInit(ScreenPtr pScreen) info.fd = pI830->drmSubFD; #endif - if (info.fd < 0) + if (info.fd < 0) { info.fd = drmOpen("i915", buf); + drmSetVersion sv; + int err; + + /* Check that what we opened was a master or a master-capable FD, + * by setting the version of the interface we'll use to talk to it. + * (see DRIOpenDRMMaster() in DRI1) + */ + sv.drm_di_major = 1; + sv.drm_di_minor = 1; + sv.drm_dd_major = -1; + err = drmSetInterfaceVersion(info.fd, &sv); + if (err != 0) + return FALSE; + } if (info.fd < 0) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Failed to open DRM device\n"); -- cgit v1.2.1