On Tue, Sep 15, 2020 at 02:30:40AM +0530, Uma Shankar wrote: > Enable Colorspace as BT2020 if driving HDR content.Sending Colorimetry > data for HDR using AVI infoframe. LSPCON firmware expects this and though > SOC drives DP, for HDMI panel AVI infoframe is sent to the LSPCON device > which transfers the same to HDMI sink. > > v2: Dropped state managed in drm core as per Jani Nikula's suggestion. > > Signed-off-by: Uma Shankar <uma.shankar@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_lspcon.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c > index fd05210f4405..b0ca494f1110 100644 > --- a/drivers/gpu/drm/i915/display/intel_lspcon.c > +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c > @@ -507,6 +507,11 @@ void lspcon_read_infoframe(struct intel_encoder *encoder, > /* FIXME implement this */ > } > > +/* HDMI HDR Colorspace Spec Definitions */ > +#define NORMAL_COLORIMETRY_MASK 0x3 > +#define EXTENDED_COLORIMETRY_MASK 0x7 > +#define HDMI_COLORIMETRY_BT2020_YCC ((3 << 0) | (6 << 2) | (0 << 5)) > + > void lspcon_set_infoframes(struct intel_encoder *encoder, > bool enable, > const struct intel_crtc_state *crtc_state, > @@ -551,6 +556,19 @@ void lspcon_set_infoframes(struct intel_encoder *encoder, > HDMI_QUANTIZATION_RANGE_LIMITED : > HDMI_QUANTIZATION_RANGE_FULL); > > + /* > + * Set BT2020 colorspace if driving HDR data > + * ToDo: Make this generic and expose all colorspaces for lspcon > + */ > + if (lspcon->active && lspcon->hdr_supported) { > + frame.avi.colorimetry = > + HDMI_COLORIMETRY_BT2020_YCC & > + NORMAL_COLORIMETRY_MASK; > + frame.avi.extended_colorimetry = > + (HDMI_COLORIMETRY_BT2020_YCC >> 2) & > + EXTENDED_COLORIMETRY_MASK; > + } drm_hdmi_avi_infoframe_colorspace(). Also pls try to match intel_hdmi_compute_avi_infoframe() as closesly as possible if we can't just outright reuse it. That will make it easier to spot differences between the two. > + > ret = hdmi_infoframe_pack(&frame, buf, sizeof(buf)); > if (ret < 0) { > DRM_ERROR("Failed to pack AVI IF\n"); > -- > 2.26.2 -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx