diff options
author | Jaikumar Ganesh <jaikumarg@android.com> | 2011-09-20 16:47:43 -0700 |
---|---|---|
committer | Jaikumar Ganesh <jaikumarg@android.com> | 2011-09-21 13:52:27 -0700 |
commit | 786240ce3b46476dccf286f689c8b58fcdb09488 (patch) | |
tree | 927c452c9468ce5922ec0acabe57f5352ef33273 /drivers/hid | |
parent | 8bf44e90c8952b7c9b77ae14198c1dceba8949a4 (diff) | |
download | kernel_samsung_aries-786240ce3b46476dccf286f689c8b58fcdb09488.zip kernel_samsung_aries-786240ce3b46476dccf286f689c8b58fcdb09488.tar.gz kernel_samsung_aries-786240ce3b46476dccf286f689c8b58fcdb09488.tar.bz2 |
HID: magicmouse: Add input_register callback.
The magicmouse driver needs to setup the input mapping
after reports are parsed but before device is registered.
Change-Id: Ic3a0ff4fc056f5d374bb7ea1bd831a175c690b0b
Signed-off-by: Jaikumar Ganesh <jaikumarg@android.com>
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/hid-magicmouse.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c index 56d0539..c696f7f 100644 --- a/drivers/hid/hid-magicmouse.c +++ b/drivers/hid/hid-magicmouse.c @@ -365,8 +365,10 @@ static int magicmouse_raw_event(struct hid_device *hdev, return 1; } -static void magicmouse_setup_input(struct input_dev *input, struct hid_device *hdev) +static int magicmouse_setup_input(struct hid_device *hdev, struct hid_input *hi) { + struct input_dev *input = hi->input; + __set_bit(EV_KEY, input->evbit); if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE) { @@ -426,6 +428,8 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h __set_bit(EV_MSC, input->evbit); __set_bit(MSC_RAW, input->mscbit); } + + return 0; } static int magicmouse_input_mapping(struct hid_device *hdev, @@ -478,12 +482,6 @@ static int magicmouse_probe(struct hid_device *hdev, goto err_free; } - /* We do this after hid-input is done parsing reports so that - * hid-input uses the most natural button and axis IDs. - */ - if (msc->input) - magicmouse_setup_input(msc->input, hdev); - if (id->product == USB_DEVICE_ID_APPLE_MAGICMOUSE) report = hid_register_report(hdev, HID_INPUT_REPORT, MOUSE_REPORT_ID); @@ -548,6 +546,7 @@ static struct hid_driver magicmouse_driver = { .remove = magicmouse_remove, .raw_event = magicmouse_raw_event, .input_mapping = magicmouse_input_mapping, + .input_register = magicmouse_setup_input, }; static int __init magicmouse_init(void) |