From: "Javier Carrasco" <javier.carrasco.cruz@gmail.com>
To: "Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Javier Carrasco" <javier.carrasco.cruz@gmail.com>
Cc: "Jonathan Cameron" <jic23@kernel.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 4/4] iio: light: veml6031x00: add support for events and trigger
Date: Wed, 19 Aug 2026 20:33:30 +0200 [thread overview]
Message-ID: <DKT4WS5CVP2V.2FWDOOOHIL3XS@gmail.com> (raw)
In-Reply-To: <aoU0JSmv7FWGW_Ms@ashevche-desk.local>
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.
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.
Nevertheless, I conducted a small experiment to make sure that theory
and praxis match, setting the device to always on and checking what
happens:
# NOTE: These are the first operations on the DUT after booting.
Always on:
$ echo on > /sys/bus/i2c/devices/1-0029/power/control
$ cat /sys/bus/i2c/devices/1-0029/power/control
on
# Low value, so I can easily trigger a rising event with more light:
$ echo 300 > /sys/bus/iio/devices/iio:device0/events/in_illuminance_thresh_rising_value
$ cat /sys/bus/iio/devices/iio:device0/events/in_illuminance_thresh_rising_value
300
# Enable threshold event:
$ echo 1 > /sys/bus/iio/devices/iio:device0/events/in_illuminance_thresh_either_en
# Monitor events:
$ iio_event_monitor /dev/iio:device0
# Good morning! Increment light to trigger the event.
# I instrumented the code to log the value:
[ 222.644966] veml6031x00 1-0029: pm_runtime_get_if_active() = 1
# The event:
Event: time: 1773416327710140541, type: illuminance, channel: 0, evtype: thresh, direction: rising
^C
# The configuration is still the one we wanted to test:
$ cat /sys/bus/i2c/devices/1-0029/power/runtime_status
active
cat /sys/bus/i2c/devices/1-0029/power/control
on
[1] https://kernel.org/doc/html/latest/driver-api/pm/devices.html#sys-devices-power-control-files
Best regards,
Javier
next prev parent reply other threads:[~2026-08-19 18:33 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 11:34 [PATCH v7 0/4] iio: light: add support for veml6031x00 ALS series Javier Carrasco
2026-08-18 11:34 ` [PATCH v7 1/4] dt-bindings: iio: light: veml6030: add " Javier Carrasco
2026-08-18 11:34 ` [PATCH v7 2/4] iio: light: add support for " Javier Carrasco
2026-08-18 13:30 ` Andy Shevchenko
2026-08-18 11:34 ` [PATCH v7 3/4] iio: light: veml6031x00: add support for triggered buffers Javier Carrasco
2026-08-18 11:56 ` sashiko-bot
2026-08-18 13:32 ` Andy Shevchenko
2026-08-18 11:34 ` [PATCH v7 4/4] iio: light: veml6031x00: add support for events and trigger Javier Carrasco
2026-08-18 11:51 ` sashiko-bot
2026-08-18 14:01 ` Andy Shevchenko
2026-08-18 16:10 ` Javier Carrasco
2026-08-19 4:42 ` Andy Shevchenko
2026-08-19 18:33 ` Javier Carrasco [this message]
2026-08-19 18:54 ` Andy Shevchenko
2026-08-19 19:41 ` Javier Carrasco
2026-08-18 14:02 ` [PATCH v7 0/4] iio: light: add support for veml6031x00 ALS series Andy Shevchenko
2026-08-19 1:04 ` Jonathan Cameron
2026-08-19 18:39 ` Javier Carrasco
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DKT4WS5CVP2V.2FWDOOOHIL3XS@gmail.com \
--to=javier.carrasco.cruz@gmail.com \
--cc=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.