drm: Add and handle new aspect ratios in DRM layer
authorShashank Sharma <shashank.sharma@intel.com>
Mon, 17 Oct 2016 12:04:40 +0000 (17:34 +0530)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 17 Oct 2016 12:23:58 +0000 (14:23 +0200)
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.

Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Jose Abreu <Jose.Abreu@synopsys.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1476705880-15600-5-git-send-email-shashank.sharma@intel.com
drivers/gpu/drm/drm_modes.c
include/uapi/drm/drm_mode.h

index fde927a6cc5db27db805deba75a647e80b8ca76d..173b7d33583498fe80f1171b1bd679ab8637d5e9 100644 (file)
@@ -1509,6 +1509,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;
@@ -1570,6 +1576,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;
index 5c142b1387ac6191383cc8055f00f08b957e1b9e..084b50a02dc5fbe297e8df0708b61af4a2a18b9b 100644 (file)
@@ -81,6 +81,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)
@@ -90,6 +92,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)
 
 /* DPMS flags */
 /* bit compatible with the xorg definitions. */