All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: dongxuyang@eswincomputing.com
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v14 5/5] clocksource: dw_apb_timer: Use reset array API to handle all resets
Date: Thu, 30 Jul 2026 11:52:28 +0000	[thread overview]
Message-ID: <20260730115229.145411F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260730111628.1990-1-dongxuyang@eswincomputing.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Exclusive acquisition of a shared bus reset blocks other devices on the bus from probing and may inadvertently reset the entire bus.
--

--- Patch [5]: [PATCH v14 5/5] clocksource: dw_apb_timer: Use reset array API to handle all resets ---
commit 66ef3e54cc1daa673ec2f6b658e0a17fb7f358ab
Author: Xuyang Dong <dongxuyang@eswincomputing.com>

clocksource: dw_apb_timer: Use reset array API to handle all resets

This commit updates the timer initialization to fetch and trigger all
reset lines listed in the device tree using the array variant of the
reset API. It intentionally holds exclusive references to these lines
to keep them deasserted while the timer runs.

> diff --git a/drivers/clocksource/dw_apb_timer_of.c b/drivers/clocksource/dw_apb_timer_of.c
> --- a/drivers/clocksource/dw_apb_timer_of.c
> +++ b/drivers/clocksource/dw_apb_timer_of.c
> @@ -29,9 +29,14 @@ static int __init timer_get_base_and_rate(struct device_node *np,
>  
>  	/*
>  	 * Reset the timer if the reset control is available, wiping
> -	 * out the state the firmware may have left it
> +	 * out the state the firmware may have left it.
> +	 * Use the array variant to fetch and trigger all reset lines
> +	 * (e.g., timer and APB interface resets) together, without
> +	 * ordering requirements.
> +	 * The exclusive references are intentionally held to keep the
> +	 * resets deasserted while the timer is running.
>  	 */
> -	rstc = of_reset_control_get(np, NULL);
> +	rstc = of_reset_control_array_get_optional_exclusive(np);

[Severity: High]
If any of these reset lines are shared bus resets, does acquiring them
exclusively lock out other devices that share the same reset line?

The commit message mentions APB interface resets, which are typically shared
across multiple peripherals. If this driver holds a shared reset line
exclusively, subsequent reset_control_get() calls from other drivers sharing
the bus will fail with -EBUSY, preventing them from probing.

Furthermore, unconditionally asserting a shared bus reset here in
timer_get_base_and_rate() might inadvertently reset other peripherals on the
same bus that are already initialized. Does the timer driver need to use a
shared reset API to avoid disrupting other devices on the bus?

>  	if (!IS_ERR(rstc)) {
>  		reset_control_assert(rstc);
>  		reset_control_deassert(rstc);

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260730111425.1680-1-dongxuyang@eswincomputing.com?part=5

      reply	other threads:[~2026-07-30 11:52 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-30 11:14 [PATCH v14 0/5] Update designware pwm driver dongxuyang
2026-07-30 11:15 ` [PATCH v14 1/5] dt-bindings: pwm: dwc: Document optional resets property dongxuyang
2026-07-30 11:15 ` [PATCH v14 2/5] dt-bindings: pwm: dwc: Add eswin compatible dongxuyang
2026-07-30 11:29   ` sashiko-bot
2026-07-30 11:15 ` [PATCH v14 3/5] pwm: dwc: add of/platform support dongxuyang
2026-07-30 11:39   ` sashiko-bot
2026-07-30 11:16 ` [PATCH v14 4/5] dt-bindings: timer: dwc: Update resets property items dongxuyang
2026-07-30 11:16 ` [PATCH v14 5/5] clocksource: dw_apb_timer: Use reset array API to handle all resets dongxuyang
2026-07-30 11:52   ` sashiko-bot [this message]

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=20260730115229.145411F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dongxuyang@eswincomputing.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.