ata: ahci_platform: fix ahci_platform_data->suspend method handling
[cascardo/linux.git] / drivers / ata / ahci_platform.c
index 70fbf66..7bd6adf 100644 (file)
@@ -521,12 +521,19 @@ int ahci_platform_suspend(struct device *dev)
        if (rc)
                return rc;
 
-       if (pdata && pdata->suspend)
-               return pdata->suspend(dev);
+       if (pdata && pdata->suspend) {
+               rc = pdata->suspend(dev);
+               if (rc)
+                       goto resume_host;
+       }
 
        ahci_platform_disable_resources(hpriv);
 
        return 0;
+
+resume_host:
+       ahci_platform_resume_host(dev);
+       return rc;
 }
 EXPORT_SYMBOL_GPL(ahci_platform_suspend);