On Wed, 2018-01-10 at 12:34 +0100, Hans de Goede wrote: > We should not try to do any i2c transfers before the controller is > resumed (which happens before our resume method gets called). > > So we need to disable our IRQ while suspended to enforce this. The > code paths for devices with GPIOs for the int and reset pins already > disable the IRQ the through goodix_free_irq(). > > This commit also disables the IRQ while suspended for devices without > GPIOs for the int and reset pins. Do disable_irq() and enable_irq() require to be paired, and if so, are goodix_suspend() and goodix_resume() guaranteed to be paired? Other than that, looks good to me. Please add the name of the device(s) you tested this on in the changelog and add your tested-by, to show it's not a "compile-only check" kind of commit. Cheers > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/input/touchscreen/goodix.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/touchscreen/goodix.c > b/drivers/input/touchscreen/goodix.c > index 69d0b8cbc71f..ecec8eb17f28 100644 > --- a/drivers/input/touchscreen/goodix.c > +++ b/drivers/input/touchscreen/goodix.c > @@ -878,8 +878,10 @@ static int __maybe_unused goodix_suspend(struct > device *dev) > int error; > > /* We need gpio pins to suspend/resume */ > - if (!ts->gpiod_int || !ts->gpiod_rst) > + if (!ts->gpiod_int || !ts->gpiod_rst) { > + disable_irq(client->irq); > return 0; > + } > > wait_for_completion(&ts->firmware_loading_complete); > > @@ -919,8 +921,10 @@ static int __maybe_unused goodix_resume(struct > device *dev) > struct goodix_ts_data *ts = i2c_get_clientdata(client); > int error; > > - if (!ts->gpiod_int || !ts->gpiod_rst) > + if (!ts->gpiod_int || !ts->gpiod_rst) { > + enable_irq(client->irq); > return 0; > + } > > /* > * Exit sleep mode by outputting HIGH level to INT pin -- 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