diff mbox

[v14,10/10] drm: Add and handle new aspect ratios in DRM layer

Message ID 1525777785-9740-11-git-send-email-ankit.k.nautiyal@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ankit Nautiyal May 8, 2018, 11:09 a.m. UTC
From: "Sharma, Shashank" <shashank.sharma@intel.com>

HDMI 2.0/CEA-861-F introduces two new aspect ratios:
- 64:27
- 256:135

This patch:
-  Adds new DRM flags for to represent these new aspect ratios.
-  Adds new cases to handle these aspect ratios while converting
from user->kernel mode or vise versa.

This patch was once reviewed and merged, and later reverted due
to lack of DRM client protection, while adding aspect ratio bits
in user modes. This is a re-spin of the series, with DRM client
cap protection.

The previous series can be found here:
https://pw-emeril.freedesktop.org/series/10850/

Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org> (V2)
Reviewed-by: Jose Abreu <Jose.Abreu@synopsys.com> (V2)

Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Jose Abreu <Jose.Abreu@synopsys.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

V3: rebase
V4: rebase
V5: corrected the macro name for an aspect ratio, in a switch case.
V6: rebase
V7: rebase
V8: rebase
V9: rebase
V10: rebase
V11: rebase
V12: rebase
V13: rebase
V14: rebase
---
 drivers/gpu/drm/drm_modes.c | 12 ++++++++++++
 include/uapi/drm/drm_mode.h |  6 ++++++
 2 files changed, 18 insertions(+)

Comments

Daniel Vetter May 9, 2018, 8:24 p.m. UTC | #1
On Tue, May 08, 2018 at 04:39:45PM +0530, Nautiyal, Ankit K wrote:
> From: "Sharma, Shashank" <shashank.sharma@intel.com>
> 
> HDMI 2.0/CEA-861-F introduces two new aspect ratios:
> - 64:27
> - 256:135
> 
> This patch:
> -  Adds new DRM flags for to represent these new aspect ratios.
> -  Adds new cases to handle these aspect ratios while converting
> from user->kernel mode or vise versa.
> 
> This patch was once reviewed and merged, and later reverted due
> to lack of DRM client protection, while adding aspect ratio bits
> in user modes. This is a re-spin of the series, with DRM client
> cap protection.
> 
> The previous series can be found here:
> https://pw-emeril.freedesktop.org/series/10850/
> 
> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
> Reviewed-by: Sean Paul <seanpaul@chromium.org> (V2)
> Reviewed-by: Jose Abreu <Jose.Abreu@synopsys.com> (V2)
> 
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>

