On Thu, Sep 8, 2022 at 11:03 AM Shengjiu Wang <shengjiu.wang@xxxxxxx> wrote: > > Most function in ak4458_probe() and ak4458_remove() are > duplicate with dai ops, so remove them and move dsd_path > setting to dai ops. > > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx> Reviewed-by: Daniel Baluta <daniel.baluta@xxxxxxx> > --- > sound/soc/codecs/ak4458.c | 53 ++++++--------------------------------- > 1 file changed, 7 insertions(+), 46 deletions(-) > > diff --git a/sound/soc/codecs/ak4458.c b/sound/soc/codecs/ak4458.c > index ea33cc83c86c..b534212096ee 100644 > --- a/sound/soc/codecs/ak4458.c > +++ b/sound/soc/codecs/ak4458.c > @@ -447,6 +447,13 @@ static int ak4458_hw_params(struct snd_pcm_substream *substream, > snd_soc_component_update_bits(component, AK4458_0B_CONTROL7, > AK4458_DCHAIN_MASK, dchn); > > + if (ak4458->drvdata->type == AK4497) { > + ret = snd_soc_component_update_bits(component, AK4458_09_DSD2, > + 0x4, (ak4458->dsd_path << 2)); > + if (ret < 0) > + return ret; > + } > + > ret = ak4458_rstn_control(component, 0); > if (ret) > return ret; > @@ -629,48 +636,6 @@ static void ak4458_reset(struct ak4458_priv *ak4458, bool active) > } > } > > -static int ak4458_init(struct snd_soc_component *component) > -{ > - struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component); > - int ret; > - > - /* External Mute ON */ > - if (ak4458->mute_gpiod) > - gpiod_set_value_cansleep(ak4458->mute_gpiod, 1); > - > - ak4458_reset(ak4458, false); > - > - ret = snd_soc_component_update_bits(component, AK4458_00_CONTROL1, > - 0x80, 0x80); /* ACKS bit = 1; 10000000 */ > - if (ret < 0) > - return ret; > - > - if (ak4458->drvdata->type == AK4497) { > - ret = snd_soc_component_update_bits(component, AK4458_09_DSD2, > - 0x4, (ak4458->dsd_path << 2)); > - if (ret < 0) > - return ret; > - } > - > - return ak4458_rstn_control(component, 1); > -} > - > -static int ak4458_probe(struct snd_soc_component *component) > -{ > - struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component); > - > - ak4458->fs = 48000; > - > - return ak4458_init(component); > -} > - > -static void ak4458_remove(struct snd_soc_component *component) > -{ > - struct ak4458_priv *ak4458 = snd_soc_component_get_drvdata(component); > - > - ak4458_reset(ak4458, true); > -} > - > #ifdef CONFIG_PM > static int __maybe_unused ak4458_runtime_suspend(struct device *dev) > { > @@ -714,8 +679,6 @@ static int __maybe_unused ak4458_runtime_resume(struct device *dev) > #endif /* CONFIG_PM */ > > static const struct snd_soc_component_driver soc_codec_dev_ak4458 = { > - .probe = ak4458_probe, > - .remove = ak4458_remove, > .controls = ak4458_snd_controls, > .num_controls = ARRAY_SIZE(ak4458_snd_controls), > .dapm_widgets = ak4458_dapm_widgets, > @@ -728,8 +691,6 @@ static const struct snd_soc_component_driver soc_codec_dev_ak4458 = { > }; > > static const struct snd_soc_component_driver soc_codec_dev_ak4497 = { > - .probe = ak4458_probe, > - .remove = ak4458_remove, > .controls = ak4497_snd_controls, > .num_controls = ARRAY_SIZE(ak4497_snd_controls), > .dapm_widgets = ak4497_dapm_widgets, > -- > 2.34.1 >