Lines Matching full:plane
39 * struct drm_plane_state - mutable plane state
48 /** @plane: backpointer to the plane */
49 struct drm_plane *plane; member
85 * Left position of visible portion of plane on crtc, signed dest
93 * Upper position of visible portion of plane on crtc, signed dest
98 /** @crtc_w: width of visible portion of plane on crtc */
99 /** @crtc_h: height of visible portion of plane on crtc */
103 * @src_x: left position of visible portion of plane within plane (in
108 * @src_y: upper position of visible portion of plane within plane (in
112 /** @src_w: width of visible portion of plane (in 16.16) */
113 /** @src_h: height of visible portion of plane (in 16.16) */
118 * Opacity of the plane with 0 as completely transparent and 0xffff as
127 * the current plane are composited with the background. Value can be
134 * Rotation of the plane. See drm_plane_create_rotation_property() for
141 * Priority of the given plane on crtc (optional).
146 * plane object IDs; the plane with a higher ID is stacked on top of a
147 * plane with a lower ID.
180 * Blob representing damage (area in plane framebuffer that changed
181 * since last plane update) as an array of &drm_mode_rect in framebuffer
182 * coodinates of the attached framebuffer. Note that unlike plane src,
190 * source coordinates of the plane (in 16.16).
200 * clipped destination coordinates of the plane.
212 * Visibility of the plane. This can be false even if fb!=NULL and
219 * and for async plane updates.
254 * struct drm_plane_funcs - driver plane control functions
260 * This is the legacy entry point to enable and configure the plane for
262 * plane, i.e. the passed-in crtc and fb paramters are never NULL.
266 * values). Devices that don't support subpixel plane coordinates can
283 int (*update_plane)(struct drm_plane *plane,
294 * This is the legacy entry point to disable the plane. The DRM core
306 int (*disable_plane)(struct drm_plane *plane,
312 * Clean up plane resources. This is only called at driver unload time
313 * through drm_mode_config_cleanup() since a plane cannot be hotplugged
316 void (*destroy)(struct drm_plane *plane);
321 * Reset plane hardware and software state to off. This function isn't
328 void (*reset)(struct drm_plane *plane);
334 * plane.
344 int (*set_property)(struct drm_plane *plane,
350 * Duplicate the current atomic state for this plane and return it.
378 struct drm_plane_state *(*atomic_duplicate_state)(struct drm_plane *plane);
388 void (*atomic_destroy_state)(struct drm_plane *plane,
428 * asks for properties attached to this plane). No other validation is
433 int (*atomic_set_property)(struct drm_plane *plane,
454 * properties attached to this plane).
456 int (*atomic_get_property)(struct drm_plane *plane,
464 * interfaces attached to the plane like debugfs interfaces.
473 int (*late_register)(struct drm_plane *plane);
479 * userspace interfaces attached to the plane from
484 void (*early_unregister)(struct drm_plane *plane);
502 * format/modifier combination is valid for the plane. This allows the
506 * If not present, then any modifier in the plane's modifier
507 * list is allowed with any of the plane's formats.
511 * True if the given modifier is valid for that format on the plane.
514 bool (*format_mod_supported)(struct drm_plane *plane, uint32_t format,
519 * enum drm_plane_type - uapi plane type enumeration
523 * uapi semantics for them. For userspace which is universal plane aware and
530 * wish to receive a universal plane list containing all plane types. See also
548 * Primary planes represent a "main" plane for a CRTC. Primary planes
558 * Cursor planes represent a "cursor" plane for a CRTC. Cursor planes
567 * struct drm_plane - central DRM plane control structure
571 * the color conversion, see `Plane Composition Properties`_ for more details,
576 /** @dev: DRM device this plane belongs to */
594 * Protects modeset plane state, together with the &drm_crtc.mutex of
595 * CRTC this plane is linked to (when active, getting activated or
606 * @possible_crtcs: pipes this plane can be bound to constructed from
610 /** @format_types: array of formats supported by this plane */
616 * plane. Used by the drm_plane_init compatibility wrapper only.
620 /** @modifiers: array of modifiers supported by this plane */
651 /** @funcs: plane control functions */
654 /** @properties: property tracking for this plane */
657 /** @type: Type of plane, see &enum drm_plane_type for details. */
662 * index. It is invariant over the lifetime of the plane.
672 * Current atomic state for this plane.
675 * access the current plane state without taking locks. Either by going
686 * Optional alpha property for this plane. See
692 * Optional zpos property for this plane. See
698 * Optional rotation property for this plane. See
704 * Optional "pixel blend mode" enum property for this plane.
706 * describing how the pixels from the current plane are composited with
733 struct drm_plane *plane,
742 struct drm_plane *plane,
747 void drm_plane_cleanup(struct drm_plane *plane);
750 * drm_plane_index - find the index of a registered plane
751 * @plane: plane to find index for
753 * Given a registered plane, return the index of that plane within a DRM
756 static inline unsigned int drm_plane_index(const struct drm_plane *plane) in drm_plane_index() argument
758 return plane->index; in drm_plane_index()
762 * drm_plane_mask - find the mask of a registered plane
763 * @plane: plane to find mask for
765 static inline u32 drm_plane_mask(const struct drm_plane *plane) in drm_plane_mask() argument
767 return 1 << drm_plane_index(plane); in drm_plane_mask()
771 void drm_plane_force_disable(struct drm_plane *plane);
773 int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
781 * @id: plane id
783 * Returns the plane with @id, NULL if it doesn't exist. Simple wrapper around
797 * @plane: the loop cursor
799 * @plane_mask: bitmask of plane indices
803 #define drm_for_each_plane_mask(plane, dev, plane_mask) \ argument
804 list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
805 for_each_if ((plane_mask) & drm_plane_mask(plane))
809 * @plane: the loop cursor
814 * universal plane aware. See also &enum drm_plane_type.
816 #define drm_for_each_legacy_plane(plane, dev) \ argument
817 list_for_each_entry(plane, &(dev)->mode_config.plane_list, head) \
818 for_each_if (plane->type == DRM_PLANE_TYPE_OVERLAY)
822 * @plane: the loop cursor
827 #define drm_for_each_plane(plane, dev) \ argument
828 list_for_each_entry(plane, &(dev)->mode_config.plane_list, head)
834 * @state: Plane state.
837 * during plane update.
839 * Return: Number of clips in plane fb_damage_clips blob property.
850 * @state: Plane state.
856 * Return: Damage clips in plane fb_damage_clips blob property.