usb/144414: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Thu Mar 11 22:00:12 UTC 2010
The following reply was made to PR usb/144414; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: usb/144414: commit references a PR
Date: Thu, 11 Mar 2010 21:57:15 +0000 (UTC)
Author: thompsa
Date: Thu Mar 11 21:57:01 2010
New Revision: 205040
URL: http://svn.freebsd.org/changeset/base/205040
Log:
extend search for Apple Function Key.
PR: usb/144414
Submitted by: Hans Petter Selasky
Modified:
head/sys/dev/usb/input/ukbd.c
Modified: head/sys/dev/usb/input/ukbd.c
==============================================================================
--- head/sys/dev/usb/input/ukbd.c Thu Mar 11 21:55:25 2010 (r205039)
+++ head/sys/dev/usb/input/ukbd.c Thu Mar 11 21:57:01 2010 (r205040)
@@ -876,28 +876,33 @@ ukbd_attach(device_t dev)
err = usbd_req_get_hid_desc(uaa->device, NULL, &hid_ptr,
&hid_len, M_TEMP, uaa->info.bIfaceIndex);
if (err == 0) {
+ uint8_t apple_keys = 0;
uint8_t temp_id;
/* investigate if this is an Apple Keyboard */
if (hid_locate(hid_ptr, hid_len,
HID_USAGE2(HUP_CONSUMER, HUG_APPLE_EJECT),
hid_input, 0, &sc->sc_loc_apple_eject, &flags,
- &sc->sc_kbd_id)) {
+ &temp_id)) {
if (flags & HIO_VARIABLE)
sc->sc_flags |= UKBD_FLAG_APPLE_EJECT |
UKBD_FLAG_APPLE_SWAP;
- if (hid_locate(hid_ptr, hid_len,
- HID_USAGE2(0xFFFF, 0x0003),
- hid_input, 0, &sc->sc_loc_apple_fn, &flags,
- &temp_id)) {
- if (flags & HIO_VARIABLE)
- sc->sc_flags |= UKBD_FLAG_APPLE_FN |
- UKBD_FLAG_APPLE_SWAP;
- if (temp_id != sc->sc_kbd_id) {
- DPRINTF("HID IDs mismatch\n");
- }
- }
- } else {
+ DPRINTFN(1, "Found Apple eject-key\n");
+ apple_keys = 1;
+ sc->sc_kbd_id = temp_id;
+ }
+ if (hid_locate(hid_ptr, hid_len,
+ HID_USAGE2(0xFFFF, 0x0003),
+ hid_input, 0, &sc->sc_loc_apple_fn, &flags,
+ &temp_id)) {
+ if (flags & HIO_VARIABLE)
+ sc->sc_flags |= UKBD_FLAG_APPLE_FN |
+ UKBD_FLAG_APPLE_SWAP;
+ DPRINTFN(1, "Found Apple FN-key\n");
+ apple_keys = 1;
+ sc->sc_kbd_id = temp_id;
+ }
+ if (apple_keys == 0) {
/*
* Assume the first HID ID contains the
* keyboard data
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-usb
mailing list