Messages in this thread | | | Subject | Re: [PATCH] regulator: core: Handle PM_SUSPEND_TO_IDLE suspend_state_t | From | Hans de Goede <> | Date | Mon, 19 Feb 2018 21:59:13 +0100 |
| |
Hi,
On 19-02-18 12:34, Mark Brown wrote: > On Sun, Feb 18, 2018 at 06:04:24PM +0100, Hans de Goede wrote: >> The regulator framework is used on x86 in some cases now and x86 has >> a PM_SUSPEND_TO_IDLE suspend_state_t, treat this as PM_SUSPEND_STANDBY, >> this fixes these errors on resume: > > This was already fixed by Geert.
There are multiple callers of regulator_get_suspend_state() in drivers/regulator/core.c, I assume you refer to this commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/regulator/core.c?id=57a0dd187956ea04870f4bbbf25a63c425ee7cad
Even with that commit I'm still seeing these errors on resume:
[ 753.064002] dpm_run_callback(): regulator_resume_early+0x0/0x60 returns -22 [ 753.064014] PM: Device regulator.0 failed to resume early: error -22
These are caused by the -EINVAL return after the regulator_get_suspend_state() call in _regulator_resume_early() and there are other callers of regulator_get_suspend_state() which return -EINVAL too.
I think just returning 0 in this case makes sense, but it looks like that needs to be done in several places.
Regards,
Hans
| |