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