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

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

Reply via email to