aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2013-09-25 11:45:21 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-10-01 01:45:27 -0400
commit4aa17cf0d889cfc984b68a78ae02070cef21bb6b (patch)
tree7e9fd3b02c478a4899ee80a87317450787259bdd
parent1c0814fed3a558146402713028cb7114734ec172 (diff)
drm: Add HDMI stereo 3D flags to struct drm_mode_modeinfo
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>
-rw-r--r--include/drm/drm_crtc.h14
-rw-r--r--include/uapi/drm/drm_mode.h36
2 files changed, 36 insertions, 14 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 24f499569a2f..825d6fad0981 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -180,6 +180,20 @@ struct drm_display_mode {
180 int hsync; /* in kHz */ 180 int hsync; /* in kHz */
181}; 181};
182 182
183#define DRM_MODE_FLAG_3D_MASK (DRM_MODE_FLAG_3D_FRAME_PACKING | \
184 DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE | \
185 DRM_MODE_FLAG_3D_LINE_ALTERNATIVE | \
186 DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL | \
187 DRM_MODE_FLAG_3D_L_DEPTH | \
188 DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH | \
189 DRM_MODE_FLAG_3D_TOP_AND_BOTTOM | \
190 DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF)
191
192static inline bool drm_mode_is_stereo(const struct drm_display_mode *mode)
193{
194 return mode->flags & DRM_MODE_FLAG_3D_MASK;
195}
196
183enum drm_connector_status { 197enum drm_connector_status {
184 connector_status_connected = 1, 198 connector_status_connected = 1,
185 connector_status_disconnected = 2, 199 connector_status_disconnected = 2,
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 113d32457fa4..bafe61252754 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -44,20 +44,28 @@
44 44
45/* Video mode flags */ 45/* Video mode flags */
46/* bit compatible with the xorg definitions. */ 46/* bit compatible with the xorg definitions. */
47#define DRM_MODE_FLAG_PHSYNC (1<<0) 47#define DRM_MODE_FLAG_PHSYNC (1<<0)
48#define DRM_MODE_FLAG_NHSYNC (1<<1) 48#define DRM_MODE_FLAG_NHSYNC (1<<1)
49#define DRM_MODE_FLAG_PVSYNC (1<<2) 49#define DRM_MODE_FLAG_PVSYNC (1<<2)
50#define DRM_MODE_FLAG_NVSYNC (1<<3) 50#define DRM_MODE_FLAG_NVSYNC (1<<3)
51#define DRM_MODE_FLAG_INTERLACE (1<<4) 51#define DRM_MODE_FLAG_INTERLACE (1<<4)
52#define DRM_MODE_FLAG_DBLSCAN (1<<5) 52#define DRM_MODE_FLAG_DBLSCAN (1<<5)
53#define DRM_MODE_FLAG_CSYNC (1<<6) 53#define DRM_MODE_FLAG_CSYNC (1<<6)
54#define DRM_MODE_FLAG_PCSYNC (1<<7) 54#define DRM_MODE_FLAG_PCSYNC (1<<7)
55#define DRM_MODE_FLAG_NCSYNC (1<<8) 55#define DRM_MODE_FLAG_NCSYNC (1<<8)
56#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ 56#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */
57#define DRM_MODE_FLAG_BCAST (1<<10) 57#define DRM_MODE_FLAG_BCAST (1<<10)
58#define DRM_MODE_FLAG_PIXMUX (1<<11) 58#define DRM_MODE_FLAG_PIXMUX (1<<11)
59#define DRM_MODE_FLAG_DBLCLK (1<<12) 59#define DRM_MODE_FLAG_DBLCLK (1<<12)
60#define DRM_MODE_FLAG_CLKDIV2 (1<<13) 60#define DRM_MODE_FLAG_CLKDIV2 (1<<13)
61#define DRM_MODE_FLAG_3D_FRAME_PACKING (1<<14)
62#define DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE (1<<15)
63#define DRM_MODE_FLAG_3D_LINE_ALTERNATIVE (1<<16)
64#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL (1<<17)
65#define DRM_MODE_FLAG_3D_L_DEPTH (1<<18)
66#define DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH (1<<19)
67#define DRM_MODE_FLAG_3D_TOP_AND_BOTTOM (1<<20)
68#define DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF (1<<21)
61 69
62/* DPMS flags */ 70/* DPMS flags */
63/* bit compatible with the xorg definitions. */ 71/* bit compatible with the xorg definitions. */