Message ID | 1402463808-31446-1-git-send-email-vandana.kannan@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@intel.com> > Cc: Thierry Reding <thierry.reding@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 >
On Wed, Jun 11, 2014 at 10:46:48AM +0530, Vandana Kannan 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@intel.com> > Cc: Thierry Reding <thierry.reding@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(+) One nit below... > 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: According to Documentation/kernel-doc-nano-HOWTO.txt this section should be named "Return:". But it seems that at least in DRM "Returns:" is used much more often (89:31), so with or without this addressed: Reviewed-by: Thierry Reding <treding@nvidia.com>
On Mon, Jul 14, 2014 at 08:51:46AM +0200, Thierry Reding wrote: > On Wed, Jun 11, 2014 at 10:46:48AM +0530, Vandana Kannan 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@intel.com> > > Cc: Thierry Reding <thierry.reding@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(+) > > One nit below... > > > 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: > > According to Documentation/kernel-doc-nano-HOWTO.txt this section should > be named "Return:". But it seems that at least in DRM "Returns:" is used > much more often (89:31), so with or without this addressed: > > Reviewed-by: Thierry Reding <treding@nvidia.com> I've pulled all 4 patches. Please double-check that I've picked up the right ones since the series is a bit spread out. Thanks, Daniel
On Jul-15-2014 12:18 PM, Daniel Vetter wrote: [...] > > I've pulled all 4 patches. Please double-check that I've picked up the > right ones since the series is a bit spread out. > > Thanks, Daniel > Hi Daniel, I checked the 4 patches in -next-queued. They are the correct version. Thanks, Vandana
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
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@intel.com> Cc: Thierry Reding <thierry.reding@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(+)