[systemd-commits] src/login

David Herrmann dvdhrm at kemper.freedesktop.org
Tue Oct 1 09:10:09 PDT 2013


 src/login/logind-session-device.c |   18 ++----------------
 src/login/logind-session-device.h |    1 -
 2 files changed, 2 insertions(+), 17 deletions(-)

New commits:
commit 3a83f5223acbeb1235310798c4d3660121c8880f
Author: David Herrmann <dh.herrmann at gmail.com>
Date:   Tue Oct 1 18:08:54 2013 +0200

    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.

diff --git a/src/login/logind-session-device.c b/src/login/logind-session-device.c
index 546c537..6605935 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 eac7ca7..61a843d 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,
 };



More information about the systemd-commits mailing list