|
@@ -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);
|
|
|
|