On Thu, Nov 26, 2020 at 01:44:39PM +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. > > v3: Aligned colorimetry handling for lspcon as per compute_avi_infoframes, > as suggested by Ville. > > v4: Added BT2020 as default for HDR. Adding the colorspace property > interface for pcon will be take up separately. Moved changes of > quantization in a separate patch as per Ville's comments. > > 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 0a4c05d67108..f6f58a991e7a 100644 > --- a/drivers/gpu/drm/i915/display/intel_lspcon.c > +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c > @@ -481,6 +481,10 @@ 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, > @@ -523,6 +527,20 @@ void lspcon_set_infoframes(struct intel_encoder *encoder, > else > frame.avi.colorspace = HDMI_COLORSPACE_RGB; > > + /* > + * Set BT2020 colorspace if driving HDR data > + * ToDo: Make this generic and expose all colorspaces for > + * lspcon. We need to expose HDMI colorspaces when we detect > + * lspcon, this has to happen after connector is registered, > + * so need to fix this appropriately > + */ > + if (lspcon->active && conn_state->hdr_output_metadata) { > + frame.avi.colorimetry = HDMI_COLORIMETRY_BT2020_YCC & > + NORMAL_COLORIMETRY_MASK; > + frame.avi.extended_colorimetry = (HDMI_COLORIMETRY_BT2020_YCC >> 2) & > + EXTENDED_COLORIMETRY_MASK; > + } > + I don't understand the point of dancing around this instead of just fixing it. There, I did half the work for you https://patchwork.freedesktop.org/series/84309/ > /* nonsense combination */ > drm_WARN_ON(encoder->base.dev, crtc_state->limited_color_range && > crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB); > -- > 2.26.2 -- Ville Syrjälä Intel _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx