diff options
author | Rob Clark <rob@ti.com> | 2012-09-04 16:35:56 +0000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-10-02 22:16:07 +1000 |
commit | 7c80e128429d639742043f8fbdd7f1551c940ea3 (patch) | |
tree | d387994498a91a65785ab7e0e559531c45395323 /include/drm | |
parent | f7eff60ea0e4e35732604e3591e2ff7b3ef41981 (diff) | |
download | linux-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.h | 5 |
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; |