@Dave Turvene: Since I had already narrowed down the problem exhibited on my Latitude E6530 in your psmouse-alps-patch to the very function which was to blame, while I was at it I thought I might as well narrow it down even further. And so I did.
I took the source code of function alps_hw_init_v5 from version 0.4 and gradually changed it so as to eventually look like the source code of function alps_hw_init_v5 from version 1.0, recompiling and reloading the module in each step to verify it still works. And thus I found the error. Basically, in line 1690 of src/alps.c of version 1.0 of your patch, there is the command ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP); However, version 0.4 executed this command thrice, while version 1.0 executes it only once. This makes the whole difference. You have to call it _thrice_ for scrolling to work on my laptop. Not once. Not twice (I tried that too). But thrice. Don't ask me why, but that's the way it is :-) I have attached a patch intended to be applied against the psmouse-alps-patch available at http://www.dahetral.com/public-download/psmouse-alps-dst-1.0.tbz/at_download/file By downloading that file, then applying my patch to it, then building and installing and loading the module, touchpad scrolling works fine on my Dell Latitude E6530, both edge-scrolling and two-finger-scrolling. I have also noticed two other things during my code review that I would like to bring to your attention: 1. There is a very similar situation earlier on, namely in line 1659 of src/alps.c, where also the command ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP); is executed exactly once in version 1.0, while before (version 0.4) it was called thrice at that point. Here, both variants (calling it either once or thrice) work fine on my laptop, but since later, in line 1690 (as explained above) it seems that you *have* to execute the command thrice, it might be "cleaner" from the point of view of the protocol to also call it thrice here. You will have to decide that. 2. Just below, in line 1660, there is the command ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO); where 'param' is just an array with uninitialized values. I don't know what PSMOUSE_CMD_GETINFO does, but I was just a bit astonished that we should need to pass an array of uninitialized parameters. In any case, passing NULL instead of 'param' at that point works fine too. Might be cleaner. Or does PSMOUSE_CMD_GETINFO actually fills this array? Again, your choice. Cheers, Malte ** Patch added: "Patch for http://www.dahetral.com/public-download/psmouse-alps-dst-1.0.tbz/view to make the latter work on Dell Latitude E6530" https://bugs.launchpad.net/ubuntu/+source/linux/+bug/606238/+attachment/3418538/+files/alps_patch_fix_for_e6530.patch -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/606238 Title: synaptic touchpad not recognized on dell latitude e6510 and others To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/606238/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
