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
--
Jaroslav Kysela <perex@xxxxxxxx>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.