Lines Matching defs:plane
41 * struct drm_plane_state - mutable plane state
50 /** @plane: backpointer to the plane */
51 struct drm_plane *plane;
87 * Left position of visible portion of plane on crtc, signed dest
95 * Upper position of visible portion of plane on crtc, signed dest
100 /** @crtc_w: width of visible portion of plane on crtc */
101 /** @crtc_h: height of visible portion of plane on crtc */
105 * @src_x: left position of visible portion of plane within plane (in
110 * @src_y: upper position of visible portion of plane within plane (in
114 /** @src_w: width of visible portion of plane (in 16.16) */
115 /** @src_h: height of visible portion of plane (in 16.16) */
120 * Opacity of the plane with 0 as completely transparent and 0xffff as
129 * the current plane are composited with the background. Value can be
136 * Rotation of the plane. See drm_plane_create_rotation_property() for
143 * Priority of the given plane on crtc (optional).
148 * plane object IDs; the plane with a higher ID is stacked on top of a
149 * plane with a lower ID.
182 * Blob representing damage (area in plane framebuffer that changed
183 * since last plane update) as an array of &drm_mode_rect in framebuffer
184 * coodinates of the attached framebuffer. Note that unlike plane src,
192 * source coordinates of the plane (in 16.16).
202 * clipped destination coordinates of the plane.
214 * Visibility of the plane. This can be false even if fb!=NULL and
221 * and for async plane updates.
256 * struct drm_plane_funcs - driver plane control functions
262 * This is the legacy entry point to enable and configure the plane for
264 * plane, i.e. the passed-in crtc and fb paramters are never NULL.
268 * values). Devices that don't support subpixel plane coordinates can
285 int (*update_plane)(struct drm_plane *plane,
296 * This is the legacy entry point to disable the plane. The DRM core
308 int (*disable_plane)(struct drm_plane *plane,
314 * Clean up plane resources. This is only called at driver unload time
315 * through drm_mode_config_cleanup() since a plane cannot be hotplugged
318 void (*destroy)(struct drm_plane *plane);
323 * Reset plane hardware and software state to off. This function isn't
330 void (*reset)(struct drm_plane *plane);
336 * plane.
346 int (*set_property)(struct drm_plane *plane,
352 * Duplicate the current atomic state for this plane and return it.
380 struct drm_plane_state *(*atomic_duplicate_state)(struct drm_plane *plane);
390 void (*atomic_destroy_state)(struct drm_plane *plane,
430 * asks for properties attached to this plane). No other validation is
435 int (*atomic_set_property)(struct drm_plane *plane,
456 * properties attached to this plane).
458 int (*atomic_get_property)(struct drm_plane *plane,
466 * interfaces attached to the plane like debugfs interfaces.
475 int (*late_register)(struct drm_plane *plane);
481 * userspace interfaces attached to the plane from
486 void (*early_unregister)(struct drm_plane *plane);
504 * format/modifier combination is valid for the plane. This allows the
508 * If not present, then any modifier in the plane
509 * list is allowed with any of the plane's formats.
513 * True if the given modifier is valid for that format on the plane.
516 bool (*format_mod_supported)(struct drm_plane *plane, uint32_t format,
521 * enum drm_plane_type - uapi plane type enumeration
525 * uapi semantics for them. For userspace which is universal plane aware and
532 * wish to receive a universal plane list containing all plane types. See also
550 * Primary planes represent a "main" plane for a CRTC. Primary planes
560 * Cursor planes represent a "cursor" plane for a CRTC. Cursor planes
569 * struct drm_plane - central DRM plane control structure
573 * the color conversion, see `Plane Composition Properties`_ for more details,
578 /** @dev: DRM device this plane belongs to */
596 * Protects modeset plane state, together with the &drm_crtc.mutex of
597 * CRTC this plane is linked to (when active, getting activated or
608 * @possible_crtcs: pipes this plane can be bound to constructed from
612 /** @format_types: array of formats supported by this plane */
618 * plane. Used by the drm_plane_init compatibility wrapper only.
622 /** @modifiers: array of modifiers supported by this plane */
653 /** @funcs: plane control functions */
656 /** @properties: property tracking for this plane */
659 /** @type: Type of plane, see &enum drm_plane_type for details. */
664 * index. It is invariant over the lifetime of the plane.
674 * Current atomic state for this plane.
677 * access the current plane state without taking locks. Either by going
688 * Optional alpha property for this plane. See
694 * Optional zpos property for this plane. See
700 * Optional rotation property for this plane. See
706 * Optional "pixel blend mode" enum property for this plane.
708 * describing how the pixels from the current plane are composited with
735 struct drm_plane *plane,
744 struct drm_plane *plane,
749 void drm_plane_cleanup(struct drm_plane *plane);
752 * drm_plane_index - find the index of a registered plane
753 * @plane: plane to find index for
755 * Given a registered plane, return the index of that plane within a DRM
758 static inline unsigned int drm_plane_index(const struct drm_plane *plane)
760 return plane->index;
764 * drm_plane_mask - find the mask of a registered plane
765 * @plane: plane to find mask for
767 static inline u32 drm_plane_mask(const struct drm_plane *plane)
769 return 1 << drm_plane_index(plane);
773 void drm_plane_force_disable(struct drm_plane *plane);
775 int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
783 * @id: plane id
785 * Returns the plane with @id, NULL if it doesn't exist. Simple wrapper around
799 * @plane: the loop cursor
801 * @plane_mask: bitmask of plane indices
805 #define drm_for_each_plane_mask(plane, dev, plane_mask) \
806 list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
807 for_each_if ((plane_mask) & drm_plane_mask(plane))
811 * @plane: the loop cursor
816 * universal plane aware. See also &enum drm_plane_type.
818 #define drm_for_each_legacy_plane(plane, dev) \
819 list_for_each_entry(plane, &(dev)->mode_config.plane_list, head) \
820 for_each_if (plane->type == DRM_PLANE_TYPE_OVERLAY)
824 * @plane: the loop cursor
829 #define drm_for_each_plane(plane, dev) \
830 list_for_each_entry(plane, &(dev)->mode_config.plane_list, head)
836 * @state: Plane state.
839 * during plane update.
841 * Return: Number of clips in plane fb_damage_clips blob property.
852 * @state: Plane state.
858 * Return: Damage clips in plane fb_damage_clips blob property.