[Intel-gfx] [PATCH v4 1/4] drm/crtc: Add property for aspect ratio
Vandana Kannan
vandana.kannan at intel.com
Tue Jul 1 07:01:16 CEST 2014
Hi Thierry/Daniel,
Please help review this patch series on aspect ratio and let me know
your inputs..
1. http://lists.freedesktop.org/archives/dri-devel/2014-June/061576.html
- All review comments (from Thierry) addressed.
2. http://lists.freedesktop.org/archives/dri-devel/2014-June/061217.html
- R-b from Thierry
3. http://lists.freedesktop.org/archives/dri-devel/2014-June/061577.html
4. http://lists.freedesktop.org/archives/dri-devel/2014-June/061592.html
- R-b from Sagar
Thanks,
Vandana
On Jun-11-2014 10:46 AM, Kannan, Vandana wrote:
> Added a property to enable user space to set aspect ratio.
> This patch contains declaration of the property and code to create the
> property.
>
> v2: Thierry's review comments.
> - Made aspect ratio enum generic instead of HDMI/CEA specfic
> - Removed usage of temporary aspect_ratio variable
>
> v3: Thierry's review comments.
> - Fixed indentation
>
> v4: Thierry's review comments.
> - Return ENOMEM when property creation fails
>
> Signed-off-by: Vandana Kannan <vandana.kannan at intel.com>
> Cc: Thierry Reding <thierry.reding at gmail.com>
> ---
> drivers/gpu/drm/drm_crtc.c | 33 +++++++++++++++++++++++++++++++++
> include/drm/drm_crtc.h | 2 ++
> include/uapi/drm/drm_mode.h | 5 +++++
> 3 files changed, 40 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 37a3e07..a745df3 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -139,6 +139,12 @@ static const struct drm_prop_enum_list drm_scaling_mode_enum_list[] =
> { DRM_MODE_SCALE_ASPECT, "Full aspect" },
> };
>
> +static const struct drm_prop_enum_list drm_aspect_ratio_enum_list[] = {
> + { DRM_MODE_PICTURE_ASPECT_NONE, "Automatic" },
> + { DRM_MODE_PICTURE_ASPECT_4_3, "4:3" },
> + { DRM_MODE_PICTURE_ASPECT_16_9, "16:9" },
> +};
> +
> /*
> * Non-global properties, but "required" for certain connectors.
> */
> @@ -1344,6 +1350,33 @@ int drm_mode_create_scaling_mode_property(struct drm_device *dev)
> EXPORT_SYMBOL(drm_mode_create_scaling_mode_property);
>
> /**
> + * drm_mode_create_aspect_ratio_property - create aspect ratio property
> + * @dev: DRM device
> + *
> + * Called by a driver the first time it's needed, must be attached to desired
> + * connectors.
> + *
> + * Returns:
> + * Zero on success, errno on failure.
> + */
> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
> +{
> + if (dev->mode_config.aspect_ratio_property)
> + return 0;
> +
> + dev->mode_config.aspect_ratio_property =
> + drm_property_create_enum(dev, 0, "aspect ratio",
> + drm_aspect_ratio_enum_list,
> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
> +
> + if (dev->mode_config.aspect_ratio_property == NULL)
> + return -ENOMEM;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(drm_mode_create_aspect_ratio_property);
> +
> +/**
> * drm_mode_create_dirty_property - create dirty property
> * @dev: DRM device
> *
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 5c1c31c..1149617 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -801,6 +801,7 @@ struct drm_mode_config {
>
> /* Optional properties */
> struct drm_property *scaling_mode_property;
> + struct drm_property *aspect_ratio_property;
> struct drm_property *dirty_info_property;
>
> /* dumb ioctl parameters */
> @@ -971,6 +972,7 @@ extern int drm_mode_create_dvi_i_properties(struct drm_device *dev);
> extern int drm_mode_create_tv_properties(struct drm_device *dev, int num_formats,
> char *formats[]);
> extern int drm_mode_create_scaling_mode_property(struct drm_device *dev);
> +extern int drm_mode_create_aspect_ratio_property(struct drm_device *dev);
> extern int drm_mode_create_dirty_info_property(struct drm_device *dev);
> extern const char *drm_get_encoder_name(const struct drm_encoder *encoder);
>
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index f104c26..943b377 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -88,6 +88,11 @@
> #define DRM_MODE_SCALE_CENTER 2 /* Centered, no scaling */
> #define DRM_MODE_SCALE_ASPECT 3 /* Full screen, preserve aspect */
>
> +/* Picture aspect ratio options */
> +#define DRM_MODE_PICTURE_ASPECT_NONE 0
> +#define DRM_MODE_PICTURE_ASPECT_4_3 1
> +#define DRM_MODE_PICTURE_ASPECT_16_9 2
> +
> /* Dithering mode options */
> #define DRM_MODE_DITHERING_OFF 0
> #define DRM_MODE_DITHERING_ON 1
>
More information about the Intel-gfx
mailing list