]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/spi/spi-atmel.c
Merge remote-tracking branches 'spi/topic/altera', 'spi/topic/atmel', 'spi/topic...
[karo-tx-linux.git] / drivers / spi / spi-atmel.c
index f17f949857b48db1f5d34831f7a35b9177137a75..bc879930470b0e43aa666b965c818621c026ef2a 100644 (file)
@@ -1448,6 +1448,14 @@ static int atmel_spi_suspend(struct device *dev)
 {
        struct spi_master       *master = dev_get_drvdata(dev);
        struct atmel_spi        *as = spi_master_get_devdata(master);
+       int ret;
+
+       /* Stop the queue running */
+       ret = spi_master_suspend(master);
+       if (ret) {
+               dev_warn(dev, "cannot suspend master\n");
+               return ret;
+       }
 
        clk_disable_unprepare(as->clk);
 
@@ -1460,11 +1468,18 @@ static int atmel_spi_resume(struct device *dev)
 {
        struct spi_master       *master = dev_get_drvdata(dev);
        struct atmel_spi        *as = spi_master_get_devdata(master);
+       int ret;
 
        pinctrl_pm_select_default_state(dev);
 
        clk_prepare_enable(as->clk);
-       return 0;
+
+       /* Start the queue running */
+       ret = spi_master_resume(master);
+       if (ret)
+               dev_err(dev, "problem starting queue (%d)\n", ret);
+
+       return ret;
 }
 
 static SIMPLE_DEV_PM_OPS(atmel_spi_pm_ops, atmel_spi_suspend, atmel_spi_resume);