From: Fabio Estevam Date: Wed, 12 Apr 2017 15:33:50 +0000 (-0700) Subject: Input: imx6ul_tsc - fix error handling X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c286841720b2e33795bea6cc4c71d50cd6cd8123;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Input: imx6ul_tsc - fix error handling If imx6ul_tsc_init() fails we should not return directly. We should disable the previously acquired clocks in this case. Signed-off-by: Fabio Estevam Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/touchscreen/imx6ul_tsc.c b/drivers/input/touchscreen/imx6ul_tsc.c index 7098e0a47019..ee82a975bfd2 100644 --- a/drivers/input/touchscreen/imx6ul_tsc.c +++ b/drivers/input/touchscreen/imx6ul_tsc.c @@ -337,11 +337,20 @@ static int imx6ul_tsc_open(struct input_dev *input_dev) dev_err(tsc->dev, "Could not prepare or enable the tsc clock: %d\n", err); - clk_disable_unprepare(tsc->adc_clk); - return err; + goto disable_adc_clk; } - return imx6ul_tsc_init(tsc); + err = imx6ul_tsc_init(tsc); + if (err) + goto disable_tsc_clk; + + return 0; + +disable_tsc_clk: + clk_disable_unprepare(tsc->tsc_clk); +disable_adc_clk: + clk_disable_unprepare(tsc->adc_clk); + return err; } static void imx6ul_tsc_close(struct input_dev *input_dev)