summaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorRob Clark <rob@ti.com>2012-09-04 16:35:56 +0000
committerDave Airlie <airlied@redhat.com>2012-10-02 22:16:07 +1000
commit7c80e128429d639742043f8fbdd7f1551c940ea3 (patch)
treed387994498a91a65785ab7e0e559531c45395323 /include/drm
parentf7eff60ea0e4e35732604e3591e2ff7b3ef41981 (diff)
downloadlinux-stable-7c80e128429d639742043f8fbdd7f1551c940ea3.tar.gz
linux-stable-7c80e128429d639742043f8fbdd7f1551c940ea3.tar.bz2
linux-stable-7c80e128429d639742043f8fbdd7f1551c940ea3.zip
drm: support for rotated scanout
For drivers that can support rotated scanout, the extra parameter checking in drm-core, while nice, tends to get confused. To solve this drivers can set the crtc or plane invert_dimensions field so that the dimension checking takes into account the rotation that the driver is performing. v1: original v2: remove invert_dimensions from plane, at Ville's suggestion. Userspace can give rotated src coordinates, so invert_dimensions is not required for planes. Signed-off-by: Rob Clark <rob@ti.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_crtc.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 68fdb299e39f..8e405b82707d 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -368,6 +368,9 @@ struct drm_crtc_funcs {
* @enabled: is this CRTC enabled?
* @mode: current mode timings
* @hwmode: mode timings as programmed to hw regs
+ * @invert_dimensions: for purposes of error checking crtc vs fb sizes,
+ * invert the width/height of the crtc. This is used if the driver
+ * is performing 90 or 270 degree rotated scanout
* @x: x position on screen
* @y: y position on screen
* @funcs: CRTC control functions
@@ -401,6 +404,8 @@ struct drm_crtc {
*/
struct drm_display_mode hwmode;
+ bool invert_dimensions;
+
int x, y;
const struct drm_crtc_funcs *funcs;