[alsa-devel] [PATCH v3 04/10] ASoC: SOF: Intel: add support for snd-hda-codec-hdmi
Kai Vehmanen
kai.vehmanen at linux.intel.com
Thu Sep 12 14:06:37 CEST 2019
Hey,
On Tue, 10 Sep 2019, Pierre-Louis Bossart wrote:
> > --- a/sound/soc/sof/intel/hda-codec.c
> > +++ b/sound/soc/sof/intel/hda-codec.c
> > @@ -84,6 +84,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int
[...]
> > + /*
> > + * if common HDMI codec driver is not used, codec load
> > + * is skipped here and hdac_hdmi is used instead
> > + */
> > + if ((mach_params && mach_params->common_hdmi_codec_drv) ||
> > + (resp & 0xFFFF0000) != IDISP_VID_INTEL) {
> > hdev->type = HDA_DEV_LEGACY;
> > hda_codec_load_module(&hda_priv->codec);
>
> This part is might be problematic. For SoundWire stuff, I had to move all the
> machine detection part out of hda_init_caps() and at the end of hda_dsp_probe.
> It's not final since I am still trying to figure out what the earliest time I
> can power-up the SoundWire IP is, but it would help if you don't make strong
> assumptions on when mach_params is set. The fact that all this code is
> currently in hda_init_caps() is not really by design, more because of
> incremental code changes.
hmm. Currently the settings part of 'common_hdmi_codec_drv' is in in
init_caps, just before call to hda_codec_probe_bus() (which uses the
flag). There are also other fields set there (like
mach_params->codec_mask), so issues should apply to codec_mask passing as
well. I.e. if functionality is moved out from init_caps, the call to bus
probe should be moved as well.
Other options to pass the flag do not seem good. We don't want to add hw
specific stuff like this to snd_sof_dev or hdac_bus (latter used to pass
"codec_mask"). If this becomes an issue, maybe we just need an explicit
parameter to hda_codec_probe_bus(), and/or move the module parameter
directly to intel/hda-codec.c. Both are a bit ugly, but at least contained
in the "sof/intel/" subfolder.
Br, Kai
More information about the Alsa-devel
mailing list