Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83b03fd6 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Tejun Heo
Browse files

ata: ahci_platform: fix ahci_platform_data->suspend method handling



Looking at ST SPEAr1340 AHCI code (the only user of the deprecated
pdata->suspend and pdata->resume) it is obvious the we should return
after calling pdata->suspend() only if the function have returned
non-zero return value.  The code has been broken since commit 1e70c2
("ata/ahci_platform: Add clock framework support").  Fix it.

Cc: Viresh Kumar <viresh.linux@gmail.com>
Cc: Shiraz Hashim <shiraz.hashim@st.com>
Acked-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 0dd5d6f0
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -521,12 +521,19 @@ int ahci_platform_suspend(struct device *dev)
	if (rc)
	if (rc)
		return rc;
		return rc;


	if (pdata && pdata->suspend)
	if (pdata && pdata->suspend) {
		return pdata->suspend(dev);
		rc = pdata->suspend(dev);
		if (rc)
			goto resume_host;
	}


	ahci_platform_disable_resources(hpriv);
	ahci_platform_disable_resources(hpriv);


	return 0;
	return 0;

resume_host:
	ahci_platform_resume_host(dev);
	return rc;
}
}
EXPORT_SYMBOL_GPL(ahci_platform_suspend);
EXPORT_SYMBOL_GPL(ahci_platform_suspend);