Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2010 23:30:16 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-usb@FreeBSD.org
Subject:   Re: usb/144414: commit references a PR
Message-ID:  <201004062330.o36NUGlr058915@freefall.freebsd.org>

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

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@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@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



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