On 03. 04. 23 18:09, Kai Vehmanen wrote:
Hi,
On Fri, 31 Mar 2023, Takashi Iwai wrote:
On Fri, 31 Mar 2023 17:18:44 +0200, Jaroslav Kysela wrote: That said, the slot preservation becomes effective only when multiple devices are connected and they are on/off at the same time. In such a case, the device order may be changed at each screen on/off with the current code, while this patch allows keeping the order. Maybe I should emphasize about the multiple devices in the patch description.
... and specifically you need multiple audio enabled displays to have this problem.
Anyways, even if a bit hacky, I think the patch is ok and helps with the user-experience in these cases. And if application correctly checks the ELD after each jack connection event, those applicatios will continue to work (so this patch does not encourage bad app behaviour).
I think this still leaves (rare but possible) cases that need to be handled by application. E.g. if you have multiple (audio enabled) displays connected to a DP-MST dock and the monitors get turned on/off at the same time, it is possible for them to appear with different DP-MST ids (depends on the dock). I.e. the PCM may change. For these cases, the application would have to look up the correct display/receiver (the user wants to stream to) via ELD, every time there's jack connection event.
The question is, if ELD contains a serial number of the monitor. If there is no unique identification for similar monitors (one model), then we have no way to identify the audio devices properly.
If I look to drm_edid_to_eld() function in drivers/gpu/drm/drm_edid.c I don't see any unique information to be copied for the identical monitors.
Jaroslav