On Fri, Mar 07, 2014 at 02:13:38PM +0100, Hans de Goede wrote: > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > src/intel_device.c | 19 ++++++------------- > src/intel_module.c | 4 ++++ > 2 files changed, 10 insertions(+), 13 deletions(-) > > diff --git a/src/intel_device.c b/src/intel_device.c > index d0c8092..b19884c 100644 > --- a/src/intel_device.c > +++ b/src/intel_device.c > @@ -240,19 +240,10 @@ static char *get_path(struct xf86_platform_device *dev) > #endif > > > -#if defined(ODEV_ATTRIB_FD) && 0 > +#if defined(ODEV_ATTRIB_FD) > static int get_fd(struct xf86_platform_device *dev) > { > - const char *str; > - > - if (dev == NULL) > - return -1; > - > - str = xf86_get_platform_device_attrib(dev, ODEV_ATTRIB_FD); > - if (str == NULL) > - return -1; > - > - return atoi(str); > + return xf86_get_platform_device_int_attrib(dev, ODEV_ATTRIB_FD, -1); > } > > #else > @@ -270,7 +261,7 @@ int intel_open_device(int entity_num, > { > struct intel_device *dev; > char *local_path; > - int fd; > + int fd, init_master_count = 0; > > if (intel_device_key == -1) > intel_device_key = xf86AllocateEntityPrivateIndex(); > @@ -286,6 +277,8 @@ int intel_open_device(int entity_num, > fd = get_fd(platform); > if (fd == -1) > fd = __intel_open_device(pci, &local_path); > + else > + init_master_count = 1; /* Server fd is already master */ If we set master_count to non-zero, we won't ever call drmDropMaster (since our get/put will be unbalanced). Does the server manage DRM_MASTER across VT switches for this fd? -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx