The patch will check all ports under each profile, if a profile only contains unavailable ports, this profile will be set to unavailable as well. Without this patch, all profiles are always available, then if a profile includes a unusable hdmi-output, and pulseaudio choose this profile to be active (since its priority is the highest), the kernel audio driver will crash.
I think this patch will not introduce regression:
1) It is a correct logic to set a profile to be unavailable if it only contains unavailable ports.
2) pulseaudio-artful and pulseaudio-bionic already include this patch, they work very well
3) I tested this patch on 1 lenovo laptop, 1 lenovo desktop, 1 dell laptop and 1 dell desktop, all worked well as before
4) tested this patch on two dell machines (LOAD5-DVT2-A2 and Dawson-JC-C without analogue audio) which have unusable hdmi-output profile on them, the kernel driver did not crash anymore and audio function worked very well.
@Robie,
Updated [Regression Potential] as shown below:
The patch will check all ports under each profile, if a profile only contains unavailable ports, this profile will be set to unavailable as well. Without this patch, all profiles are always available, then if a profile includes a unusable hdmi-output, and pulseaudio choose this profile to be active (since its priority is the highest), the kernel audio driver will crash.
I think this patch will not introduce regression:
1) It is a correct logic to set a profile to be unavailable if it only contains unavailable ports.
2) pulseaudio-artful and pulseaudio-bionic already include this patch, they work very well
3) I tested this patch on 1 lenovo laptop, 1 lenovo desktop, 1 dell laptop and 1 dell desktop, all worked well as before
4) tested this patch on two dell machines (LOAD5-DVT2-A2 and Dawson-JC-C without analogue audio) which have unusable hdmi-output profile on them, the kernel driver did not crash anymore and audio function worked very well.