Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ce91cf9ce23127932e8b5241d8a7d2bf62df017
Commit:     0ce91cf9ce23127932e8b5241d8a7d2bf62df017
Parent:     c4025aded3eab4a50d5070d96ae3a46a25bdc59d
Author:     Stelian Pop <[EMAIL PROTECTED]>
AuthorDate: Tue Sep 11 23:34:55 2007 +0200
Committer:  Jiri Kosina <[EMAIL PROTECTED]>
CommitDate: Sun Oct 14 13:40:01 2007 +0200

    HID: enable hiddev for the SantaRosa MacBookPro IR receiver
    
    The infrared remote receiver found in the SantaRosa MacBookPro
    laptops (MacBookPro3,1) need to be forced to expose a HIDDEV
    interface (instead of HIDINPUT) so that lirc can access it using
    the 'macmini' driver.
    
    The patch below adds the required quirk for forcing the HIDDEV
    interface to be activated (HID_QUIRK_HIDDEV) and introduces a new
    quirk which forces the HIDINPUT interface to be ignored
    (HID_QUIRK_IGNORE_HIDINPUT).
    
    Note that Apple calls this receiver 'IRController4' (info taken
    from Apple's driver Info.plist). Older Mac{Book,Mini,Pro}s seem
    to all use the 'IRController1' device (USB id 05ac:8240) which
    doesn't need those quirks.
    
    Signed-off-by: Stelian Pop <[EMAIL PROTECTED]>
    Signed-off-by: Jiri Kosina <[EMAIL PROTECTED]>
---
 drivers/hid/hid-input.c         |    3 +++
 drivers/hid/usbhid/hid-quirks.c |    2 ++
 include/linux/hid.h             |    1 +
 3 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 36be431..bd5a29f 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1112,6 +1112,9 @@ int hidinput_connect(struct hid_device *hid)
        int i, j, k;
        int max_report_type = HID_OUTPUT_REPORT;
 
+       if (hid->quirks & HID_QUIRK_IGNORE_HIDINPUT)
+               return -1;
+
        INIT_LIST_HEAD(&hid->inputs);
 
        for (i = 0; i < hid->maxcollection; i++)
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 334c5fc..54189b4 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -61,6 +61,7 @@
 #define USB_DEVICE_ID_APPLE_GEYSER4_JIS        0x021c
 #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY   0x030a
 #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY    0x030b
+#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
 
 #define USB_VENDOR_ID_ASUS             0x0b05
 #define USB_DEVICE_ID_ASUS_LCM         0x1726
@@ -376,6 +377,7 @@ static const struct hid_blacklist {
        { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_EDGE, 
HID_QUIRK_DUPLICATE_USAGES },
 
        { USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM, HID_QUIRK_HIDDEV },
+       { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4, HID_QUIRK_HIDDEV 
| HID_QUIRK_IGNORE_HIDINPUT },
        { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV, 
HID_QUIRK_HIDINPUT },
 
        { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_01, HID_QUIRK_IGNORE },
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 898103b..eb42e10 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -276,6 +276,7 @@ struct hid_item {
 #define HID_QUIRK_HIDINPUT                     0x00200000
 #define HID_QUIRK_LOGITECH_IGNORE_DOUBLED_WHEEL        0x00400000
 #define HID_QUIRK_LOGITECH_EXPANDED_KEYMAP     0x00800000
+#define HID_QUIRK_IGNORE_HIDINPUT              0x01000000
 
 /*
  * Separate quirks for runtime report descriptor fixup
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to