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    [W:0.022 / U:61.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site