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

Commit 617fcb67 authored by Ulf Hansson's avatar Ulf Hansson Committed by Rafael J. Wysocki
Browse files

PM / runtime: Allow no callbacks in pm_runtime_force_suspend|resume()



The pm_runtime_force_suspend|resume() helpers currently requires the device
to at some level (PM domain, bus, etc), have the ->runtime_suspend|resume()
callbacks assigned for it, else -ENOSYS is returned as an error.

However, there are no reason for this requirement, so let's simply remove
it by allowing these callbacks to be NULL.

Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 1f5c6855
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -1640,7 +1640,7 @@ static bool pm_runtime_need_not_resume(struct device *dev)
int pm_runtime_force_suspend(struct device *dev)
{
	int (*callback)(struct device *);
	int ret = 0;
	int ret;

	pm_runtime_disable(dev);
	if (pm_runtime_status_suspended(dev))
@@ -1648,12 +1648,7 @@ int pm_runtime_force_suspend(struct device *dev)

	callback = RPM_GET_CALLBACK(dev, runtime_suspend);

	if (!callback) {
		ret = -ENOSYS;
		goto err;
	}

	ret = callback(dev);
	ret = callback ? callback(dev) : 0;
	if (ret)
		goto err;

@@ -1704,7 +1699,7 @@ int pm_runtime_force_resume(struct device *dev)

	callback = RPM_GET_CALLBACK(dev, runtime_resume);

	ret = callback ? callback(dev) : -ENOSYS;
	ret = callback ? callback(dev) : 0;
	if (ret) {
		pm_runtime_set_suspended(dev);
		goto out;