XenevaOS
Loading...
Searching...
No Matches
drm_gem_atomic_helper.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3#ifndef __DRM_GEM_ATOMIC_HELPER_H__
4#define __DRM_GEM_ATOMIC_HELPER_H__
5
6#include <linux/iosys-map.h>
7
9#include <drm/drm_fourcc.h>
10#include <drm/drm_plane.h>
11
13
14/*
15 * Plane Helpers
16 */
17
19
20/*
21 * Helpers for planes with shadow buffers
22 */
23
31#define DRM_SHADOW_PLANE_MAX_WIDTH (4096u)
32
40#define DRM_SHADOW_PLANE_MAX_HEIGHT (4096u)
41
52
61
62 /* Transitional state - do not export or duplicate */
63
71
79};
80
85static inline struct drm_shadow_plane_state *
86to_drm_shadow_plane_state(struct drm_plane_state *state)
87{
89}
90
92 struct drm_shadow_plane_state *new_shadow_plane_state);
95 struct drm_shadow_plane_state *shadow_plane_state);
96
100 struct drm_plane_state *plane_state);
101
109#define DRM_GEM_SHADOW_PLANE_FUNCS \
110 .reset = drm_gem_reset_shadow_plane, \
111 .atomic_duplicate_state = drm_gem_duplicate_shadow_plane_state, \
112 .atomic_destroy_state = drm_gem_destroy_shadow_plane_state
113
116
125#define DRM_GEM_SHADOW_PLANE_HELPER_FUNCS \
126 .begin_fb_access = drm_gem_begin_shadow_fb_access, \
127 .end_fb_access = drm_gem_end_shadow_fb_access
128
130 struct drm_plane_state *plane_state);
132 struct drm_plane_state *plane_state);
134struct drm_plane_state *
137 struct drm_plane_state *plane_state);
138
147#define DRM_GEM_SIMPLE_DISPLAY_PIPE_SHADOW_PLANE_FUNCS \
148 .begin_fb_access = drm_gem_simple_kms_begin_shadow_fb_access, \
149 .end_fb_access = drm_gem_simple_kms_end_shadow_fb_access, \
150 .reset_plane = drm_gem_simple_kms_reset_shadow_plane, \
151 .duplicate_plane_state = drm_gem_simple_kms_duplicate_shadow_plane_state, \
152 .destroy_plane_state = drm_gem_simple_kms_destroy_shadow_plane_state
153
154#endif /* __DRM_GEM_ATOMIC_HELPER_H__ */
#define container_of(ptr, type, member)
Definition container_of.h:19
#define DRM_FORMAT_MAX_PLANES
Definition drm_fourcc.h:32
void drm_gem_simple_kms_end_shadow_fb_access(struct drm_simple_display_pipe *pipe, struct drm_plane_state *plane_state)
struct drm_plane_state * drm_gem_duplicate_shadow_plane_state(struct drm_plane *plane)
void drm_gem_simple_kms_destroy_shadow_plane_state(struct drm_simple_display_pipe *pipe, struct drm_plane_state *plane_state)
int drm_gem_plane_helper_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state)
struct drm_plane_state * drm_gem_simple_kms_duplicate_shadow_plane_state(struct drm_simple_display_pipe *pipe)
int drm_gem_begin_shadow_fb_access(struct drm_plane *plane, struct drm_plane_state *plane_state)
void __drm_gem_reset_shadow_plane(struct drm_plane *plane, struct drm_shadow_plane_state *shadow_plane_state)
void drm_gem_reset_shadow_plane(struct drm_plane *plane)
int drm_gem_simple_kms_begin_shadow_fb_access(struct drm_simple_display_pipe *pipe, struct drm_plane_state *plane_state)
void drm_gem_end_shadow_fb_access(struct drm_plane *plane, struct drm_plane_state *plane_state)
void __drm_gem_destroy_shadow_plane_state(struct drm_shadow_plane_state *shadow_plane_state)
void drm_gem_simple_kms_reset_shadow_plane(struct drm_simple_display_pipe *pipe)
void drm_gem_destroy_shadow_plane_state(struct drm_plane *plane, struct drm_plane_state *plane_state)
void __drm_gem_duplicate_shadow_plane_state(struct drm_plane *plane, struct drm_shadow_plane_state *new_shadow_plane_state)
struct drm_plane * plane
Definition drm_plane.h:828
struct i915_user_extension base
Definition i915_drm.h:0
Definition drm_format_helper.h:27
Definition drm_plane.h:54
Definition drm_plane.h:641
Definition drm_gem_atomic_helper.h:49
struct iosys_map data[DRM_FORMAT_MAX_PLANES]
Definition drm_gem_atomic_helper.h:78
struct iosys_map map[DRM_FORMAT_MAX_PLANES]
Definition drm_gem_atomic_helper.h:70
struct drm_format_conv_state fmtcnv_state
Definition drm_gem_atomic_helper.h:60
struct drm_plane_state base
Definition drm_gem_atomic_helper.h:51
Definition drm_simple_kms_helper.h:52
Definition iosys-map.h:109
#define state(x)