The following reply was made to PR usb/144414; it has been noted by GNATS.

From: [email protected] (dfilter service)
To: [email protected]
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
 _______________________________________________
 [email protected] mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "[email protected]"
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[email protected]"

Reply via email to