From: Tomasz SZKUTKOWSKI <[email protected]> This patch disables unsupported ioctl `KDGKBMODE K_OFF` command if Weston is built against kernel older than 2.6.39, as this ioctl has been introduced in 2.6.39 kernel version.
No functional changes have been observed by disabling this ioctl. Signed-off-by: Tomasz SZKUTKOWSKI <[email protected]> Signed-off-by: Krzysztof Konopko <[email protected]> --- libweston/launcher-direct.c | 5 +++++ libweston/weston-launch.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c index 29d9c28..34fe5cd 100644 --- a/libweston/launcher-direct.c +++ b/libweston/launcher-direct.c @@ -34,6 +34,7 @@ #include <linux/vt.h> #include <linux/kd.h> #include <linux/major.h> +#include <linux/version.h> #include "launcher-impl.h" @@ -157,8 +158,12 @@ setup_tty(struct launcher_direct *launcher, int tty) goto err_close; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) if (ioctl(launcher->tty, KDSKBMUTE, 1) && ioctl(launcher->tty, KDSKBMODE, K_OFF)) { +#else + if (ioctl(launcher->tty, KDSKBMUTE, 1)) { +#endif weston_log("failed to set K_OFF keyboard mode: %m\n"); goto err_close; } diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c index 140fde1..74b80dd 100644 --- a/libweston/weston-launch.c +++ b/libweston/weston-launch.c @@ -49,6 +49,7 @@ #include <linux/vt.h> #include <linux/major.h> #include <linux/kd.h> +#include <linux/version.h> #include <pwd.h> #include <grp.h> @@ -561,8 +562,12 @@ setup_tty(struct weston_launch *wl, const char *tty) if (ioctl(wl->tty, KDGKBMODE, &wl->kb_mode)) error(1, errno, "failed to get current keyboard mode: %m\n"); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) if (ioctl(wl->tty, KDSKBMUTE, 1) && ioctl(wl->tty, KDSKBMODE, K_OFF)) +#else + if (ioctl(wl->tty, KDSKBMUTE, 1)) +#endif error(1, errno, "failed to set K_OFF keyboard mode: %m\n"); if (ioctl(wl->tty, KDSETMODE, KD_GRAPHICS)) -- 2.1.4 This transmission contains information that may be confidential and contain personal views which are not necessarily those of YouView TV Ltd. YouView TV Ltd (Co No:7308805) is a limited liability company registered in England and Wales with its registered address at YouView TV Ltd, 3rd Floor, 10 Lower Thames Street, London, EC3R 6YT. For details see our web site at http://www.youview.com _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
