]> www.infradead.org Git - users/jedix/linux-maple.git/commit
PM: runtime: Unify error handling during suspend and resume
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 25 Feb 2025 17:06:18 +0000 (18:06 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 3 Mar 2025 13:46:19 +0000 (14:46 +0100)
commit72263869656d09a5f9727504bb1f3cb7b010f0e5
tree004110d0ad58c716c5d0558370aa39011cd05328
parentd2677d57d4b8ec63da8f51357bcf855c4cf47c78
PM: runtime: Unify error handling during suspend and resume

There is a confusing difference in error handling between rpm_suspend()
and rpm_resume() related to the special way in which -EAGAIN and -EBUSY
error values are treated by the former.  Also, converting -EACCES coming
from the callback to I/O error, which it quite likely is not, may
confuse runtime PM users.

To address the above, modify rpm_callback() to convert -EACCES coming
from the driver to -EAGAIN and to set power.runtime_error only if the
return value is not -EAGAIN or -EBUSY.

This will cause the error handling in rpm_resume() and rpm_suspend() to
work consistently, so drop the no longer needed -EAGAIN or -EBUSY
special case from the latter and make it retry autosuspend if
power.runtime_error is unset.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://patch.msgid.link/12620037.O9o76ZdvQC@rjwysocki.net
drivers/base/power/runtime.c