On Tue, 08 Dec 2015 11:20:59 +0100, Vinod Koul wrote:
On Tue, Dec 08, 2015 at 09:42:09AM +0100, Takashi Iwai wrote:
Okay got it now, that is how my 3 limit for MST is coming from as we have 3 CVTs so we can actually stream to only 3 devices per port although someone may theoretically connect 64!
Though, the max number of converters is limited, thus what you can actually use is defined by this constraint. Due to this, we'll likely manage MST for the legacy HDA by assigning MST devs dynamically to pins in a certain procedure to make things compatible.
but how many MST devs are you going to create?
This is exactly the point: for the legacy HDA, instead of creating the entry for each MST devices, they are assigned dynamically to PCM at activation. So the number of devices exposed to user-space is limited -- or better to say, user-space won't notice the difference.
And how many PCMs are you proposing for MST?
5 for Intel, i.e. Nconv * 2 - 1. This could be even Nconv, but we provide the reserved slots just for the compatible behavior that assumes the static pin/slot assignment.
> Back on present :), what do you recommend for us for jack name.
Depends on your purpose. If you want to keep it compatible, then use the compatible string.
Since compatible string would mean specfying PCM, which we don;t know and is per machine driver dailink defination, we would go ahead with logical "HDMI/DP, Pin=%d Jack" names.
But then it makes little sense. Multiple MST devices can be on the same pin.
Well am not supporting MST at the moment. How is legacy handling this, how do you report jack for 64 X 3 devices :)
Or, are you reporting jack for PCMs based on connection to pin/device, I think latter.
Yes, the jack reporting is for PCM in this case, which is I mentioned in the first reply: it's not about pin but PCM.
But then you would hit limit of PCMs, I assume you maybe doing 9 PCMs for this, so if someone connects 10th device we won't report it's jack?
The jack reporting is done actually at the time the audio is enabled/disabled. And at this moment, the PCM assignment is assured as well. So, to user-space, only the actually usable devices are exposed no matter how many devices are plugged.
Yes that was my thinking based on discussion and patches posted by Libin. But one more question who does PCM assignment, looking at patches it seems driver and no way to change that..
For example I have 10 devices connected and we have 5 PCMs. I would like to route to 7th device, how would that be done?
Manage xrandr to enable the target monitor. Then one PCM stream will be switched to the corresponding audio, and it'll be notified to user-space.
Takashi