Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Aug 2013 12:00:01 GMT
From:      Hans Petter Selasky <hps@bitfrost.no>
To:        freebsd-usb@FreeBSD.org
Subject:   Re: usb/181425: USB keyboard with full N-key rollover not working
Message-ID:  <201308201200.r7KC017r024735@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR usb/181425; it has been noted by GNATS.

From: Hans Petter Selasky <hps@bitfrost.no>
To: Andrey Zholos <aaz@q-fu.com>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: usb/181425: USB keyboard with full N-key rollover not working
Date: Tue, 20 Aug 2013 13:56:13 +0200

 Hi,
 
 Have you looked into the USB HID specification from USB.org regarding 
 this? I think USB keyboard stuff is explicitly defined. You are right 
 that we don't support more than a few simultaneously pressed keys, and 
 that would reguire a bit more changes in ukbd driver.
 
 Instead of applying a quirk, maybe ukbd.c could switch to boot-proto 
 automatically when HIO_VARIABLE is set? It is simply a so-called USB 
 control request.
 
 I'm not sure if it is better to use uhidd or ukbd for the purpose you 
 want to use the keyboard.
 
 Thank you for your investigation!
 
 --HPS
 
 >
 > Ideally I would like to get this keyboard to work in normal protocol
 > with full rollover for perfectionist reasons, but I guess that would
 > require too many changes to ukbd.c and introduce overhead for the
 > majority of keyboards.
 >
 >
 > Patch attached with submission follows:
 >
 > --- sys/dev/usb/input/ukbd.c	(revision 254515)
 > +++ sys/dev/usb/input/ukbd.c	(working copy)
 > @@ -1130,8 +1130,12 @@
 >   	    HID_USAGE2(HUP_KEYBOARD, 0x00),
 >   	    hid_input, 0, &sc->sc_loc_events, &flags,
 >   	    &sc->sc_id_events)) {
 > -		sc->sc_flags |= UKBD_FLAG_EVENTS;
 > -		DPRINTFN(1, "Found keyboard events\n");
 > +		if (flags & HIO_VARIABLE)
 > +			DPRINTFN(1, "Ignoring key bitmap\n");
 > +		else {
 > +			sc->sc_flags |= UKBD_FLAG_EVENTS;
 > +			DPRINTFN(1, "Found keyboard events\n");
 > +		}
 >   	}
 >
 >   	/* figure out leds on keyboard */
 >
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308201200.r7KC017r024735>