On Thu, 11 Nov 2021 at 01:58, Hans Verkuil <hverkuil-cisco@xxxxxxxxx> wrote: > > The nouveau driver outputs full range RGB, but the AVI InfoFrame just says > 'Default' instead of 'Full'. > > Call drm_hdmi_avi_infoframe_quant_range to fill in the quantization field of > the AVI InfoFrame correctly. Now displays that advertise RGB Selectable > Quantization Range in their EDID will understand that full range is transmitted > by the HDMI output. This is consistent to how the Nvidia's driver behaves. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> Reviewed-by: Ben Skeggs <bskeggs@xxxxxxxxxx> > --- > diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c > index d7b9f7f8c9e3..b05c01927fe6 100644 > --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c > @@ -852,6 +852,9 @@ nv50_hdmi_enable(struct drm_encoder *encoder, struct nouveau_crtc *nv_crtc, > ret = drm_hdmi_avi_infoframe_from_display_mode(&avi_frame.avi, > &nv_connector->base, mode); > if (!ret) { > + drm_hdmi_avi_infoframe_quant_range(&avi_frame.avi, > + &nv_connector->base, mode, > + HDMI_QUANTIZATION_RANGE_FULL); > /* We have an AVI InfoFrame, populate it to the display */ > args.pwr.avi_infoframe_length > = hdmi_infoframe_pack(&avi_frame, args.infoframes, 17);