diff options
Diffstat (limited to 'include/drm/drm_crtc.h')
-rw-r--r-- | include/drm/drm_crtc.h | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 44e070800b6d..b618b506b04d 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <uapi/drm/drm_mode.h> | 35 | #include <uapi/drm/drm_mode.h> |
36 | #include <uapi/drm/drm_fourcc.h> | 36 | #include <uapi/drm/drm_fourcc.h> |
37 | #include <drm/drm_modeset_lock.h> | 37 | #include <drm/drm_modeset_lock.h> |
38 | #include <drm/drm_rect.h> | ||
38 | 39 | ||
39 | struct drm_device; | 40 | struct drm_device; |
40 | struct drm_mode_set; | 41 | struct drm_mode_set; |
@@ -83,14 +84,15 @@ static inline uint64_t I642U64(int64_t val) | |||
83 | * specified amount in degrees in counter clockwise direction. DRM_REFLECT_X and | 84 | * specified amount in degrees in counter clockwise direction. DRM_REFLECT_X and |
84 | * DRM_REFLECT_Y reflects the image along the specified axis prior to rotation | 85 | * DRM_REFLECT_Y reflects the image along the specified axis prior to rotation |
85 | */ | 86 | */ |
86 | #define DRM_ROTATE_MASK 0x0f | 87 | #define DRM_ROTATE_0 BIT(0) |
87 | #define DRM_ROTATE_0 0 | 88 | #define DRM_ROTATE_90 BIT(1) |
88 | #define DRM_ROTATE_90 1 | 89 | #define DRM_ROTATE_180 BIT(2) |
89 | #define DRM_ROTATE_180 2 | 90 | #define DRM_ROTATE_270 BIT(3) |
90 | #define DRM_ROTATE_270 3 | 91 | #define DRM_ROTATE_MASK (DRM_ROTATE_0 | DRM_ROTATE_90 | \ |
91 | #define DRM_REFLECT_MASK (~DRM_ROTATE_MASK) | 92 | DRM_ROTATE_180 | DRM_ROTATE_270) |
92 | #define DRM_REFLECT_X 4 | 93 | #define DRM_REFLECT_X BIT(4) |
93 | #define DRM_REFLECT_Y 5 | 94 | #define DRM_REFLECT_Y BIT(5) |
95 | #define DRM_REFLECT_MASK (DRM_REFLECT_X | DRM_REFLECT_Y) | ||
94 | 96 | ||
95 | enum drm_connector_force { | 97 | enum drm_connector_force { |
96 | DRM_FORCE_UNSPECIFIED, | 98 | DRM_FORCE_UNSPECIFIED, |
@@ -1414,6 +1416,9 @@ struct drm_connector { | |||
1414 | * @zpos: priority of the given plane on crtc (optional) | 1416 | * @zpos: priority of the given plane on crtc (optional) |
1415 | * @normalized_zpos: normalized value of zpos: unique, range from 0 to N-1 | 1417 | * @normalized_zpos: normalized value of zpos: unique, range from 0 to N-1 |
1416 | * where N is the number of active planes for given crtc | 1418 | * where N is the number of active planes for given crtc |
1419 | * @src: clipped source coordinates of the plane (in 16.16) | ||
1420 | * @dst: clipped destination coordinates of the plane | ||
1421 | * @visible: visibility of the plane | ||
1417 | * @state: backpointer to global drm_atomic_state | 1422 | * @state: backpointer to global drm_atomic_state |
1418 | */ | 1423 | */ |
1419 | struct drm_plane_state { | 1424 | struct drm_plane_state { |
@@ -1438,6 +1443,15 @@ struct drm_plane_state { | |||
1438 | unsigned int zpos; | 1443 | unsigned int zpos; |
1439 | unsigned int normalized_zpos; | 1444 | unsigned int normalized_zpos; |
1440 | 1445 | ||
1446 | /* Clipped coordinates */ | ||
1447 | struct drm_rect src, dst; | ||
1448 | |||
1449 | /* | ||
1450 | * Is the plane actually visible? Can be false even | ||
1451 | * if fb!=NULL and crtc!=NULL, due to clipping. | ||
1452 | */ | ||
1453 | bool visible; | ||
1454 | |||
1441 | struct drm_atomic_state *state; | 1455 | struct drm_atomic_state *state; |
1442 | }; | 1456 | }; |
1443 | 1457 | ||