All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Kenan Esau <kenan.esau@conan.de>
Cc: Vojtech Pavlik <vojtech@suse.cz>,
	harald.hoyer@redhat.de, linux-input@atrey.karlin.mff.cuni.cz,
	linux-kernel@vger.kernel.org
Subject: Re: [rfc/rft] Fujitsu B-Series Lifebook PS/2 TouchScreen driver
Date: Tue, 15 Feb 2005 12:42:03 -0500	[thread overview]
Message-ID: <d120d5000502150942527fd4ea@mail.gmail.com> (raw)
In-Reply-To: <1108487008.2843.21.camel@localhost>

On Tue, 15 Feb 2005 18:03:28 +0100, Kenan Esau <kenan.esau@conan.de> wrote:
> Am Dienstag, den 15.02.2005, 09:43 -0500 schrieb Dmitry Torokhov:
> > On Tue, 15 Feb 2005 14:43:08 +0100, Vojtech Pavlik <vojtech@suse.cz> wrote:
> > > On Tue, Feb 15, 2005 at 09:57:59AM +0100, Kenan Esau wrote:
> > > > +static struct dmi_system_id lifebook_dmi_table[] = {
> > > > +     {
> > > > +             .ident = "Fujitsu Siemens Lifebook B-Sereis",
> > > > +             .matches = {
> > > > +                     DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK B Series"),
> > > > +             },
> > > > +     },
> > > > +     { }
> > > > +};
> > >
> > > This might be a bit too much generic. Are you sure there are no B Series
> > > lifebooks without a touchscreen?
> > >
> >
> > And another concern: does this notebook (or others using this
> > touchscreen) have an active MUX? We don't want to force LBTOUCH
> > protocol on an external mouse.
> 
> All B-Series Lifebooks have the same touchscreen-hardware. But Dmitri's
> concern is correct -- at the moment I would enforce the LBTOUCH-protocol
> on external mice...
> 
> I have to fix this. I will additionally to the DMI stuff use "Status
> Request". On a "Request ID"-Command the Device always answers with a
> 0x00 -- could this also be helpfull?
> 
> > > > +static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_regs *regs)
> > > > +{
> > > > +     unsigned char *packet = psmouse->packet;
> > > > +     struct input_dev *dev = &psmouse->dev;
> > > > +
> > > > +        unsigned long x = 0;
> > > > +        unsigned long y = 0;
> > > > +        static uint8_t pkt_lst_touch = 0;
> > > > +     static uint8_t pkt_cur_touch = 0;
> > > > +     uint8_t pkt_lb = packet[0] & LBTOUCH_LB;
> > > > +     uint8_t pkt_rb = packet[0] & LBTOUCH_RB;
> >
> > We usually don't use userspace types here. unsigned char or u8 for kernel.
> >
> > > > +
> > > > +                psmouse->protocol_handler = lifebook_process_byte;
> > > > +                psmouse->disconnect = lifebook_disconnect;
> > > > +                psmouse->reconnect  = lifebook_initialize;
> > > > +                psmouse->initialize = lifebook_initialize;
> > > > +                psmouse->pktsize = 3;
> > > > +     }
> > > > +
> > > > +     return 0;
> > > > +}
> > >
> > > The change to the psmouse interface I'm leaving to Dmitry to comment on.
> >
> > I don't think that we need a separate initialize handler simply
> > because it is called just once, at initialization time. Here we know
> > exactly what device (protocol) we are dealing with, no need for
> > indirection.
> 
> I introduced the new initialize-handler since psmouse->initialize() is
> also used in psmouse-base.c. This is to prevent putting if-statements on
> each place where the initialization-function for a certain protocol is
> called in psmouse-base.c.

It would be good idea if protocols were initialized in many difefrent
places, but the all are called from one place - psmouse_extensions.
Some protocols that can be detected without changing hardware state
have 2 functions - detect and init and the others have ony detect
which does initialization as well. But they all are called from the
same place.

psmouse_initialize has somewhat confising name, it is not "initialize
protocol", it is "enable streaming and initialize common parameters,
such as rate and resolution". Plus I think it is too late to do
protocol init in psmouse_initialize as this will not allow falling
back to "lesser" protocols if higher prtocol initialization fails.

> I admit since I am also using a different reconnect-function than
> psmouse-base it's not such a huge benefit but think of a new
> protocol/device which uses the same reconnect-function as psmouse-base
> but a different init-function.

I am not sure what difference does it make - if there is no reconnect
hamdler psmosue will end up calling psmouse_extensions which will
re-initialize hardware with proper function for the protocol. It still
does not require a handler in psmouse structure.

> 
> My goal was to have no dependency from psmouse-base to the
> lifebook-handling (none but lifebook_detect()). Thus the indirection is
> IMHO needed.

You can hide all of it right in lifebook_detect or acknowledge that
you have 2 fucntions and call them from psmouse-base, like synaptics
and alps do. I don't think it exposes lbtouch internals too much.

-- 
Dmitry

  parent reply	other threads:[~2005-02-15 17:42 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-11 20:10 [rfc/rft] Fujitsu B-Series Lifebook PS/2 TouchScreen driver Vojtech Pavlik
2005-02-12 17:01 ` Kenan Esau
2005-02-12 17:46   ` Arjan van de Ven
2005-02-13  9:39     ` Kenan Esau
2005-02-13 11:46       ` Vojtech Pavlik
2005-02-12 18:17   ` Dmitry Torokhov
2005-02-12 18:34   ` Vojtech Pavlik
2005-02-13 10:05     ` Kenan Esau
2005-02-13 12:01       ` Vojtech Pavlik
2005-02-13 18:14         ` Kenan Esau
2005-02-13 19:02           ` Vojtech Pavlik
     [not found] ` <200502130149.11183.dtor_core@ameritech.net>
2005-02-13  8:36   ` Vojtech Pavlik
2005-02-14 10:06 ` Harald Hoyer
2005-02-15  8:57 ` Kenan Esau
2005-02-15 13:43   ` Vojtech Pavlik
2005-02-15 14:43     ` Dmitry Torokhov
2005-02-15 17:03       ` Kenan Esau
2005-02-15 17:09         ` Vojtech Pavlik
2005-02-15 17:42         ` Dmitry Torokhov [this message]
2005-02-15 17:15     ` Kenan Esau
2005-02-16 18:34     ` Kenan Esau
2005-02-16 21:35       ` Vojtech Pavlik
2005-02-17 14:19         ` Kenan Esau
2005-02-17 15:04           ` Vojtech Pavlik
2005-02-17 19:42             ` Vojtech Pavlik
2005-02-19 12:54               ` Kenan Esau
2005-02-19 13:16                 ` Vojtech Pavlik
2005-02-21  8:06                   ` Kenan Esau
2005-02-24  9:03                     ` Vojtech Pavlik
2005-03-01  8:11                       ` Kenan Esau
2005-03-01 12:08                         ` Vojtech Pavlik
2005-03-07  7:27                           ` Kenan Esau
2005-03-07  7:34                             ` Vojtech Pavlik
2005-03-15 13:25                               ` Kenan Esau
2005-03-21 12:44                                 ` Vojtech Pavlik
2005-03-21 14:52                                   ` Dmitry Torokhov
2005-03-21 15:31                                     ` Kenan Esau
2005-03-21 15:44                                       ` Dmitry Torokhov
2005-03-22  7:13                                       ` Dmitry Torokhov
2005-03-22  7:14                                         ` [PATCH 1/4] Lifebook: dmi on x86 only Dmitry Torokhov
2005-03-22  7:15                                           ` [PATCH 2/4] Lifebook: various cleanups Dmitry Torokhov
2005-03-22  7:16                                             ` [PATCH 3/4] Lifebook: rearrange init code Dmitry Torokhov
2005-03-22  7:17                                               ` [PATCH 4/4] psmouse: dynamic protocol switching via sysfs Dmitry Torokhov
2005-04-03 19:49                                                 ` Kenan Esau
2005-04-04  5:45                                                   ` Dmitry Torokhov
2005-04-04  6:48                                                     ` Kenan Esau
2005-03-22  7:29                                           ` [PATCH 1/4] Lifebook: dmi on x86 only Dave Jones
2005-03-22  7:33                                             ` Dmitry Torokhov
2005-03-22 14:01                                           ` Alan Cox
2005-03-22 10:01                                         ` [rfc/rft] Fujitsu B-Series Lifebook PS/2 TouchScreen driver Andrey Panin
2005-03-22 14:20                                           ` Dmitry Torokhov

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=d120d5000502150942527fd4ea@mail.gmail.com \
    --to=dmitry.torokhov@gmail.com \
    --cc=dtor_core@ameritech.net \
    --cc=harald.hoyer@redhat.de \
    --cc=kenan.esau@conan.de \
    --cc=linux-input@atrey.karlin.mff.cuni.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vojtech@suse.cz \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.