diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-24 08:41:41 -0400 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-06-24 13:07:53 -0400 |
| commit | 816724e65c72a90a44fbad0ef0b59b186c85fa90 (patch) | |
| tree | 421fa29aedff988e392f92780637553e275d37a0 /drivers/usb/input/hid-input.c | |
| parent | 70ac4385a13f78bc478f26d317511893741b05bd (diff) | |
| parent | d384ea691fe4ea8c2dd5b9b8d9042eb181776f18 (diff) | |
Merge branch 'master' of /home/trondmy/kernel/linux-2.6/
Conflicts:
fs/nfs/inode.c
fs/super.c
Fix conflicts between patch 'NFS: Split fs/nfs/inode.c' and patch
'VFS: Permit filesystem to override root dentry on mount'
Diffstat (limited to 'drivers/usb/input/hid-input.c')
| -rw-r--r-- | drivers/usb/input/hid-input.c | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/drivers/usb/input/hid-input.c b/drivers/usb/input/hid-input.c index 25bc85f8ce39..028e1ad89f5d 100644 --- a/drivers/usb/input/hid-input.c +++ b/drivers/usb/input/hid-input.c | |||
| @@ -29,9 +29,7 @@ | |||
| 29 | #include <linux/module.h> | 29 | #include <linux/module.h> |
| 30 | #include <linux/slab.h> | 30 | #include <linux/slab.h> |
| 31 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
| 32 | #include <linux/input.h> | 32 | #include <linux/usb/input.h> |
| 33 | #include <linux/usb.h> | ||
| 34 | #include <linux/usb_input.h> | ||
| 35 | 33 | ||
| 36 | #undef DEBUG | 34 | #undef DEBUG |
| 37 | 35 | ||
| @@ -567,16 +565,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
| 567 | break; | 565 | break; |
| 568 | } | 566 | } |
| 569 | 567 | ||
| 570 | set_bit(usage->type, input->evbit); | 568 | if (device->quirks & HID_QUIRK_MIGHTYMOUSE) { |
| 571 | 569 | if (usage->hid == HID_GD_Z) | |
| 572 | while (usage->code <= max && test_and_set_bit(usage->code, bit)) | 570 | map_rel(REL_HWHEEL); |
| 573 | usage->code = find_next_zero_bit(bit, max + 1, usage->code); | 571 | else if (usage->code == BTN_1) |
| 574 | 572 | map_key(BTN_2); | |
| 575 | if (usage->code > max) | 573 | else if (usage->code == BTN_2) |
| 576 | goto ignore; | 574 | map_key(BTN_1); |
| 577 | 575 | } | |
| 578 | if (((device->quirks & (HID_QUIRK_2WHEEL_POWERMOUSE)) && (usage->hid == 0x00010032))) | ||
| 579 | map_rel(REL_HWHEEL); | ||
| 580 | 576 | ||
| 581 | if ((device->quirks & (HID_QUIRK_2WHEEL_MOUSE_HACK_7 | HID_QUIRK_2WHEEL_MOUSE_HACK_5)) && | 577 | if ((device->quirks & (HID_QUIRK_2WHEEL_MOUSE_HACK_7 | HID_QUIRK_2WHEEL_MOUSE_HACK_5)) && |
| 582 | (usage->type == EV_REL) && (usage->code == REL_WHEEL)) | 578 | (usage->type == EV_REL) && (usage->code == REL_WHEEL)) |
| @@ -586,6 +582,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
| 586 | || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007))) | 582 | || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007))) |
| 587 | goto ignore; | 583 | goto ignore; |
| 588 | 584 | ||
| 585 | set_bit(usage->type, input->evbit); | ||
| 586 | |||
| 587 | while (usage->code <= max && test_and_set_bit(usage->code, bit)) | ||
| 588 | usage->code = find_next_zero_bit(bit, max + 1, usage->code); | ||
| 589 | |||
| 590 | if (usage->code > max) | ||
| 591 | goto ignore; | ||
| 592 | |||
| 593 | |||
| 589 | if (usage->type == EV_ABS) { | 594 | if (usage->type == EV_ABS) { |
| 590 | 595 | ||
| 591 | int a = field->logical_minimum; | 596 | int a = field->logical_minimum; |
| @@ -647,6 +652,11 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct | |||
| 647 | return; | 652 | return; |
| 648 | } | 653 | } |
| 649 | 654 | ||
| 655 | if ((hid->quirks & HID_QUIRK_INVERT_HWHEEL) && (usage->code == REL_HWHEEL)) { | ||
| 656 | input_event(input, usage->type, usage->code, -value); | ||
| 657 | return; | ||
| 658 | } | ||
| 659 | |||
| 650 | if ((hid->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_ON) && (usage->code == REL_WHEEL)) { | 660 | if ((hid->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_ON) && (usage->code == REL_WHEEL)) { |
| 651 | input_event(input, usage->type, REL_HWHEEL, value); | 661 | input_event(input, usage->type, REL_HWHEEL, value); |
| 652 | return; | 662 | return; |
