On 11/04/2024 16:38, Jaroslav Kysela wrote:
On 11. 04. 24 15:15, Péter Ujfalusi wrote:
[B] Using UCM https://github.com/ujfalusi/alsa-ucm-conf/tree/topic/sof-hdmi
This is only way to go. The configuration for "legacy" PCM device names should be handled through UCM (when UCM config exists for this hw).
OK, I will drop the other option.
Should we add some parameter to 'amixer -c0 info', like ipc_version:4/3, so if the ipc_version is 3 or missing we assume that passthrough is not supported?
UCM must be able to detect sound card capabilities. For passthrough, there should be some controls for AES bits which may be used for the conditional matching. If it's not sufficient, a hint to the components string (mixer info structure) may be added by the driver. Also PCM name or subname may be matched for a substring, if you like (seems more related than the components string).
Thanks for the advice!
I have now something really working in a way it should be. The kernel will add "hdmi-pt:1" to the card's components when HDMI passthrough is possible (IPC4, ChainDMA enabled for HDMI PCM). [1]
UCM will use the existence of "hdmi-pt:1" to decide to create the needed mapping PCMs [2]
[1] https://github.com/thesofproject/linux/pull/4921 [2] https://github.com/ujfalusi/alsa-ucm-conf/tree/topic/sof-hdmi
I'm not sure about the "hdmi-pt:1", can we just have plain "hdmi-pt" or we need a param:value pair always?
There are still funky things done in the UCM patch due to lack of experience with it. I guess I should create a formal PR to get it reviewed and correct, right?
Thank you, Péter