[Intel-gfx] [PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-07-09 Thread Jesse Barnes
Daniel, looks like this series has some r-bs; iirc this fixed some Asus
HDMI monitors too (and who knows how many TVs).

Jesse

On Thu, 22 May 2014 16:50:48 +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 
> Cc: dri-devel at 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);
>  


-- 
Jesse Barnes, Intel Open Source Technology Center


[Intel-gfx] [PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-26 Thread Vandana Kannan
On May-23-2014 4:18 PM, Vandana Kannan wrote:
> 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 
>>> Cc: dri-devel at 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

Hi Daniel,
For the Documentation update, should HTML table format be used in
drm.tmpl or is there some other method?
-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 at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>
> 
> ___
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 



[Intel-gfx] [PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-26 Thread Daniel Vetter
On Mon, May 26, 2014 at 11:00:41AM +0530, Vandana Kannan wrote:
> On May-23-2014 4:18 PM, Vandana Kannan wrote:
> > 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 
> >>> Cc: dri-devel at 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
> 
> Hi Daniel,
> For the Documentation update, should HTML table format be used in
> drm.tmpl or is there some other method?

Currently we only have the html table.
-Daniel

> -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 at lists.freedesktop.org
> >>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >>
> > 
> > ___
> > Intel-gfx mailing list
> > Intel-gfx at 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


[Intel-gfx] [PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-23 Thread Vandana Kannan
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 
>> Cc: dri-devel at 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 at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 



[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-23 Thread Vandana Kannan
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 
>> Cc: dri-devel at 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



[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-22 Thread Vandana Kannan
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 
Cc: dri-devel at 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



[Intel-gfx] [PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-22 Thread Daniel Vetter
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 
> Cc: dri-devel at 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 at 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


[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-05-22 Thread Thierry Reding
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 
> Cc: dri-devel at 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
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: 



[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-04-21 Thread Vandana Kannan
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 
>> Cc: dri-devel at 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 at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
> 



[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-04-07 Thread Vandana Kannan
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 
Cc: dri-devel at 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



[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-04-07 Thread Vandana Kannan
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 
Cc: dri-devel at 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



[PATCH 1/3] drm/crtc: Add property for aspect ratio

2014-04-07 Thread Vandana Kannan
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 
> Cc: dri-devel at 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);
>  
>