Thanks Kai, see inline - On 11/29/19 8:07 PM, Kai Vehmanen wrote: > Commit 5398e94fb753 ("ALSA: hda - Add DP-MST support for NVIDIA codecs") > introduced a slight change of behaviour how non-MST monitors are > assigned to PCMs on Intel platforms. > > In the drm_audio_component.h interface, the third parameter > to pin_eld_notify() is pipe number. On Intel platforms, this value > is -1 for MST. On other platforms, a non-zero pipe id is used to > signal MST use. Do you mean "on Intel platforms, this value is -1 for non-MST"? I am looking into functions intel_audio_codec_enable/intel_audio_codec_disable, they sets pipe = -1 for non-MST cases, right? > This difference leads to some subtle differences in hdmi_find_pcm_slot() > with regards to how non-MST monitors are assigned to PCMs. > This patch restores the original behaviour on Intel platforms while > keeping the new allocation policy on other platforms. What exact change commit 5398e94fb753 ("ALSA: hda - Add DP-MST support for NVIDIA codecs") made in behaviour on Intel platform? Sorry, it is not clear to me from your reply on this thread. For non-MST monitors, pipe = -1 is getting passed to intel_pin_eld_notify(). check_presence_and_report -> pin_id_to_pin_index changes value of dev_id from -1 to 0, comment there says "(dev_id == -1) means it is NON-MST pin return the first virtual pin on this port". If this is the case, non-MST monitor should get PCM of index 'pin_nid_idx' like it was happening before commit 5398e94fb753. Isn't it? Thanks, Nikhil Mahale > Signed-off-by: Kai Vehmanen <kai.vehmanen@xxxxxxxxxxxxxxx> > --- > sound/pci/hda/patch_hdmi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c > index c3940c197122..1dd4c92254a4 100644 > --- a/sound/pci/hda/patch_hdmi.c > +++ b/sound/pci/hda/patch_hdmi.c > @@ -1353,6 +1353,11 @@ static int hdmi_find_pcm_slot(struct hdmi_spec *spec, > i = spec->num_nids + (per_pin->dev_id - 1); > if (i < spec->pcm_used && !(test_bit(i, &spec->pcm_bitmap))) > return i; > + > + /* keep legacy assignment for dev_id>0 on Intel platforms */ > + if (spec->intel_hsw_fixup) > + if (!test_bit(per_pin->pin_nid_idx, &spec->pcm_bitmap)) > + return per_pin->pin_nid_idx; > } > > /* have a second try; check the area over num_nids */ > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel