All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Xuyang Dong" <dongxuyang@eswincomputing.com>
To: sashiko-reviews@lists.linux.dev
Cc: ukleinek@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, ben-linux@fluff.org,
	ben.dooks@codethink.co.uk, linux-pwm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	p.zabel@pengutronix.de, daniel.lezcano@kernel.org,
	tglx@kernel.org, ningyu@eswincomputing.com,
	linmin@eswincomputing.com, xuxiang@eswincomputing.com,
	wangguosheng@eswincomputing.com, pinkesh.vaghela@einfochips.com
Subject: Re: Re: [PATCH v14 5/5] clocksource: dw_apb_timer: Use reset array API to handle all resets
Date: Fri, 31 Jul 2026 14:41:27 +0800 (GMT+08:00)	[thread overview]
Message-ID: <53385ccd.8eee.19fb6e808f2.Coremail.dongxuyang@eswincomputing.com> (raw)
In-Reply-To: <20260730115229.145411F000E9@smtp.kernel.org>

> 
> 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?
> 

Hi Sashiko,

These reset lines should be exclusively owned by each timer.

> 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 the resets are exclusive, do you think using the exclusive reset API 
is better?

Best regards,
Xuyang Dong

> >  	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-31  6:41 UTC|newest]

Thread overview: 13+ 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-31  6:41     ` Xuyang Dong
2026-07-31  6:57   ` Krzysztof Kozlowski
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-31  6:41     ` Xuyang Dong
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
2026-07-31  6:41     ` Xuyang Dong [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=53385ccd.8eee.19fb6e808f2.Coremail.dongxuyang@eswincomputing.com \
    --to=dongxuyang@eswincomputing.com \
    --cc=ben-linux@fluff.org \
    --cc=ben.dooks@codethink.co.uk \
    --cc=conor+dt@kernel.org \
    --cc=daniel.lezcano@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linmin@eswincomputing.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=ningyu@eswincomputing.com \
    --cc=p.zabel@pengutronix.de \
    --cc=pinkesh.vaghela@einfochips.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=tglx@kernel.org \
    --cc=ukleinek@kernel.org \
    --cc=wangguosheng@eswincomputing.com \
    --cc=xuxiang@eswincomputing.com \
    /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.