Merge branch 'x86/cpu' into perf/core, to pick up dependent patches
[linux-block.git] / drivers / hid / hid-a4tech.c
index fd806f590bf8af4db2d62cbd689da398e3a21040..98bf694626f71a7e50318ca5b2f3aaf8f2eb6d4f 100644 (file)
@@ -35,8 +35,10 @@ static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi,
 {
        struct a4tech_sc *a4 = hid_get_drvdata(hdev);
 
-       if (usage->type == EV_REL && usage->code == REL_WHEEL)
+       if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) {
                set_bit(REL_HWHEEL, *bit);
+               set_bit(REL_HWHEEL_HI_RES, *bit);
+       }
 
        if ((a4->quirks & A4_2WHEEL_MOUSE_HACK_7) && usage->hid == 0x00090007)
                return -1;
@@ -57,7 +59,7 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field,
        input = field->hidinput->input;
 
        if (a4->quirks & A4_2WHEEL_MOUSE_HACK_B8) {
-               if (usage->type == EV_REL && usage->code == REL_WHEEL) {
+               if (usage->type == EV_REL && usage->code == REL_WHEEL_HI_RES) {
                        a4->delayed_value = value;
                        return 1;
                }
@@ -65,6 +67,8 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field,
                if (usage->hid == 0x000100b8) {
                        input_event(input, EV_REL, value ? REL_HWHEEL :
                                        REL_WHEEL, a4->delayed_value);
+                       input_event(input, EV_REL, value ? REL_HWHEEL_HI_RES :
+                                       REL_WHEEL_HI_RES, a4->delayed_value * 120);
                        return 1;
                }
        }
@@ -74,8 +78,9 @@ static int a4_event(struct hid_device *hdev, struct hid_field *field,
                return 1;
        }
 
-       if (usage->code == REL_WHEEL && a4->hw_wheel) {
+       if (usage->code == REL_WHEEL_HI_RES && a4->hw_wheel) {
                input_event(input, usage->type, REL_HWHEEL, value);
+               input_event(input, usage->type, REL_HWHEEL_HI_RES, value * 120);
                return 1;
        }