| From e50c807fd4bc10bb9aa712884d618eb7e04832fb Mon Sep 17 00:00:00 2001 |
| From: Damien Lespiau <damien.lespiau@intel.com> |
| Date: Wed, 25 Sep 2013 16:45:21 +0100 |
| Subject: drm: Add HDMI stereo 3D flags to struct drm_mode_modeinfo |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| HDMI 1.4a defines a few layouts that we'd like to expose. This commits |
| add new modeinfo flags that can be used to list the supported stereo |
| layouts (when querying the list of modes) and to set a given stereo 3D |
| mode (when setting a mode). |
| |
| v2: Add a drm_mode_is_stereo() helper |
| |
| Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> |
| Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> |
| Acked-by: Dave Airlie <airlied@gmail.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 4aa17cf0d889cfc984b68a78ae02070cef21bb6b) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| include/drm/drm_crtc.h | 14 ++++++++++++++ |
| include/uapi/drm/drm_mode.h | 36 ++++++++++++++++++++++-------------- |
| 2 files changed, 36 insertions(+), 14 deletions(-) |
| |
| diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h |
| index c2f130e584c3..f96e7ff0035b 100644 |
| --- a/include/drm/drm_crtc.h |
| +++ b/include/drm/drm_crtc.h |
| @@ -179,6 +179,20 @@ struct drm_display_mode { |
| int hsync; /* in kHz */ |
| }; |
| |
| +#define DRM_MODE_FLAG_3D_MASK (DRM_MODE_FLAG_3D_FRAME_PACKING | \ |
| + DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE | \ |
| + DRM_MODE_FLAG_3D_LINE_ALTERNATIVE | \ |
| + DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL | \ |
| + DRM_MODE_FLAG_3D_L_DEPTH | \ |
| + DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH | \ |
| + DRM_MODE_FLAG_3D_TOP_AND_BOTTOM | \ |
| + DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF) |
| + |
| +static inline bool drm_mode_is_stereo(const struct drm_display_mode *mode) |
| +{ |
| + return mode->flags & DRM_MODE_FLAG_3D_MASK; |
| +} |
| + |
| enum drm_connector_status { |
| connector_status_connected = 1, |
| connector_status_disconnected = 2, |
| diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h |
| index cc2e00eac2f1..acc75bac67f1 100644 |
| --- a/include/uapi/drm/drm_mode.h |
| +++ b/include/uapi/drm/drm_mode.h |
| @@ -44,20 +44,28 @@ |
| |
| /* Video mode flags */ |
| /* bit compatible with the xorg definitions. */ |
| -#define DRM_MODE_FLAG_PHSYNC (1<<0) |
| -#define DRM_MODE_FLAG_NHSYNC (1<<1) |
| -#define DRM_MODE_FLAG_PVSYNC (1<<2) |
| -#define DRM_MODE_FLAG_NVSYNC (1<<3) |
| -#define DRM_MODE_FLAG_INTERLACE (1<<4) |
| -#define DRM_MODE_FLAG_DBLSCAN (1<<5) |
| -#define DRM_MODE_FLAG_CSYNC (1<<6) |
| -#define DRM_MODE_FLAG_PCSYNC (1<<7) |
| -#define DRM_MODE_FLAG_NCSYNC (1<<8) |
| -#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ |
| -#define DRM_MODE_FLAG_BCAST (1<<10) |
| -#define DRM_MODE_FLAG_PIXMUX (1<<11) |
| -#define DRM_MODE_FLAG_DBLCLK (1<<12) |
| -#define DRM_MODE_FLAG_CLKDIV2 (1<<13) |
| +#define DRM_MODE_FLAG_PHSYNC (1<<0) |
| +#define DRM_MODE_FLAG_NHSYNC (1<<1) |
| +#define DRM_MODE_FLAG_PVSYNC (1<<2) |
| +#define DRM_MODE_FLAG_NVSYNC (1<<3) |
| +#define DRM_MODE_FLAG_INTERLACE (1<<4) |
| +#define DRM_MODE_FLAG_DBLSCAN (1<<5) |
| +#define DRM_MODE_FLAG_CSYNC (1<<6) |
| +#define DRM_MODE_FLAG_PCSYNC (1<<7) |
| +#define DRM_MODE_FLAG_NCSYNC (1<<8) |
| +#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ |
| +#define DRM_MODE_FLAG_BCAST (1<<10) |
| +#define DRM_MODE_FLAG_PIXMUX (1<<11) |
| +#define DRM_MODE_FLAG_DBLCLK (1<<12) |
| +#define DRM_MODE_FLAG_CLKDIV2 (1<<13) |
| +#define DRM_MODE_FLAG_3D_FRAME_PACKING (1<<14) |
| +#define DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE (1<<15) |
| +#define DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (1<<16) |
| +#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL (1<<17) |
| +#define DRM_MODE_FLAG_3D_L_DEPTH (1<<18) |
| +#define DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH (1<<19) |
| +#define DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (1<<20) |
| +#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF (1<<21) |
| |
| /* DPMS flags */ |
| /* bit compatible with the xorg definitions. */ |
| -- |
| 1.8.5.rc3 |
| |