.. | .. |
---|
23 | 23 | * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE |
---|
24 | 24 | * OF THIS SOFTWARE. |
---|
25 | 25 | */ |
---|
26 | | -#include <drm/drmP.h> |
---|
27 | | -#include <drm/drm_atomic.h> |
---|
28 | | -#include <drm/drm_blend.h> |
---|
| 26 | + |
---|
29 | 27 | #include <linux/export.h> |
---|
30 | 28 | #include <linux/slab.h> |
---|
31 | 29 | #include <linux/sort.h> |
---|
| 30 | + |
---|
| 31 | +#include <drm/drm_atomic.h> |
---|
| 32 | +#include <drm/drm_blend.h> |
---|
| 33 | +#include <drm/drm_device.h> |
---|
| 34 | +#include <drm/drm_print.h> |
---|
32 | 35 | |
---|
33 | 36 | #include "drm_crtc_internal.h" |
---|
34 | 37 | |
---|
.. | .. |
---|
101 | 104 | * Without this property the rectangle is only scaled, but not rotated or |
---|
102 | 105 | * reflected. |
---|
103 | 106 | * |
---|
| 107 | + * Possbile values: |
---|
| 108 | + * |
---|
| 109 | + * "rotate-<degrees>": |
---|
| 110 | + * Signals that a drm plane is rotated <degrees> degrees in counter |
---|
| 111 | + * clockwise direction. |
---|
| 112 | + * |
---|
| 113 | + * "reflect-<axis>": |
---|
| 114 | + * Signals that the contents of a drm plane is reflected along the |
---|
| 115 | + * <axis> axis, in the same way as mirroring. |
---|
| 116 | + * |
---|
| 117 | + * reflect-x:: |
---|
| 118 | + * |
---|
| 119 | + * |o | | o| |
---|
| 120 | + * | | -> | | |
---|
| 121 | + * | v| |v | |
---|
| 122 | + * |
---|
| 123 | + * reflect-y:: |
---|
| 124 | + * |
---|
| 125 | + * |o | | ^| |
---|
| 126 | + * | | -> | | |
---|
| 127 | + * | v| |o | |
---|
| 128 | + * |
---|
104 | 129 | * zpos: |
---|
105 | 130 | * Z position is set up with drm_plane_create_zpos_immutable_property() and |
---|
106 | 131 | * drm_plane_create_zpos_property(). It controls the visibility of overlapping |
---|
107 | 132 | * planes. Without this property the primary plane is always below the cursor |
---|
108 | | - * plane, and ordering between all other planes is undefined. |
---|
| 133 | + * plane, and ordering between all other planes is undefined. The positive |
---|
| 134 | + * Z axis points towards the user, i.e. planes with lower Z position values |
---|
| 135 | + * are underneath planes with higher Z position values. Two planes with the |
---|
| 136 | + * same Z position value have undefined ordering. Note that the Z position |
---|
| 137 | + * value can also be immutable, to inform userspace about the hard-coded |
---|
| 138 | + * stacking of planes, see drm_plane_create_zpos_immutable_property(). If |
---|
| 139 | + * any plane has a zpos property (either mutable or immutable), then all |
---|
| 140 | + * planes shall have a zpos property. |
---|
109 | 141 | * |
---|
110 | 142 | * pixel blend mode: |
---|
111 | 143 | * Pixel blend mode is set up with drm_plane_create_blend_mode_property(). |
---|
.. | .. |
---|
152 | 184 | * Plane alpha value set by the plane "alpha" property. If the |
---|
153 | 185 | * plane does not expose the "alpha" property, then this is |
---|
154 | 186 | * assumed to be 1.0 |
---|
| 187 | + * |
---|
| 188 | + * IN_FORMATS: |
---|
| 189 | + * Blob property which contains the set of buffer format and modifier |
---|
| 190 | + * pairs supported by this plane. The blob is a drm_format_modifier_blob |
---|
| 191 | + * struct. Without this property the plane doesn't support buffers with |
---|
| 192 | + * modifiers. Userspace cannot change this property. |
---|
155 | 193 | * |
---|
156 | 194 | * Note that all the property extensions described here apply either to the |
---|
157 | 195 | * plane or the CRTC (e.g. for the background color, which currently is not |
---|
.. | .. |
---|
308 | 346 | * should be set to 0 and max to maximal number of planes for given crtc - 1. |
---|
309 | 347 | * |
---|
310 | 348 | * If zpos of some planes cannot be changed (like fixed background or |
---|
311 | | - * cursor/topmost planes), driver should adjust min/max values and assign those |
---|
312 | | - * planes immutable zpos property with lower or higher values (for more |
---|
| 349 | + * cursor/topmost planes), drivers shall adjust the min/max values and assign |
---|
| 350 | + * those planes immutable zpos properties with lower or higher values (for more |
---|
313 | 351 | * information, see drm_plane_create_zpos_immutable_property() function). In such |
---|
314 | | - * case driver should also assign proper initial zpos values for all planes in |
---|
| 352 | + * case drivers shall also assign proper initial zpos values for all planes in |
---|
315 | 353 | * its plane_reset() callback, so the planes will be always sorted properly. |
---|
316 | 354 | * |
---|
317 | 355 | * See also drm_atomic_normalize_zpos(). |
---|