Thread (18 messages) flat view 18 messages, 4 authors, 26d ago

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

From: Andy Shevchenko <hidden>
Date: 2026-08-19 18:54:48
Also in: linux-iio, lkml

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:
quoted
On Tue, Aug 18, 2026 at 06:10:51PM +0200, Javier Carrasco wrote:
quoted
On Tue Aug 18, 2026 at 4:01 PM CEST, Andy Shevchenko wrote:
...
quoted
quoted
quoted
quoted
+	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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help