Re: [PATCH 1/7] i8042 suspend

From: Dmitry Torokhov
Date: Sat Jan 03 2004 - 11:51:50 EST


On Saturday 03 January 2004 05:03 am, Vojtech Pavlik wrote:
> On Sat, Jan 03, 2004 at 03:56:45AM -0500, Dmitry Torokhov wrote:
> > diff -Nru a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
> > --- a/drivers/input/serio/i8042.c Sat Jan 3 03:07:29 2004
> > +++ b/drivers/input/serio/i8042.c Sat Jan 3 03:07:29 2004
> > @@ -746,6 +746,29 @@
> >
> >
> > /*
> > + * Reset the controller.
> > + */
> > +void i8042_controller_reset(void)
> > +{
> > + if (i8042_reset) {
> > + unsigned char param;
> > +
> > + if (i8042_command(&param, I8042_CMD_CTL_TEST))
> > + printk(KERN_ERR "i8042.c: i8042 controller reset timeout.\n");
> > + }
>
> We should be checking the return value from the TEST command as well,
> if we want to use this to initialize the controller on non-x86
> platforms (where i8042.reset is 0).
>
> > -/*
> > - * Reset the controller.
> > - */
> > -
> > - if (i8042_reset) {
> > - unsigned char param;
> > + i8042_controller_reset();
> > +}
> >
> > - if (i8042_command(&param, I8042_CMD_CTL_TEST))
> > - printk(KERN_ERR "i8042.c: i8042 controller reset timeout.\n");
> > - }
>
> This actually introduces a bug, because we don't want to restore the
> CTR setting before we save it, which the new code does.
>

Hmm, I do not see it. i8042_controller_reset() is only called on suspend/
shutdown. The init path where we vigorously testing the hardware and saving
initial CTR value was left intact.

As far as checking the return value we usualy give some leniency on suspend/
shutdown and don't fail the entire process when there are non-clitical errors.

Or am I missing something?

Dmitry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/