summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
11c2f7a)
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.
if (!active)
sd_eviocrevoke(fd);
break;
if (!active)
sd_eviocrevoke(fd);
break;
- case DEVICE_TYPE_FBDEV:
case DEVICE_TYPE_UNKNOWN:
default:
/* fallback for devices wihout synchronizations */
case DEVICE_TYPE_UNKNOWN:
default:
/* fallback for devices wihout synchronizations */
close_nointr_nofail(sd->fd);
sd->fd = r;
break;
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 */
case DEVICE_TYPE_UNKNOWN:
default:
/* fallback for devices wihout synchronizations */
* protection this way. */
sd_eviocrevoke(sd->fd);
break;
* protection this way. */
sd_eviocrevoke(sd->fd);
break;
- case DEVICE_TYPE_FBDEV:
case DEVICE_TYPE_UNKNOWN:
default:
/* fallback for devices without synchronization */
case DEVICE_TYPE_UNKNOWN:
default:
/* fallback for devices without synchronization */
subsystem = udev_device_get_subsystem(dev);
type = DEVICE_TYPE_UNKNOWN;
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")) {
if (startswith(sysname, "card"))
type = DEVICE_TYPE_DRM;
} else if (streq_ptr(subsystem, "input")) {
goto err_dev;
}
sp = udev_device_get_syspath(dev);
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. */
/* Prevent opening unsupported devices. Especially devices of
* subsystem "input" must be opened via the evdev node as
* we require EVIOCREVOKE. */
enum DeviceType {
DEVICE_TYPE_UNKNOWN,
enum DeviceType {
DEVICE_TYPE_UNKNOWN,
DEVICE_TYPE_DRM,
DEVICE_TYPE_EVDEV,
};
DEVICE_TYPE_DRM,
DEVICE_TYPE_EVDEV,
};