diff options
author | Uma Shankar <uma.shankar@intel.com> | 2020-11-30 23:47:27 +0300 |
---|---|---|
committer | Uma Shankar <uma.shankar@intel.com> | 2020-12-01 22:52:30 +0300 |
commit | 9559c0d13b6b35abc2659bdd3024849d552e3c4e (patch) | |
tree | d2e577efacfc42c2f5414e4b466070b3d98a9edc /drivers/gpu/drm/i915/display/intel_lspcon.c | |
parent | 2e666613b24e3c7d2ae5cf5c1e264751bb5b2a8f (diff) | |
download | linux-9559c0d13b6b35abc2659bdd3024849d552e3c4e.tar.xz |
drm/i915/display: Fixes quantization range for YCbCr output
This patch fixes the quantization range for YCbCr output on
Lspcon based devices.
v2: Re-phrased the description and added Ville's Rb.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201130204738.2443-5-uma.shankar@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_lspcon.c')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_lspcon.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c index f98891f058da..7cb65e0f241e 100644 --- a/drivers/gpu/drm/i915/display/intel_lspcon.c +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c @@ -523,12 +523,17 @@ void lspcon_set_infoframes(struct intel_encoder *encoder, else frame.avi.colorspace = HDMI_COLORSPACE_RGB; - drm_hdmi_avi_infoframe_quant_range(&frame.avi, - conn_state->connector, - adjusted_mode, - crtc_state->limited_color_range ? - HDMI_QUANTIZATION_RANGE_LIMITED : - HDMI_QUANTIZATION_RANGE_FULL); + if (crtc_state->output_format == INTEL_OUTPUT_FORMAT_RGB) { + drm_hdmi_avi_infoframe_quant_range(&frame.avi, + conn_state->connector, + adjusted_mode, + crtc_state->limited_color_range ? + HDMI_QUANTIZATION_RANGE_LIMITED : + HDMI_QUANTIZATION_RANGE_FULL); + } else { + frame.avi.quantization_range = HDMI_QUANTIZATION_RANGE_DEFAULT; + frame.avi.ycc_quantization_range = HDMI_YCC_QUANTIZATION_RANGE_LIMITED; + } ret = hdmi_infoframe_pack(&frame, buf, sizeof(buf)); if (ret < 0) { |