On Fri, Dec 10, 2021 at 09:53:39AM -0600, Pierre-Louis Bossart wrote: > On 12/10/21 9:10 AM, Shumin Chen wrote: > > +static int es8156_resume(struct snd_soc_component *codec) > > +{ > > + return 0; > es8156_set_bias_level(codec, SND_SOC_BIAS_ON); > for symmetry with suspend? Shouldn't be _ON since we're resuming so there should be no running audio - _STANDBY would be more normal. > > +static int es8156_probe(struct snd_soc_component *codec) > > +{ > > + struct es8156_priv *es8156 = snd_soc_component_get_drvdata(codec); > > + int ret = 0; > > + > > + es8156_codec = codec; > > + > > +#if MCLK > > + es8156->mclk = devm_clk_get(codec->dev, "mclk"); > > + if (PTR_ERR(es8156->mclk) == -EPROBE_DEFER) > > + return -EPROBE_DEFER; > > + ret = clk_prepare_enable(es8156->mclk); > > +#endif > Unclear how MCLK will be enabled in a build, did you mean > es8156->mclk = devm_clk_get_optional(codec->dev, "mclk"); Please also move all resource acquisition to the I2C level probe, that means we don't get the card trying to instantiate repeatedly while the CODEC isn't ready.
Attachment:
signature.asc
Description: PGP signature