It is fine for displays without audio functionality to not implement CEA v3 extension in their EDID. Do not return an error in that case, instead return 0 as if there was a CEA v3 extension with no audio or speaker block.
This fixes the second half of bug fdo#107825: https://bugs.freedesktop.org/show_bug.cgi?id=107825 Signed-off-by: Jean Delvare <jdelv...@suse.de> Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com> Cc: Maxime Ripard <maxime.rip...@bootlin.com> Cc: Sean Paul <s...@poorly.run> Cc: David Airlie <airl...@linux.ie> Cc: Daniel Vetter <dan...@ffwll.ch> --- Already sent on: 2019-09-04 Changes since v1: * Treat CEA extension version < 3 as non-error too (suggested by Ville Syrjälä) drivers/gpu/drm/drm_edid.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- linux-5.4-rc7.orig/drivers/gpu/drm/drm_edid.c 2019-11-15 12:09:03.186725414 +0100 +++ linux-5.4-rc7/drivers/gpu/drm/drm_edid.c 2019-11-15 14:21:41.676073451 +0100 @@ -4186,12 +4186,12 @@ int drm_edid_to_sad(struct edid *edid, s cea = drm_find_cea_extension(edid); if (!cea) { DRM_DEBUG_KMS("SAD: no CEA Extension found\n"); - return -ENOENT; + return 0; } if (cea_revision(cea) < 3) { DRM_DEBUG_KMS("SAD: wrong CEA revision\n"); - return -ENOTSUPP; + return 0; } if (cea_db_offsets(cea, &start, &end)) { @@ -4247,12 +4247,12 @@ int drm_edid_to_speaker_allocation(struc cea = drm_find_cea_extension(edid); if (!cea) { DRM_DEBUG_KMS("SAD: no CEA Extension found\n"); - return -ENOENT; + return 0; } if (cea_revision(cea) < 3) { DRM_DEBUG_KMS("SAD: wrong CEA revision\n"); - return -ENOTSUPP; + return 0; } if (cea_db_offsets(cea, &start, &end)) { -- Jean Delvare SUSE L3 Support _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel