Re: [PATCH] bcm5974-0.62: Compatibility mode reverted, BTN_TOUCH event added

Previous thread: [PATCH 1/8] ide: __ide_dma_end() -> ide_dma_end() by Bartlomiej Zolnierkiewicz on Tuesday, September 2, 2008 - 12:47 pm. (11 messages)

Next thread: TLB IPI FLushTLB vs Invl Page by jmerkey on Tuesday, September 2, 2008 - 1:01 pm. (1 message)
From: Henrik Rydberg
Date: Tuesday, September 2, 2008 - 1:05 pm

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

--

From: Dmitry Torokhov
Date: Tuesday, September 2, 2008 - 1:15 pm

Just relying on p will probably make it too sensitive, have you tried
adding hysteresis, like synaptics driver does?

-- 
Dmitry
--

From: Henrik Rydberg
Date: Wednesday, September 3, 2008 - 12:55 pm

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).

--

From: Dmitry Torokhov
Date: Wednesday, September 3, 2008 - 1:02 pm

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
--

Previous thread: [PATCH 1/8] ide: __ide_dma_end() -> ide_dma_end() by Bartlomiej Zolnierkiewicz on Tuesday, September 2, 2008 - 12:47 pm. (11 messages)

Next thread: TLB IPI FLushTLB vs Invl Page by jmerkey on Tuesday, September 2, 2008 - 1:01 pm. (1 message)