diff options
| -rw-r--r-- | drivers/spi/spi-rockchip.c | 21 |
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) { |
