usb/144414: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Tue Apr 6 23:30:17 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: Tue, 6 Apr 2010 23:28:34 +0000 (UTC)
Author: thompsa
Date: Tue Apr 6 23:28:18 2010
New Revision: 206319
URL: http://svn.freebsd.org/changeset/base/206319
Log:
MFC r205040
extend search for Apple Function Key.
PR: usb/144414
Submitted by: Hans Petter Selasky
Modified:
stable/8/sys/dev/usb/input/ukbd.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/dev/usb/input/ukbd.c
==============================================================================
--- stable/8/sys/dev/usb/input/ukbd.c Tue Apr 6 23:27:55 2010 (r206318)
+++ stable/8/sys/dev/usb/input/ukbd.c Tue Apr 6 23:28:18 2010 (r206319)
@@ -883,28 +883,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