[Intel-gfx] [PATCH] intel: Add support for server managed fds
Chris Wilson
chris at chris-wilson.co.uk
Fri Mar 7 14:18:04 CET 2014
On Fri, Mar 07, 2014 at 02:13:38PM +0100, Hans de Goede wrote:
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> 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
More information about the Intel-gfx
mailing list