* [PATCH 1/3] drm/crtc: Add property for aspect ratio
@ 2014-04-07 10:03 Vandana Kannan
2014-04-07 9:54 ` Vandana Kannan
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-04-07 10:03 UTC (permalink / raw)
To: intel-gfx; +Cc: dri-devel
Added a property to enable user space to set aspect ratio.
This patch contains declaration of the property and code to create the
property.
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
include/drm/drm_crtc.h | 2 ++
2 files changed, 33 insertions(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index d8b7099..6cd34ad 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[] = {
+ { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
+ { HDMI_PICTURE_ASPECT_4_3, "4:3" },
+ { HDMI_PICTURE_ASPECT_16_9, "16:9" },
+};
+
/*
* Non-global properties, but "required" for certain connectors.
*/
@@ -1334,6 +1340,31 @@ 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.
+ */
+int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
+{
+ struct drm_property *aspect_ratio;
+
+ if (dev->mode_config.aspect_ratio_property)
+ return 0;
+
+ aspect_ratio =
+ drm_property_create_enum(dev, 0, "aspect ratio",
+ drm_aspect_ratio_enum_list,
+ ARRAY_SIZE(drm_aspect_ratio_enum_list));
+
+ dev->mode_config.aspect_ratio_property = aspect_ratio;
+
+ 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 c061bb3..99bb6ed 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -797,6 +797,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 */
@@ -966,6 +967,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);
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 1/3] drm/crtc: Add property for aspect ratio
2014-04-07 10:03 [PATCH 1/3] drm/crtc: Add property for aspect ratio Vandana Kannan
@ 2014-04-07 9:54 ` Vandana Kannan
2014-04-21 4:25 ` Vandana Kannan
2014-04-07 10:03 ` [PATCH 2/3] drm/edid: Check for user aspect ratio input Vandana Kannan
2014-04-07 10:03 ` [PATCH 3/3] drm/i915: Add aspect ratio property for HDMI Vandana Kannan
2 siblings, 1 reply; 10+ messages in thread
From: Vandana Kannan @ 2014-04-07 9:54 UTC (permalink / raw)
To: intel-gfx@lists.freedesktop.org, Daniel Vetter
Cc: dri-devel@lists.freedesktop.org
On Apr-07-2014 3:33 PM, 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.
>
> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
> Cc: dri-devel@lists.freedesktop.org
> ---
This patch series is being submitted as discussed in
http://lists.freedesktop.org/archives/dri-devel/2014-April/056593.html
-Vandana
> drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
> include/drm/drm_crtc.h | 2 ++
> 2 files changed, 33 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index d8b7099..6cd34ad 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[] = {
> + { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
> + { HDMI_PICTURE_ASPECT_4_3, "4:3" },
> + { HDMI_PICTURE_ASPECT_16_9, "16:9" },
> +};
> +
> /*
> * Non-global properties, but "required" for certain connectors.
> */
> @@ -1334,6 +1340,31 @@ 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.
> + */
> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
> +{
> + struct drm_property *aspect_ratio;
> +
> + if (dev->mode_config.aspect_ratio_property)
> + return 0;
> +
> + aspect_ratio =
> + drm_property_create_enum(dev, 0, "aspect ratio",
> + drm_aspect_ratio_enum_list,
> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
> +
> + dev->mode_config.aspect_ratio_property = aspect_ratio;
> +
> + 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 c061bb3..99bb6ed 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -797,6 +797,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 */
> @@ -966,6 +967,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);
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/3] drm/crtc: Add property for aspect ratio
2014-04-07 9:54 ` Vandana Kannan
@ 2014-04-21 4:25 ` Vandana Kannan
0 siblings, 0 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-04-21 4:25 UTC (permalink / raw)
To: intel-gfx@lists.freedesktop.org, Daniel Vetter
Cc: dri-devel@lists.freedesktop.org
On Apr-07-2014 3:24 PM, Vandana Kannan wrote:
> On Apr-07-2014 3:33 PM, 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.
>>
>> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
>> Cc: dri-devel@lists.freedesktop.org
>> ---
> This patch series is being submitted as discussed in
> http://lists.freedesktop.org/archives/dri-devel/2014-April/056593.html
>
> -Vandana
Please help review this patch series to enable user space to set aspect
ratio for AVI infoframe.
http://lists.freedesktop.org/archives/intel-gfx/2014-April/043226.html
http://lists.freedesktop.org/archives/intel-gfx/2014-April/043228.html
http://lists.freedesktop.org/archives/intel-gfx/2014-April/043227.html
-Vandana
>> drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
>> include/drm/drm_crtc.h | 2 ++
>> 2 files changed, 33 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
>> index d8b7099..6cd34ad 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[] = {
>> + { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
>> + { HDMI_PICTURE_ASPECT_4_3, "4:3" },
>> + { HDMI_PICTURE_ASPECT_16_9, "16:9" },
>> +};
>> +
>> /*
>> * Non-global properties, but "required" for certain connectors.
>> */
>> @@ -1334,6 +1340,31 @@ 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.
>> + */
>> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
>> +{
>> + struct drm_property *aspect_ratio;
>> +
>> + if (dev->mode_config.aspect_ratio_property)
>> + return 0;
>> +
>> + aspect_ratio =
>> + drm_property_create_enum(dev, 0, "aspect ratio",
>> + drm_aspect_ratio_enum_list,
>> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
>> +
>> + dev->mode_config.aspect_ratio_property = aspect_ratio;
>> +
>> + 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 c061bb3..99bb6ed 100644
>> --- a/include/drm/drm_crtc.h
>> +++ b/include/drm/drm_crtc.h
>> @@ -797,6 +797,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 */
>> @@ -966,6 +967,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);
>>
>>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/3] drm/edid: Check for user aspect ratio input
2014-04-07 10:03 [PATCH 1/3] drm/crtc: Add property for aspect ratio Vandana Kannan
2014-04-07 9:54 ` Vandana Kannan
@ 2014-04-07 10:03 ` Vandana Kannan
2014-04-07 10:03 ` [PATCH 3/3] drm/i915: Add aspect ratio property for HDMI Vandana Kannan
2 siblings, 0 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-04-07 10:03 UTC (permalink / raw)
To: intel-gfx; +Cc: dri-devel
In case user has specified an input for aspect ratio through the property,
then the user space value for PAR would take preference over the value from
CEA mode list.
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_edid.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index b8d6c51..62680e7 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3630,8 +3630,13 @@ drm_hdmi_avi_infoframe_from_display_mode(struct hdmi_avi_infoframe *frame,
frame->picture_aspect = HDMI_PICTURE_ASPECT_NONE;
- /* Populate picture aspect ratio from CEA mode list */
- if (frame->video_code > 0)
+ /* Populate picture aspect ratio from either CEA mode list or
+ * user input
+ */
+ if (mode->picture_aspect_ratio == HDMI_PICTURE_ASPECT_4_3 ||
+ mode->picture_aspect_ratio == HDMI_PICTURE_ASPECT_16_9)
+ frame->picture_aspect = mode->picture_aspect_ratio;
+ else if (frame->video_code > 0)
frame->picture_aspect = drm_get_cea_aspect_ratio(
frame->video_code);
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/3] drm/i915: Add aspect ratio property for HDMI
2014-04-07 10:03 [PATCH 1/3] drm/crtc: Add property for aspect ratio Vandana Kannan
2014-04-07 9:54 ` Vandana Kannan
2014-04-07 10:03 ` [PATCH 2/3] drm/edid: Check for user aspect ratio input Vandana Kannan
@ 2014-04-07 10:03 ` Vandana Kannan
2 siblings, 0 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-04-07 10:03 UTC (permalink / raw)
To: intel-gfx
Create and attach the drm property to set aspect ratio. If there is no user
specified value, then PAR_NONE/Automatic option is set by default. User can
select aspect ratio 4:3 or 16:9. The aspect ratio selected by user would
come into effect with a mode set.
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
---
drivers/gpu/drm/i915/i915_drv.h | 5 +++++
drivers/gpu/drm/i915/intel_drv.h | 1 +
drivers/gpu/drm/i915/intel_hdmi.c | 31 +++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 55addaa..ae5525d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2583,6 +2583,11 @@ int vlv_freq_opcode(struct drm_i915_private *dev_priv, int val);
#define INTEL_BROADCAST_RGB_FULL 1
#define INTEL_BROADCAST_RGB_LIMITED 2
+/* Aspect ratio property */
+#define INTEL_ASPECT_RATIO_AUTO 0
+#define INTEL_ASPECT_RATIO_4_3 1
+#define INTEL_ASPECT_RATIO_16_9 2
+
static inline uint32_t i915_vgacntrl_reg(struct drm_device *dev)
{
if (HAS_PCH_SPLIT(dev))
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 42762b7..256ea24 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -473,6 +473,7 @@ struct intel_hdmi {
bool has_audio;
enum hdmi_force_audio force_audio;
bool rgb_quant_range_selectable;
+ enum hdmi_picture_aspect aspect_ratio;
void (*write_infoframe)(struct drm_encoder *encoder,
enum hdmi_infoframe_type type,
const void *frame, ssize_t len);
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index b0413e1..5fd2f20 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -367,6 +367,9 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
union hdmi_infoframe frame;
int ret;
+ /* Set user selected PAR to incoming mode's member */
+ adjusted_mode->picture_aspect_ratio = intel_hdmi->aspect_ratio;
+
ret = drm_hdmi_avi_infoframe_from_display_mode(&frame.avi,
adjusted_mode);
if (ret < 0) {
@@ -1094,6 +1097,23 @@ intel_hdmi_set_property(struct drm_connector *connector,
goto done;
}
+ if (property == connector->dev->mode_config.aspect_ratio_property) {
+ switch (val) {
+ case INTEL_ASPECT_RATIO_AUTO:
+ intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
+ break;
+ case INTEL_ASPECT_RATIO_4_3:
+ intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_4_3;
+ break;
+ case INTEL_ASPECT_RATIO_16_9:
+ intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_16_9;
+ break;
+ default:
+ return -EINVAL;
+ }
+ goto done;
+ }
+
return -EINVAL;
done:
@@ -1223,11 +1243,22 @@ static const struct drm_encoder_funcs intel_hdmi_enc_funcs = {
};
static void
+intel_attach_aspect_ratio_property(struct drm_connector *connector)
+{
+ drm_mode_create_aspect_ratio_property(connector->dev);
+ drm_object_attach_property(&connector->base,
+ connector->dev->mode_config.aspect_ratio_property,
+ HDMI_PICTURE_ASPECT_NONE);
+}
+
+static void
intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *connector)
{
intel_attach_force_audio_property(connector);
intel_attach_broadcast_rgb_property(connector);
intel_hdmi->color_range_auto = true;
+ intel_attach_aspect_ratio_property(connector);
+ intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
}
void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 1/3] drm/crtc: Add property for aspect ratio
@ 2014-04-07 11:25 Vandana Kannan
0 siblings, 0 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-04-07 11:25 UTC (permalink / raw)
To: intel-gfx; +Cc: dri-devel
Added a property to enable user space to set aspect ratio.
This patch contains declaration of the property and code to create the
property.
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
include/drm/drm_crtc.h | 2 ++
2 files changed, 33 insertions(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index d8b7099..6cd34ad 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[] = {
+ { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
+ { HDMI_PICTURE_ASPECT_4_3, "4:3" },
+ { HDMI_PICTURE_ASPECT_16_9, "16:9" },
+};
+
/*
* Non-global properties, but "required" for certain connectors.
*/
@@ -1334,6 +1340,31 @@ 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.
+ */
+int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
+{
+ struct drm_property *aspect_ratio;
+
+ if (dev->mode_config.aspect_ratio_property)
+ return 0;
+
+ aspect_ratio =
+ drm_property_create_enum(dev, 0, "aspect ratio",
+ drm_aspect_ratio_enum_list,
+ ARRAY_SIZE(drm_aspect_ratio_enum_list));
+
+ dev->mode_config.aspect_ratio_property = aspect_ratio;
+
+ 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 c061bb3..99bb6ed 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -797,6 +797,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 */
@@ -966,6 +967,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);
--
1.9.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 1/3] drm/crtc: Add property for aspect ratio
@ 2014-05-22 11:20 Vandana Kannan
2014-05-22 11:38 ` Thierry Reding
2014-05-22 12:16 ` [Intel-gfx] " Daniel Vetter
0 siblings, 2 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-05-22 11:20 UTC (permalink / raw)
To: intel-gfx; +Cc: dri-devel
Added a property to enable user space to set aspect ratio.
This patch contains declaration of the property and code to create the
property.
Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
include/drm/drm_crtc.h | 2 ++
2 files changed, 33 insertions(+)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 37a3e07..84d359e 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[] = {
+ { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
+ { HDMI_PICTURE_ASPECT_4_3, "4:3" },
+ { HDMI_PICTURE_ASPECT_16_9, "16:9" },
+};
+
/*
* Non-global properties, but "required" for certain connectors.
*/
@@ -1344,6 +1350,31 @@ 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.
+ */
+int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
+{
+ struct drm_property *aspect_ratio;
+
+ if (dev->mode_config.aspect_ratio_property)
+ return 0;
+
+ aspect_ratio =
+ drm_property_create_enum(dev, 0, "aspect ratio",
+ drm_aspect_ratio_enum_list,
+ ARRAY_SIZE(drm_aspect_ratio_enum_list));
+
+ dev->mode_config.aspect_ratio_property = aspect_ratio;
+
+ 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);
--
1.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 1/3] drm/crtc: Add property for aspect ratio
2014-05-22 11:20 Vandana Kannan
@ 2014-05-22 11:38 ` Thierry Reding
2014-05-23 10:41 ` Vandana Kannan
2014-05-22 12:16 ` [Intel-gfx] " Daniel Vetter
1 sibling, 1 reply; 10+ messages in thread
From: Thierry Reding @ 2014-05-22 11:38 UTC (permalink / raw)
To: Vandana Kannan; +Cc: intel-gfx, dri-devel
[-- Attachment #1.1: Type: text/plain, Size: 2391 bytes --]
On Thu, May 22, 2014 at 04:50:48PM +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.
>
> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
> Cc: dri-devel@lists.freedesktop.org
> ---
> drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
> include/drm/drm_crtc.h | 2 ++
> 2 files changed, 33 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 37a3e07..84d359e 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[] = {
> + { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
> + { HDMI_PICTURE_ASPECT_4_3, "4:3" },
> + { HDMI_PICTURE_ASPECT_16_9, "16:9" },
> +};
This seems like it should be either an HDMI specific property, since it
uses values defined by HDMI/CEA. Alternatively we could introduce some
new generic enumeration and translate that to the HDMI/CEA equivalent in
the AVI infoframe helpers.
Doing so would allow us to add aspect ratios different from what HDMI or
CEA define.
> /*
> * Non-global properties, but "required" for certain connectors.
> */
> @@ -1344,6 +1350,31 @@ 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.
> + */
> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
> +{
> + struct drm_property *aspect_ratio;
> +
> + if (dev->mode_config.aspect_ratio_property)
> + return 0;
> +
> + aspect_ratio =
> + drm_property_create_enum(dev, 0, "aspect ratio",
> + drm_aspect_ratio_enum_list,
> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
> +
> + dev->mode_config.aspect_ratio_property = aspect_ratio;
I don't think you need the temporary aspect_ratio variable here. Can't
you directly assign the new property to .aspect_ratio_property?
Thierry
[-- Attachment #1.2: Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/3] drm/crtc: Add property for aspect ratio
2014-05-22 11:38 ` Thierry Reding
@ 2014-05-23 10:41 ` Vandana Kannan
0 siblings, 0 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-05-23 10:41 UTC (permalink / raw)
To: Thierry Reding
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
On May-22-2014 5:08 PM, Thierry Reding wrote:
> On Thu, May 22, 2014 at 04:50:48PM +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.
>>
>> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
>> Cc: dri-devel@lists.freedesktop.org
>> ---
>> drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
>> include/drm/drm_crtc.h | 2 ++
>> 2 files changed, 33 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
>> index 37a3e07..84d359e 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[] = {
>> + { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
>> + { HDMI_PICTURE_ASPECT_4_3, "4:3" },
>> + { HDMI_PICTURE_ASPECT_16_9, "16:9" },
>> +};
>
> This seems like it should be either an HDMI specific property, since it
> uses values defined by HDMI/CEA. Alternatively we could introduce some
> new generic enumeration and translate that to the HDMI/CEA equivalent in
> the AVI infoframe helpers.
>
> Doing so would allow us to add aspect ratios different from what HDMI or
> CEA define.
>
>> /*
>> * Non-global properties, but "required" for certain connectors.
>> */
>> @@ -1344,6 +1350,31 @@ 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.
>> + */
>> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
>> +{
>> + struct drm_property *aspect_ratio;
>> +
>> + if (dev->mode_config.aspect_ratio_property)
>> + return 0;
>> +
>> + aspect_ratio =
>> + drm_property_create_enum(dev, 0, "aspect ratio",
>> + drm_aspect_ratio_enum_list,
>> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
>> +
>> + dev->mode_config.aspect_ratio_property = aspect_ratio;
>
> I don't think you need the temporary aspect_ratio variable here. Can't
> you directly assign the new property to .aspect_ratio_property?
>
> Thierry
>
Thanks for your inputs.
I will make the following changes and resend the patch..
- Make the enum generic and translate that to the HDMI/CEA equivalent
for AVI IF.
- Remove the temporary aspect_ratio variable.
Thanks,
Vandana
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Intel-gfx] [PATCH 1/3] drm/crtc: Add property for aspect ratio
2014-05-22 11:20 Vandana Kannan
2014-05-22 11:38 ` Thierry Reding
@ 2014-05-22 12:16 ` Daniel Vetter
2014-05-23 10:48 ` Vandana Kannan
1 sibling, 1 reply; 10+ messages in thread
From: Daniel Vetter @ 2014-05-22 12:16 UTC (permalink / raw)
To: Vandana Kannan; +Cc: intel-gfx, dri-devel
On Thu, May 22, 2014 at 04:50:48PM +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.
>
> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
> Cc: dri-devel@lists.freedesktop.org
Documentation update is missing. Also for such patch series I recommend to
post the entire patch series to dri-devel and intel-gfx. Otherwise people
on dri-devel don't see how the new code is used and so can't really review
it properly.
-Daniel
> ---
> drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
> include/drm/drm_crtc.h | 2 ++
> 2 files changed, 33 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 37a3e07..84d359e 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[] = {
> + { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
> + { HDMI_PICTURE_ASPECT_4_3, "4:3" },
> + { HDMI_PICTURE_ASPECT_16_9, "16:9" },
> +};
> +
> /*
> * Non-global properties, but "required" for certain connectors.
> */
> @@ -1344,6 +1350,31 @@ 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.
> + */
> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
> +{
> + struct drm_property *aspect_ratio;
> +
> + if (dev->mode_config.aspect_ratio_property)
> + return 0;
> +
> + aspect_ratio =
> + drm_property_create_enum(dev, 0, "aspect ratio",
> + drm_aspect_ratio_enum_list,
> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
> +
> + dev->mode_config.aspect_ratio_property = aspect_ratio;
> +
> + 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);
>
> --
> 1.9.3
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/3] drm/crtc: Add property for aspect ratio
2014-05-22 12:16 ` [Intel-gfx] " Daniel Vetter
@ 2014-05-23 10:48 ` Vandana Kannan
0 siblings, 0 replies; 10+ messages in thread
From: Vandana Kannan @ 2014-05-23 10:48 UTC (permalink / raw)
To: Daniel Vetter
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
On May-22-2014 5:46 PM, Daniel Vetter wrote:
> On Thu, May 22, 2014 at 04:50:48PM +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.
>>
>> Signed-off-by: Vandana Kannan <vandana.kannan@intel.com>
>> Cc: dri-devel@lists.freedesktop.org
>
> Documentation update is missing. Also for such patch series I recommend to
> post the entire patch series to dri-devel and intel-gfx. Otherwise people
> on dri-devel don't see how the new code is used and so can't really review
> it properly.
> -Daniel
>
Thanks for your inputs.
I will send the Documentation change along with the rest of the patches
(when I resend them).
Resent patch 3 adding dri-devel..
Thanks,
Vandana
>> ---
>> drivers/gpu/drm/drm_crtc.c | 31 +++++++++++++++++++++++++++++++
>> include/drm/drm_crtc.h | 2 ++
>> 2 files changed, 33 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
>> index 37a3e07..84d359e 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[] = {
>> + { HDMI_PICTURE_ASPECT_NONE, "Automatic" },
>> + { HDMI_PICTURE_ASPECT_4_3, "4:3" },
>> + { HDMI_PICTURE_ASPECT_16_9, "16:9" },
>> +};
>> +
>> /*
>> * Non-global properties, but "required" for certain connectors.
>> */
>> @@ -1344,6 +1350,31 @@ 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.
>> + */
>> +int drm_mode_create_aspect_ratio_property(struct drm_device *dev)
>> +{
>> + struct drm_property *aspect_ratio;
>> +
>> + if (dev->mode_config.aspect_ratio_property)
>> + return 0;
>> +
>> + aspect_ratio =
>> + drm_property_create_enum(dev, 0, "aspect ratio",
>> + drm_aspect_ratio_enum_list,
>> + ARRAY_SIZE(drm_aspect_ratio_enum_list));
>> +
>> + dev->mode_config.aspect_ratio_property = aspect_ratio;
>> +
>> + 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);
>>
>> --
>> 1.9.3
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-05-23 10:48 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-07 10:03 [PATCH 1/3] drm/crtc: Add property for aspect ratio Vandana Kannan
2014-04-07 9:54 ` Vandana Kannan
2014-04-21 4:25 ` Vandana Kannan
2014-04-07 10:03 ` [PATCH 2/3] drm/edid: Check for user aspect ratio input Vandana Kannan
2014-04-07 10:03 ` [PATCH 3/3] drm/i915: Add aspect ratio property for HDMI Vandana Kannan
-- strict thread matches above, loose matches on Subject: below --
2014-04-07 11:25 [PATCH 1/3] drm/crtc: Add property for aspect ratio Vandana Kannan
2014-05-22 11:20 Vandana Kannan
2014-05-22 11:38 ` Thierry Reding
2014-05-23 10:41 ` Vandana Kannan
2014-05-22 12:16 ` [Intel-gfx] " Daniel Vetter
2014-05-23 10:48 ` Vandana Kannan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox