clk_prepare_enable() can fail here and we must check its return value.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
CC: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
 {
        int ret = 0, i;
 
-       clk_prepare_enable(skt->clk);
+       ret = clk_prepare_enable(skt->clk);
+       if (ret)
+               return ret;
 
        if (skt->ops->hw_init) {
                ret = skt->ops->hw_init(skt);
-               if (ret)
+               if (ret) {
+                       clk_disable_unprepare(skt->clk);
                        return ret;
+               }
        }
 
        for (i = 0; i < ARRAY_SIZE(skt->stat); i++) {