diff options
Diffstat (limited to 'arch/3.5.13/trinity-base/hal/patches/handle-input-touchpad.patch')
-rw-r--r-- | arch/3.5.13/trinity-base/hal/patches/handle-input-touchpad.patch | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/arch/3.5.13/trinity-base/hal/patches/handle-input-touchpad.patch b/arch/3.5.13/trinity-base/hal/patches/handle-input-touchpad.patch new file mode 100644 index 000000000..9cd646422 --- /dev/null +++ b/arch/3.5.13/trinity-base/hal/patches/handle-input-touchpad.patch @@ -0,0 +1,101 @@ +From 6dccf8e3ad181e8f56b1d2a994ec50a1953a1c2d Mon Sep 17 00:00:00 2001 +From: Michael Witten <mfwitten@gmail.com> +Date: Wed, 06 Jan 2010 00:53:17 +0000 +Subject: Policy: handle `input.touchpad' explicitly + +This commit essentially duplicates the policy for: + + <match key="info.capabilities" contains="input.mouse"> + +and then changes `input.mouse' to `input.touchpad'. This +is necessary because in Linus Torvalds's Linux repo: + + git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + +the following commit: + + commit 7105d2ea73e1391b681d0e1212c42f561c64d429 + Author: Dmitry Torokhov <dmitry.torokhov@gmail.com> + Date: Fri Dec 11 23:54:54 2009 -0800 + + Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpad + + Relative events are only reported via secondary device therefore device + associated with the touchpad should not advertise these capabilities. + + Signed-off-by: Dmitry Torokhov <dtor@mail.ru> + +made these few changes: + + diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c + index a3f492a..b03e7e0 100644 + /--- a/drivers/input/mouse/alps.c + /+++ b/drivers/input/mouse/alps.c + /@@ -487,6 +487,17 @@ int alps_init(struct psmouse *psmouse) + if (alps_hw_init(psmouse)) + goto init_fail; + + + /* + + * Undo part of setup done for us by psmouse core since touchpad + + * is not a relative device. + + */ + + __clear_bit(EV_REL, dev1->evbit); + + __clear_bit(REL_X, dev1->relbit); + + __clear_bit(REL_Y, dev1->relbit); + + + + /* + + * Now set up our capabilities. + + */ + dev1->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY); + dev1->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH); + dev1->keybit[BIT_WORD(BTN_TOOL_FINGER)] |= BIT_MASK(BTN_TOOL_FINGER); + +so that HAL no longer adds: + + input.mouse + +to an ALPS touchpad's: + + info.capabilities + +so that HAL no longer marks the ALPS touchpad with: + + input.x11_driver = 'evdev' + +because the policy file: + + fdi/policy/10osvendor/10-x11-input.fdi + +doesn't define the policy for: + + <match key="info.capabilities" contains="input.touchpad"> + +which was previous unnecessary because everything used to +be caught by the policy for: + + <match key="info.capabilities" contains="input.mouse"> + +Signed-off-by: Michael Witten <mfwitten@gmail.com> +Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com> +--- +diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi +index cff8fc5..8bbe263 100644 +--- a/fdi/policy/10osvendor/10-x11-input.fdi ++++ b/fdi/policy/10osvendor/10-x11-input.fdi +@@ -16,6 +16,14 @@ + </match> + </match> + ++ <match key="info.capabilities" contains="input.touchpad"> ++ <merge key="input.x11_driver" type="string">mouse</merge> ++ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" ++ string="Linux"> ++ <merge key="input.x11_driver" type="string">evdev</merge> ++ </match> ++ </match> ++ + <match key="info.capabilities" contains="input.tablet"> + <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" + string="Linux"> +-- +cgit v0.8.3-6-g21f6 |