* [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" [not found] <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.44efb263-5265-4fae-9cff-e8eaefbc0afd@emailsignatures365.codetwo.com> @ 2026-11-06 12:59 ` Mike Looijmans [not found] ` <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.6954786b-65e0-4206-a0c4-60cd251dbec9@emailsignatures365.codetwo.com> 2026-11-06 13:36 ` [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" Mark Brown 0 siblings, 2 replies; 5+ messages in thread From: Mike Looijmans @ 2026-11-06 12:59 UTC (permalink / raw) To: linux-kernel; +Cc: Mike Looijmans, Liam Girdwood, Mark Brown This reverts commit 6a7d11efd691 ("regulator: pwm-regulator: Calculate the output voltage for disabled PWMs") A disabled PWM is not the same as "set to 0%". If the PWM is disabled, this could also mean that its output pin is tristated for example. If the PWM range is limited to something else than 0..100% this causes the probe function to fail with messages like: dsp7-pwm: failed to get the current voltage: -ENOTRECOVERABLE pwm-regulator dsp7-supply-pwm: error -ENOTRECOVERABLE: Failed to register regulator pwm-regulator pwm-regulator dsp7-supply-pwm: probe with driver pwm-regulator failed with error -131 The reason is that regulator_register() calls get_voltage(). The PWM is disabled at this point, and then the validity check triggers. Anything that calls get_voltage() while the PWM is disabled would get an -ENOTRECOVERABLE return value for a pwm-regulator that doesn't allow 0%. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> --- drivers/regulator/pwm-regulator.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c index 7434b6b22d325..f50530c77d92f 100644 --- a/drivers/regulator/pwm-regulator.c +++ b/drivers/regulator/pwm-regulator.c @@ -157,13 +157,6 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) pwm_get_state(drvdata->pwm, &pstate); - if (!pstate.enabled) { - if (pstate.polarity == PWM_POLARITY_INVERSED) - pstate.duty_cycle = pstate.period; - else - pstate.duty_cycle = 0; - } - voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); if (voltage < min(max_uV_duty, min_uV_duty) || voltage > max(max_uV_duty, min_uV_duty)) --- base-commit: f66469d9905b39d2c260a15d7d6db450f4db67c1 branch: linux-master-pwm-regulator -- 2.43.0 Met vriendelijke groet / kind regards, Mike Looijmans System Expert TOPIC Embedded Products B.V. Materiaalweg 4, 5681 RJ Best The Netherlands T: +31 (0) 499 33 69 69 E: mike.looijmans@topic.nl W: www.topic.nl Please consider the environment before printing this e-mail ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.6954786b-65e0-4206-a0c4-60cd251dbec9@emailsignatures365.codetwo.com>]
* [PATCH 2/2] regulator: pwm-regulator: Revert "Add validity checks in continuous .get_voltage" [not found] ` <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.6954786b-65e0-4206-a0c4-60cd251dbec9@emailsignatures365.codetwo.com> @ 2026-11-06 12:59 ` Mike Looijmans 2026-11-06 13:37 ` Mark Brown 0 siblings, 1 reply; 5+ messages in thread From: Mike Looijmans @ 2026-11-06 12:59 UTC (permalink / raw) To: linux-kernel; +Cc: Mike Looijmans, Liam Girdwood, Mark Brown This reverts commit c92688cac239 ("regulator: pwm-regulator: Add validity checks in continuous .get_voltage"). The core, and in particular the machine_constraints_voltage() method, expects the regulator to report what the current setting is, even if that is outside the allowed range. The core will then bring the voltage into that range. It cannot do that if the regulator refuses to return its setting, and causes probe() to fail for a pwm-regulator when it has restrictions to the PWM range with messages like: dsp7-pwm: failed to get the current voltage: -ENOTRECOVERABLE pwm-regulator dsp7-supply-pwm: error -ENOTRECOVERABLE: Failed to register regulator pwm-regulator pwm-regulator dsp7-supply-pwm: probe with driver pwm-regulator failed with error -131 Besides that, regulator_get_voltage() is not supposed to return any state information, as is mentioned in the API documentation. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> --- drivers/regulator/pwm-regulator.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c index f50530c77d92f..00fcf9a172b47 100644 --- a/drivers/regulator/pwm-regulator.c +++ b/drivers/regulator/pwm-regulator.c @@ -158,9 +158,6 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) pwm_get_state(drvdata->pwm, &pstate); voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); - if (voltage < min(max_uV_duty, min_uV_duty) || - voltage > max(max_uV_duty, min_uV_duty)) - return -ENOTRECOVERABLE; /* * The dutycycle for min_uV might be greater than the one for max_uV. --- base-commit: f66469d9905b39d2c260a15d7d6db450f4db67c1 branch: linux-master-pwm-regulator -- 2.43.0 Met vriendelijke groet / kind regards, Mike Looijmans System Expert TOPIC Embedded Products B.V. Materiaalweg 4, 5681 RJ Best The Netherlands T: +31 (0) 499 33 69 69 E: mike.looijmans@topic.nl W: www.topic.nl Please consider the environment before printing this e-mail ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] regulator: pwm-regulator: Revert "Add validity checks in continuous .get_voltage" 2026-11-06 12:59 ` [PATCH 2/2] regulator: pwm-regulator: Revert "Add validity checks in continuous .get_voltage" Mike Looijmans @ 2026-11-06 13:37 ` Mark Brown 0 siblings, 0 replies; 5+ messages in thread From: Mark Brown @ 2026-11-06 13:37 UTC (permalink / raw) To: Mike Looijmans, Martin Blumenstingl; +Cc: linux-kernel, Liam Girdwood [-- Attachment #1: Type: text/plain, Size: 2332 bytes --] On Fri, Nov 06, 2026 at 01:59:56PM +0100, Mike Looijmans wrote: > This reverts commit c92688cac239 ("regulator: pwm-regulator: Add validity > checks in continuous .get_voltage"). And again... please don't try to sneak changes past people :/ > The core, and in particular the machine_constraints_voltage() method, > expects the regulator to report what the current setting is, even if that > is outside the allowed range. The core will then bring the voltage into > that range. It cannot do that if the regulator refuses to return its > setting, and causes probe() to fail for a pwm-regulator when it has > restrictions to the PWM range with messages like: > dsp7-pwm: failed to get the current voltage: -ENOTRECOVERABLE > pwm-regulator dsp7-supply-pwm: error -ENOTRECOVERABLE: Failed to register > regulator pwm-regulator > pwm-regulator dsp7-supply-pwm: probe with driver pwm-regulator failed > with error -131 > > Besides that, regulator_get_voltage() is not supposed to return any > state information, as is mentioned in the API documentation. > > Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> > --- > > drivers/regulator/pwm-regulator.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c > index f50530c77d92f..00fcf9a172b47 100644 > --- a/drivers/regulator/pwm-regulator.c > +++ b/drivers/regulator/pwm-regulator.c > @@ -158,9 +158,6 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) > pwm_get_state(drvdata->pwm, &pstate); > > voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); > - if (voltage < min(max_uV_duty, min_uV_duty) || > - voltage > max(max_uV_duty, min_uV_duty)) > - return -ENOTRECOVERABLE; > > /* > * The dutycycle for min_uV might be greater than the one for max_uV. > --- > base-commit: f66469d9905b39d2c260a15d7d6db450f4db67c1 > branch: linux-master-pwm-regulator > > -- > 2.43.0 > > > Met vriendelijke groet / kind regards, > > Mike Looijmans > System Expert > > > TOPIC Embedded Products B.V. > Materiaalweg 4, 5681 RJ Best > The Netherlands > > T: +31 (0) 499 33 69 69 > E: mike.looijmans@topic.nl > W: www.topic.nl > > Please consider the environment before printing this e-mail [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" 2026-11-06 12:59 ` [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" Mike Looijmans [not found] ` <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.6954786b-65e0-4206-a0c4-60cd251dbec9@emailsignatures365.codetwo.com> @ 2026-11-06 13:36 ` Mark Brown 2026-11-06 13:56 ` Mike Looijmans 1 sibling, 1 reply; 5+ messages in thread From: Mark Brown @ 2026-11-06 13:36 UTC (permalink / raw) To: Mike Looijmans, Martin Blumenstingl; +Cc: linux-kernel, Liam Girdwood [-- Attachment #1: Type: text/plain, Size: 2431 bytes --] On Fri, Nov 06, 2026 at 01:59:55PM +0100, Mike Looijmans wrote: > This reverts commit 6a7d11efd691 ("regulator: pwm-regulator: Calculate the > output voltage for disabled PWMs") Adding Martin who wrote that patch - please CC people if you're directly updating their patches. > > A disabled PWM is not the same as "set to 0%". If the PWM is disabled, > this could also mean that its output pin is tristated for example. > > If the PWM range is limited to something else than 0..100% this causes the > probe function to fail with messages like: > dsp7-pwm: failed to get the current voltage: -ENOTRECOVERABLE > pwm-regulator dsp7-supply-pwm: error -ENOTRECOVERABLE: Failed to register regulator pwm-regulator > pwm-regulator dsp7-supply-pwm: probe with driver pwm-regulator failed with error -131 > > The reason is that regulator_register() calls get_voltage(). The PWM is > disabled at this point, and then the validity check triggers. > > Anything that calls get_voltage() while the PWM is disabled would get an > -ENOTRECOVERABLE return value for a pwm-regulator that doesn't allow 0%. > > Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> > --- > > drivers/regulator/pwm-regulator.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c > index 7434b6b22d325..f50530c77d92f 100644 > --- a/drivers/regulator/pwm-regulator.c > +++ b/drivers/regulator/pwm-regulator.c > @@ -157,13 +157,6 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) > > pwm_get_state(drvdata->pwm, &pstate); > > - if (!pstate.enabled) { > - if (pstate.polarity == PWM_POLARITY_INVERSED) > - pstate.duty_cycle = pstate.period; > - else > - pstate.duty_cycle = 0; > - } > - > voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); > if (voltage < min(max_uV_duty, min_uV_duty) || > voltage > max(max_uV_duty, min_uV_duty)) > --- > base-commit: f66469d9905b39d2c260a15d7d6db450f4db67c1 > branch: linux-master-pwm-regulator > > -- > 2.43.0 > > > Met vriendelijke groet / kind regards, > > Mike Looijmans > System Expert > > > TOPIC Embedded Products B.V. > Materiaalweg 4, 5681 RJ Best > The Netherlands > > T: +31 (0) 499 33 69 69 > E: mike.looijmans@topic.nl > W: www.topic.nl > > Please consider the environment before printing this e-mail [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" 2026-11-06 13:36 ` [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" Mark Brown @ 2026-11-06 13:56 ` Mike Looijmans 0 siblings, 0 replies; 5+ messages in thread From: Mike Looijmans @ 2026-11-06 13:56 UTC (permalink / raw) To: Mark Brown, Martin Blumenstingl; +Cc: linux-kernel, Liam Girdwood On 06-11-2026 14:36, Mark Brown wrote: > On Fri, Nov 06, 2026 at 01:59:55PM +0100, Mike Looijmans wrote: >> This reverts commit 6a7d11efd691 ("regulator: pwm-regulator: Calculate the >> output voltage for disabled PWMs") > Adding Martin who wrote that patch - please CC people if you're directly > updating their patches. Sorry, that wasn't intentional. I was just used to get_maintainer.pl and patman "doing the right thing" that I didn't consider checking that. I promise to do better next time. > >> A disabled PWM is not the same as "set to 0%". If the PWM is disabled, >> this could also mean that its output pin is tristated for example. >> >> If the PWM range is limited to something else than 0..100% this causes the >> probe function to fail with messages like: >> dsp7-pwm: failed to get the current voltage: -ENOTRECOVERABLE >> pwm-regulator dsp7-supply-pwm: error -ENOTRECOVERABLE: Failed to register regulator pwm-regulator >> pwm-regulator dsp7-supply-pwm: probe with driver pwm-regulator failed with error -131 >> >> The reason is that regulator_register() calls get_voltage(). The PWM is >> disabled at this point, and then the validity check triggers. >> >> Anything that calls get_voltage() while the PWM is disabled would get an >> -ENOTRECOVERABLE return value for a pwm-regulator that doesn't allow 0%. >> >> Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> >> --- >> >> drivers/regulator/pwm-regulator.c | 7 ------- >> 1 file changed, 7 deletions(-) >> >> diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c >> index 7434b6b22d325..f50530c77d92f 100644 >> --- a/drivers/regulator/pwm-regulator.c >> +++ b/drivers/regulator/pwm-regulator.c >> @@ -157,13 +157,6 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) >> >> pwm_get_state(drvdata->pwm, &pstate); >> >> - if (!pstate.enabled) { >> - if (pstate.polarity == PWM_POLARITY_INVERSED) >> - pstate.duty_cycle = pstate.period; >> - else >> - pstate.duty_cycle = 0; >> - } >> - >> voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); >> if (voltage < min(max_uV_duty, min_uV_duty) || >> voltage > max(max_uV_duty, min_uV_duty)) >> --- >> base-commit: f66469d9905b39d2c260a15d7d6db450f4db67c1 >> branch: linux-master-pwm-regulator >> >> -- >> 2.43.0 >> >> -- Mike Looijmans ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-11-06 13:56 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.44efb263-5265-4fae-9cff-e8eaefbc0afd@emailsignatures365.codetwo.com>
2026-11-06 12:59 ` [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" Mike Looijmans
[not found] ` <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.6954786b-65e0-4206-a0c4-60cd251dbec9@emailsignatures365.codetwo.com>
2026-11-06 12:59 ` [PATCH 2/2] regulator: pwm-regulator: Revert "Add validity checks in continuous .get_voltage" Mike Looijmans
2026-11-06 13:37 ` Mark Brown
2026-11-06 13:36 ` [PATCH 1/2] regulator: pwm-regulator: Revert "Calculate the output voltage for disabled PWMs" Mark Brown
2026-11-06 13:56 ` Mike Looijmans
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®