Re: [PATCH v7 4/4] iio: light: veml6031x00: add support for events and trigger

From: Andy Shevchenko

Date: Wed Aug 19 2026 - 14:55:00 EST


On Wed, Aug 19, 2026 at 08:33:30PM +0200, Javier Carrasco wrote:
> On Wed Aug 19, 2026 at 6:42 AM CEST, Andy Shevchenko wrote:
> > On Tue, Aug 18, 2026 at 06:10:51PM +0200, Javier Carrasco wrote:
> >> On Tue Aug 18, 2026 at 4:01 PM CEST, Andy Shevchenko wrote:

...

> >> >> + ret = pm_runtime_get_if_active(dev);
> >> >> + if (ret <= 0)
> >> >
> >> > < 0 seems too much to me. If there is disabled runtime PM (and supposedly
> >> > device is always on) this prevents from getting events.
> >>
> >> I am not sure if I get this. A reference is unconditionally acquired
> >> when events are enabled as well as in buffer_preenable, and also in the
> >> probe before interrupts are enabled. Runtime PM should be active at this
> >> point. If not, the interrupt should not come from the device, even if it
> >> was on (e.g. before autosuspend kicks in). But maybe I am missing
> >> something?
> >
> > The device maybe in these states here:
> > - powered off (by runtime PM) ret == 0
> > - powered on (by some previous activity) ret > 0
> > - always on (PM is disabled by user space, for example) ret < 0
> >
> > Are you telling that the third case is impossible? (Note that autosuspend in
> > this case is irrelevant.)
>
> I followed the execution paths and the third case seems to be impossible.

Thanks for checking this!

> Setting power/control to "on" calls pm_runtime_forbid()[1], which sets
> runtime_auto to false and increments the usage counter. Note that it does
> not update disable_depth, which is the variable that pm_runtime_disable()
> updates and what pm_runtime_get_if_active() checks to return -EINVAL if
> runtime PM is disabled. Therefore, pm_runtime_get_if_active() should
> return a positive value under this configuration.

Would it be possible to have negative value at all from
pm_runtime_get_if_active() here?

--
With Best Regards,
Andy Shevchenko