Opened 14 years ago

Last modified 2 months ago

#5179 assigned enhancement

Touchpad buttons not working correctly due to missing ClickPad support

Reported by: Lynton Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Drivers/Input/PS2/Mouse Version: R1/Development
Keywords: mouse Cc: DFergFLA, romain
Blocked By: Blocking: #12403, #14955, #14956, #15188, #18802
Platform: x86

Description (last modified by kallisti5)

Synaptics is now making touchpads that have one "physical" button which is the whole pad. To determine if a click is on the left or right side, the buttons are part of the touchpad and the synaptics driver detects where the finger is placed (this works due to multi-touch support)

Known laptop models with this clickpad:

  • Dell Inspiron Mini 10v
  • Asus UX31A
  • Asus UX32A
  • HP series 4500 ProBooks
  • ThinkPad X220
  • ThinkPad X1
  • Dell XPS 13

By default, the whole pad is detected as the left mouse button.. so basic functionality exsists.

More Information: https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Buttonless_TouchPads_.28aka_ClickPads.29

Attachments (2)

Dell Mini 10v Devices.txt (2.6 KB ) - added by Lynton 14 years ago.
Output from listdev if its of any use
listusb.txt (17.7 KB ) - added by Lynton 14 years ago.

Download all attachments as: .zip

Change History (40)

by Lynton, 14 years ago

Attachment: Dell Mini 10v Devices.txt added

Output from listdev if its of any use

comment:1 by mmlr, 14 years ago

Is this touchpad hooked up as a USB device? Can you attach a listusb -v output as well to check for that?

by Lynton, 14 years ago

Attachment: listusb.txt added

in reply to:  1 ; comment:2 by Lynton, 14 years ago

Replying to mmlr:

Is this touchpad hooked up as a USB device? Can you attach a listusb -v output as well to check for that?

OK please find the output from listusb -v attached. I don't see the touchpad in the list to be honest.

Interestingly enough the problem gets worse to debug because the buttons have worked intermittently in the last few minutes. Its almost like its dependent on where you have had your fingers previously on the touchpad.

Quite hard to explain but am happy to provide more info if needed.

comment:3 by mmlr, 14 years ago

Component: Drivers/MouseDrivers/Mouse/PS2
Owner: changed from nobody to marcusoverhagen

Yes, it's not a USB touchpad then.

comment:4 by mmlr, 14 years ago

Owner: changed from marcusoverhagen to czeidler

Reassigning to Clemens as he implemented the synaptics support.

in reply to:  2 comment:5 by Lynton, 14 years ago

Replying to Lynton:

Replying to mmlr:

Is this touchpad hooked up as a USB device? Can you attach a listusb -v output as well to check for that?

OK please find the output from listusb -v attached. I don't see the touchpad in the list to be honest.

Interestingly enough the problem gets worse to debug because the buttons have worked intermittently in the last few minutes. Its almost like its dependent on where you have had your fingers previously on the touchpad.

The mechanical left/right buttons are located beneath the active area on the touchpad. I have just noticed that if I click the buttons by using the extreme left right corners of the touchpad the buttons do actually work but one has to be very precise which is awkward to say the least. I seem to recall reading somewhee that the Windows/Linux drivers use some sort of filter to get around this issue?

comment:6 by czeidler, 14 years ago

Hi Lynton,

I think its the following problem: What I can see from the pics at google the buttons are integrated in the touch area. Correct? I had the problem that the touch area size listed in the synaptics specs where to small on my touchpad so I extend them a little bit so they reach over the buttons on your machine now. The problem is that you click a button and the button flag is set by the touchpad. But the driver think it is a movement on the touch area and remove the flag again...

On linux or windows could you use the button area also to move the mouse? (by start the movement somewhere else)

Hope to look into it next week...

Clemens

Will look into it next year...

comment:7 by Lynton, 14 years ago

Hi Clemens, You are correct about the buttons being located in the touch area. The buttons are mechanical devices located beneath the touchpad but it seems the area where the buttons are located is also part of the active touchpad area. I have never tried Windows on the machine but thinking back a little I did have an odd problem with "Linux Mint 7" on the machine where the touchpad behaved strangely. The pointer would jump around all over the screen if I tried to use the button area whilst moving the mouse say to resize a window.

I now run Ubuntu Netbook Remix and that seems to work OK.

I will of course be happy to test any modifications you make to the driver code.

Kind Regards

Lynton

comment:8 by HaikuBot, 13 years ago

I have same touchpad or how it called correctly - clickpad. http://www.synaptics.com/solutions/products/clickpad

Laptop HP Probook 4520s.

comment:9 by czeidler, 13 years ago

Owner: changed from czeidler to siarzhuk
Status: newassigned

I don't have a synaptics touchpad anymore, so I can't even test changes... Siarzhuk are you interested to look into it?

comment:10 by romain, 12 years ago

Some interesting news on this issue: http://www.phoronix.com/scan.php?page=news_item&px=MTA2NTQ

and the xorg patch available here: http://lists.x.org/archives/xorg-devel/2012-March/029609.html

Since I have the same issue on my hp probook 4320, I will try to look at it I if have some time within the next weeks.

comment:11 by romain, 12 years ago

Cc: romain.picard@… added

comment:12 by kallisti5, 11 years ago

Component: Drivers/Mouse/PS2Drivers/Mouse/USB
Description: modified (diff)
Milestone: R1R1/beta1
Summary: Touchpad buttons not working correctly on Dell Inspiron Mini 10vTouchpad buttons not working correctly due to missing ClickPad support
Type: bugenhancement
Version: R1/alpha1R1/Development

I have an Asus ultrabook that has the same clickpad... adjusting description to be more generic.

comment:13 by kallisti5, 11 years ago

Component: Drivers/Mouse/USBDrivers/Mouse/PS2

comment:14 by richienyhus, 9 years ago

Have there been any improvements in the interim?

Should this still be under beta1 ?

comment:15 by siarzhuk, 9 years ago

Owner: changed from siarzhuk to nobody

For years I was default assignee for this PS2 stuff. Neither fixes nor improvements - I should be fired away. ;-)

comment:16 by pulkomandy, 9 years ago

Milestone: R1/beta1Unscheduled

BeOS didn't support this, not an R1 feature. (and there is apparently not much interest in getting it done anyway, 5 years and not a single patch)

comment:17 by pulkomandy, 8 years ago

Blocking: 12403 added

