drm/edid: Split deep color modes between RGB and YUV444
The current code assumes that the RGB444 and YUV444 formats are the same, but the HDMI 2.0 specification states that: The three DC_XXbit bits above only indicate support for RGB 4:4:4 at that pixel size. Support for YCBCR 4:4:4 in Deep Color modes is indicated with the DC_Y444 bit. If DC_Y444 is set, then YCBCR 4:4:4 is supported for all modes indicated by the DC_XXbit flags. So if we have YUV444 support and any DC_XXbit flag set but the DC_Y444 flag isn't, we'll assume that we support that deep colour mode for YUV444 which breaks the specification. In order to fix this, let's split the edid_hdmi_dc_modes field in struct drm_display_info into two fields, one for RGB444 and one for YUV444. Suggested-by:Ville Syrjälä <ville.syrjala@linux.intel.com> Fixes: d0c94692 ("drm/edid: Parse and handle HDMI deep color modes.") Signed-off-by:
Maxime Ripard <maxime@cerno.tech> Reviewed-by:
Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220120151625.594595-4-maxime@cerno.tech
Showing
- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c 1 addition, 1 deletiondrivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
- drivers/gpu/drm/drm_edid.c 4 additions, 3 deletionsdrivers/gpu/drm/drm_edid.c
- drivers/gpu/drm/i915/display/intel_hdmi.c 2 additions, 2 deletionsdrivers/gpu/drm/i915/display/intel_hdmi.c
- drivers/gpu/drm/radeon/radeon_connectors.c 1 addition, 1 deletiondrivers/gpu/drm/radeon/radeon_connectors.c
- include/drm/drm_connector.h 9 additions, 3 deletionsinclude/drm/drm_connector.h
Loading
Please register or sign in to comment