Hi Takashi and all,
We are planning to enable DP1.2 MST (Multi-Stream Transport) audio.
Based on the previous discussion, we will extend the struct hdmi_spec_per_pin to support MST audio device entry. So the struct hdmi_spec_per_pin can be a real pin or a device entry in the pin. The idea is to add a member dev_idx in the struct hdmi_spec_per_pin. Dev_idx, together with pin_nid, can represent a device entry.
1. Dynamic PCM assignment We will use dynamic PCM assignment for MST audio. This means we will create a fixed number of PCMs (the number is the same convertor number). All the created PCMs will not be assigned to any pin (device entry). When there is a monitor connected, an available PCM will be assigned to the pin. And it will be de-assigned when the monitor is disconnected. Userspace can fetch the HW param when monitor connection status is changed.
I'm not sure how to notify the userspace, such as notifying pulseaudio the PCM is assigned or de-assigned. Any ideas?
2. Compatibility. We will patch patch_hdmi.c to support the MST audio. Will we use mst audio driver to support the old mode or we use a flag, when HW doesn't support MST audio, we will use the old code? Suppose MST audio driver should be able support both MST audio and non-MST audio.
Regards, Libin