linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).