Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d6471ef authored by Shashank Sharma's avatar Shashank Sharma Committed by Navid Bahrani
Browse files

drm: Add and handle new aspect ratios in DRM layer



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.

V2: Rebase
V3: Align macro for DRM_MODE_PICTURE_ASPECT_256_135 (Jim Bride)
V4: Added r-b from Jose.

Change-Id: Iab14d11e2a69d1ecb016edd2ad6ee8edb228f095
Signed-off-by: default avatarShashank Sharma <shashank.sharma@intel.com>
Reviewed-by: default avatarSean Paul <seanpaul@chromium.org>
Reviewed-by: default avatarJose Abreu <Jose.Abreu@synopsys.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1476705880-15600-5-git-send-email-shashank.sharma@intel.com
Git-commit: a68362fe3e84fcbedd49939aa200519aa5410135
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


[nbahrani@codeaurora.org: resolved msm specific merge conflicts]
Signed-off-by: default avatarNavid Bahrani <nbahrani@codeaurora.org>
parent 87d2f088
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1455,6 +1455,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 DRM_MODE_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;
@@ -1516,6 +1522,12 @@ int drm_mode_convert_umode(struct drm_display_mode *out,
	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;
+6 −0
Original line number Diff line number Diff line
@@ -84,6 +84,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 27:24) */
#define DRM_MODE_FLAG_PIC_AR_MASK		(0x0F<<24)
@@ -93,6 +95,10 @@ extern "C" {
			(DRM_MODE_PICTURE_ASPECT_4_3<<24)
#define  DRM_MODE_FLAG_PIC_AR_16_9 \
			(DRM_MODE_PICTURE_ASPECT_16_9<<24)
#define  DRM_MODE_FLAG_PIC_AR_64_27 \
			(DRM_MODE_PICTURE_ASPECT_64_27<<24)
#define  DRM_MODE_FLAG_PIC_AR_256_135 \
			(DRM_MODE_PICTURE_ASPECT_256_135<<24)

/* DPMS flags */
/* bit compatible with the xorg definitions. */