[alsa-devel] [RFC PATCH 5/7] ALSA: hda/hdmi - implement mst_no_extra_pcms flag

Takashi Iwai tiwai at suse.de
Tue Sep 3 07:53:34 CEST 2019


On Mon, 02 Sep 2019 14:52:44 +0200,
Kai Vehmanen wrote:
> 
> Hi Takashi,
> 
> On Thu, 29 Aug 2019, Takashi Iwai wrote:
> 
> > On Thu, 29 Aug 2019 15:53:46 +0200,
> > Kai Vehmanen wrote:
> > >  static int generic_hdmi_build_pcms(struct hda_codec *codec)
> > >  {
> [...]
> > > +	if (codec->mst_no_extra_pcms)
> > > +		pcm_num = spec->num_nids;
> > > +	else
> > > +		pcm_num = spec->num_nids + spec->dev_num - 1;
> >
> > Instead of changing this, we can simply take dev_num=1 like below.
> [...]
> > -	if (is_haswell_plus(codec)) {
> > +	if (codec->mst_no_extra_pcms) {
> > +		/* for SOF/SST, no backup PCM streams can be assigned */
> > +		dev_num = 1; 
> > +		spec->dev_num = 1;
> > +	} else if (is_haswell_plus(codec)) {
> 
> hmm, I think we need to keep dev_num as 3, to create the MST per_pin 
> structs for each port. I.e. we still have the virtual pins, although we 
> limit PCM count to 3. Unless we do this, at least jack detection is broken 
> in DP-MST mode.
> 
> One option would be to set
>    dev_num = 3;
>    spec->dev_num = 1;
> 
> ... spec->dev_num is not really used elsewhere than 
> generic_hdmi_build_pcms(), so this works.
> 
> But, but, this seems quite confusing. So ok if I keep in original form and 
> have separate logic in generic_hdmi_build_pcms()?

Fair enough, let's keep your version as is.


thanks,

Takashi


More information about the Alsa-devel mailing list