[Intel-gfx] [PATCH v2 7/7] drm/i915: Add HDMI aspect ratio property for SDVO
Daniel Vetter
daniel at ffwll.ch
Mon Sep 28 06:27:22 PDT 2015
On Mon, Sep 28, 2015 at 03:18:10PM +0300, Mika Kahola wrote:
> Reviewed-by: Mika Kahola <mika.kahola at intel.com>
>
> On Fri, 2015-09-25 at 16:39 +0300, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > Handle the HDMI aspect ratio property the same way in the SDVO code
> > as we handle it in the HDMI code.
> >
> > v2: Remove stray whitespace change
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Merged the remaining patches from this series, thanks.
-Daniel
> > ---
> > drivers/gpu/drm/i915/intel_drv.h | 1 +
> > drivers/gpu/drm/i915/intel_hdmi.c | 9 ---------
> > drivers/gpu/drm/i915/intel_modes.c | 9 +++++++++
> > drivers/gpu/drm/i915/intel_sdvo.c | 28 ++++++++++++++++++++++++++++
> > 4 files changed, 38 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> > index c98ed81..ed66a4f 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -1300,6 +1300,7 @@ int intel_connector_update_modes(struct drm_connector *connector,
> > int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter);
> > void intel_attach_force_audio_property(struct drm_connector *connector);
> > void intel_attach_broadcast_rgb_property(struct drm_connector *connector);
> > +void intel_attach_aspect_ratio_property(struct drm_connector *connector);
> >
> >
> > /* intel_overlay.c */
> > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> > index af231ed..3c5f2c9 100644
> > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > @@ -2004,15 +2004,6 @@ static const struct drm_encoder_funcs intel_hdmi_enc_funcs = {
> > };
> >
> > static void
> > -intel_attach_aspect_ratio_property(struct drm_connector *connector)
> > -{
> > - if (!drm_mode_create_aspect_ratio_property(connector->dev))
> > - drm_object_attach_property(&connector->base,
> > - connector->dev->mode_config.aspect_ratio_property,
> > - DRM_MODE_PICTURE_ASPECT_NONE);
> > -}
> > -
> > -static void
> > intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *connector)
> > {
> > intel_attach_force_audio_property(connector);
> > diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
> > index 0e860f3..38a4c8c 100644
> > --- a/drivers/gpu/drm/i915/intel_modes.c
> > +++ b/drivers/gpu/drm/i915/intel_modes.c
> > @@ -126,3 +126,12 @@ intel_attach_broadcast_rgb_property(struct drm_connector *connector)
> >
> > drm_object_attach_property(&connector->base, prop, 0);
> > }
> > +
> > +void
> > +intel_attach_aspect_ratio_property(struct drm_connector *connector)
> > +{
> > + if (!drm_mode_create_aspect_ratio_property(connector->dev))
> > + drm_object_attach_property(&connector->base,
> > + connector->dev->mode_config.aspect_ratio_property,
> > + DRM_MODE_PICTURE_ASPECT_NONE);
> > +}
> > diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> > index 857b1bd..c42b636 100644
> > --- a/drivers/gpu/drm/i915/intel_sdvo.c
> > +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> > @@ -107,6 +107,11 @@ struct intel_sdvo {
> > bool color_range_auto;
> >
> > /**
> > + * HDMI user specified aspect ratio
> > + */
> > + enum hdmi_picture_aspect aspect_ratio;
> > +
> > + /**
> > * This is set if we're going to treat the device as TV-out.
> > *
> > * While we have these nice friendly flags for output types that ought
> > @@ -1181,6 +1186,10 @@ static bool intel_sdvo_compute_config(struct intel_encoder *encoder,
> > if (intel_sdvo->is_tv)
> > i9xx_adjust_sdvo_tv_clock(pipe_config);
> >
> > + /* Set user selected PAR to incoming mode's member */
> > + if (intel_sdvo->is_hdmi)
> > + adjusted_mode->picture_aspect_ratio = intel_sdvo->aspect_ratio;
> > +
> > return true;
> > }
> >
> > @@ -2043,6 +2052,23 @@ intel_sdvo_set_property(struct drm_connector *connector,
> > goto done;
> > }
> >
> > + if (property == connector->dev->mode_config.aspect_ratio_property) {
> > + switch (val) {
> > + case DRM_MODE_PICTURE_ASPECT_NONE:
> > + intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
> > + break;
> > + case DRM_MODE_PICTURE_ASPECT_4_3:
> > + intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_4_3;
> > + break;
> > + case DRM_MODE_PICTURE_ASPECT_16_9:
> > + intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_16_9;
> > + break;
> > + default:
> > + return -EINVAL;
> > + }
> > + goto done;
> > + }
> > +
> > #define CHECK_PROPERTY(name, NAME) \
> > if (intel_sdvo_connector->name == property) { \
> > if (intel_sdvo_connector->cur_##name == temp_value) return 0; \
> > @@ -2382,6 +2408,8 @@ intel_sdvo_add_hdmi_properties(struct intel_sdvo *intel_sdvo,
> > intel_attach_broadcast_rgb_property(&connector->base.base);
> > intel_sdvo->color_range_auto = true;
> > }
> > + intel_attach_aspect_ratio_property(&connector->base.base);
> > + intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
> > }
> >
> > static struct intel_sdvo_connector *intel_sdvo_connector_alloc(void)
>
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list