[alsa-devel] [PATCH v4 0/5] ALSA: hda - hdmi support dynamic pcm assignment

Takashi Iwai tiwai at suse.de
Mon Dec 21 09:35:18 CET 2015


On Mon, 21 Dec 2015 01:51:02 +0100,
Libin Yang wrote:
> 
> Hi Takashi,
> 
> On 12/18/2015 08:05 PM, Takashi Iwai wrote:
> > On Fri, 18 Dec 2015 11:48:49 +0100,
> > Takashi Iwai wrote:
> >>
> >> On Fri, 18 Dec 2015 03:53:32 +0100,
> >> Yang, Libin wrote:
> >>>
> >>> Hi Takashi,
> >>>
> >>>> -----Original Message-----
> >>>> From: Takashi Iwai [mailto:tiwai at suse.de]
> >>>> Sent: Wednesday, December 16, 2015 3:47 PM
> >>>> To: libin.yang at linux.intel.com
> >>>> Cc: alsa-devel at alsa-project.org; Lin, Mengdong; Yang, Libin
> >>>> Subject: Re: [alsa-devel] [PATCH v4 0/5] ALSA: hda - hdmi support
> >>>> dynamic pcm assignment
> >>>>
> >>>> On Wed, 16 Dec 2015 06:42:40 +0100,
> >>>> libin.yang at linux.intel.com wrote:
> >>>>>
> >>>>> From: Libin Yang <libin.yang at linux.intel.com>
> >>>>>
> >>>>> The patches are trying to support dynamically binding PCM to pin
> >>>>> in HDMI/DP audio.
> >>>>>
> >>>>> The pin will not bind to any PCM if there is not monitor connected.
> >>>>> When there is a monitor connected to the port (pin), driver will
> >>>>> try to find a proper PCM to assign to the port and setup the pin
> >>>>> if necessary.
> >>>>>
> >>>>> Libin Yang (5):
> >>>>>    ALSA: hda - hdmi begin to support dynamic PCM assignment
> >>>>>    ALSA: hda - hdmi playback without monitor in dynamic pcm bind
> >>>> mode
> >>>>>    ALSA: hda - hdmi operate spdif based on pcm
> >>>>>    ALSA: hda - hdmi dynamically bind PCM to pin when monitor hotplug
> >>>>>    ALSA: hda - hdmi setup pin when monitor hotplug in pcm dynamic
> >>>>>      assignment mode
> >>>>
> >>>> I updated topic/hda-mst branch with these patches.  But the patch 4
> >>>> needs more fixes, as suggested in another mail.
> >>>>
> >>>> Overall, I'd like to know whether MST audio really works in the
> >>>> current state, or not.  Do you have *any* git branch where MST audio
> >>>> is supposed to work at all?
> >>>
> >>> I have uploaded the patches to: https://github.com/libinyang/linux.git
> >>> Branch is mst_virtual_pin_github.
> >>>
> >>> There is still an issue when doing the mst audio playback:
> >>> The later converter selection for pin will overwrite the previous setting.
> >>> This is the driver bug, I'm debugging it.
> >>
> >> Thanks.  I tried this branch, but the DP MST audio on my HP laptop
> >> dock doesn't seem working.  It gets no notification (maybe expected),
> >> but the accesses to any HDMI devices result in the error.  I tested
> >> via aplay -Dhdmi:0,0 to 0,2.
> >>
> >> With the latest patchset (e.g. my test/hdmi-jack branch) I get the
> >> notification and ELD, but the audio still doesn't come out.  So,
> >> something seems missing.
> >
> > Actually I'm thinking how the MST things are supposed to work here.
> > The machine here has a docking station connected to port D, and it has
> > to DP connectors.  Meanwhile it has a built-in DP port on port C.
> > The latter works fine while dock ports don't.
> 
> I have updated the code last Friday, which fixed a converter setting 
> issue in MST mode. Without the latest code, there is no sound for DP 
> MST audio.
> 
> The port D should be the same with port C for the HW connection.

I tested the latest branch, commit
d6203f02941c72e2737271d98cf382f34295307e
    bug fix
    
    1. converter overwritten
    2. not share the converter

This is the right branch and commit for testing, right?

> > Suppose if I plug two monitors on the docking station.  How would the
> > audio in HD-audio side be set up?
> 
> Not sure how the docking station works. If the docking works as it is 
> a MST hub, there should be sound independently from both ports. But 
> I'm not sure whether the docking is a MST hub or just duplicates 
> context to the other port.

It's supposed to be a MST hub.

> I think we can try to get the device entry number on the pin by 
> calling snd_hda_get_num_devices().
> 
> The steps should be:
> 1. connect 2 monitors to the docking station and boot up the machine.
> 2. If xxx_get_num_devices() returns 0, this means it is not MST mode.
>     If xxx_get_num_devices() returns 1, this means it works as MST hub.

Currently I have only one monitor to test, so I can't check this,
unfortunately.


Takashi


More information about the Alsa-devel mailing list