> > int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd) > > struct sof_card_private *ctx = snd_soc_card_get_drvdata(rtd->card); > > struct snd_soc_component *component = asoc_rtd_to_codec(rtd, > 0)->component; > > struct snd_soc_jack *jack; > > - int ret; > > + int ret, extra; > > two lines, and rename to e.g. extra_jack_data > > Will do. > > + if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) { > > + extra = SND_JACK_MICROPHONE | SND_JACK_BTN_0; > > + ret = snd_soc_component_set_jack(component, jack, > &extra); > > I am a bit confused on why this wasn't set for rt5682? > Rt5650's driver needs this parameter to specify whether button detection is required while rt5682's driver does not need it. > > > > +static struct snd_soc_dai_link_component rt5650_components[] = { > > + { > > + .name = "i2c-10EC5650:00", > > + .dai_name = "rt5645-aif1", > > + }, > > + { > > + .name = "i2c-10EC5650:00", > > + .dai_name = "rt5645-aif2", > > + } > > +}; > > can we move these definitions to realtek_common.c, chances are other > boards will also use this codec. Thanks! Rt5650 is a all-in-one codec which supports headphone and speaker output. It's unlikely to be paired with other headphone codec. Suggest keeping it in sof_rt5682.c Regards, Brent