public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Vojtech Pavlik <vojtech@suse.cz>
To: Stelian Pop <stelian@popies.net>
Cc: Peter Osterlund <petero2@telia.com>,
	Andrew Morton <akpm@osdl.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Frank Arnold <frank@scirocco-5v-turbo.de>
Subject: Re: [PATCH] Apple USB Touchpad driver (new)
Date: Mon, 11 Jul 2005 13:00:24 +0200	[thread overview]
Message-ID: <20050711110024.GA23333@ucw.cz> (raw)
In-Reply-To: <1121078371.12621.36.camel@localhost.localdomain>

On Mon, Jul 11, 2005 at 12:39:31PM +0200, Stelian Pop wrote:
 
> > > Using a function like
> > > 
> > > 	return (x_old * 3 + x) / 4;
> > > 
> > > eliminates the need for a FIFO, and has similar (if not better)
> > > properties to floating average, because its coefficients are
> > > [ .25 .18 .14 .10 ... ].
> > 
> > Agreed.
> 
> Except that this does not work well enough.

I guess the quick motion compensation in input bites you. The above
equation should do even more smoothing than regular 4-point floating
average.

> There are two problems I encountered in this driver:
> * fuzz problems (keeping the finger at the same place makes the pointer
> dance around its position). This is solved by the input core's fuzz
> treatment, as I already set the fuzz to 16 in the code.

OK.

> * hickup problems (moving the finger generates non linear points,
> something like 1 1 1 3 3 3 4 4 4 instead of 1 1 1 2 2 3 3 4 4). And here
> the floating average approach works better than the input core's method.
> (this could probably be solved also by changing the way the absolute
> coordinate is calculated from the sensor array in atp_calculate_abs, but
> I haven't been able to find a better linear function).

I of course won't object to the floating average in the driver if you
say it's needed, I'm just wondering what happens here, because the input
core should smooth this out as well, and if it doesn't, there may be a
problem somewhere.

> > Also, it might be a good idea to compute an ABS_PRESSURE value instead
> > of hardcoding it to 100. I think the psum variable in
> > atp_calculate_abs() can be used, possibly after rescaling.
> 
> I already thought about this, one problem is that the sensors do not
> report the pressure but only the amount of surface touched. A person
> with thick fingers will always generate higher pressures then one with
> thin ones, no matter how hard they push on the touchpad.

That's what all other touchpads do.

> I don't think this value is reliable enough to be reported to the
> userspace as ABS_PRESSURE...

I believe it'd still be more useful than a two-value (0 and 100) output.


> +			/*
> +			 * in the future, we could add here code to search for
> +			 * a second finger...
> +			 * for now, scrolling using the synaptics X driver is
> +			 * much more simpler to achieve.
> +			 */

This could be quite useful, too, for right and middle button taps (2 and
3 fingers) - since the Macs lack these buttons.

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

  reply	other threads:[~2005-07-11 11:00 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-08 10:17 [PATCH] Apple USB Touchpad driver (new) Stelian Pop
2005-07-08 11:18 ` Johannes Berg
2005-07-08 12:10   ` Stelian Pop
2005-07-09 19:13     ` Vojtech Pavlik
2005-07-09 22:48       ` Peter Osterlund
2005-07-10 12:04         ` Vojtech Pavlik
2005-07-11  0:15           ` Peter Osterlund
2005-07-11 10:39             ` Stelian Pop
2005-07-11 11:00               ` Vojtech Pavlik [this message]
2005-07-11 11:08                 ` Stelian Pop
2005-07-11 11:21                   ` Vojtech Pavlik
2005-07-11 12:47                     ` Stelian Pop
2005-07-11 13:35                       ` Stelian Pop
2005-07-12  9:05                     ` Stelian Pop
2005-07-12 14:13                       ` Dmitry Torokhov
2005-07-12 14:33                         ` Stelian Pop
2005-07-12 14:47                           ` Dmitry Torokhov
2005-07-12 18:13                             ` Vojtech Pavlik
2005-07-12 19:21                               ` Stelian Pop
     [not found]               ` <20050711035244.115067ac.akpm@osdl.org>
2005-07-11 11:04                 ` Stelian Pop
2005-07-11 13:25                   ` Peter Osterlund
2005-07-11 20:44                   ` Lee Revell
2005-07-11 20:54                     ` Stelian Pop
2005-07-11 13:48               ` Peter Osterlund
2005-07-11 10:47             ` Vojtech Pavlik
2005-07-09 22:32     ` Peter Osterlund
2005-07-10 11:58       ` Vojtech Pavlik
2005-07-11 10:06       ` Stelian Pop

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=20050711110024.GA23333@ucw.cz \
    --to=vojtech@suse.cz \
    --cc=akpm@osdl.org \
    --cc=frank@scirocco-5v-turbo.de \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=petero2@telia.com \
    --cc=stelian@popies.net \
    /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