(In #12403) Ok, in that case it is probably a Synaptics Clickpad. Our driver has some trouble managing the physical buttons on these. I'm closing this as a duplicate of the (old) existing ticket. We may need to dive into Synaptics protocol specs again and see what can be done.

comment:18 by DFergFLA, 8 years ago

oh, wow I guess I maybe shouldn't expect this to be resolved any time soon.

comment:19 by pulkomandy, 8 years ago

Well, I made some investigations yesterday after closing your ticket.

There isn't anything specific for these in the Synaptics touchpad protocol. This means, the touchpad will report both a button click, and a second finger on the touchpad (1 finger doing mouse moves + 1 finger over the "button" area). The touchpad isn't multi-touch, but it can tell when there are more than 1 finger on the pad.

In our driver, all the processing for this is in http://cgit.haiku-os.org/haiku/tree/src/add-ons/kernel/bus_managers/ps2/movement_maker.cpp . This is not hardware-specific, which means we don't need a skilled hardware hacker to work on this. This piece of code takes the events from the touchpad as an input (X and Y position, Z pressure, and "W", which indicates various things including 2 or 3-finger movement, size of the finger, and a few others), and generates events for the input server.

The entry point is the "EventToMovement" method. You can see that in the case of the clickpad, we will never go in _NoTouchToMovement, because when a button is pressed, there is always a finger (the same one) on the pad.

Enabling the #define TRACE_MOVEMENT_MAKER in this file and looking at the syslog will provide some extra information. If someone does that, maybe enabling #define TRACE_PS2 in ps2_common.h would provide also low-level info from the driver itself, which may be useful, or too verbose and prevent proper use of the device at all.

comment:20 by DFergFLA, 8 years ago

That's cool. Maybe we'll get lucky and this won't be so hard to fix. It would really give Haiku a good boost in laptop hardware. Let me know if there is anything else I can get from my system to help.

comment:21 by pulkomandy, 6 years ago

Some support added in https://review.haiku-os.org/#/c/haiku/+/185/ so one can at least left click. This might be enough as supposedly Haiku supports being used with 1-button mouse: long click or ctrl+click should do the same as right click.

However, it would be better to support the right button area in some way.

comment:22 by waddlesplash, 5 years ago

Component: Drivers/Mouse/PS2Drivers/Input/PS2/Mouse

comment:23 by cb88, 5 years ago

Blocking: 14955 added

comment:24 by cb88, 5 years ago

Blocking: 14956 added

comment:25 by pulkomandy, 3 years ago

Blocked By: 15188 added

comment:26 by Coldfirex, 3 years ago

I have this issue as well if you need another syslog like the other ticket.

comment:27 by korli, 3 years ago

Blocked By: 15188 removed
Blocking: 15188 added

comment:28 by pulkomandy, 3 years ago

Proposed fix for some touchpads that support multitouch (mine apparently doesn't): https://review.haiku-os.org/c/haiku/+/4425

comment:29 by waddlesplash, 3 years ago

Cc: DFergFLA romain added; romain.picard@… removed

DFergFLA et al., there are test builds of PulkoMandy's patch here:

https://haiku.movingborders.es/testbuild/If334392f4eb2a146955f6c8c897f0ab64d79b8d9/1/hrev55384/

See if you can install the haiku.hpkg from these and if it makes any differences.

comment:30 by DFergFLA, 3 years ago

I was able to download the image and test it. Sadly it doesn't seem to have had any noticeable effect. I can provide the syslog if you need.

comment:31 by DFergFLA, 3 years ago

I know that PulkoMandy doesn't have this hardware to work with on his end. I do not know how practical this may be but... I am willing to send him this laptop with a prepaid return shipping label for him to use to work on this. I have no idea if he willing to do something like that, or where even he lives. I am merely presetting it as an option. I feel that resolving this issue would benefit a lot of Haiku laptop users. I don't really use the laptop at this point for anything other than Haiku, so I can do without for a time.

comment:32 by pulkomandy, 3 years ago

My laptop is also a clickpad, so it does have the same problem. And I can also test on my work laptop if needed. I think I will explore these local options first, before stacking up yet another computer on my TODO list of things to look at.

comment:33 by Coldfirex, 3 years ago

Does the nightly anyboot iso in that link have the patch in it?

comment:34 by pulkomandy, 3 years ago

No, it's still in Gerrit. But you can download the test build from madmax's buildbot (waddlesplash posted the link).

I will improve tracing in the synaptics driver and make it always print some info about detected touchpad version and capabilities, this should help see what each touchpad supports exactly.

comment:35 by Coldfirex, 3 years ago

No change in behavior with the anyboot iso in the test link.

comment:36 by kallisti5, 2 years ago

Description: modified (diff)

comment:37 by kallisti5, 2 years ago

Same issue on my Dell XPS 13 for ages as well.

To do the physical click, I have to place my finger in the furthest, leftmost position (feels like down to the pixel) and press to click.

hrev55489, x86_64 syslog:

KERN: ps2: devfs_publish_device input/touchpad/ps2/synaptics_0, status = 0x00000000

Ironically, the touchscreen works better than the trackpad :-)

comment:38 by pulkomandy, 2 months ago

Blocking: 18802 added
Note: See TracTickets for help on using tickets.