Hello all, As I've continued to understand more of drm_edid as a newbie, I noticed that in drm_parse_cea_ext, the CTA_DB_SPEAKER tag is unhandled in the chain of CEA data block parsing. (This is drm_edid.c)
I see that in a few other functions, CTA_DB_SPEAKER is handled, like in drm_edid_to_eld and drm_edid_to_speaker_allocation. However, the latter is apparently used for legacy interfaces, and the former is just defining a pointer in the ELD to the data block. drm_edid_to_speaker_allocation is in amdgpu and radeon drivers. In amdgpu_dm_helpers.c, that function is used in the dm_helpers_parse_edid_caps helper to parse edid capabilities. The reason I'm mentioning all of this is because, unless I'm looking at the wrong information, the SADB contains info about where the speakers are in the device, which seem to be unparsed. Is it worth trying to implement support for parsing this? Alternatively, perhaps in drm_parse_cea_ext we also set the display info's "has_audio" field to "true" on CTA_DB_SPEAKER, like it currently does for CTA_DB_AUDIO. I know eventually, after drm_parse_cea_ext, drm_edid_to_eld is called, but for the sake of "completeness" we may be missing it :) Thanks, Josh
