* [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added
@ 2008-09-02 20:05 Henrik Rydberg
2008-09-02 20:15 ` Dmitry Torokhov
0 siblings, 1 reply; 4+ messages in thread
From: Henrik Rydberg @ 2008-09-02 20:05 UTC (permalink / raw)
To: akpm, Dmitry Torokhov, linux-input; +Cc: linux-kernel
The mousedev driver requires the use of BTN_TOUCH events to process
ABS_X and ABS_Y events properly, which is what is needed for the
bcm5974-based apple computers to have a functional pointer out-of-the-box.
This patch adds the BTN_TOUCH events to bcm5974.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
---
drivers/input/mouse/bcm5974.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index ae78bb8..cafbb71 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -248,6 +248,7 @@ static void setup_events_to_report(struct input_dev *input_dev,
0, cfg->y.dim, cfg->y.fuzz, 0);
__set_bit(EV_KEY, input_dev->evbit);
+ __set_bit(BTN_TOUCH, input_dev->keybit);
__set_bit(BTN_TOOL_FINGER, input_dev->keybit);
__set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
__set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
@@ -296,6 +297,7 @@ static int report_tp_state(struct bcm5974 *dev, int size)
input_report_abs(input, ABS_PRESSURE, int2bound(&c->p, p));
+ input_report_key(input, BTN_TOUCH, p > 0);
input_report_key(input, BTN_TOOL_FINGER, n == 1);
input_report_key(input, BTN_TOOL_DOUBLETAP, n == 2);
input_report_key(input, BTN_TOOL_TRIPLETAP, n > 2);
--
1.5.4.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added
2008-09-02 20:05 [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added Henrik Rydberg
@ 2008-09-02 20:15 ` Dmitry Torokhov
2008-09-03 19:55 ` Henrik Rydberg
0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Torokhov @ 2008-09-02 20:15 UTC (permalink / raw)
To: Henrik Rydberg; +Cc: akpm, linux-input, linux-kernel
On Tue, Sep 02, 2008 at 10:05:56PM +0200, Henrik Rydberg wrote:
> @@ -296,6 +297,7 @@ static int report_tp_state(struct bcm5974 *dev, int size)
>
> input_report_abs(input, ABS_PRESSURE, int2bound(&c->p, p));
>
> + input_report_key(input, BTN_TOUCH, p > 0);
Just relying on p will probably make it too sensitive, have you tried
adding hysteresis, like synaptics driver does?
--
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added
2008-09-02 20:15 ` Dmitry Torokhov
@ 2008-09-03 19:55 ` Henrik Rydberg
2008-09-03 20:02 ` Dmitry Torokhov
0 siblings, 1 reply; 4+ messages in thread
From: Henrik Rydberg @ 2008-09-03 19:55 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: akpm, linux-input, linux-kernel
Dmitry Torokhov wrote:
> On Tue, Sep 02, 2008 at 10:05:56PM +0200, Henrik Rydberg wrote:
>> @@ -296,6 +297,7 @@ static int report_tp_state(struct bcm5974 *dev, int size)
>>
>> input_report_abs(input, ABS_PRESSURE, int2bound(&c->p, p));
>>
>> + input_report_key(input, BTN_TOUCH, p > 0);
>
> Just relying on p will probably make it too sensitive, have you tried
> adding hysteresis, like synaptics driver does?
>
I have, and the problem is somewhat more complicated when dealing with
multiple fingers. The simple patch shown about actually works very well
in practice. However, things can always improve. Yesterday I sent a
second patch, bcm5974-0.63, which addressed this issue. However, the
quality of the mouse movement has regressed a little in that patch.
I would like to send yet another patch today, bcm5974-0.64, I hope this
does not cause too much confusion.
Regarding mousedev, I noticed that the tap functionality does not distinguish
between a tap (on/off localized in time and space) and a quick drag (on/off
localized in time only).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added
2008-09-03 19:55 ` Henrik Rydberg
@ 2008-09-03 20:02 ` Dmitry Torokhov
0 siblings, 0 replies; 4+ messages in thread
From: Dmitry Torokhov @ 2008-09-03 20:02 UTC (permalink / raw)
To: Henrik Rydberg; +Cc: akpm, linux-input, linux-kernel
On Wed, Sep 03, 2008 at 09:55:16PM +0200, Henrik Rydberg wrote:
> Dmitry Torokhov wrote:
> > On Tue, Sep 02, 2008 at 10:05:56PM +0200, Henrik Rydberg wrote:
> >> @@ -296,6 +297,7 @@ static int report_tp_state(struct bcm5974 *dev, int size)
> >>
> >> input_report_abs(input, ABS_PRESSURE, int2bound(&c->p, p));
> >>
> >> + input_report_key(input, BTN_TOUCH, p > 0);
> >
> > Just relying on p will probably make it too sensitive, have you tried
> > adding hysteresis, like synaptics driver does?
> >
>
> I have, and the problem is somewhat more complicated when dealing with
> multiple fingers. The simple patch shown about actually works very well
> in practice. However, things can always improve. Yesterday I sent a
> second patch, bcm5974-0.63, which addressed this issue. However, the
> quality of the mouse movement has regressed a little in that patch.
> I would like to send yet another patch today, bcm5974-0.64, I hope this
> does not cause too much confusion.
>
That is fine.
> Regarding mousedev, I noticed that the tap functionality does not distinguish
> between a tap (on/off localized in time and space) and a quick drag (on/off
> localized in time only).
>
Yes. Mousedev is a stop-gap measure and is to be used only while user
installs proper driver. It does not need to be perfect.
--
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-09-03 20:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-02 20:05 [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added Henrik Rydberg
2008-09-02 20:15 ` Dmitry Torokhov
2008-09-03 19:55 ` Henrik Rydberg
2008-09-03 20:02 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).