From: Dmitry Torokhov <dtor_core@ameritech.net>
To: Kenan Esau <kenan.esau@conan.de>
Cc: harald.hoyer@redhat.de, linux-input@atrey.karlin.mff.cuni.cz,
linux-kernel@vger.kernel.org, Vojtech Pavlik <vojtech@suse.cz>
Subject: [PATCH 3/4] Lifebook: rearrange init code
Date: Tue, 22 Mar 2005 02:16:38 -0500 [thread overview]
Message-ID: <200503220216.38756.dtor_core@ameritech.net> (raw)
In-Reply-To: <200503220215.34198.dtor_core@ameritech.net>
===================================================================
Input: lifebook - adjust initialization routines to be in line with
the rest of protocols in preparation to dynamic protocol
switching.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
lifebook.c | 46 ++++++++++++++++++++++++++++------------------
lifebook.h | 4 ++--
psmouse-base.c | 14 ++++++++++++--
3 files changed, 42 insertions(+), 22 deletions(-)
Index: dtor/drivers/input/mouse/lifebook.h
===================================================================
--- dtor.orig/drivers/input/mouse/lifebook.h
+++ dtor/drivers/input/mouse/lifebook.h
@@ -11,7 +11,7 @@
#ifndef _LIFEBOOK_H
#define _LIFEBOOK_H
-int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto,
- int set_properties);
+int lifebook_detect(struct psmouse *psmouse, int set_properties);
+int lifebook_init(struct psmouse *psmouse);
#endif
Index: dtor/drivers/input/mouse/psmouse-base.c
===================================================================
--- dtor.orig/drivers/input/mouse/psmouse-base.c
+++ dtor/drivers/input/mouse/psmouse-base.c
@@ -424,8 +424,18 @@ static int psmouse_extensions(struct psm
{
int synaptics_hardware = 0;
- if (lifebook_detect(psmouse, max_proto, set_properties) == 0)
- return PSMOUSE_LIFEBOOK;
+/*
+ * We always check for lifebook because it does not disturb mouse
+ * (it only checks DMI information).
+ */
+ if (lifebook_detect(psmouse, set_properties) == 0 ||
+ max_proto == PSMOUSE_LIFEBOOK) {
+
+ if (max_proto > PSMOUSE_IMEX) {
+ if (!set_properties || lifebook_init(psmouse) == 0)
+ return PSMOUSE_LIFEBOOK;
+ }
+ }
/*
* Try Kensington ThinkingMouse (we try first, because synaptics probe
Index: dtor/drivers/input/mouse/lifebook.c
===================================================================
--- dtor.orig/drivers/input/mouse/lifebook.c
+++ dtor/drivers/input/mouse/lifebook.c
@@ -71,7 +71,7 @@ static psmouse_ret_t lifebook_process_by
return PSMOUSE_FULL_PACKET;
}
-static int lifebook_initialize(struct psmouse *psmouse)
+static int lifebook_absolute_mode(struct psmouse *psmouse)
{
struct ps2dev *ps2dev = &psmouse->ps2dev;
unsigned char param;
@@ -95,27 +95,37 @@ static void lifebook_disconnect(struct p
psmouse_reset(psmouse);
}
-int lifebook_detect(struct psmouse *psmouse, unsigned int max_proto,
- int set_properties)
+int lifebook_detect(struct psmouse *psmouse, int set_properties)
{
- if (lifebook_check_dmi() && max_proto != PSMOUSE_LIFEBOOK)
+ if (lifebook_check_dmi())
return -1;
if (set_properties) {
- psmouse->vendor = "Fujitsu Lifebook";
- psmouse->name = "TouchScreen";
- psmouse->dev.evbit[0] = BIT(EV_ABS) | BIT(EV_KEY) | BIT(EV_REL);
- psmouse->dev.keybit[LONG(BTN_LEFT)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT);
- psmouse->dev.keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
- psmouse->dev.relbit[0] = BIT(REL_X) | BIT(REL_Y);
- input_set_abs_params(&psmouse->dev, ABS_X, 0, 1024, 0, 0);
- input_set_abs_params(&psmouse->dev, ABS_Y, 0, 1024, 0, 0);
-
- psmouse->protocol_handler = lifebook_process_byte;
- psmouse->disconnect = lifebook_disconnect;
- psmouse->reconnect = lifebook_initialize;
- psmouse->pktsize = 3;
+ psmouse->vendor = "Fujitsu";
+ psmouse->name = "Lifebook TouchScreen";
+
}
- return lifebook_initialize(psmouse);
+ return 0;
}
+
+int lifebook_init(struct psmouse *psmouse)
+{
+ if (lifebook_absolute_mode(psmouse))
+ return -1;
+
+ psmouse->dev.evbit[0] = BIT(EV_ABS) | BIT(EV_KEY) | BIT(EV_REL);
+ psmouse->dev.keybit[LONG(BTN_LEFT)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT);
+ psmouse->dev.keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
+ psmouse->dev.relbit[0] = BIT(REL_X) | BIT(REL_Y);
+ input_set_abs_params(&psmouse->dev, ABS_X, 0, 1024, 0, 0);
+ input_set_abs_params(&psmouse->dev, ABS_Y, 0, 1024, 0, 0);
+
+ psmouse->protocol_handler = lifebook_process_byte;
+ psmouse->disconnect = lifebook_disconnect;
+ psmouse->reconnect = lifebook_absolute_mode;
+ psmouse->pktsize = 3;
+
+ return 0;
+}
+
next prev parent reply other threads:[~2005-03-22 7:21 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
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 ` Dmitry Torokhov [this message]
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=200503220216.38756.dtor_core@ameritech.net \
--to=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox