aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi-rockchip.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/spi/spi-rockchip.c b/drivers/spi/spi-rockchip.c
index a75fd9bb76de..34f6440a5255 100644
--- a/drivers/spi/spi-rockchip.c
+++ b/drivers/spi/spi-rockchip.c
@@ -846,10 +846,9 @@ static int rockchip_spi_suspend(struct device *dev)
846 if (ret < 0) 846 if (ret < 0)
847 return ret; 847 return ret;
848 848
849 if (!pm_runtime_suspended(dev)) { 849 ret = pm_runtime_force_suspend(dev);
850 clk_disable_unprepare(rs->spiclk); 850 if (ret < 0)
851 clk_disable_unprepare(rs->apb_pclk); 851 return ret;
852 }
853 852
854 pinctrl_pm_select_sleep_state(dev); 853 pinctrl_pm_select_sleep_state(dev);
855 854
@@ -864,17 +863,9 @@ static int rockchip_spi_resume(struct device *dev)
864 863
865 pinctrl_pm_select_default_state(dev); 864 pinctrl_pm_select_default_state(dev);
866 865
867 if (!pm_runtime_suspended(dev)) { 866 ret = pm_runtime_force_resume(dev);
868 ret = clk_prepare_enable(rs->apb_pclk); 867 if (ret < 0)
869 if (ret < 0) 868 return ret;
870 return ret;
871
872 ret = clk_prepare_enable(rs->spiclk);
873 if (ret < 0) {
874 clk_disable_unprepare(rs->apb_pclk);
875 return ret;
876 }
877 }
878 869
879 ret = spi_master_resume(rs->master); 870 ret = spi_master_resume(rs->master);
880 if (ret < 0) { 871 if (ret < 0) {