All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Chen-Yu Tsai" <wenst@chromium.org>
Cc: conor+dt@kernel.org, linux-input@vger.kernel.org,
	devicetree@vger.kernel.org, dmitry.torokhov@gmail.com,
	robh@kernel.org
Subject: Re: [PATCH v3 3/9] Input: elan_i2c - Wait for initialization after enabling regulator supply
Date: Tue, 21 Jul 2026 08:07:16 +0000	[thread overview]
Message-ID: <20260721080717.59FD41F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260721075226.2347933-4-wenst@chromium.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] `regulator_enable_and_wait` sleeps for the specified duration while holding the WW mutexes for the regulator and all of its suppliers, degrading system concurrency.
--

--- Patch [3]: [PATCH v3 3/9] Input: elan_i2c - Wait for initialization after enabling regulator supply ---
commit 3e5bcc07a47c73771197519603fee461c8ac8685
Author: Chen-Yu Tsai <wenst@chromium.org>

Input: elan_i2c - Wait for initialization after enabling regulator supply

This commit switches the Elan trackpad driver to use the new
regulator_enable_and_wait() API. This ensures the required hardware and
firmware initialization delays are respected after the trackpad regulator
is enabled during probe and resume.

Link: https://lore.kernel.org/all/20241001093815.2481899-1-wenst@chromium.org/

> diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
> index 9f024a435dbf1..77885930bf9e6 100644
> --- a/drivers/input/mouse/elan_i2c_core.c
> +++ b/drivers/input/mouse/elan_i2c_core.c
[ ... ]
> @@ -1250,7 +1253,7 @@ static int elan_probe(struct i2c_client *client)
>  	if (IS_ERR(data->vcc))
>  		return dev_err_probe(dev, PTR_ERR(data->vcc), "Failed to get 'vcc' regulator\n");
>  
> -	error = regulator_enable(data->vcc);
> +	error = regulator_enable_and_wait(data->vcc, ETP_POWER_ON_DELAY_US);

[Severity: High]
Will using regulator_enable_and_wait() here cause a 110ms sleep while holding
the regulator's WW mutexes?

Looking at _regulator_enable_and_wait() in drivers/regulator/core.c, the sleep
happens while the dependent locks for the regulator and all of its suppliers
are still held:

drivers/regulator/core.c:_regulator_enable_and_wait() {
    ...
    if (wait_us) {
        ktime_t end = ktime_add_us(rdev->last_on, wait_us);
        s64 remaining = ktime_us_delta(end, ktime_get_boottime());

        if (remaining > 0)
            fsleep(remaining);
    }
    ...
}

Could this serialize all operations on the shared PMIC/supply during probe
and resume? 

If multiple consumers share a parent supply, wouldn't they block on the
parent's mutex and execute sequentially, potentially causing boot and resume
time regressions?

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260721075226.2347933-1-wenst@chromium.org?part=3

  reply	other threads:[~2026-07-21  8:07 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-21  7:52 [PATCH v3 0/9] arm64: mediatek: Chromebook trackpad supply fixes Chen-Yu Tsai
2026-07-21  7:52 ` [PATCH v3 1/9] regulator: core: Add "enable and wait" functions Chen-Yu Tsai
2026-07-21  8:08   ` sashiko-bot
2026-07-21  8:22     ` Chen-Yu Tsai
2026-07-21  9:54   ` Andy Shevchenko
2026-07-22  9:06     ` Chen-Yu Tsai
2026-07-21  7:52 ` [PATCH v3 2/9] Input: elan_i2c - sort include statements Chen-Yu Tsai
2026-07-21 10:20   ` Andy Shevchenko
2026-07-21  7:52 ` [PATCH v3 3/9] Input: elan_i2c - Wait for initialization after enabling regulator supply Chen-Yu Tsai
2026-07-21  8:07   ` sashiko-bot [this message]
2026-07-21  7:52 ` [PATCH v3 4/9] HID: i2c-hid-of: skip post-power-on delay if powered on sufficiently long Chen-Yu Tsai
2026-07-21  8:06   ` sashiko-bot
2026-07-21  7:52 ` [PATCH v3 5/9] i2c: of-prober: " Chen-Yu Tsai
2026-07-21  7:52 ` [PATCH v3 6/9] i2c: of-prober: Defer regulator_disable() on successful probe in simple helper Chen-Yu Tsai
2026-07-21  8:06   ` sashiko-bot
2026-07-21 10:24   ` Andy Shevchenko
2026-07-22  8:34     ` Chen-Yu Tsai
2026-07-21  7:52 ` [PATCH v3 7/9] platform/chrome: of_hw_prober: Add delay for hana trackpads Chen-Yu Tsai
2026-07-21 10:27   ` Andy Shevchenko
2026-07-22  3:33     ` Chen-Yu Tsai
2026-07-21  7:52 ` [PATCH v3 8/9] arm64: dts: mediatek: mt8173-elm-hana: Unmark trackpad supply as always-on Chen-Yu Tsai
2026-07-21  7:52 ` [PATCH v3 9/9] arm64: dts: mediatek: mt8192-asurada-spherion: Add Synaptics trackpad's supply Chen-Yu Tsai

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=20260721080717.59FD41F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=wenst@chromium.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.