I use at Ubuntu 12.04: I: Bus=0011 Vendor=0002 Product=000f Version=0000 N: Name="FSPPS/2 Sentelic FingerSensingPad" P: Phys=isa0060/serio1/input0 S: Sysfs=/devices/platform/i8042/serio1/input/input9 U: Uniq= H: Handlers=mouse0 event9 B: PROP=8 B: EV=b B: KEY=2420 0 30000 0 0 0 0 0 0 0 0 B: ABS=2608000 3 Until kernel 3.2.0-24-generic touchpad it was defined as a mouse, configured in the settings of the mouse. Worked boundary scrolling. Multi-touch is not working. With this Kernel 3.2.0-24 touchpad appeared in the settings, became multi-function, but the boundary was lost scrolls. Dvuhpaltsevy scrolling works. Also in the middle of the strip under the scrolling on the touchpad appeared a place that throws the pointer in the upper left corner. Now I tested kernel 3.4-rc4 and it`s have bug. Touchpad works very bad.
This bug in Launchpad bug tracker - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/990260
FYI - "Dvuhpaltsevy" means "double-finger".
(In reply to comment #0) > I use at Ubuntu 12.04: [...] > Until kernel 3.2.0-24-generic touchpad it was defined as a mouse, configured > in > the settings of the mouse. Worked boundary scrolling. Multi-touch is not > working. > With this Kernel 3.2.0-24 touchpad appeared in the settings, became > multi-function, but the boundary was lost scrolls. If I understand it correctly, two finger(dvuhpaltsevy?) scrolling and edge(boundary) scrolling are mutually exclusive. That is, once you enabled two finger scrolling, edge scrolling will be disabled. > Dvuhpaltsevy scrolling works. Also in the middle of the strip under the > scrolling on the touchpad appeared a place that throws the pointer in the > upper > left corner. > > Now I tested kernel 3.4-rc4 and it`s have bug. Touchpad works very bad.
But it is not working. Edge scroll does not work, and with two finger scrolling area in the middle of the touchpad, which is used for normal scrolling transition occurs in the upper left corner. It is this section of the touchpad is not working properly, which is very annoying. I would also like to return back midle scrolling, because two-finger scrolling is awkward to me. I like the behavior that was when the touchpad is defined as a mouse. Now I use the old kernel. Sorry for my bad English.
My original error message in Russian posted here [1]. I'll be glad if someone will add or correct my bug report message in English. [1] - http://forum.ubuntu.ru/index.php?topic=189999.0
(In reply to comment #5) > My original error message in Russian posted here [1]. I'll be glad if someone > will add or correct my bug report message in English. > > [1] - http://forum.ubuntu.ru/index.php?topic=189999.0 I have really hard time making sense of the original report as well. What is the difference between "краевая прокрутка" and "однопальцевый скроллинг"? Re: two finger vs. edge scrolling - I am not sure what display manager you are using, but in KDE if two finger scrolling is enabled then edge scrolling is automatically disabled. I am not sure what behavior Gnome/Unity has. It could also be that touchpad dimensions are not quite right. Re: jumps into upper left corner: where is the scrolling area located? You are saying that it in in the middle of the touchpad, which does not make sense. The scrolling areas are usually marked along the right and/or bottom edge of the touchpad. Re: "return back midle scrolling" - what is it exactly? Re: "I like the behavior that was when the touchpad is defined as a mouse" - boot with psmouse.proto=imps or add "options psmouse proto=imps" (depending on whether psmouse is built into the kernel or is a loadable module). Thanks.
>the difference between "краевая прокрутка" and "однопальцевый скроллинг"? It's the same thing. >Re: two finger vs. edge scrolling - I am not sure what display manager you are >using, but in KDE if two finger scrolling is enabled then edge scrolling is >automatically disabled. I am not sure what behavior Gnome/Unity has. It could >also be that touchpad dimensions are not quite right. The boundary value MUST turn off scrolling, but not disabled. The entire touchpad works correctly (no edge scrolling), but that this part [1] of the pressing one or two fingers sends the cursor in the upper left corner. >Re: "return back midle scrolling" - what is it exactly? To work scrolling in one finger mode with midle scrolling. Now it not work. [1] - Photo of touchpad. http://dl.dropbox.com/u/3484004/static/SSA45983.JPG Red marked area of hitting a finger on which is getting the cursor in the upper left corner.
>Re: "I like the behavior that was when the touchpad is defined as >a mouse" - boot with psmouse.proto=imps or add "options psmouse proto=imps" >(depending on whether psmouse is built into the kernel or is a loadable >module). The touchpad is detected as a mouse, and began work as well as in the old core. This behavior suits me. The scroll work. Thank you!
But this is a temporary solution does not eliminate malfunction of the touchpad. Please do not close the bug until it is fixed.
Hi Leks13, Need your help to provide the packet dump generated during edge scrolling. You'll need to rebuild psmouse.ko by adding following two lines at the beginning of drivers/input/mouse/sentelic.c: #define FSP_DEBUG #define DEBUG Additionally, what's the hardware revision are you using(dmesg | grep Finger)? According to the photo you provided, it doesn't seem like an ASUS UX[23]1 to me.
> Need your help to provide the packet dump generated during edge scrolling. >You'll need to rebuild psmouse.ko by adding following two lines at the >beginning of drivers/input/mouse/sentelic.c: How can I do? Can you provide step by step instructions? >Additionally, what's the hardware revision are you using(dmesg | grep >Finger)? According to the photo you provided, it doesn't seem like an ASUS >UX[23]1 to me. It`s china notebook Quanta UW3(DNS (0136475)). dmesg | grep Finger [ 12.748805] psmouse serio1: sentelic: Finger Sensing Pad, hw: 14.1.1, sw: 1.0.0-K [ 12.813665] input: FSPPS/2 Sentelic FingerSensingPad as /devices/platform/i8042/serio1/input/input6
:~$ cat /lib/modules/`uname -r`/kernel/drivers/input/mouse/sentelic.c cat: /lib/modules/3.2.0-24-generic/kernel/drivers/input/mouse/sentelic.c: File not found :~$ cd /lib/modules/`uname -r`/kernel/drivers/input/mouse/ :/lib/modules/3.2.0-24-generic/kernel/drivers/input/mouse$ ls appletouch.ko gpio_mouse.ko logibm.ko psmouse.ko synaptics_i2c.ko bcm5974.ko inport.ko pc110pad.ko sermouse.ko vsxxxaa.ko I do not know what to do. Simply create a new file sentelic.c? And then what?
(In reply to comment #12) > :~$ cat /lib/modules/`uname -r`/kernel/drivers/input/mouse/sentelic.c > cat: /lib/modules/3.2.0-24-generic/kernel/drivers/input/mouse/sentelic.c: > File > not found > :~$ cd /lib/modules/`uname -r`/kernel/drivers/input/mouse/ > :/lib/modules/3.2.0-24-generic/kernel/drivers/input/mouse$ ls > appletouch.ko gpio_mouse.ko logibm.ko psmouse.ko synaptics_i2c.ko > bcm5974.ko inport.ko pc110pad.ko sermouse.ko vsxxxaa.ko > > I do not know what to do. Simply create a new file sentelic.c? And then > what? You'll need to get the full kernel source code to rebuild kernel. https://help.ubuntu.com/community/Kernel/Compile should give you some hints. For example: $ apt-get source linux-image-3.2.0-24-generic $ sudo apt-get build-dep linux-image-3.2.0-24-generic $ cd linux-3.2.0 $ chmod +x debian/scripts/misc/* debian/scripts/* $ debian/rules updateconfigs $ vi drivers/input/mouse/sentelic.c # add #define FSP_DEBUG and #define DEBUG $ env skipabi=true fakeroot debian/rules binary-generic If nothing goes wrong, you should see a installable package such like ../linux-image-3.2.0-24-generic_3.2.0-24.37_i386.deb in the parent directory.
Okay. When I rebuild and restart in new kernel where I found debug messages? What I will post to bug report?
(In reply to comment #14) > Okay. > When I rebuild and restart in new kernel where I found debug messages? > What I will post to bug report? After booting with the FSP_DEBUG enabled kernel, you should see something like the following in your dmesg when finger is on the FSP: [ 183.114646] psmouse serio1: sentelic: -0117064ms Absolute packets: 58, 73, 5f, 05; abs_x: 461, abs_y: 381 [ 183.126820] psmouse serio1: sentelic: -0117052ms Absolute packets: 58, 70, 5e, 03; abs_x: 448, abs_y: 379 [ 183.139041] psmouse serio1: sentelic: -0117036ms Absolute packets: 58, 6c, 5e, 0b; abs_x: 434, abs_y: 379 [ 183.151250] psmouse serio1: sentelic: -0117024ms Absolute packets: 58, 69, 5e, 03; abs_x: 420, abs_y: 379 [ 183.163416] psmouse serio1: sentelic: -0117012ms Absolute packets: 58, 66, 5e, 07; abs_x: 409, abs_y: 379 [ 183.175596] psmouse serio1: sentelic: -0117000ms Absolute packets: 58, 64, 5e, 01; abs_x: 400, abs_y: 377 [ 183.199941] psmouse serio1: sentelic: -0116976ms Absolute packets: 58, 00, 00, 00; abs_x: 0, abs_y: 0 [ 183.212173] psmouse serio1: sentelic: -0116964ms Absolute packets: 58, 00, 00, 00; abs_x: 0, abs_y: 0 [ 183.224369] psmouse serio1: sentelic: -0116952ms Absolute packets: 58, 00, 00, 00; abs_x: 0, abs_y: 0 I'll need the message generated whilst you're performing edge scrolling(particularly the one with "cursor jumping back to top-left corner when moving through the red-mark area"). Thanks!
Hmm... I`m build kernel, install it, reboot to it, but I don`t have a message in dmesg! Before build a have two files: linux-image-3.2.0-24-generic_3.2.0-24.37_i386.deb, linux-headers-3.2.0-24-generic_3.2.0-24.37_i386.deb. I install this and reboot. I don`t undestand why I don`t have report about touchpad. My redacted drivers/input/mouse/sentelic.c pasted to http://paste.ubuntu.com/973790/
dmesg | grep psmouse [ 16.503933] psmouse serio1: hgpk: ID: 10 00 64 [ 16.716690] psmouse serio1: sentelic: Finger Sensing Pad, hw: 14.1.1, sw: 1.0.0-K I have only this, after reboot to my new build kernel.
(In reply to comment #16) > Hmm... > I`m build kernel, install it, reboot to it, but I don`t have a message in > dmesg! [...] > My redacted drivers/input/mouse/sentelic.c pasted to > http://paste.ubuntu.com/973790/ You'll have to put DEBUG & FSP_DEBUG before various #include lines, something like: #define DEBUG #define FSP_DEBUG /*- * Finger Sensing Pad PS/2 mouse driver. * ...
My edge scrolling http://paste.ubuntu.com/974487/ In this moment cursor has been moved to left top corner of the screen http://paste.ubuntu.com/974499/ I hope the logs will help.
(In reply to comment #19) > My edge scrolling http://paste.ubuntu.com/974487/ I presume that you're moving your finger from top-right to bottom-right corner, right? What looks strange to me is that the y coordinate(62) is still far from the red zone, which should be about half of the height(300+) if I read your image correctly. > In this moment cursor has been moved to left top corner of the screen > http://paste.ubuntu.com/974499/ In this dump, was starting from the red zone(line 6 ~ 38) and then moving toward the bottom-right corner? Is line 58 ~ 59 the time your finger crossing/entering the red zone?
How I tested - I wrote last message in dmesg, moved in top right to bottom right, and posted all before this wrote message. http://paste.ubuntu.com/975147/ Red zone just below the middle. Figure I depicts a little bit wrong. >In this dump, was starting from the red zone(line 6 ~ 38) and then moving toward the bottom-right corner? >Is line 58 ~ 59 the time your finger crossing/entering the red zone? I don`t know. I started scrolling around the red zone and ended up after moving the pointer to the red zone in the upper left corner.
Created attachment 73240 [details] testing zone for jumpy cursor Need Leks13 to test if cursor jumping still occurs when finger is moving on the yellow/blue zone. If cursor still jumps back to top-left corner, please also provide the packet dump.
Yellow zone testing video[1], log[2]. [1] - http://dl.dropbox.com/u/3484004/temp/yellow.AVI [2] - http://paste.ubuntu.com/979575/ If you move your finger across the touchpad from the top down, then hit the finger at the end of the touchpad the cursor moves sharply up the screen (just up, but not in the top left).
Blue zone. The touchpad works strange: sometimes ok, sometimes not. In two pass log sealed touch pad from top to bottom. The first pass - everything is normal, the second - the cursor jumped to the top left corner. I do not know what the reason, and play it does not always work. Maybe that plays the role of the force pressing or something, but when working for the touchpad are spontaneous movements occur several times per hour and is very annoying. http://paste.ubuntu.com/979595/
Created attachment 73249 [details] bash script for retrieving FSP production information Please post the result returned by this script(sudo bash fsp_sn.sh). Thanks!
sudo sh fsp_sn.sh [sudo] password for leks13: fsp_sn.sh: 9: fsp_sn.sh: cannot create /sys/bus/serio/drivers/psmouse/serio*/page: Directory nonexistent fsp_sn.sh: 10: fsp_sn.sh: cannot create /sys/bus/serio/drivers/psmouse/serio*/getreg: Directory nonexistent fsp_sn.sh: 12: fsp_sn.sh: cannot create /sys/bus/serio/drivers/psmouse/serio*/getreg: Directory nonexistent fsp_sn.sh: 14: fsp_sn.sh: cannot create /sys/bus/serio/drivers/psmouse/serio*/getreg: Directory nonexistent fsp_sn.sh: 17: fsp_sn.sh: cannot create /sys/bus/serio/drivers/psmouse/serio*/page: Directory nonexistent sn: 0000, 0000, 0000
Sorry. This is true result: sudo bash fsp_sn.sh sn: 4004, 4187, 4210
Created attachment 73475 [details] patch to filter bad movement Hi Leks13, Please try to see if this patch works for you or not. You'll need to rebuild/re-install the patched kernel source. Steps to apply patch(taking comment#13 building steps as an example): $ cd linux-3.2.0/drivers/input/mouse $ patch < filter_bad_movement.patch
No. It`s don`t worked correctly. Edge srolling - not work. Jump zone - has come out less often, but sometimes it throws the cursor still. Two-finger scrolling - not work.
Yes, let them work, defined as a mouse. I was quite happy. Also, it bothers small number of users. Much more often make synaptic touchpad.
(In reply to comment #29) > No. It`s don`t worked correctly. > Edge srolling - not work. > Jump zone - has come out less often, but sometimes it throws the cursor > still. > Two-finger scrolling - not work. Oops, I got it wrong. Please move the "abs_x = GET_ABS_X(packet);" and "abs_y = GET_ABS_Y(packet);" lines after the filter if statement. Something like: case FSP_PKT_TYPE_ABS: if ((packet[0] == 0x48 || packet[0] == 0x49) && packet[1] == 0 && packet[2] == 0) { /* * filtering out erratic movement which will cause * unexpected cursor jumping to top-left corner */ packet[3] &= 0xf0; } abs_x = GET_ABS_X(packet); abs_y = GET_ABS_Y(packet); if (packet[0] & FSP_PB0_MFMC) { ...
I fixed it this[1]. Is that true? Just do not want to once again build the core. It's too long on the Atom. [1] - http://paste.ubuntu.com/1016641/
I build kernel, apped #32 patch. But it work bad. Two-finger scrolling - work. Edge scrolling - not work. Jump zone - has come out less often, but sometimes it throws the cursor still.
I got an email about the bug, but I can not answer it. The letter is not delivered. I have this error: "This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: avatar@sentelic.com SMTP error from remote mail server after RCPT TO:<avatar@sentelic.com>: host yggdrasil.sentelic.com [203.69.18.18]: 554 5.7.1 Service unavailable; Client host [91.219.194.22] blocked using ru.countries.nerd.dk; Your IP is in ru, rejected based on geographical location" I will reply to the letter publicly in the ticket. I use Ubuntu 12.04 and $ uname -a Linux flamme 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:51:22 UTC 2012 i686 i686 i386 GNU/Linux This is standart kernel in Ubuntu repository. This is filter_bad_movement.patch - http://paste.ubuntu.com/1017599/ This is sentelic.c no patch - http://paste.ubuntu.com/1017604/ Patch process this - http://paste.ubuntu.com/1017607/ This is sentelic.c after patch - http://paste.ubuntu.com/1017610/
Great. Tested the new driver - everything works great.
How does the touchpad work with two finger scroll with patches and a newer kernel? I am currently running Ubuntu 12.04 with kernel 3.2.0-24-generic on an Asus UX21E, and it's basically unusable. Also "Disable touchpad while typing" does not work either. Or should I open a separate bug about these issues since the one reported here seems to be solved.
(In reply to comment #36) > How does the touchpad work with two finger scroll with patches and a newer > kernel? I am currently running Ubuntu 12.04 with kernel 3.2.0-24-generic on > an > Asus UX21E, and it's basically unusable. Please try the patch - we need more testers to make sure it works well before getting the patch applied ( > > Also "Disable touchpad while typing" does not work either. > Disabling touchpad while typing is not done within the kernel so I'd recommend opening the bug with your distro and having them route it properly. Thanks.
Created attachment 73506 [details] Patch to filter out data causing errating movements The latest version of the patch
I followed this procedure to build the kernel with the latest patch: $ apt-get source linux-image-3.2.0-24-generic $ sudo apt-get build-dep linux-image-3.2.0-24-generic $ cd linux-3.2.0 $ chmod +x debian/scripts/misc/* debian/scripts/* $ debian/rules updateconfigs $ vi drivers/input/mouse/sentelic.c # add #define FSP_DEBUG and #define DEBUG $ cd linux-3.2.0/drivers/input/mouse $ patch < filter_bad_movement.patch $ cd - $ env skipabi=true fakeroot debian/rules binary-generic $ cd .. $ sudo dpkg -i linux-headers-3.2.0-24-generic_3.2.0-24.39_amd64.deb linux-image-3.2.0-24-generic_3.2.0-24.39_amd64.deb This did not improve two finger scroll at all. Palm detection doesn't work either, which makes typing a hassle. Is this something that is kernel or distro specific? Also, is there a way to set driver patches without recompiling the entire kernel? Maybe load it like a module or something similar? Compiling the kernel takes a while, which makes testing potential fixes more difficult.
filter_bad_movement.patch - it`s old wrong patch
I used the latest patch ( https://bugzilla.kernel.org/attachment.cgi?id=73506 ), just forgot to change the name to "sentelic.patch" in the comment.
(In reply to comment #39) > $ vi drivers/input/mouse/sentelic.c # add #define FSP_DEBUG and #define > DEBUG Since you already have FSP_DEBUG and DEBUG defined at the beginning of sentelic.c, please do two fingers scrolling first and then use dmesg to get packet dump for analysis. Thanks.
Patch work fine in Ubuntu 12.04 on my touchpad(3.2.0-24-generic). After loading for a comfortable working with edge scrolling needed to run "synclient RightEdge = 900" (the value may change depending on the laptop). Thank you all for corrected bug.
Created attachment 73511 [details] A dmesg debug report featuring two finger scroll jumping to (x,y)=(0,0) Note at the end of the log how I am scrolling down a page and (x, y) suddenly resets to abs pos (0, 0).
Created attachment 73512 [details] (x, y) getting stuck alternating between two sets of coordinates Notice close to the end how the absolute coordinates shift between two sets of coordinates very quickly: [ 562.271845] psmouse serio4: sentelic: 00263060ms Absolute packets: 7c, 80, 56, 0f; abs_x: 515, abs_y: 347 [ 562.279471] psmouse serio4: sentelic: 00263068ms Absolute packets: 78, a4, 81, 03; abs_x: 656, abs_y: 519 [ 562.284430] psmouse serio4: sentelic: 00263072ms Absolute packets: 7c, 80, 56, 0a; abs_x: 514, abs_y: 346 [ 562.291770] psmouse serio4: sentelic: 00263080ms Absolute packets: 78, a4, 82, 01; abs_x: 656, abs_y: 521 [ 562.296709] psmouse serio4: sentelic: 00263084ms Absolute packets: 7c, 80, 56, 0d; abs_x: 515, abs_y: 345 [ 562.304887] psmouse serio4: sentelic: 00263092ms Absolute packets: 78, a3, 82, 0a; abs_x: 654, abs_y: 522 [ 562.310118] psmouse serio4: sentelic: 00263096ms Absolute packets: 7c, 80, 56, 09; abs_x: 514, abs_y: 345 [ 562.317782] psmouse serio4: sentelic: 00263104ms Absolute packets: 78, a3, 82, 07; abs_x: 653, abs_y: 523 [ 562.323105] psmouse serio4: sentelic: 00263112ms Absolute packets: 7c, 80, 55, 0f; abs_x: 515, abs_y: 343 This resulted in the web page I was trying to scroll down scrolling up and down very quickly on the spot.
Created attachment 73519 [details] v2 patch to filter out bad movement Hi Eddie, Please revert sentelic.patch and try this one instead. Thanks.
Created attachment 73527 [details] dmesg with latest filter patch (https://bugzilla.kernel.org/attachment.cgi?id=73519) applied Behavior is a -lot- better; I don't get the crazy up-down-up-down-up-down lockup any longer. However, if I'm scrolling down a long page, it sometimes scrolls to the top of the page all of a sudden, which is very annoying.
(In reply to comment #47) > Behavior is a -lot- better; I don't get the crazy up-down-up-down-up-down > lockup any longer. However, if I'm scrolling down a long page, it sometimes > scrolls to the top of the page all of a sudden, which is very annoying. Looks to me the jumping was caused by 1446.818497 and 1446.843775. I probably misunderstood how input_mt_report_slot_state() works. Dmitry, should we simply stop calling fsp_set_slot() upon receiving bad movement(0,0) in multi-finger(MFMC) case?
I think if a device truly sends garbage data sometimes then we need to completely ignore such packets and not adjust slot state, since contact will "recover" in the next packet(s).
(In reply to comment #47) [...] > However, if I'm scrolling down a long page, it sometimes > scrolls to the top of the page all of a sudden, which is very annoying. Interesting... It appears to me that the final 7c, 00, 00, 00 doesn't cause these jumps. Not sure if this is the same with Eddie's observation; however, I can reproduce similar jumping by putting two fingers at two places(in opposite direction. For example, one at the top left and the other at the bottom right corner), hold two fingers for a few seconds, then move both of them away -- now the browser scroll bar starts to roll. If that's the case, we probably have to fix the code by _not_ invoking fsp_set_slot() unless two fingers' coordinates are ready. That is, accumulate both fingers' packets and report at once with something like the xxx_report_semi_mt_data() found in other touchpad drivers.
Created attachment 73542 [details] Scroll jumps up and down continously until I remove hand from trackpad My last comment about the latest patch fixing jumping up and down was wrong. See end of attached dmesg. This happens while I'm scrolling down and one finger "moves ahead" of the other. In my case I was scrolling down with my right hand, and my middle finger moved from being horizontal with my ring finger to being about 2 centimeters farther down.
Created attachment 73546 [details] v3 patch to filter out bad movement Hi Eddie, Please see if this patch works for you. Thanks.
Created attachment 73554 [details] debug output filter patch 3 Latest patch gives a much better result overall. However, the crazy fast scroll still occurs sometimes. I have attached a debug report.
(In reply to comment #53) > However, the crazy fast scroll still occurs sometimes. How does the crazy fast scroll look like? Does it scroll back all the way to the top most page or just scroll back a short distance? > I have attached a debug report. I can see the Y coordinate of the first finger jumps back from 750 to 597 at 1567.914751. I'm wondering if this could be filtered in the userland as the kernel driver may need more resource to keep the track of movement history before applying certain heuristics to ignore such jumpy packet.
(In reply to comment #54) > How does the crazy fast scroll look like? Does it scroll back all the way > to > the top most page or just scroll back a short distance? Both can happen, actually. But the most annoying (and more common) is if you're scrolling down a page and it suddenly goes really fast either to the top or to the bottom of the page (it can also happen).
Created attachment 73562 [details] dmesg output seems normal, as far as I can tell I just noticed a slightly disconcerting bug -- after resuming from suspend, I can no longer use two finger scroll. Edge scrolling works normally if I switch to it.
(In reply to comment #56) > I just noticed a slightly disconcerting bug -- after resuming from suspend, I > can no longer use two finger scroll. Edge scrolling works normally if I > switch > to it. There's a typo in the v3 patch. Please try to change the 'fgrs = 1' to 'fgrs = 2' after the 'MFMC 1st finger' line and see if it helps: } else if (IS_MFMC_FGR1(packet[0])) { /* MFMC 1st finger */ fgrs = 2; /* * accumulate the coordaintes and proceed to * the next run */ ... The above bug should be observable before entering to suspend mode, though.
I have notebook DNS X300 (china export) In windows installed drivers sentelic and work fine. In linux (Ubuntu 12.04) touchpad not detect. Tap working, scroll not working, configure utils show only mouse. $ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ImPS/2 Generic Wheel Mouse id=11 [slave pointer (2)] $ dmesg |grep PS/2 [ 1.140559] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12 [ 1.146588] mousedev: PS/2 mouse device common for all mice [ 2.551662] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio2/input/input5 $ fspc -h FSP not detected. Any patches not helped me
I have ubuntu 12.04 amd64 version
(In reply to comment #58) [...] > $ dmesg |grep PS/2 > [ 1.140559] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at > 0x60,0x64 irq 1,12 > [ 1.146588] mousedev: PS/2 mouse device common for all mice > [ 2.551662] input: ImPS/2 Generic Wheel Mouse as > /devices/platform/i8042/serio2/input/input5 Booting with FSP_DEBUG and DEBUG enabled driver could help. Otherwise, you may want to boot with i8042.debug=1 to get the full I/O log.
I have a MSI CR640 laptop with Sentelic touchpad. It worked well without any scrolling support before 3.4. After upgrading to 3.4, the cursor became jumpy and any scrolling still wasn't working. After applying v3 patch (and modifying one line as said in later comment) from this thread, the cursor doesn't jump, two-finger vertical scrolling partially works (it usually scrolls but when i put finger up, it returns to original position) and edge scrolling doesn't work. I tried changing hscroll attribute in /sys/devices/platform/i8042/serio2, but it didn't do anything.
(In reply to comment #61) [...] > two-finger vertical scrolling partially works (it usually scrolls but when i > put finger up, it returns to original position) Would you please be more specific about what the 'original position' refers to? For example, if you do a two-finger vertical scrolling from top-most edge to bottom-most edge, does the cursor returns all-the-way to top-most edge after fingers moving away? Or does it scrolls back, say, perhaps 1/10 of current screen height? > and edge scrolling doesn't work. Which window manager are you using? In Gnome/Unity configuration menu, two fingers scrolling and edge scrolling are mutual exclusive -- you can only have one of them activated at any given moment. Another possibility of non-working edge scrolling is that pad dimensions don't match to your physical hardware. To confirm this, you'll need to load the FSP_DEBUG and DEBUG enabled driver(see comment#39 and comment#18) and the packet dump will reveal what the max X/Y are when you're putting one finger on the bottom-right corner. > I tried changing hscroll attribute in /sys/devices/platform/i8042/serio2, > but it didn't do anything. hscroll only works in relative coordinates mode, which doesn't apply to the configuration you're running with.
(In reply to comment #62) > (In reply to comment #61) > Would you please be more specific about what the 'original position' refers > to? For example, if you do a two-finger vertical scrolling from top-most edge > to bottom-most edge, does the cursor returns all-the-way to top-most edge > after > fingers moving away? Or does it scrolls back, say, perhaps 1/10 of current > screen height? I'm sorry, I just used it wrong. I put one finger down and moved another, but I need to move both :) > > Which window manager are you using? In Gnome/Unity configuration menu, > two fingers scrolling and edge scrolling are mutual exclusive -- you can only > have one of them activated at any given moment. > I'm using KWin. Are there any problems or should I try the FSP_DEBUG?
(In reply to comment #63) > I'm using KWin. Are there any problems or should I try the FSP_DEBUG? Hmm, KDE accepts both scrolling settings being enabled at the same time. I don't know if turning two finger scrolling would make any difference. You can get/set current scrolling state by running synclient or xinput, though: $ synclient | grep Scroll # get current scrolling options $ synclient VertEdgeScroll=1 # enable vertical edge scrolling $ synclient VertTwoFingerScroll=1 # enable vertical two finger scrolling If you don't have the time to rebuild the kernel with FSP_DEBUG, tweaking the RightEdge parameter probably helps but you'll have to guess the value since you don't have the accurate geometric information(which probably isn't correct enough in current driver): $ synclient | grep RightEdge # get the right edge boundary $ synclient RightEdge=?? # reduce the value and see if right edge scrolling can be detected
Created attachment 73991 [details] v4 patch to filter out bad movement Correcting typo for the number of fingers in MFMC 1st finger case. v3 patch will generate staggered report(one vs. two fingers) which will confuse the user land.
Created attachment 74431 [details] v5 patch to filter out bad movement This updated patch revert to the original last_mt_fgrs workaround to allow finger movement after two to one finger transition taking place. Hopefully this addresses bug#43591 as well.
I can confirm that the latest patch fixed the issue with two-finger-scroll not working after resuming from suspend. Good job!
Created attachment 75601 [details] indeferend i/o log $ dmesg|grep sentel [ 2.474127] psmouse serio2: sentelic: READ REG: 0x00 is 0x00 (rc = -1) $ synclient Couldn't find synaptics properties. No synaptics driver loaded? $ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ImExPS/2 Generic Explorer Mouse id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] Not working scroll and any touchpad configure utils. Help me please :) Thanks!
(In reply to comment #68) > Created an attachment (id=75601) [details] > indeferend i/o log [...] > [ 2.430719] i8042: [337] 91 -> i8042 (command) > [ 2.430933] i8042: [337] 66 -> i8042 (parameter) > [ 2.434670] i8042: [338] fe <- i8042 (interrupt, 3, 12) > [ 2.435926] i8042: [339] 91 -> i8042 (command) > [ 2.436088] i8042: [339] 88 -> i8042 (parameter) Missing the 'fc' response. > [ 2.466948] i8042: [347] 91 -> i8042 (command) > [ 2.467524] i8042: [347] f3 -> i8042 (parameter) > [ 2.470534] i8042: [347] fc <- i8042 (interrupt, 3, 12) Should be 'fa' instead. [ 2.470551] i8042: [347] 91 -> i8042 (command) [ 2.470766] i8042: [347] f4 -> i8042 (parameter) [ 2.474091] i8042: [348] fa <- i8042 (interrupt, 3, 12) [ 2.474127] psmouse serio2: sentelic: READ REG: 0x00 is 0x00 (rc = -1) It looks to me that EC response is one byte slower. Will there be any difference if you increase FSP_CMD_TIMEOUT2 from 30 to something larger (ex: 2500)?
(In reply to comment #69) > (In reply to comment #68) > > Created an attachment (id=75601) [details] [details] > > indeferend i/o log > [...] > > [ 2.430719] i8042: [337] 91 -> i8042 (command) > > [ 2.430933] i8042: [337] 66 -> i8042 (parameter) > > [ 2.434670] i8042: [338] fe <- i8042 (interrupt, 3, 12) > > [ 2.435926] i8042: [339] 91 -> i8042 (command) > > [ 2.436088] i8042: [339] 88 -> i8042 (parameter) > > Missing the 'fc' response. > > > [ 2.466948] i8042: [347] 91 -> i8042 (command) > > [ 2.467524] i8042: [347] f3 -> i8042 (parameter) > > [ 2.470534] i8042: [347] fc <- i8042 (interrupt, 3, 12) > > Should be 'fa' instead. > > [ 2.470551] i8042: [347] 91 -> i8042 (command) > [ 2.470766] i8042: [347] f4 -> i8042 (parameter) > [ 2.474091] i8042: [348] fa <- i8042 (interrupt, 3, 12) > [ 2.474127] psmouse serio2: sentelic: READ REG: 0x00 is 0x00 (rc = -1) > > It looks to me that EC response is one byte slower. Will there be any > difference if you increase FSP_CMD_TIMEOUT2 from 30 to something larger > (ex: 2500)? did not help
(In reply to comment #70) > (In reply to comment #69) > > It looks to me that EC response is one byte slower. Will there be any > > difference if you increase FSP_CMD_TIMEOUT2 from 30 to something larger > > (ex: 2500)? > > did not help Please post i8042.debug dump, thanks.
Created attachment 75651 [details] dmesg log after timeout 2500 My dmesg after FSP_CMD_TIMEOUT2=2500 in drivers/input/mouse/sentelic.c and recompile
How far off is this to hit mainline kernel? Even if the patch isn't perfect, shouldn't current improvements be eligible for 3.6?
Created attachment 75741 [details] patch for upstream submission Patch based on v5 with additional S-O-B and Tested-by tags for Dmitry's review.
This patch has not helped me, too. Have to throw the laptop in the trash :(
(In reply to comment #75) > This patch has not helped me, too. Have to throw the laptop in the trash :( [ 2.327464] i8042: [308] 91 -> i8042 (command) [ 2.327733] i8042: [309] 66 -> i8042 (parameter) [ 2.330645] i8042: [309] fe <- i8042 (interrupt, 3, 12) [ 2.330652] i8042: [309] 91 -> i8042 (command) [ 2.330876] i8042: [309] 88 -> i8042 (parameter) [...] [ 4.825925] i8042: [934] 91 -> i8042 (command) [ 4.826090] i8042: [934] f3 -> i8042 (parameter) [ 4.829576] i8042: [934] fc <- i8042 (interrupt, 3, 12) According to the above log, driver failed to detect the hardware because command 88 timed out. I'm afraid that this patch won't help you as the problem you're running into seems to be EC related. There are a few MUX error in your log: [ 1.227636] i8042: [33] 90 -> i8042 (command) [ 1.228579] i8042: [33] f2 -> i8042 (parameter) [ 1.233864] i8042: [35] MUX error, status is 25, data is fc [ 1.233875] i8042: [35] fe <- i8042 (interrupt, 2, 12, timeout) [ 1.233931] i8042: [35] 90 -> i8042 (command) [ 1.235031] i8042: [35] ed -> i8042 (parameter) [ 1.240302] i8042: [36] MUX error, status is 25, data is fc [ 1.240313] i8042: [36] fe <- i8042 (interrupt, 2, 12, timeout) Not sure if there are any other i8042 knobs to workaround this problem. Perhaps Dmitry can shed some light for us?
(In reply to comment #76) > > I'm afraid that this patch won't help you as the problem you're running > into > seems to be EC related. There are a few MUX error in your log: > > [ 1.227636] i8042: [33] 90 -> i8042 (command) > [ 1.228579] i8042: [33] f2 -> i8042 (parameter) > [ 1.233864] i8042: [35] MUX error, status is 25, data is fc > [ 1.233875] i8042: [35] fe <- i8042 (interrupt, 2, 12, timeout) > [ 1.233931] i8042: [35] 90 -> i8042 (command) > [ 1.235031] i8042: [35] ed -> i8042 (parameter) > [ 1.240302] i8042: [36] MUX error, status is 25, data is fc > [ 1.240313] i8042: [36] fe <- i8042 (interrupt, 2, 12, timeout) > > Not sure if there are any other i8042 knobs to workaround this problem. > Perhaps > Dmitry can shed some light for us? There are lots of boxes that have iffy MUX implementation, try booting with i8042.nomux to disable the active multiplexing and stay in legacy mode.
Thank you!!! After add parameter i8024.nomux, my touchpad works. $ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ FSPPS/2 Sentelic FingerSensingPad id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
Pavel, could you please open a separate bug and post output of dmidecode for your box?
https://bugzilla.kernel.org/show_bug.cgi?id=45101
Hi, is this still actual? when this will get upstream? i've got a Medion Akoya P6631 Laptop with Sentelic Touchpad: $ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ FSPPS/2 Sentelic FingerSensingPad id=13 [slave pointer (2)] i also had this erratic movements and jumps to the upper left corner also scrolling didn't work neither edge nor two-finger... i rebuilt this kernel: $ uname -r 3.2.0-29-generic-pae by: $ apt-get source linux-image-3.2.0-29-generic-pae $ sudo apt-get build-dep linux-image-3.2.0-29-generic-pae $ cd linux-3.2.0 $ chmod +x debian/scripts/misc/* debian/scripts/* $ debian/rules updateconfigs $ cd drivers/input/mouse then i first applied this patch: http://markmail.org/thread/l5jmpiioajfcffyo as for fsp_drv_ver[] = "1.0.0-K" i had... and afterwards the last patch from this thread $ patch < *.patch $ cd - $ env skipabi=true fakeroot debian/rules binary-generic-pae $ cd .. $ sudo dpkg -i linux-headers-3.2.0-29-generic-pae_3.2.0-29.46_i386.deb linux-image-3.2.0-29-generic-pae_3.2.0-29.46_i386.deb $ sudo reboot after this my touchpad doesn't has this erratic movements anymore and all options from touchpad settings work except 'disable when typing' and 'sensitivity' i couldn't figure out rightly... but edge scrolling was a bit difficult to hit / unresponsive... so i additionally made this changes: $ synclient | grep Edge LeftEdge = 38 RightEdge = 929 TopEdge = 38 BottomEdge = 673 VertEdgeScroll = 1 HorizEdgeScroll = 1 EdgeMotionMinZ = 30 EdgeMotionMaxZ = 160 EdgeMotionMinSpeed = 1 EdgeMotionMaxSpeed = 96 EdgeMotionUseAlways = 0 AreaLeftEdge = 0 AreaRightEdge = 0 AreaTopEdge = 0 AreaBottomEdge = 0 $ synclient RightEdge=900 $ synclient BottomEdge=650 with this mods my touchpad nearly works perfectly :) thanks a lot! so some minor bugs i have: sometimes it generates a rigth-click or double-click(for marking an area) at scroll beginning and one time it scrolled very very fast but that's all not that problem so i hope i did everything right especially for kernel (like modules or so or as i'm in need of the additional bumblebee driver for nvidia optimus support) but i think everything should be the same as before just with touchpad support? am i right??? as last question: how do i make this edge modification remaining after reboot? thanks in advance all the best elibl
A patch referencing this bug report has been merged in Linux v3.6-rc7: commit 30ebb7fa0e3e92145b859ad6e44aa6dc636b4103 Author: Tai-hwa Liang <avatar@sentelic.com> Date: Wed Sep 19 11:10:47 2012 -0700 Input: sentelic - filter out erratic movement when lifting finger
Using 3.6 final from kernel.ubuntu.com/~kernel-ppa/mainline/ I still have erratic movement with my Sentelic touchpad. It either scrolls to top, scrolls the reverse direction when lifting the fingers, continues scrolling same/reverse direction after lifting the fingers, or flickers intently when trying to hold the fingers still in the middle of a scroll. Is there any kernel change that hasn't been merged yet, any patch that is outside the scope of the kernel, any configuration that needs to be done with synclient or is Ubuntu building their kernels in a way that ignores these fixes?
Patrik, Have you tried running with a kernel you patched yourself? If it works, then the issue is probably because Ubuntu somehow ignored the fixes.
Is this fix supposed to work also with Sentelic touchpad in UX31? I tried 3.6.5 kernel and it still doesn't work. Even with i8024.nomux kernel parameter. It works however with driver from https://github.com/saaros.
it's a pity that this patch is still not applied to mainline cause it's an essential bugfix (for my touchpad) without the use is very annoying. so please ubuntu people/ mainline maintainer submit this patch!!! built now custom kernel 3.5.0 with this patch for ubuntu 12.10 for other people with sentelic touchpad just build your own kernel the way i did 5 posts above it should work for the most the same way all the best
(In reply to comment #86) > it's a pity that this patch is still not applied to mainline cause it's an > essential bugfix (for my touchpad) without the use is very annoying. Which patch do you mean? I just checked and I guess you seem to mean patch https://bugzilla.kernel.org/attachment.cgi?id=75741 ? Can you verify my guess is indeed correct? @Dimitry: the patch I mentioned above indeed is not yet in mainline... Oversight?
(In reply to comment #87) > Can you verify my guess is indeed correct? completely ;)
Could someone in charge make a statement which kernel is going to include this patch?
Looks like we've got progress. With vanilla version 3.7.1 of the kernel touchpad doesn't work but as a bonus it's not possible to patch it with driver from https://github.com/saaros cause there are errors during compilation. I'm back to 3.6.0 with mentioned patch. Please could someone summarize the current status of this bugreport?
I have a Syntelic touchpad that suffers from a similar problem: scrolling only happens in the corners. No edge scrolling, no two-finger scrolling (Fedora 17, stock kernel 3.6.10). I noticced that you're using the synclient application to control scrolling, however I'm only getting an error: $ synclient Couldn't find synaptics properties. No synaptics driver loaded? Does it mean I have a kernel problem or xorg? I know this might be the wrong place to ask, but I noticed some people here got synclient to work and I don't know a better place.
Does anyone know when these patches will be included in mainline kernel?
There was the following change applied to mainline: commit a25461659050b913e114d282bf58823682eb56b6 Author: Christophe TORDEUX <christophe@tordeux.net> Date: Mon Dec 24 09:20:40 2012 -0800 Input: sentelic - only report position of first finger as ST coordinates Report only the position of the first finger as absolute non-MT coordinates, instead of reporting both fingers alternatively. Actual MT events are unaffected. This fixes horizontal and improves vertical scrolling with the touchpad. Cc: stable@vger.kernel.org Signed-off-by: Christophe TORDEUX <christophe@tordeux.net> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> It went into 3.8. If 3.8 still exhibits the bad behavior then we have to look again.
For the record it's still pretty annoying on a Fedora 20 w/3.14 kernel.
Agreed. This issue is still reproducible on the latest Ubuntu with 3.14 kernel. It's not the horizontal scrolling that was fixed with the commit Dmitry mentions that's bugging me. It's really annoying: on my Zenbook I keep scrolling down with two fingers and sometimes it's scrolling the page all the way to the top instead.
Hello guys! I use a Clevo W310CZ laptop with a sentelic touchpad, on Ubuntu 14.04 LTS, and the 3.13.0-30-generic kernel. Using the touchpad is really a pain! It works good some time, then the cursor gets completely mad. I do not think I have the "mouse jumping to upper left corner" already described there. I would rather say that the cursor moves faster and jumps *anywhere* on the screen. WHAT I DID: I disabled every 'DoubleFinger'-like occurence with synclient I also tried to patch the kernel but I think this one (3.13.0-30-generic) already contained the patched part. Below is the original "sentelic.c" as I found it: *** if ((packet[0] == 0x48 || packet[0] == 0x49) && packet[1] == 0 && packet[2] == 0) { /* * Ignore coordinate noise when finger leaving the * surface, otherwise cursor may jump to upper-left * corner. */ packet[3] &= 0xf0; } abs_x = GET_ABS_X(packet); abs_y = GET_ABS_Y(packet); *** so, the patch "sentelic.patch" described sooner in this thread does nothing. Question: what more can I try to fix this problem? Does anyone still have this problem with this kernel? Could using an older kernel (eg 3.2) with ubuntu 12.04 help in any way? Thank you
Hello, I used too a Clevo W310CZ laptop with a sentelic touchpad and ubuntu 14.04. I'm agree with Zigma description : "cursor jumps *anywhere* on the screen"
I had to send back my laptop for a refound after a ten-day struggle...
I had "i8042.nomux=1 i8042.reset=1" to my GRUB_CMDLINE_LINUX_DEFAULT (/etc/default/grub). erratic jump/selection seems to be less frequently but still present...
I use too synclient PalmMinZ=1 synclient PalmMinWidth=1 synclient MaxSpeed=1 to minimize erratic jump/selection...
Generally with regressions as described here the best tool is bisection. I have seen noone attempt that with this bug.
I tested ubuntu mainline kernel (linux-headers-3.16.0-031600-generic_3.16.0-031600.201408031935_amd64.deb) Still erratic jump/selection. to complet bug's description : I also found that if I restart the computer when the cursor is crazy, the cursor is blocked in the middle of the screen (only the right click works). I need to reboot several times to have the possibility to move the cursor. I'm afraid that the problems is also in the hardware or firmware level of the touchpad. Because if I restart on Windows (when the cursor is blocked on Ubuntu), the cursor is also blocked in the middle of the screen on Windows. However, if I only use Windows (never boot on Ubuntu), I never have a problem with cursor...
I have got rid of the issue by making sure it is enabled in Settings. https://thegeekpage.com/fix-touchpad-scroll-not-working-windows-10-solution/