Since I bikeshedded the drm core bits and they all look good now imo, on
patches 6-10:

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> V3: rebase
> V4: rebase
> V5: corrected the macro name for an aspect ratio, in a switch case.
> V6: rebase
> V7: rebase
> V8: rebase
> V9: rebase
> V10: rebase
> V11: rebase
> V12: rebase
> V13: rebase
> V14: rebase
> ---
>  drivers/gpu/drm/drm_modes.c | 12 ++++++++++++
>  include/uapi/drm/drm_mode.h |  6 ++++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
> index 7dfabdd..c78ca0e 100644
> --- a/drivers/gpu/drm/drm_modes.c
> +++ b/drivers/gpu/drm/drm_modes.c
> @@ -1656,6 +1656,12 @@ void drm_mode_convert_to_umode(struct drm_mode_modeinfo *out,
>  	case HDMI_PICTURE_ASPECT_16_9:
>  		out->flags |= DRM_MODE_FLAG_PIC_AR_16_9;
>  		break;
> +	case HDMI_PICTURE_ASPECT_64_27:
> +		out->flags |= DRM_MODE_FLAG_PIC_AR_64_27;
> +		break;
> +	case HDMI_PICTURE_ASPECT_256_135:
> +		out->flags |= DRM_MODE_FLAG_PIC_AR_256_135;
> +		break;
>  	case HDMI_PICTURE_ASPECT_RESERVED:
>  	default:
>  		out->flags |= DRM_MODE_FLAG_PIC_AR_NONE;
> @@ -1721,6 +1727,12 @@ int drm_mode_convert_umode(struct drm_device *dev,
>  	case DRM_MODE_FLAG_PIC_AR_16_9:
>  		out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_16_9;
>  		break;
> +	case DRM_MODE_FLAG_PIC_AR_64_27:
> +		out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_64_27;
> +		break;
> +	case DRM_MODE_FLAG_PIC_AR_256_135:
> +		out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_256_135;
> +		break;
>  	default:
>  		out->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
>  		break;
> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> index 50bcf42..4b3a1bb 100644
> --- a/include/uapi/drm/drm_mode.h
> +++ b/include/uapi/drm/drm_mode.h
> @@ -93,6 +93,8 @@ extern "C" {
>  #define DRM_MODE_PICTURE_ASPECT_NONE		0
>  #define DRM_MODE_PICTURE_ASPECT_4_3		1
>  #define DRM_MODE_PICTURE_ASPECT_16_9		2
> +#define DRM_MODE_PICTURE_ASPECT_64_27		3
> +#define DRM_MODE_PICTURE_ASPECT_256_135		4
>  
>  /* Aspect ratio flag bitmask (4 bits 22:19) */
>  #define DRM_MODE_FLAG_PIC_AR_MASK		(0x0F<<19)
> @@ -102,6 +104,10 @@ extern "C" {
>  			(DRM_MODE_PICTURE_ASPECT_4_3<<19)
>  #define  DRM_MODE_FLAG_PIC_AR_16_9 \
>  			(DRM_MODE_PICTURE_ASPECT_16_9<<19)
> +#define  DRM_MODE_FLAG_PIC_AR_64_27 \
> +			(DRM_MODE_PICTURE_ASPECT_64_27<<19)
> +#define  DRM_MODE_FLAG_PIC_AR_256_135 \
> +			(DRM_MODE_PICTURE_ASPECT_256_135<<19)
>  
>  #define  DRM_MODE_FLAG_ALL	(DRM_MODE_FLAG_PHSYNC |		\
>  				 DRM_MODE_FLAG_NHSYNC |		\
> -- 
> 2.7.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Maarten Lankhorst May 11, 2018, 7:27 a.m. UTC | #2
Op 09-05-18 om 22:24 schreef Daniel Vetter:
> On Tue, May 08, 2018 at 04:39:45PM +0530, Nautiyal, Ankit K wrote:
>> From: "Sharma, Shashank" <shashank.sharma@intel.com>
>>
>> HDMI 2.0/CEA-861-F introduces two new aspect ratios:
>> - 64:27
>> - 256:135
>>
>> This patch:
>> -  Adds new DRM flags for to represent these new aspect ratios.
>> -  Adds new cases to handle these aspect ratios while converting
>> from user->kernel mode or vise versa.
>>
>> This patch was once reviewed and merged, and later reverted due
>> to lack of DRM client protection, while adding aspect ratio bits
>> in user modes. This is a re-spin of the series, with DRM client
>> cap protection.
>>
>> The previous series can be found here:
>> https://pw-emeril.freedesktop.org/series/10850/
>>
>> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
>> Reviewed-by: Sean Paul <seanpaul@chromium.org> (V2)
>> Reviewed-by: Jose Abreu <Jose.Abreu@synopsys.com> (V2)
>>
>> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
>> Cc: Sean Paul <seanpaul@chromium.org>
>> Cc: Jose Abreu <Jose.Abreu@synopsys.com>
>> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Since I bikeshedded the drm core bits and they all look good now imo, on
> patches 6-10:
>
> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Thanks, pushed with ack. :)
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index 7dfabdd..c78ca0e 100644
--- a/drivers/gpu/drm/drm_modes.c
+++ b/drivers/gpu/drm/drm_modes.c
@@ -1656,6 +1656,12 @@  void drm_mode_convert_to_umode(struct drm_mode_modeinfo *out,
 	case HDMI_PICTURE_ASPECT_16_9:
 		out->flags |= DRM_MODE_FLAG_PIC_AR_16_9;
 		break;
+	case HDMI_PICTURE_ASPECT_64_27:
+		out->flags |= DRM_MODE_FLAG_PIC_AR_64_27;
+		break;
+	case HDMI_PICTURE_ASPECT_256_135:
+		out->flags |= DRM_MODE_FLAG_PIC_AR_256_135;
+		break;
 	case HDMI_PICTURE_ASPECT_RESERVED:
 	default:
 		out->flags |= DRM_MODE_FLAG_PIC_AR_NONE;
@@ -1721,6 +1727,12 @@  int drm_mode_convert_umode(struct drm_device *dev,
 	case DRM_MODE_FLAG_PIC_AR_16_9:
 		out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_16_9;
 		break;
+	case DRM_MODE_FLAG_PIC_AR_64_27:
+		out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_64_27;
+		break;
+	case DRM_MODE_FLAG_PIC_AR_256_135:
+		out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_256_135;
+		break;
 	default:
 		out->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
 		break;
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 50bcf42..4b3a1bb 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -93,6 +93,8 @@  extern "C" {
 #define DRM_MODE_PICTURE_ASPECT_NONE		0
 #define DRM_MODE_PICTURE_ASPECT_4_3		1
 #define DRM_MODE_PICTURE_ASPECT_16_9		2
+#define DRM_MODE_PICTURE_ASPECT_64_27		3
+#define DRM_MODE_PICTURE_ASPECT_256_135		4
 
 /* Aspect ratio flag bitmask (4 bits 22:19) */
 #define DRM_MODE_FLAG_PIC_AR_MASK		(0x0F<<19)
@@ -102,6 +104,10 @@  extern "C" {
 			(DRM_MODE_PICTURE_ASPECT_4_3<<19)
 #define  DRM_MODE_FLAG_PIC_AR_16_9 \
 			(DRM_MODE_PICTURE_ASPECT_16_9<<19)
+#define  DRM_MODE_FLAG_PIC_AR_64_27 \
+			(DRM_MODE_PICTURE_ASPECT_64_27<<19)
+#define  DRM_MODE_FLAG_PIC_AR_256_135 \
+			(DRM_MODE_PICTURE_ASPECT_256_135<<19)
 
 #define  DRM_MODE_FLAG_ALL	(DRM_MODE_FLAG_PHSYNC |		\
 				 DRM_MODE_FLAG_NHSYNC |		\