Shall we move or cc this discussion on audio driver side to ALSA ML?
Oops I thought I had cc'ed these patches to alsa-devel as well when I
sent them.
I think we also need to decide how to manage PCM devices for DP MST. Now the HD-A driver create a PCM device for each pin, and the
substream
number is 1 for each PCM. Now with DP MST enabled, each pin can
support
multiple streams (e.g. 3 on Intel HSW/BDW/SKL).
There may be 2 options: -#1: Let an HDMI codec specify number of substreams, same as the
number
of device entries on a pin. We can specify 3 for HSW/BDW/SKL. Other vendors can also specify a value according to actual HW capabilities.
So for HSW, we have 3x3 subtreams totally. But we only have 3
convertors
(for 3 display pipelines), so we can open up to 3 substreams at the
same
time. When the audio driver finds all 3 convertors are used when
opening
a new substream, it will fail.
One thing I noticed is the number of devices on a PIN is only updated
when
the MST device is plugged in so normally pins 5,6,7 have 0 devices, and
when
I plug in MST device, I get the 3 devices on port 6. So it seems dynamic enough at this point, though I guess it'll always be 0 or 3.
- #2: Create PCM device dynamically. Only create a PCM devices for a
device
entry which connects to monitor with audio support. When the monitor is removed, the PCM device will be disconnected, closed and removed, similar to the USB case.
Do the driver really need dynamic PCM since display ports are dasiy chained and the locations within the dasiy chain are fixed ?