From: Richard Fitzgerald <rf@opensource.cirrus.com>
To: "Martin Povišer" <povik+lin@cutebit.org>,
"James Schulman" <james.schulman@cirrus.com>,
"David Rhodes" <david.rhodes@cirrus.com>,
"Lucas Tanure" <tanureal@opensource.cirrus.com>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>
Cc: Charles Keepax <ckeepax@opensource.cirrus.com>,
ChiYuan Huang <cy_huang@richtek.com>,
Matt Flax <flatmax@flatmax.com>,
Lukas Bulwahn <lukas.bulwahn@gmail.com>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
- <patches@opensource.cirrus.com>, <alsa-devel@alsa-project.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<asahi@lists.linux.dev>
Subject: Re: [PATCH v2 04/11] ASoC: cs42l42: Split probe() and remove() into stages
Date: Thu, 15 Sep 2022 13:20:22 +0100 [thread overview]
Message-ID: <2839a437-a57a-ffc4-da8e-dde9a9a9a5cc@opensource.cirrus.com> (raw)
In-Reply-To: <20220915094444.11434-5-povik+lin@cutebit.org>
On 15/09/2022 10:44, Martin Povišer wrote:
> From: Richard Fitzgerald <rf@opensource.cirrus.com>
>
> To prepare for adding SoundWire the probe must be split into three
> parts:
>
> 1) The bus-specific probe
> 2) Common bus-agnostic probe steps
> 3) Initialization of the peripheral registers
>
> Step (3) must be separate because on SoundWire devices the probe must
> enable power supplies and release reset so that the peripheral can be
> enumerated by the bus, but it isn't possible to access registers until
> enumeration has completed.
>
> The call to devm_snd_soc_register_component() must be done at stage (2)
> so that it can EPROBE_DEFER if necessary. In SoundWire systems stage (3)
> is not a probe event so a deferral at this stage would not result in
> re-probing dependencies.
>
> A new init_done flag indicates that the chip has been identified and
> initialized. This is used to prevent cs42l42_remove(), cs42l42_suspend(),
> cs42l42_restore() and cs42l42_irq_thread() from attempting register
> accesses if the chip was not successfully initialized. Although this
> cannot happen on I2C, because the entire probe would fail, it is
> possible on SoundWire if probe succeeds but the cs42l42 is never
> enumerated.
>
> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
> Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
> ---
> sound/soc/codecs/cs42l42.c | 127 +++++++++++++++++++++++++------------
> sound/soc/codecs/cs42l42.h | 2 +
> 2 files changed, 87 insertions(+), 42 deletions(-)
>
> diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c
> index 11cb659f03e0..427b29db2252 100644
> --- a/sound/soc/codecs/cs42l42.c
> +++ b/sound/soc/codecs/cs42l42.c
> @@ -1627,7 +1627,7 @@ static irqreturn_t cs42l42_irq_thread(int irq, void *data)
> int report = 0;
>
> mutex_lock(&cs42l42->irq_lock);
> - if (cs42l42->suspended) {
> + if (cs42l42->suspended || !cs42l42->init_done) {
> mutex_unlock(&cs42l42->irq_lock);
> return IRQ_NONE;
> }
This doesn't apply to broonie/for-next. Needs rebasing onto commit:
ea75deef1a73 ("ASoC: cs42l42: Only report button state if there was a
button interrupt")
next prev parent reply other threads:[~2022-09-15 12:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-15 9:44 [PATCH v2 00/11] Support for CS42L83 on Apple machines Martin Povišer
2022-09-15 9:44 ` [PATCH v2 01/11] ASoC: dt-bindings: cs42l42: Add 'cs42l83' compatible Martin Povišer
2022-09-15 9:44 ` [PATCH v2 02/11] ASoC: cs42l42: Add bitclock frequency argument to cs42l42_pll_config() Martin Povišer
2022-09-15 9:44 ` [PATCH v2 03/11] ASoC: cs42l42: Use cs42l42->dev instead of &i2c_client->dev Martin Povišer
2022-09-15 9:44 ` [PATCH v2 04/11] ASoC: cs42l42: Split probe() and remove() into stages Martin Povišer
2022-09-15 12:20 ` Richard Fitzgerald [this message]
2022-09-15 13:45 ` Martin Povišer
2022-09-15 9:44 ` [PATCH v2 05/11] ASoC: cs42l42: Split cs42l42_resume into two functions Martin Povišer
2022-09-15 9:44 ` [PATCH v2 06/11] ASoC: cs42l42: Pass component and dai defs into common probe Martin Povišer
2022-09-15 9:44 ` [PATCH v2 07/11] ASoC: cs42l42: Split I2C identity into separate module Martin Povišer
2022-09-15 9:44 ` [PATCH v2 08/11] ASoC: cs42l42: Export regmap elements to core namespace Martin Povišer
2022-09-15 9:44 ` [PATCH v2 09/11] ASoC: cs42l83: Extend CS42L42 support to new part Martin Povišer
2022-09-15 9:44 ` [PATCH v2 10/11] ASoC: cs42l42: Implement 'set_bclk_ratio' Martin Povišer
2022-09-15 9:44 ` [PATCH v2 11/11] ASoC: cs42l42: Switch to dev_err_probe() helper Martin Povišer
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=2839a437-a57a-ffc4-da8e-dde9a9a9a5cc@opensource.cirrus.com \
--to=rf@opensource.cirrus.com \
--cc=alsa-devel@alsa-project.org \
--cc=asahi@lists.linux.dev \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=cy_huang@richtek.com \
--cc=david.rhodes@cirrus.com \
--cc=devicetree@vger.kernel.org \
--cc=flatmax@flatmax.com \
--cc=james.schulman@cirrus.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas.bulwahn@gmail.com \
--cc=patches@opensource.cirrus.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=povik+lin@cutebit.org \
--cc=robh+dt@kernel.org \
--cc=tanureal@opensource.cirrus.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
all inboxes | Powered by JetHome®