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>
index | next in thread | raw e-mail
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 */
>
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308201200.r7KC017r024735>
