PERFORCE change 175283 for review

Hans Petter Selasky hselasky at FreeBSD.org
Tue Mar 2 22:27:50 UTC 2010


http://p4web.freebsd.org/chv.cgi?CH=175283

Change 175283 by hselasky at hselasky_laptop001 on 2010/03/02 22:27:23

	
	USB input:
		- extend search for Apple Function Key.
		- patch by: HPS @
	
	PR:		usb/144414

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#45 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#45 (text+ko) ====

@@ -883,7 +883,7 @@
 	err = usbd_req_get_hid_desc(uaa->device, NULL, &hid_ptr,
 	    &hid_len, M_TEMP, uaa->info.bIfaceIndex);
 	if (err == 0) {
-		uint8_t temp_id;
+		uint8_t apple_keys = 0;
 
 		/* investigate if this is an Apple Keyboard */
 		if (hid_locate(hid_ptr, hid_len,
@@ -893,18 +893,20 @@
 			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;
+		}
+		if (hid_locate(hid_ptr, hid_len,
+		    HID_USAGE2(0xFFFF, 0x0003),
+		    hid_input, 0, &sc->sc_loc_apple_fn, &flags,
+		    &sc->sc_kbd_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;
+		}
+		if (apple_keys == 0) {
 			/* 
 			 * Assume the first HID ID contains the
 			 * keyboard data


More information about the p4-projects mailing list