From 3a83f5223acbeb1235310798c4d3660121c8880f Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Tue, 1 Oct 2013 18:08:54 +0200 Subject: [PATCH] logind: remove fbdev session-device support fbdev does not support access-handover so it is quite useless to route it through logind. If compositors want to use it they ought to open it themselves. It's highly recommended to be ignored entirely, though. fbdev is about to be deprecated in the kernel. --- src/login/logind-session-device.c | 18 ++---------------- src/login/logind-session-device.h | 1 - 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/src/login/logind-session-device.c b/src/login/logind-session-device.c index 546c53710..6605935f3 100644 --- a/src/login/logind-session-device.c +++ b/src/login/logind-session-device.c @@ -176,7 +176,6 @@ static int session_device_open(SessionDevice *sd, bool active) { if (!active) sd_eviocrevoke(fd); break; - case DEVICE_TYPE_FBDEV: case DEVICE_TYPE_UNKNOWN: default: /* fallback for devices wihout synchronizations */ @@ -213,14 +212,6 @@ static int session_device_start(SessionDevice *sd) { close_nointr_nofail(sd->fd); sd->fd = r; break; - case DEVICE_TYPE_FBDEV: - /* fbdev devices have no way to synchronize access. Moreover, - * they mostly operate through mmaps() without any pageflips - * and modesetting, so there is no way for us to prevent access - * but tear down mmaps. - * That would be quite expensive to do on a per-fd context. So - * ignore legcy fbdev and let its users feel the pain they asked - * for when deciding for fbdev. */ case DEVICE_TYPE_UNKNOWN: default: /* fallback for devices wihout synchronizations */ @@ -252,7 +243,6 @@ static void session_device_stop(SessionDevice *sd) { * protection this way. */ sd_eviocrevoke(sd->fd); break; - case DEVICE_TYPE_FBDEV: case DEVICE_TYPE_UNKNOWN: default: /* fallback for devices without synchronization */ @@ -270,10 +260,7 @@ static DeviceType detect_device_type(struct udev_device *dev) { subsystem = udev_device_get_subsystem(dev); type = DEVICE_TYPE_UNKNOWN; - if (streq_ptr(subsystem, "graphics")) { - if (!streq(sysname, "fbcon") && startswith(sysname, "fb")) - type = DEVICE_TYPE_FBDEV; - } else if (streq_ptr(subsystem, "drm")) { + if (streq_ptr(subsystem, "drm")) { if (startswith(sysname, "card")) type = DEVICE_TYPE_DRM; } else if (streq_ptr(subsystem, "input")) { @@ -314,8 +301,7 @@ static int session_device_verify(SessionDevice *sd) { goto err_dev; } sp = udev_device_get_syspath(dev); - } else if (sd->type != DEVICE_TYPE_FBDEV && - sd->type != DEVICE_TYPE_DRM) { + } else if (sd->type != DEVICE_TYPE_DRM) { /* Prevent opening unsupported devices. Especially devices of * subsystem "input" must be opened via the evdev node as * we require EVIOCREVOKE. */ diff --git a/src/login/logind-session-device.h b/src/login/logind-session-device.h index eac7ca7a6..61a843d09 100644 --- a/src/login/logind-session-device.h +++ b/src/login/logind-session-device.h @@ -33,7 +33,6 @@ typedef struct SessionDevice SessionDevice; enum DeviceType { DEVICE_TYPE_UNKNOWN, - DEVICE_TYPE_FBDEV, DEVICE_TYPE_DRM, DEVICE_TYPE_EVDEV, }; -- 2.30.2