Lines Matching full:plane

46  * struct drm_plane_state - mutable plane state
55 /** @plane: backpointer to the plane */
56 struct drm_plane *plane; member
90 * Left position of visible portion of plane on crtc, signed dest
98 * Upper position of visible portion of plane on crtc, signed dest
103 /** @crtc_w: width of visible portion of plane on crtc */
104 /** @crtc_h: height of visible portion of plane on crtc */
108 * @src_x: left position of visible portion of plane within plane (in
113 * @src_y: upper position of visible portion of plane within plane (in
117 /** @src_w: width of visible portion of plane (in 16.16) */
118 /** @src_h: height of visible portion of plane (in 16.16) */
127 * Opacity of the plane with 0 as completely transparent and 0xffff as
136 * the current plane are composited with the background. Value can be
143 * Rotation of the plane. See drm_plane_create_rotation_property() for
150 * Priority of the given plane on crtc (optional).
155 * plane object IDs; the plane with a higher ID is stacked on top of a
156 * plane with a lower ID.
189 * Blob representing damage (area in plane framebuffer that changed
190 * since last plane update) as an array of &drm_mode_rect in framebuffer
191 * coodinates of the attached framebuffer. Note that unlike plane src,
212 * source coordinates of the plane (in 16.16).
222 * clipped destination coordinates of the plane.
234 * Visibility of the plane. This can be false even if fb!=NULL and
256 * and for async plane updates.
298 * struct drm_plane_funcs - driver plane control functions
304 * This is the legacy entry point to enable and configure the plane for
306 * plane, i.e. the passed-in crtc and fb paramters are never NULL.
310 * values). Devices that don't support subpixel plane coordinates can
327 int (*update_plane)(struct drm_plane *plane,
338 * This is the legacy entry point to disable the plane. The DRM core
350 int (*disable_plane)(struct drm_plane *plane,
356 * Clean up plane resources. This is only called at driver unload time
357 * through drm_mode_config_cleanup() since a plane cannot be hotplugged
360 void (*destroy)(struct drm_plane *plane);
365 * Reset plane hardware and software state to off. This function isn't
372 void (*reset)(struct drm_plane *plane);
378 * plane.
388 int (*set_property)(struct drm_plane *plane,
394 * Duplicate the current atomic state for this plane and return it.
422 struct drm_plane_state *(*atomic_duplicate_state)(struct drm_plane *plane);
432 void (*atomic_destroy_state)(struct drm_plane *plane,
472 * asks for properties attached to this plane). No other validation is
477 int (*atomic_set_property)(struct drm_plane *plane,
498 * properties attached to this plane).
500 int (*atomic_get_property)(struct drm_plane *plane,
508 * interfaces attached to the plane like debugfs interfaces.
517 int (*late_register)(struct drm_plane *plane);
523 * userspace interfaces attached to the plane from
528 void (*early_unregister)(struct drm_plane *plane);
546 * format/modifier combination is valid for the plane. This allows the
550 * If not present, then any modifier in the plane's modifier
551 * list is allowed with any of the plane's formats.
555 * True if the given modifier is valid for that format on the plane.
558 bool (*format_mod_supported)(struct drm_plane *plane, uint32_t format,
565 * the plane. This allows the DRM to generate the correct format
571 * True if the given modifier is valid for that format on the plane.
574 bool (*format_mod_supported_async)(struct drm_plane *plane,
580 * enum drm_plane_type - uapi plane type enumeration
584 * uapi semantics for them. For userspace which is universal plane aware and
591 * wish to receive a universal plane list containing all plane types. See also
594 * In addition to setting each plane's type, drivers need to setup the
613 * A primary plane attached to a CRTC is the most likely to be able to
614 * light up the CRTC when no scaling/cropping is used and the plane
622 * A cursor plane attached to a CRTC is more likely to be able to be
633 * struct drm_plane - central DRM plane control structure
637 * the color conversion, see `Plane Composition Properties`_ for more details,
642 /** @dev: DRM device this plane belongs to */
660 * Protects modeset plane state, together with the &drm_crtc.mutex of
661 * CRTC this plane is linked to (when active, getting activated or
672 * @possible_crtcs: pipes this plane can be bound to constructed from
676 /** @format_types: array of formats supported by this plane */
682 * plane. Used by the non-atomic driver compatibility wrapper only.
686 /** @modifiers: array of modifiers supported by this plane */
717 /** @funcs: plane control functions */
720 /** @properties: property tracking for this plane */
723 /** @type: Type of plane, see &enum drm_plane_type for details. */
728 * index. It is invariant over the lifetime of the plane.
738 * Current atomic state for this plane.
741 * access the current plane state without taking locks. Either by going
752 * Optional alpha property for this plane. See
758 * Optional zpos property for this plane. See
764 * Optional rotation property for this plane. See
770 * Optional "pixel blend mode" enum property for this plane.
772 * describing how the pixels from the current plane are composited with
798 * a color pipeline to use on the plane.
819 * @kmsg_panic: Used to register a panic notifier for this plane
828 struct drm_plane *plane,
836 void drm_plane_cleanup(struct drm_plane *plane);
850 * drmm_universal_plane_alloc - Allocate and initialize an universal plane object
855 * @funcs: callbacks for the new plane
860 * @plane_type: type of plane (overlay, primary, cursor)
861 * @name: printf style format string for the plane name, or NULL for default name
863 * Allocates and initializes a plane object of type @type. Cleanup is
870 * @format_modifiers to NULL. The plane will advertise the linear modifier.
873 * Pointer to new plane, or ERR_PTR on failure.
895 * drm_universal_plane_alloc() - Allocate and initialize an universal plane object
900 * @funcs: callbacks for the new plane
905 * @plane_type: type of plane (overlay, primary, cursor)
906 * @name: printf style format string for the plane name, or NULL for default name
908 * Allocates and initializes a plane object of type @type. The caller
914 * @format_modifiers to NULL. The plane will advertise the linear modifier.
917 * Pointer to new plane, or ERR_PTR on failure.
928 * drm_plane_index - find the index of a registered plane
929 * @plane: plane to find index for
931 * Given a registered plane, return the index of that plane within a DRM
934 static inline unsigned int drm_plane_index(const struct drm_plane *plane) in drm_plane_index() argument
936 return plane->index; in drm_plane_index()
940 * drm_plane_mask - find the mask of a registered plane
941 * @plane: plane to find mask for
943 static inline u32 drm_plane_mask(const struct drm_plane *plane) in drm_plane_mask() argument
945 return 1 << drm_plane_index(plane); in drm_plane_mask()
949 void drm_plane_force_disable(struct drm_plane *plane);
951 int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
959 * @id: plane id
961 * Returns the plane with @id, NULL if it doesn't exist. Simple wrapper around
975 * @plane: the loop cursor
977 * @plane_mask: bitmask of plane indices
981 #define drm_for_each_plane_mask(plane, dev, plane_mask) \ argument
982 list_for_each_entry((plane), &(dev)->mode_config.plane_list, head) \
983 for_each_if ((plane_mask) & drm_plane_mask(plane))
987 * @plane: the loop cursor
992 * universal plane aware. See also &enum drm_plane_type.
994 #define drm_for_each_legacy_plane(plane, dev) \ argument
995 list_for_each_entry(plane, &(dev)->mode_config.plane_list, head) \
996 for_each_if (plane->type == DRM_PLANE_TYPE_OVERLAY)
1000 * @plane: the loop cursor
1005 #define drm_for_each_plane(plane, dev) \ argument
1006 list_for_each_entry(plane, &(dev)->mode_config.plane_list, head)
1008 bool drm_plane_has_format(struct drm_plane *plane,
1013 void drm_plane_enable_fb_damage_clips(struct drm_plane *plane);
1019 int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
1021 int drm_plane_add_size_hints_property(struct drm_plane *plane,
1025 int drm_plane_create_color_pipeline_property(struct drm_plane *plane,