On 2/9/22 06:05, Cezary Rojewski wrote:
FWIW, in our latest SOF work we went back to handling ONE DAI with analog playback and capture and ditched the 'digital playback'. Trying to do more led us to too many issues of 'works on platform A' and 'does not work on platform B', and sometimes with different answers depending on which BIOS version is used.
IMHO what's really problematic for HDaudio is the support for amplifiers located behind the HDaudio codec, for which we more often than not are missing the I2C configuration sequences. Suspend-resume is a recurring problem as well.
I am not saying no for the sake of saying no, I have just never heard of anyone complain about restrictions on the number of DAIs in the HDaudio world.
I believe our goals align. Rather than hardcoding Analog/Alt Analog/Digital endpoints as it's done currently, when codec most of the time do not have them working anyway, rely on behavior found in sound/hda and sound/pci/hda. If there are some problems there it's win:win for us and legacy driver. Fix one spot, have both drivers happy.
I don't quite see the alignment: the only thing that we've seen work reliably and that we do need is the analog part, and we want to get rid of the other paths which we can't test in the first place. I must admit I don't recall why we bothered to expose those alt analog and digital paths back in 2018, they have not been used nor tested by anyone.
Now if this patch helped to make sure we do indeed have an analog path, that'd be fine. That would indeed avoid a hard-coded decision and report configuration errors.
I just don't see what exposing additional paths brings, they never worked reliably for us when we tried. IIRC half of our team gets an error with the Digital playback stream on Up Extreme and the other half can play just fine - albeit with no connector to actually see what the output is.
FWIW there are many things made possible by HDaudio, in practice we often have to limit ourselves to what is known to work and what is needed by end-products. You could spend all your time chasing configuration issues, missing NIDS and bad verbs. Been there, done that.