|
@@ -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
|