Merge branch 'agp-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[cascardo/linux.git] / include / linux / hid.h
index 6e35b92..74ff575 100644 (file)
@@ -267,10 +267,10 @@ struct hid_item {
 #define HID_QUIRK_2WHEEL_MOUSE_HACK_5          0x00000100
 #define HID_QUIRK_2WHEEL_MOUSE_HACK_ON         0x00000200
 #define HID_QUIRK_MIGHTYMOUSE                  0x00000400
-#define HID_QUIRK_POWERBOOK_HAS_FN             0x00000800
-#define HID_QUIRK_POWERBOOK_FN_ON              0x00001000
+#define HID_QUIRK_APPLE_HAS_FN                 0x00000800
+#define HID_QUIRK_APPLE_FN_ON                  0x00001000
 #define HID_QUIRK_INVERT_HWHEEL                        0x00002000
-#define HID_QUIRK_POWERBOOK_ISO_KEYBOARD        0x00004000
+#define HID_QUIRK_APPLE_ISO_KEYBOARD           0x00004000
 #define HID_QUIRK_BAD_RELATIVE_KEYS            0x00008000
 #define HID_QUIRK_SKIP_OUTPUT_REPORTS          0x00010000
 #define HID_QUIRK_IGNORE_MOUSE                 0x00020000
@@ -281,6 +281,9 @@ struct hid_item {
 #define HID_QUIRK_LOGITECH_IGNORE_DOUBLED_WHEEL        0x00400000
 #define HID_QUIRK_LOGITECH_EXPANDED_KEYMAP     0x00800000
 #define HID_QUIRK_IGNORE_HIDINPUT              0x01000000
+#define HID_QUIRK_2WHEEL_MOUSE_HACK_B8         0x02000000
+#define HID_QUIRK_HWHEEL_WHEEL_INVERT          0x04000000
+#define HID_QUIRK_MICROSOFT_KEYS               0x08000000
 
 /*
  * Separate quirks for runtime report descriptor fixup
@@ -291,6 +294,8 @@ struct hid_item {
 #define HID_QUIRK_RDESC_SWAPPED_MIN_MAX                0x00000004
 #define HID_QUIRK_RDESC_PETALYNX               0x00000008
 #define HID_QUIRK_RDESC_MACBOOK_JIS            0x00000010
+#define HID_QUIRK_RDESC_BUTTON_CONSUMER                0x00000020
+#define HID_QUIRK_RDESC_SAMSUNG_REMOTE         0x00000040
 
 /*
  * This is the global environment of the parser. This information is
@@ -456,6 +461,8 @@ struct hid_device {                                                 /* device report descriptor */
 
        void *driver_data;
 
+       __s32 delayed_value;                                            /* For A4 Tech mice hwheel quirk */
+
        /* device-specific function pointers */
        int (*hidinput_input_event) (struct input_dev *, unsigned int, unsigned int, int);
        int (*hid_open) (struct hid_device *);
@@ -469,7 +476,7 @@ struct hid_device {                                                 /* device report descriptor */
        /* handler for raw output data, used by hidraw */
        int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t);
 #ifdef CONFIG_USB_HIDINPUT_POWERBOOK
-       unsigned long pb_pressed_fn[BITS_TO_LONGS(KEY_CNT)];
+       unsigned long apple_pressed_fn[BITS_TO_LONGS(KEY_CNT)];
        unsigned long pb_pressed_numlock[BITS_TO_LONGS(KEY_CNT)];
 #endif
 };
@@ -520,6 +527,9 @@ extern void hidinput_disconnect(struct hid_device *);
 int hid_set_field(struct hid_field *, unsigned, __s32);
 int hid_input_report(struct hid_device *, int type, u8 *, int, int);
 int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field);
+int hidinput_mapping_quirks(struct hid_usage *, struct input_dev *, unsigned long **, int *);
+int hidinput_event_quirks(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
+int hidinput_apple_event(struct hid_device *, struct input_dev *, struct hid_usage *, __s32);
 void hid_input_field(struct hid_device *hid, struct hid_field *field, __u8 *data, int interrupt);
 void hid_output_report(struct hid_report *report, __u8 *data);
 void hid_free_device(struct hid_device *device);