linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vojtech Pavlik <vojtech@suse.cz>
To: Dmitry Torokhov <dtor_core@ameritech.net>
Cc: Vojtech Pavlik <vojtech@suse.cz>,
	akpm@osdl.org, petero2@telia.com, Andries.Brouwer@cwi.nl,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 8/8] Add BTN_TOUCH to Synaptics driver. Update mousedev.
Date: Fri, 26 Sep 2003 09:54:08 +0200	[thread overview]
Message-ID: <20030926075408.GA7330@ucw.cz> (raw)
In-Reply-To: <200309260224.54264.dtor_core@ameritech.net>

On Fri, Sep 26, 2003 at 02:24:53AM -0500, Dmitry Torokhov wrote:
> On Thursday 25 September 2003 05:30 pm, Vojtech Pavlik wrote:
> > On Thu, Sep 25, 2003 at 01:23:33PM -0500, Dmitry Torokhov wrote:
> > > - Introducing BTN_TOUCH as far as I can seen does nothing to prevent
> > > joydev grabbing either Synaptics or touchscreens... Is there a patch
> > > missing?
> >
> > No. It's a statement you're missing near the beginning of
> > joydev_connect().
> >
> 
> Ok.. I see... and I hate it. We have a mechanism to match input devices to
> input handler and we violate it.

Well, the mechanism is: check the bit table, if doesn't match, go
forward to next handler. Then call the connect function, if it fails, go
to next handler.

Originally there only was the connect function which was doing all the
decisions, but that meant you have to load all the handler modules to
check if they will attach to a device. Now the number of modules is
limited, because the hotplug agent can check the tables.

But still the tables aren't (and will never be) the only way to decide
if a handler will attach to a specific device.

> What could be done is adding a black list
> to the input handler structure similar to the white list we have now. This
> way all matching conditions will be kept in one place...
> 
> ...But, unless I am missing something again, with introduction of BTN_TOUCH,
> tsdev now will happily claim Synaptics touchpads. We could filter it out
> by checking for example ABS_PRESSURE in tsdev but it would be just a another
> band aid. I could easily see a touch screen reporting pressure and multiple
> fingers. As far as capabilities go touchscreens are almost indistinguishable
> from touch pads, they just operate as true absolute devices.

You're right. And it's a problem.

> IMHO we should let input device driver explicitly request which input
> handler it wishes to bind to (for example by passing a bitmap of desired
> input handlers when registering input device and everyone binds to evdev). 
> It is not as flexible as capabilities checking solution but much more 
> simple and predictable. I do not thing that there will be that many handlers 
> implemented...

No, it won't work. It assumes that all the handlers are known
beforehand. Someone may want to load their own input handler module and
it wouldn't bind to any device, because it wouldn't be on the list.

Also, we need to communicate the information not just to kernel
handlers, but also to userspace programs/drivers ...

One thing I tried to avoid is a 'device class' kind of field, that'd
tell if a device is a mouse a touchpad, touchscreen, tablet, whatever.
I tried to avoid it because there are devices that don't fall into any
predefined class and if we make enough classes, someone someday will
make a device that won't fit again.

Adding a device class field and ioctl would solve the touchpad /
touchscreen problem nicely.

Another option is defining a set of features (events) a touchpad must
have and which a touchscreen must have and based on this do the decision
on the class. But now I think this is just another bandaid.

> Should I try to cook something along these lines?

If you do it the device-class way (be it an int or be it a bitmap), I
think it's worth trying.

> > > BTW, any chance on including pass-through patches? Do you want me to
> > > re-diff them?
> >
> > Hmm, I thought I've merged them in already, but obviously I did not.
> > Please resend them (rediffed if possible). Thanks.
> 
> I meant reconnect patches that Peter sent in his last mail, sorry for the
> confusion.

I don't think I'll apply those, sorry. We really should try to go the
driver-model way and not invent our own ways how to restore devices
hierarchically.

-- 
Vojtech Pavlik
SuSE Labs, SuSE CR

  reply	other threads:[~2003-09-26  7:56 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-25 16:48 My current patches Vojtech Pavlik
2003-09-25 16:50 ` [PATCH 1/8] Revert synaptics->pktcnt change Vojtech Pavlik
2003-09-25 16:50   ` [PATCH 2/8] Fix multibutton handling in synaptics.c Vojtech Pavlik
2003-09-25 16:50     ` [PATCH 3/8] Synaptics code cleanups Vojtech Pavlik
2003-09-25 16:50       ` [PATCH 4/8] Add touchpad support to mousedev.c Vojtech Pavlik
2003-09-25 16:50         ` [PATCH 5/8] Rely less on sanity of AT keyboards Vojtech Pavlik
2003-09-25 16:50           ` [PATCH 6/8] Extend KD?BENT to handle > 256 keycodes Vojtech Pavlik
2003-09-25 16:50             ` [PATCH 7/8] Fix handling of rotated Synaptics touchpads Vojtech Pavlik
2003-09-25 16:50               ` [PATCH 8/8] Add BTN_TOUCH to Synaptics driver. Update mousedev Vojtech Pavlik
2003-09-25 18:23                 ` Dmitry Torokhov
2003-09-25 22:30                   ` Vojtech Pavlik
2003-09-26  5:24                     ` Peter Osterlund
2003-09-26  7:24                     ` Dmitry Torokhov
2003-09-26  7:54                       ` Vojtech Pavlik [this message]
2003-09-27  1:58                         ` Dmitry Torokhov
2003-09-27 20:19                         ` Pavel Machek
2003-09-27 21:05                           ` Vojtech Pavlik
2003-09-27 21:09                             ` Pavel Machek
2003-09-27 21:16                               ` Vojtech Pavlik
2003-09-27 21:18                                 ` Pavel Machek
2003-09-27 21:21                                   ` Vojtech Pavlik
2003-09-27 21:58                                     ` Matt Gibson
2003-09-28  9:49                                       ` Vojtech Pavlik
2003-09-25 22:57             ` [PATCH 6/8] Extend KD?BENT to handle > 256 keycodes Andrew Morton
2003-09-25 23:21               ` Vojtech Pavlik
2003-09-25 23:38             ` Andries Brouwer
2003-09-26  6:20               ` Vojtech Pavlik
2003-10-05 15:12           ` [PATCH 5/8] Rely less on sanity of AT keyboards Martin Josefsson
2003-09-25 18:13 ` My current patches Peter Osterlund

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=20030926075408.GA7330@ucw.cz \
    --to=vojtech@suse.cz \
    --cc=Andries.Brouwer@cwi.nl \
    --cc=akpm@osdl.org \
    --cc=dtor_core@ameritech.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=petero2@telia.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;
as well as URLs for NNTP newsgroup(s).