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 <fabio.estevam@nxp.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
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)