Re: [PATCH] Input: serio - re-add thaw (and add freeze)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue 2010-02-16 09:22:33, Dmitry Torokhov wrote:
> On Tue, Feb 16, 2010 at 04:48:30PM +0000, Alan Jenkins wrote:
> > On 2/4/10, Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx> wrote:
> > > Dmitry Torokhov wrote:
> > >> On Wed, Feb 03, 2010 at 06:59:54PM +0000, Alan Jenkins wrote:
> > >>
> > >>> 633aae2 "Input: i8042 - switch to using dev_pm_ops"
> > >>> removed handling for PMSG_THAW, causing obscure breakage.
> > >>>
> > >>> It can break if you press keys during hibernation,
> > >>> which causes subsequent keypresses to be lost -
> > >>> so you can't cancel s2disk by pressing backspace -
> > >>> and then just before system poweroff you get
> > >>> "psmouse.c: Failed to deactivate mouse".
> > >>>
> > >>> So let's add the thaw handler back.
> > >>>
> > >>> Also set the freeze handler.  It looks like PMSG_FREEZE
> > >>> didn't do anything in the past, but I think that must
> > >>> have been an oversight.
> > >>>
> > >>
> > >> We do not need to do anything special at freeze time that is why there
> > >> wasn't freeze handler. And so thaw should be pretty much noop as well.
> > 
> > Ok, so I did some more mindless fiddling.  It seems that all it needs
> > is to call the interrupt handler at thaw time.
> > 
> 
> Yep, this makes more sense. If you happen to press the key(s) while
> interrupts are off the keyboard controller becomes "jammed". Your sign
> off please?

Dmitry wants your Signed-off-by: line, to easily apply the patch.

								Pavel

> > Regards
> > Alan
> > 
> > diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
> > index d84a36e..b54aee7 100644
> > --- a/drivers/input/serio/i8042.c
> > +++ b/drivers/input/serio/i8042.c
> > @@ -1161,9 +1161,17 @@ static int i8042_pm_restore(struct device *dev)
> >  	return 0;
> >  }
> > 
> > +static int i8042_pm_thaw(struct device *dev)
> > +{
> > +	i8042_interrupt(0, NULL);
> > +
> > +	return 0;
> > +}
> > +
> >  static const struct dev_pm_ops i8042_pm_ops = {
> >  	.suspend	= i8042_pm_reset,
> >  	.resume		= i8042_pm_restore,
> > +	.thaw		= i8042_pm_thaw,
> >  	.poweroff	= i8042_pm_reset,
> >  	.restore	= i8042_pm_restore,
> >  };
> 

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux