diff options
-rw-r--r-- | drivers/spi/spi-s3c64xx.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index d117fa638ee3..4e5931cabfa2 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c | |||
@@ -1246,10 +1246,9 @@ static int s3c64xx_spi_suspend(struct device *dev) | |||
1246 | if (ret) | 1246 | if (ret) |
1247 | return ret; | 1247 | return ret; |
1248 | 1248 | ||
1249 | if (!pm_runtime_suspended(dev)) { | 1249 | ret = pm_runtime_force_suspend(dev); |
1250 | clk_disable_unprepare(sdd->clk); | 1250 | if (ret < 0) |
1251 | clk_disable_unprepare(sdd->src_clk); | 1251 | return ret; |
1252 | } | ||
1253 | 1252 | ||
1254 | sdd->cur_speed = 0; /* Output Clock is stopped */ | 1253 | sdd->cur_speed = 0; /* Output Clock is stopped */ |
1255 | 1254 | ||
@@ -1261,14 +1260,14 @@ static int s3c64xx_spi_resume(struct device *dev) | |||
1261 | struct spi_master *master = dev_get_drvdata(dev); | 1260 | struct spi_master *master = dev_get_drvdata(dev); |
1262 | struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); | 1261 | struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); |
1263 | struct s3c64xx_spi_info *sci = sdd->cntrlr_info; | 1262 | struct s3c64xx_spi_info *sci = sdd->cntrlr_info; |
1263 | int ret; | ||
1264 | 1264 | ||
1265 | if (sci->cfg_gpio) | 1265 | if (sci->cfg_gpio) |
1266 | sci->cfg_gpio(); | 1266 | sci->cfg_gpio(); |
1267 | 1267 | ||
1268 | if (!pm_runtime_suspended(dev)) { | 1268 | ret = pm_runtime_force_resume(dev); |
1269 | clk_prepare_enable(sdd->src_clk); | 1269 | if (ret < 0) |
1270 | clk_prepare_enable(sdd->clk); | 1270 | return ret; |
1271 | } | ||
1272 | 1271 | ||
1273 | s3c64xx_spi_hwinit(sdd, sdd->port_id); | 1272 | s3c64xx_spi_hwinit(sdd, sdd->port_id); |
1274 | 1273 | ||