Loading Documentation/input/multi-touch-protocol.txt +17 −6 Original line number Diff line number Diff line Loading @@ -68,6 +68,22 @@ like: SYN_MT_REPORT SYN_REPORT Here is the sequence after lifting one of the fingers: ABS_MT_POSITION_X ABS_MT_POSITION_Y SYN_MT_REPORT SYN_REPORT And here is the sequence after lifting the remaining finger: SYN_MT_REPORT SYN_REPORT If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the last SYN_REPORT will be dropped by the input core, resulting in no zero-finger event reaching userland. Event Semantics --------------- Loading Loading @@ -217,11 +233,6 @@ where examples can be found. difference between the contact position and the approaching tool position could be used to derive tilt. [2] The list can of course be extended. [3] The multi-touch X driver is currently in the prototyping stage. At the time of writing (April 2009), the MT protocol is not yet merged, and the prototype implements finger matching, basic mouse support and two-finger scrolling. The project aims at improving the quality of current multi-touch functionality available in the Synaptics X driver, and in addition implement more advanced gestures. [3] Multitouch X driver project: http://bitmath.org/code/multitouch/. [4] See the section on event computation. [5] See the section on finger tracking. drivers/input/input.c +8 −1 Original line number Diff line number Diff line Loading @@ -660,7 +660,14 @@ static int input_default_setkeycode(struct input_dev *dev, int input_get_keycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode) { return dev->getkeycode(dev, scancode, keycode); unsigned long flags; int retval; spin_lock_irqsave(&dev->event_lock, flags); retval = dev->getkeycode(dev, scancode, keycode); spin_unlock_irqrestore(&dev->event_lock, flags); return retval; } EXPORT_SYMBOL(input_get_keycode); Loading drivers/input/keyboard/matrix_keypad.c +3 −1 Original line number Diff line number Diff line Loading @@ -374,7 +374,9 @@ static int __devinit matrix_keypad_probe(struct platform_device *pdev) input_dev->name = pdev->name; input_dev->id.bustype = BUS_HOST; input_dev->dev.parent = &pdev->dev; input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP); input_dev->evbit[0] = BIT_MASK(EV_KEY); if (!pdata->no_autorepeat) input_dev->evbit[0] |= BIT_MASK(EV_REP); input_dev->open = matrix_keypad_start; input_dev->close = matrix_keypad_stop; Loading drivers/input/mouse/alps.c +1 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ static const struct alps_model_info alps_model_data[] = { { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, { { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */ { { 0x73, 0x02, 0x64 }, 0xf8, 0xf8, 0 }, /* HP Pavilion dm3 */ { { 0x52, 0x01, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */ }; Loading drivers/input/mouse/bcm5974.c +0 −1 Original line number Diff line number Diff line Loading @@ -803,7 +803,6 @@ static struct usb_driver bcm5974_driver = { .disconnect = bcm5974_disconnect, .suspend = bcm5974_suspend, .resume = bcm5974_resume, .reset_resume = bcm5974_resume, .id_table = bcm5974_table, .supports_autosuspend = 1, }; Loading Loading
Documentation/input/multi-touch-protocol.txt +17 −6 Original line number Diff line number Diff line Loading @@ -68,6 +68,22 @@ like: SYN_MT_REPORT SYN_REPORT Here is the sequence after lifting one of the fingers: ABS_MT_POSITION_X ABS_MT_POSITION_Y SYN_MT_REPORT SYN_REPORT And here is the sequence after lifting the remaining finger: SYN_MT_REPORT SYN_REPORT If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the last SYN_REPORT will be dropped by the input core, resulting in no zero-finger event reaching userland. Event Semantics --------------- Loading Loading @@ -217,11 +233,6 @@ where examples can be found. difference between the contact position and the approaching tool position could be used to derive tilt. [2] The list can of course be extended. [3] The multi-touch X driver is currently in the prototyping stage. At the time of writing (April 2009), the MT protocol is not yet merged, and the prototype implements finger matching, basic mouse support and two-finger scrolling. The project aims at improving the quality of current multi-touch functionality available in the Synaptics X driver, and in addition implement more advanced gestures. [3] Multitouch X driver project: http://bitmath.org/code/multitouch/. [4] See the section on event computation. [5] See the section on finger tracking.
drivers/input/input.c +8 −1 Original line number Diff line number Diff line Loading @@ -660,7 +660,14 @@ static int input_default_setkeycode(struct input_dev *dev, int input_get_keycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode) { return dev->getkeycode(dev, scancode, keycode); unsigned long flags; int retval; spin_lock_irqsave(&dev->event_lock, flags); retval = dev->getkeycode(dev, scancode, keycode); spin_unlock_irqrestore(&dev->event_lock, flags); return retval; } EXPORT_SYMBOL(input_get_keycode); Loading
drivers/input/keyboard/matrix_keypad.c +3 −1 Original line number Diff line number Diff line Loading @@ -374,7 +374,9 @@ static int __devinit matrix_keypad_probe(struct platform_device *pdev) input_dev->name = pdev->name; input_dev->id.bustype = BUS_HOST; input_dev->dev.parent = &pdev->dev; input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP); input_dev->evbit[0] = BIT_MASK(EV_KEY); if (!pdata->no_autorepeat) input_dev->evbit[0] |= BIT_MASK(EV_REP); input_dev->open = matrix_keypad_start; input_dev->close = matrix_keypad_stop; Loading
drivers/input/mouse/alps.c +1 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ static const struct alps_model_info alps_model_data[] = { { { 0x62, 0x02, 0x14 }, 0xcf, 0xcf, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, { { 0x73, 0x02, 0x50 }, 0xcf, 0xcf, ALPS_FOUR_BUTTONS }, /* Dell Vostro 1400 */ { { 0x73, 0x02, 0x64 }, 0xf8, 0xf8, 0 }, /* HP Pavilion dm3 */ { { 0x52, 0x01, 0x14 }, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED }, /* Toshiba Tecra A11-11L */ }; Loading
drivers/input/mouse/bcm5974.c +0 −1 Original line number Diff line number Diff line Loading @@ -803,7 +803,6 @@ static struct usb_driver bcm5974_driver = { .disconnect = bcm5974_disconnect, .suspend = bcm5974_suspend, .resume = bcm5974_resume, .reset_resume = bcm5974_resume, .id_table = bcm5974_table, .supports_autosuspend = 1, }; Loading