mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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.


  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®