lkml.org 
[lkml]   [2008]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Fix tosakbd suspend
Hi,

2008/4/1, Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> On Tue, Apr 01, 2008 at 04:27:38PM +0300, Dmitry wrote:
> > Hi, Dmitry,
> >
> > 2008/4/1, Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> > > Hi Dmitry,
> > >
> > >
> > > On Tue, Apr 01, 2008 at 01:38:01AM +0400, Dmitry Baryshkov wrote:
> > > > Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
> > > > ---
> > > > drivers/input/keyboard/tosakbd.c | 3 +++
> > > > 1 files changed, 3 insertions(+), 0 deletions(-)
> > > >
> > > > diff --git a/drivers/input/keyboard/tosakbd.c b/drivers/input/keyboard/tosakbd.c
> > > > index 3884d1e..306cbe8 100644
> > > > --- a/drivers/input/keyboard/tosakbd.c
> > > > +++ b/drivers/input/keyboard/tosakbd.c
> > > > @@ -210,6 +210,9 @@ static int tosakbd_suspend(struct platform_device *dev, pm_message_t state)
> > > >
> > > > del_timer_sync(&tosakbd->timer);
> > > >
> > >
> > >
> > > What if interrupt comes here? The whole suspend path seems racy with
> > > interrup handler/timer.
> >
> > What is the best way to fix it? Moving from suspend to suspend_late
> > seems to be a hack.
> > Should I call a bunch of disable_irq or just introduce an atomic flag?
> >
>
>
> How about we take the lock in tosakbd_suspend, set flag indicating that the
> picece is suspended, do the discharge and then del_timer_sync()? If you change
> tosakbd_scankeyboard() to check for suspend flag and exit as soon as it sees it
> it should take care of the most of the issues I think. Something like this:

This should do the trick. I'll test the patch tomorrow.

--
With best wishes
Dmitry


\
 
 \ /
  Last update: 2008-04-01 23:53    [from the cache]
©2003-2011 Jasper Spaans