|
@@ -846,10 +846,9 @@ static int rockchip_spi_suspend(struct device *dev)
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
|
- if (!pm_runtime_suspended(dev)) {
|
|
|
- clk_disable_unprepare(rs->spiclk);
|
|
|
- clk_disable_unprepare(rs->apb_pclk);
|
|
|
- }
|
|
|
+ ret = pm_runtime_force_suspend(dev);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
|
|
|
pinctrl_pm_select_sleep_state(dev);
|
|
|
|
|
@@ -864,17 +863,9 @@ static int rockchip_spi_resume(struct device *dev)
|
|
|
|
|
|
pinctrl_pm_select_default_state(dev);
|
|
|
|
|
|
- if (!pm_runtime_suspended(dev)) {
|
|
|
- ret = clk_prepare_enable(rs->apb_pclk);
|
|
|
- if (ret < 0)
|
|
|
- return ret;
|
|
|
-
|
|
|
- ret = clk_prepare_enable(rs->spiclk);
|
|
|
- if (ret < 0) {
|
|
|
- clk_disable_unprepare(rs->apb_pclk);
|
|
|
- return ret;
|
|
|
- }
|
|
|
- }
|
|
|
+ ret = pm_runtime_force_resume(dev);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
|
|
|
ret = spi_master_resume(rs->master);
|
|
|
if (ret < 0) {
|