diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c index d5d761a73d24fa1af95d497cbe92390462a89bcb..f304fd84bb9fbbd97c5741505086ed5b2bb58e8d 100644 --- a/drivers/input/touchscreen/goodix.c +++ b/drivers/input/touchscreen/goodix.c @@ -442,10 +442,12 @@ static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) return IRQ_HANDLED; } +#if 0 static void goodix_free_irq(struct goodix_ts_data *ts) { devm_free_irq(&ts->client->dev, ts->client->irq, ts); } +#endif static int goodix_request_irq(struct goodix_ts_data *ts) { @@ -1284,7 +1286,7 @@ static int __maybe_unused goodix_suspend(struct device *dev) } /* Free IRQ as IRQ pin is used as output in the suspend sequence */ - goodix_free_irq(ts); + disable_irq(client->irq); /* Output LOW on the INT pin for 5 ms */ error = goodix_irq_direction_output(ts, 0); @@ -1362,9 +1364,7 @@ static int __maybe_unused goodix_resume(struct device *dev) } } - error = goodix_request_irq(ts); - if (error) - return error; + enable_irq(client->irq); return 0; }