public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@kernel.org>
To: Jerome Brunet <jbrunet@baylibre.com>
Cc: Neil Armstrong <neil.armstrong@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Jan Dakinevich <jan.dakinevich@salutedevices.com>,
	linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org,
	linux-clk@vger.kernel.org
Subject: Re: [RFC PATCH 8/9] clk: meson: add auxiliary reset helper driver
Date: Tue, 02 Jul 2024 11:58:40 -0700	[thread overview]
Message-ID: <217a785212d7c1a5b504c6040b3636e6.sboyd@kernel.org> (raw)
In-Reply-To: <1jikyhp0pc.fsf@starbuckisacylon.baylibre.com>

Quoting Jerome Brunet (2024-06-10 03:10:55)
> On Wed 29 May 2024 at 18:01, Stephen Boyd <sboyd@kernel.org> wrote:
> 
> >
> > I'd prefer we move the device creation and registration logic to
> > drivers/reset as well. See commit 098c290a490d ("clock, reset:
> > microchip: move all mpfs reset code to the reset subsystem") for some
> > inspiration.
> 
> Ok but if it lives in reset I don't really get the purpose served by the
> auxiliary devices in that case. Why not export a function that directly
> calls reset_controller_register() in that case ? 
> 
> I thought the point was to properly decouple both sides.

Yes.

We use auxiliary devices so that the clk and reset drivers are
decoupled. Calling reset_controller_register() directly must return
success, whereas creating a device _should_ only fail if the device
couldn't be created/registered. It's less likely to fail with an
auxiliary device. This also allows the clk driver to be a module and the
reset driver builtin if, for example, the reset framework doesn't
support modules. Another benefit would be moving the probe context to
another thread if it can be async.

> 
> I don't have strong opinion about it, TBH. It is just how it made sense
> to me. If you are sure about this, I don't mind changing

It seems better to put the device creation in the same file as the
driver so that it's further decoupled from the clk driver and
consolidated in the reset directory. This way, a single API is the only
thing the clk driver uses to create the reset device, instead of putting
the matching string for the device and driver in the clk and reset
drivers and having to know that the auxiliary bus is used.

The downside I see is that the clk driver can't be builtin if the reset
driver is a module. I'm not sure that's really a problem though. If it
is then we can make the registration API into another C file that still
lives in drivers/reset that has another kconfig symbol.

> 
> >
> > One thing I haven't really thought about too much is if they're two
> > different modules. One for clk and one for reset. If the device
> > registration API is a symbol the clk module depends on then maybe that
> > is better because it means both modules are loaded, avoiding a
> > round-trip through modprobe. It also makes sure that the drivers are
> > either both builtin or both modular.
> 
> I have checked with the current implementation, if the reset driver is
> missing, the clock part does not fail. Registering the aux device
> succeeds in clock but the device never comes up (duh). So it does
> not crash, the consumers of the aux reset device will just defer.
> 
> Said differently, the '#if IS_ENABLED(CONFIG_RESET_CONTROLLER)' in
> clk-mpfs.c was not necessary ... it was removed in the changed you
> linked anyway.
> 

Cool.

  reply	other threads:[~2024-07-02 18:58 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-16 15:08 [RFC PATCH 0/9] reset: amlogic: move reset drivers out of CCF Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 1/9] reset: amlogic: convert driver to regmap Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 2/9] reset: amlogic: add driver parameters Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 3/9] reset: amlogic: split the device and platform probe Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 4/9] reset: amlogic: use reset number instead of register count Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 5/9] reset: amlogic: add reset status support Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 6/9] reset: amlogic: add toggle reset support Jerome Brunet
2024-05-16 15:08 ` [RFC PATCH 7/9] reset: amlogic: add auxiliary reset driver support Jerome Brunet
2024-05-18  1:28   ` Jan Dakinevich
2024-05-16 15:08 ` [RFC PATCH 8/9] clk: meson: add auxiliary reset helper driver Jerome Brunet
2024-05-30  1:01   ` Stephen Boyd
2024-06-10 10:10     ` Jerome Brunet
2024-07-02 18:58       ` Stephen Boyd [this message]
2024-05-16 15:08 ` [RFC PATCH 9/9] clk: amlogic: axg-audio: use the auxiliary reset driver Jerome Brunet
2024-05-18  1:33   ` Jan Dakinevich
2024-05-18  1:43 ` [RFC PATCH 0/9] reset: amlogic: move reset drivers out of CCF Jan Dakinevich
2024-06-24 13:48 ` Jan Dakinevich
2024-06-27  7:37   ` Jerome Brunet

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=217a785212d7c1a5b504c6040b3636e6.sboyd@kernel.org \
    --to=sboyd@kernel.org \
    --cc=jan.dakinevich@salutedevices.com \
    --cc=jbrunet@baylibre.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=p.zabel@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox