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

Libin Yang libin.yang at linux.intel.com
Mon Dec 21 09:54:23 CET 2015


On 12/21/2015 04:35 PM, Takashi Iwai wrote:
> 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?

Yes. this is the latest code. It works on my side.

>
>>> 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.

If it is a MST hub:
1. when there are 2 monitors are connected to the port, 2 PCM are 
assigned to each monitor. snd_hda_get_num_devices() will return 1. 
When playing, each PCM will find a converter to use.
2. When there is one monitor is connected to the port, 
snd_hda_get_num_devices() will return 0 and one PCM is assigned.

Anyway, if only one monitor is connected, it should always work, no 
matter with or without the DP MST support.

Could you please tell me you HP laptop type? I will debug on it if I 
can get one.

>
>
> Takashi
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>


More information about the Alsa-devel mailing list