public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Vojtech Pavlik <vojtech@suse.cz>
To: Pete Zaitcev <zaitcev@redhat.com>
Cc: Peter Osterlund <petero2@telia.com>,
	linux-kernel@vger.kernel.org, dtor_core@ameritech.net
Subject: Re: Touchpad problems with 2.6.11-rc2
Date: Wed, 2 Feb 2005 11:20:33 +0100	[thread overview]
Message-ID: <20050202102033.GA2420@ucw.cz> (raw)
In-Reply-To: <20050201234148.4d5eac55@localhost.localdomain>

On Tue, Feb 01, 2005 at 11:41:48PM -0800, Pete Zaitcev wrote:
> On 30 Jan 2005 12:10:34 +0100, Peter Osterlund <petero2@telia.com> wrote:
> 
> > > - Slow motion of finger produces no motion, then a jump. So, it's very hard to
> > >   target smaller UI elements and some web links.
> > 
> > I see this too when I don't use the X touchpad driver. With the X
> > driver there is no problem. I think the problem is that mousedev.c in
> > the kernel has to use integer arithmetic, so probably small movements
> > are rounded off to 0. I'll try to come up with a fix for this.
> 
> Thanks for the hint. I tried various schemes and mathematical transformations
> and found one which gives unquestionably the best result, with smoothest, most
> precise and comfortable pointer movement:

Well, you removed the scaling to the touchpad resolution, which will
cause ALPS touchpad to be significantly slower than Synaptics touchpads.
Similarly, the screen size used to be taken into account, but probably
that was a mistake, since the value is usually left at default and
doesn't correspond to the real screen size.

> --- linux-2.6.11-rc2/drivers/input/mousedev.c	2005-01-22 14:54:14.000000000 -0800
> +++ linux-2.6.11-rc2-lem/drivers/input/mousedev.c	2005-02-01 23:20:19.000000000 -0800
> @@ -122,19 +122,19 @@ static void mousedev_touchpad_event(stru
>  	if (mousedev->touch) {
>  		switch (code) {
>  			case ABS_X:
> -				size = dev->absmax[ABS_X] - dev->absmin[ABS_X];
> -				if (size == 0) size = xres;
>  				fx(0) = value;
>  				if (mousedev->pkt_count >= 2)
> -					mousedev->packet.dx = ((fx(0) - fx(1)) / 2 + (fx(1) - fx(2)) / 2) * xres / (size * 2);
> +					mousedev->packet.dx = (value - fx(2)) / 2;
> +				else if (mousedev->pkt_count == 1)
> +					mousedev->packet.dx = value - fx(1);
>  				break;
>  
>  			case ABS_Y:
> -				size = dev->absmax[ABS_Y] - dev->absmin[ABS_Y];
> -				if (size == 0) size = yres;
>  				fy(0) = value;
>  				if (mousedev->pkt_count >= 2)
> -					mousedev->packet.dy = -((fy(0) - fy(1)) / 2 + (fy(1) - fy(2)) / 2) * yres / (size * 2);
> +					mousedev->packet.dy = (fy(2) - value) / 2;
> +				else if (mousedev->pkt_count == 1)
> +					mousedev->packet.dy = fy(1) - value;
>  				break;
>  		}
>  	}
> 
> I'm not kidding. Someone obviously outsmarted himself when programming this.
 
-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

  reply	other threads:[~2005-02-02 10:17 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-24  3:01 Touchpad problems with 2.6.11-rc2 Pete Zaitcev
2005-01-30 11:10 ` Peter Osterlund
2005-01-31 23:15   ` Pete Zaitcev
2005-02-01  3:40     ` Dmitry Torokhov
2005-02-01  5:06       ` Pete Zaitcev
2005-02-01  5:14         ` Dmitry Torokhov
2005-02-03 11:18           ` Giuseppe Bilotta
2005-02-02  7:41   ` Pete Zaitcev
2005-02-02 10:20     ` Vojtech Pavlik [this message]
2005-02-02 15:51       ` Dmitry Torokhov
2005-02-02 15:57         ` Vojtech Pavlik
2005-02-02 16:56       ` Pete Zaitcev
2005-02-02 17:07         ` Vojtech Pavlik
2005-02-02 17:58           ` Pete Zaitcev
2005-02-02 19:11             ` Vojtech Pavlik
2005-02-02 19:39               ` Pete Zaitcev
2005-02-02 19:55                 ` Vojtech Pavlik
2005-02-02 19:39             ` Dmitry Torokhov
2005-02-03  8:30             ` Alexandre Oliva
2005-02-03  8:49               ` Vojtech Pavlik
2005-02-03 15:17                 ` Alexandre Oliva
2005-02-03 15:28                   ` Dmitry Torokhov
2005-02-03 15:45                     ` Vojtech Pavlik
2005-02-02 20:57     ` Peter Osterlund
2005-02-02 21:17       ` Dmitry Torokhov
2005-02-02 21:47         ` Peter Osterlund
2005-02-02 22:06           ` Dmitry Torokhov
2005-02-02 22:27             ` Peter Osterlund
2005-02-03  7:16               ` Dmitry Torokhov
2005-02-02 21:37       ` David Ford
2005-02-02 22:11       ` Pete Zaitcev
2005-02-02 22:58         ` Peter Osterlund
2005-02-03  6:46           ` Vojtech Pavlik
2005-02-03 21:54             ` Peter Osterlund
2005-02-04  6:17               ` Vojtech Pavlik
2005-02-04  6:40                 ` Peter Osterlund
2005-02-04  6:53                   ` Vojtech Pavlik
2005-02-04  7:33                     ` Peter Osterlund
2005-02-04 13:25                   ` Vojtech Pavlik
2005-02-04 13:23               ` Vojtech Pavlik
2005-02-03  6:59           ` Pete Zaitcev
  -- strict thread matches above, loose matches on Subject: below --
2005-01-25 19:55 David Brownell
2005-01-25 21:30 ` Dmitry Torokhov
2005-01-30 11:20   ` Peter Osterlund
2005-01-30 20:59     ` David Brownell
2005-01-31 21:46   ` Pete Zaitcev
2005-01-31 22:00     ` Dmitry Torokhov
2005-02-08 10:55 Stephane Raimbault
2005-02-08 17:05 ` Peter Osterlund
2005-02-09  8:47   ` Stephane Raimbault
2005-02-09 18:09     ` Peter Osterlund
2005-02-10  8:32       ` Stephane Raimbault

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050202102033.GA2420@ucw.cz \
    --to=vojtech@suse.cz \
    --cc=dtor_core@ameritech.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=petero2@telia.com \
    --cc=zaitcev@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox