Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-6]: src/sys/dev/wscons Pull up following revision(s) (requested b...



details:   https://anonhg.NetBSD.org/src/rev/54c9c5ef1a43
branches:  netbsd-6
changeset: 775742:54c9c5ef1a43
user:      riz <riz%NetBSD.org@localhost>
date:      Sat Mar 30 23:10:44 2013 +0000

description:
Pull up following revision(s) (requested by jmcneill in ticket #848):
        xsrc/external/mit/xf86-input-keyboard/dist/src/bsd_kbd.c: revision 1.18
        sys/dev/wscons/wsmux.c: revision 1.55
If there are no devices attached to the mux and software does
WSxxxIO_SETVERSION, the change doesn't actually get applied to the event
source as wsmux hands off processing of these ioctls to attached devices.
Handle these ioctls directly from the mux device instead of passing them
through, to correct an issue that prevented keyboards and mice from working
in X if there were zero devices attached when the X server started.
If WSKBDIO_GTYPE succeeds and returns type=0, it is a mux with no keyboard
attached. In this case, assume USB.

diffstat:

 sys/dev/wscons/wsmux.c |  14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diffs (35 lines):

diff -r 74026634856f -r 54c9c5ef1a43 sys/dev/wscons/wsmux.c
--- a/sys/dev/wscons/wsmux.c    Sat Mar 30 23:03:19 2013 +0000
+++ b/sys/dev/wscons/wsmux.c    Sat Mar 30 23:10:44 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: wsmux.c,v 1.54 2012/01/30 01:54:08 rmind Exp $ */
+/*     $NetBSD: wsmux.c,v 1.54.2.1 2013/03/30 23:10:44 riz Exp $       */
 
 /*
  * Copyright (c) 1998, 2005 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsmux.c,v 1.54 2012/01/30 01:54:08 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsmux.c,v 1.54.2.1 2013/03/30 23:10:44 riz Exp $");
 
 #include "opt_compat_netbsd.h"
 #include "opt_modular.h"
@@ -481,6 +481,16 @@
                DPRINTF(("wsmux_do_ioctl: save rawkbd = %d\n", sc->sc_rawkbd));
                break;
 #endif
+
+       case WSKBDIO_SETVERSION:
+       case WSMOUSEIO_SETVERSION:
+       case WSDISPLAYIO_SETVERSION:
+               DPRINTF(("%s: WSxxxIO_SETVERSION\n", device_xname(sc->sc_base.me_dv)));
+               evar = sc->sc_base.me_evp;
+               if (evar == NULL)
+                       return (EINVAL);
+               return wsevent_setversion(evar, *(int *)data);
+
        case FIONBIO:
                DPRINTF(("%s: FIONBIO\n", device_xname(sc->sc_base.me_dv)));
                return (0);



Home | Main Index | Thread Index | Old Index