From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Richard Fitzgerald <rf@opensource.cirrus.com>,
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
<broonie@kernel.org>, <lee@kernel.org>, <robh+dt@kernel.org>,
<krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>,
<tglx@linutronix.de>, <maz@kernel.org>,
<linus.walleij@linaro.org>, <vkoul@kernel.org>,
<lgirdwood@gmail.com>, <yung-chuan.liao@linux.intel.com>,
<sanyog.r.kale@intel.com>, <alsa-devel@alsa-project.org>,
<patches@opensource.cirrus.com>, <devicetree@vger.kernel.org>,
<linux-gpio@vger.kernel.org>, <linux-spi@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 06/10] mfd: cs42l43: Add support for cs42l43 core driver
Date: Fri, 19 May 2023 09:24:25 +0000 [thread overview]
Message-ID: <20230519092425.GA68926@ediswmail.ad.cirrus.com> (raw)
In-Reply-To: <3fd73def-4765-d43c-4c2c-e0fb0e2e0516@linux.intel.com>
On Thu, May 18, 2023 at 11:47:12AM -0500, Pierre-Louis Bossart wrote:
> On 5/18/23 11:15, Richard Fitzgerald wrote:
> > On 18/05/2023 16:16, Pierre-Louis Bossart wrote:
> >>>>> + ret = devm_mfd_add_devices(cs42l43->dev, PLATFORM_DEVID_NONE,
> >>>>> + cs42l43_devs, ARRAY_SIZE(cs42l43_devs),
> >>>>
> >>>> I don't why adding devices is not in probe. They use the same regmap
> >>>> right? So there will be no problem in probing them from MFD probe.
> >>>
> >>> Well except SoundWire is a bit of a special boy, the hardware is
> >>> not necessarily available in probe, the hardware is only available
> >>> at some point later when the device attaches. Doing it this way all
> >>> of the attaching (and various detach/attach cycles the device needs
> >>> during configuration) are over by the time the child drivers bind, so
> >>> they don't all need special code to handle that.
> >>
> >> if the devices are added in the probe, then the regmap needs to be moved
> >> to cache-only and another special API would be needed to tell the MFD
> >> framework to turn the regmap cache-only off.
> >>
> >> But if it's the same regmap, the regmap cache is handled in the
> >> SoundWire update_status callback so maybe Krzysztof's proposal does
> >> work?
> >
> > But you still can't access the hardware in probe(). So you'd have all
> > the child drivers probing but not able to talk to the hardware. The
> > child drivers would have to hook into the update_status() somehow so
> > they know when the peripheral has enumerated.
> > It's simpler to add them after the hardware has enumerated - they will
> > be able to access the hardware in their probe().
>
> It depends on what you mean by 'access the hardware'. If the only
> interface is regmap and regmap is in cache-only, then the child drivers
> could "access the hardware" without anything happening until after
> regmap is no longer cache-only.
>
> But yeah, I realize it's a long shot.
Yeah, its never just the regmap. Take the sound driver for example,
when the sound driver binds all the components will be inplace
and a soundcard will be created. This means the user could then
start an audio stream before any hardware is actually available,
various bits of the audio bring up rely on timing or reading state
so won't work in cache-only. Yeah you could add work arounds for
these problems as they arise, but you will end up with a lot of them.
I would flip this around and ask, what is the problem with adding
the child devices once the device has completed initialisation?
As far as I can see it looks like a choice between moving one
function call with no obvious downside, against loads lines of
various work arounds in each of the child drivers for whatever
subsystem specific problems are caused by the device not actually
being available.
Thanks,
Charles
next prev parent reply other threads:[~2023-05-19 9:24 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 12:28 [PATCH 00/10] Add cs42l43 PC focused SoundWire CODEC Charles Keepax
2023-05-12 12:28 ` [PATCH 01/10] soundwire: bus: Allow SoundWire peripherals to register IRQ handlers Charles Keepax
2023-05-12 13:45 ` Pierre-Louis Bossart
2023-05-12 16:02 ` Charles Keepax
2023-05-12 16:34 ` Pierre-Louis Bossart
2023-05-12 16:43 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 02/10] ASoC: soc-component: Add notify control helper function Charles Keepax
2023-05-12 12:28 ` [PATCH 03/10] ASoC: ak4118: Update to use new component control notify helper Charles Keepax
2023-05-12 13:48 ` Pierre-Louis Bossart
2023-05-12 15:42 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 04/10] ASoC: wm_adsp: Update to use new component control notify helepr Charles Keepax
2023-05-12 12:28 ` [PATCH 05/10] dt-bindings: mfd: cirrus,cs42l43: Add initial DT binding Charles Keepax
2023-05-12 15:23 ` Krzysztof Kozlowski
2023-05-12 16:15 ` Charles Keepax
2023-05-13 18:05 ` Krzysztof Kozlowski
2023-05-12 15:25 ` Krzysztof Kozlowski
2023-05-12 16:18 ` Charles Keepax
2023-05-13 18:08 ` Krzysztof Kozlowski
2023-05-15 10:02 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 06/10] mfd: cs42l43: Add support for cs42l43 core driver Charles Keepax
2023-05-12 14:52 ` Pierre-Louis Bossart
2023-05-18 10:05 ` Charles Keepax
2023-05-12 15:16 ` Krzysztof Kozlowski
2023-05-18 10:24 ` Charles Keepax
2023-05-18 15:16 ` Pierre-Louis Bossart
2023-05-18 16:15 ` Richard Fitzgerald
2023-05-18 16:47 ` Pierre-Louis Bossart
2023-05-19 9:24 ` Charles Keepax [this message]
2023-05-12 12:28 ` [PATCH 07/10] irqchip/cs42l43: Add support for the cs42l43 IRQs Charles Keepax
2023-05-12 15:10 ` Marc Zyngier
2023-05-12 15:39 ` Charles Keepax
2023-05-12 16:07 ` Marc Zyngier
2023-05-12 16:42 ` Charles Keepax
2023-05-15 1:08 ` Mark Brown
2023-05-15 9:57 ` Charles Keepax
2023-05-16 10:07 ` Lee Jones
2023-05-15 11:25 ` Lee Jones
2023-05-16 8:51 ` Marc Zyngier
2023-05-16 10:09 ` Lee Jones
2023-05-16 10:23 ` Marc Zyngier
2023-05-16 10:41 ` Charles Keepax
2023-05-12 15:27 ` Krzysztof Kozlowski
2023-05-12 12:28 ` [PATCH 08/10] pinctrl: cs42l43: Add support for the cs42l43 Charles Keepax
2023-05-12 15:30 ` Krzysztof Kozlowski
2023-05-12 15:54 ` Charles Keepax
2023-05-13 18:00 ` Krzysztof Kozlowski
2023-05-12 19:19 ` andy.shevchenko
2023-05-15 10:13 ` Charles Keepax
2023-05-16 19:03 ` Andy Shevchenko
2023-05-17 10:13 ` Charles Keepax
2023-05-17 13:59 ` Andy Shevchenko
2023-05-17 14:11 ` Pierre-Louis Bossart
2023-05-17 14:30 ` Mark Brown
2023-05-12 12:28 ` [PATCH 09/10] spi: cs42l43: Add SPI controller support Charles Keepax
2023-05-12 19:03 ` andy.shevchenko
2023-05-12 12:28 ` [PATCH 10/10] ASoC: cs42l43: Add support for the cs42l43 Charles Keepax
2023-05-15 15:21 ` (subset) [PATCH 00/10] Add cs42l43 PC focused SoundWire CODEC Mark Brown
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=20230519092425.GA68926@ediswmail.ad.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=maz@kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=rf@opensource.cirrus.com \
--cc=robh+dt@kernel.org \
--cc=sanyog.r.kale@intel.com \
--cc=tglx@linutronix.de \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).