[Intel-gfx] [PATCH 2/4] drm/i915: Use drm_hdmi_avi_infoframe_quant_range() for SDVO HDMI as well
Dhinakaran Pandiyan
dhinakaran.pandiyan at intel.com
Tue Dec 18 01:33:52 UTC 2018
On Thu, 2018-12-13 at 15:09 -0800, Dhinakaran Pandiyan wrote:
> On Thu, 2018-12-13 at 07:18 +0200, Ville Syrjälä wrote:
> > On Wed, Dec 12, 2018 at 04:32:02PM -0800, Dhinakaran Pandiyan
> > wrote:
> > > On Tue, 2018-11-20 at 18:13 +0200, Ville Syrjala wrote:
> > > > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > >
> > > > Fill out the AVI infoframe quantization range bits using
> > > > drm_hdmi_avi_infoframe_quant_range() for SDVO HDMI encoder as
> > > > well.
> > > >
> > > > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > > ---
> > > > drivers/gpu/drm/i915/intel_sdvo.c | 19 ++++++++++---------
> > > > 1 file changed, 10 insertions(+), 9 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/intel_sdvo.c
> > > > b/drivers/gpu/drm/i915/intel_sdvo.c
> > > > index 1277d31adb54..9c16e273fb8d 100644
> > > > --- a/drivers/gpu/drm/i915/intel_sdvo.c
> > > > +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> > > > @@ -984,6 +984,8 @@ static bool
> > > > intel_sdvo_set_avi_infoframe(struct
> > > > intel_sdvo *intel_sdvo,
> > > > const struct
> > > > intel_crtc_state
> > > > *pipe_config,
> > > > const struct
> > > > drm_connector_state *conn_state)
> > > > {
> > > > + const struct drm_display_mode *adjusted_mode =
> > > > + &pipe_config->base.adjusted_mode;
> > > > uint8_t sdvo_data[HDMI_INFOFRAME_SIZE(AVI)];
> > > > union hdmi_infoframe frame;
> > > > int ret;
> > > > @@ -991,20 +993,19 @@ static bool
> > > > intel_sdvo_set_avi_infoframe(struct
> > > > intel_sdvo *intel_sdvo,
> > > >
> > > > ret =
> > > > drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
> > > > conn_sta
> > > > te-
> > > > > connector,
> > > >
> > > > - &pipe_co
> > > > nfig-
> > > > > base.adjusted_mode);
> > > >
> > > > + adjusted
> > > > _mode);
> > > > if (ret < 0) {
> > > > DRM_ERROR("couldn't fill AVI infoframe\n");
> > > > return false;
> > > > }
> > > >
> > > > - if (intel_sdvo->rgb_quant_range_selectable) {
> > > > - if (pipe_config->limited_color_range)
> > > > - frame.avi.quantization_range =
> > > > - HDMI_QUANTIZATION_RANGE_LIMITED
> > > > ;
> > > > - else
> > > > - frame.avi.quantization_range =
> > > > - HDMI_QUANTIZATION_RANGE_FULL;
> > > > - }
> > > > + drm_hdmi_avi_infoframe_quant_range(&frame.avi,
> > > > + conn_state-
> > > > >connector,
> > > > + adjusted_mode,
> > > > + pipe_config-
> > > > > limited_color_range ?
> > > >
> > > > + rgb_quant_range_sele
> > > > ctableTE
> > > > D :
> > > > + HDMI_QUANTIZATION_RA
> > > > NGE_FULL
> > > > ,
> > > > + intel_sdvo-
> > > > > rgb_quant_range_selectable);
> > >
> > > Seems like avi.quantization_range can now get set to _LIMITED or
> > > _FULL
> > > even when ->rgb_quant_range_selectable == false, i.e., it is not
> > > _DEFAULT anymore. Is that change in behavior intended?
> >
> > ->quant_range_selectable will be passed to
> > drm_hdmi_avi_infoframe_quant_range() which will do the right thing
> > with
> > it.
> >
> > That said, there is a slight behavioural change in that it will set
>
> Okay, I was indeed referring to this case.
>
> > the Q bit even with QS==1 iff the quantization range matches the
> > default quantization range for the mode. I noted this in the radeon
> > patch but forgot to mention it here.
>
> I'll let someone else with knowledge of HDMI to review this
> behavioral
> change. I'm trying to get hold of the HDMI spec now and will review
> if
> this hasn't been looked at by then.
>
Looks alright now that I went through the specs. With commit message
updated to make note of the Q value changes
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
>
> >
> > >
> > >
> > > >
> > > > len = hdmi_infoframe_pack(&frame, sdvo_data,
> > > > sizeof(sdvo_data));
> > > > if (len < 0)
> >
> >
More information about the Intel-gfx
mailing list