From: arief_mulya <arief_m_utama@telkomsel.co.id>
To: Dmitry Torokhov <dtor_core@ameritech.net>
Cc: Andrew Morton <akpm@osdl.org>,
vojtech@suse.cz, linux-kernel@vger.kernel.org
Subject: Re: [PATCH?] psmouse-base.c
Date: Tue, 11 Nov 2003 13:54:16 +0700 [thread overview]
Message-ID: <3FB08798.7050805@telkomsel.co.id> (raw)
In-Reply-To: <200311110020.07251.dtor_core@ameritech.net>
Dmitry Torokhov wrote:
>On Monday 10 November 2003 01:56 am, Andrew Morton wrote:
>
>
>>Dmitry Torokhov <dtor_core@ameritech.net> wrote:
>>
>>
>
>
>
>>>serio_reconnect() is only in your tree (-mm), it has not been pushed
>>>to Linus yet... Unfortunately using rescan can cause input devices be
>>>shifted if some program has them open while suspending.
>>>
>>>
>>Ah, I see. So would you say that reconnect is the correct thing to use
>>here?
>>
>>That would mean that the appropriate patch against -mm is
>>
>>--- 25/drivers/input/mouse/psmouse-base.c~serio-pm-fix 2003-11-09
>>20:12:27.000000000 -0800 +++
>>25-akpm/drivers/input/mouse/psmouse-base.c 2003-11-09
>>20:12:27.000000000 -0800 @@ -533,9 +533,10 @@ static int
>>psmouse_pm_callback(struct pm
>> {
>> struct psmouse *psmouse = dev->data;
>>
>>- psmouse->state = PSMOUSE_IGNORE;
>>- serio_reconnect(psmouse->serio);
>>-
>>+ if (request == PM_RESUME) {
>>+ psmouse->state = PSMOUSE_IGNORE;
>>+ serio_reconnect(psmouse->serio);
>>+ }
>> return 0;
>> }
>>
>>
>>
>
>Yes, I believe this will work. And for vanilla 2.6 the patch below should
>do the trick. As you can see vanilla 2.6 has custom reconnect logic in PM
>handler but it does not work very well for devices connected to Synaptics
>pass-through port - it will unregister it and register again potentially
>creating a new input device like serio does. The "main" mouse device will
>retain its device though.
>
>===================================================================
>ChangeSet@1.1423, 2003-11-11 00:06:11-05:00, dtor_core@ameritech.net
> Re-initialize mouse hardware on resume only.
>
>
> psmouse-base.c | 20 +++++++++++---------
> 1 files changed, 11 insertions(+), 9 deletions(-)
>
>
>diff -Nru a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
>--- a/drivers/input/mouse/psmouse-base.c Tue Nov 11 00:07:50 2003
>+++ b/drivers/input/mouse/psmouse-base.c Tue Nov 11 00:07:50 2003
>@@ -528,17 +528,19 @@
> struct psmouse *psmouse = dev->data;
> struct serio_dev *ser_dev = psmouse->serio->dev;
>
>- synaptics_disconnect(psmouse);
>+ if (request == PM_RESUME) {
>+ synaptics_disconnect(psmouse);
>
>- /* We need to reopen the serio port to reinitialize the i8042 controller */
>- serio_close(psmouse->serio);
>- serio_open(psmouse->serio, ser_dev);
>+ /* We need to reopen the serio port to reinitialize the i8042 controller */
>+ serio_close(psmouse->serio);
>+ serio_open(psmouse->serio, ser_dev);
>
>- /* Probe and re-initialize the mouse */
>- psmouse_probe(psmouse);
>- psmouse_initialize(psmouse);
>- synaptics_pt_init(psmouse);
>- psmouse_activate(psmouse);
>+ /* Probe and re-initialize the mouse */
>+ psmouse_probe(psmouse);
>+ psmouse_initialize(psmouse);
>+ synaptics_pt_init(psmouse);
>+ psmouse_activate(psmouse);
>+ }
>
> return 0;
> }
>
>===================================================================
>
>Unfortunately I do not suspend my laptop so I did not run it, just
>made sure it compiles. Arief? could you give this patch a try?
>
>
>
>
I have tested it before.
My first attempts looked quite just like that.
It didn't work quite nicely.
Especially with gpm, after resume, you cannot do Tap-to-Click behaviour
with that patch. You can still move it, use left and right button, but
no tap-to-click. I don't know why. That's why, finally, I use
serio_rescan().
I haven't tested it with X, though, as I use gpm as a repeater, I
thought this was unnecessary.
But I have try Andrew's tree. And it works flawlessly with the patch
(case PM_RESUME: serio_reconnect()). I think I'm going to stick with mm
tree, and dump my vanilla kernel.
One more think, I also sets "psmouse_resetafter" to 1 at the
declaration. Without that, I get too many ugly message saying "Synaptics
lost sync at 1 byte..." or something like that. As it is a module
parameter, but on menuconfig synaptics does not available as module, so
I set it directly on the source. I don't know if I can set it on boot
time, can it?
Best Regards
--
arief_mulya
Peace is Beautiful.
next prev parent reply other threads:[~2003-11-11 7:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-10 2:28 arief_mulya
2003-11-10 4:12 ` Andrew Morton
2003-11-10 6:43 ` Dmitry Torokhov
2003-11-10 6:56 ` Andrew Morton
2003-11-10 7:08 ` arief_mulya
2003-11-11 5:20 ` Dmitry Torokhov
2003-11-11 6:54 ` arief_mulya [this message]
2003-11-11 23:29 ` Dmitry Torokhov
2003-11-12 2:28 ` arief_mulya
2003-11-12 3:42 ` 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=3FB08798.7050805@telkomsel.co.id \
--to=arief_m_utama@telkomsel.co.id \
--cc=akpm@osdl.org \
--cc=dtor_core@ameritech.net \
--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
all inboxes | Powered by JetHome®