return ret;
 
        ret = clk_prepare_enable(controller->cclk);
-       if (ret)
+       if (ret) {
+               clk_disable_unprepare(controller->iclk);
                return ret;
+       }
 
        ret = spi_qup_set_state(controller, QUP_STATE_RESET);
        if (ret)
-               return ret;
+               goto disable_clk;
+
+       ret = spi_master_resume(master);
+       if (ret)
+               goto disable_clk;
 
-       return spi_master_resume(master);
+       return 0;
+
+disable_clk:
+       clk_disable_unprepare(controller->cclk);
+       clk_disable_unprepare(controller->iclk);
+       return ret;
 }
 #endif /* CONFIG_PM_SLEEP */