Reviewed-by: Mika Kahola <[email protected]>

On Fri, 2015-09-25 at 16:39 +0300, [email protected] wrote:
> From: Ville Syrjälä <[email protected]>
> 
> 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ä <[email protected]>
> ---
>  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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to