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;
 }