Lines Matching full:plane
35 static void mtk_plane_reset(struct drm_plane *plane) in mtk_plane_reset() argument
39 if (plane->state) { in mtk_plane_reset()
40 __drm_atomic_helper_plane_destroy_state(plane->state); in mtk_plane_reset()
42 state = to_mtk_plane_state(plane->state); in mtk_plane_reset()
50 __drm_atomic_helper_plane_reset(plane, &state->base); in mtk_plane_reset()
52 state->base.plane = plane; in mtk_plane_reset()
56 static struct drm_plane_state *mtk_plane_duplicate_state(struct drm_plane *plane) in mtk_plane_duplicate_state() argument
58 struct mtk_plane_state *old_state = to_mtk_plane_state(plane->state); in mtk_plane_duplicate_state()
65 __drm_atomic_helper_plane_duplicate_state(plane, &state->base); in mtk_plane_duplicate_state()
67 WARN_ON(state->base.plane != plane); in mtk_plane_duplicate_state()
74 static void mtk_drm_plane_destroy_state(struct drm_plane *plane, in mtk_drm_plane_destroy_state() argument
81 static int mtk_plane_atomic_async_check(struct drm_plane *plane, in mtk_plane_atomic_async_check() argument
85 plane); in mtk_plane_atomic_async_check()
89 if (plane != new_plane_state->crtc->cursor) in mtk_plane_atomic_async_check()
92 if (!plane->state) in mtk_plane_atomic_async_check()
95 if (!plane->state->fb) in mtk_plane_atomic_async_check()
98 ret = mtk_drm_crtc_plane_check(new_plane_state->crtc, plane, in mtk_plane_atomic_async_check()
109 return drm_atomic_helper_check_plane_state(plane->state, crtc_state, in mtk_plane_atomic_async_check()
145 static void mtk_plane_atomic_async_update(struct drm_plane *plane, in mtk_plane_atomic_async_update() argument
149 plane); in mtk_plane_atomic_async_update()
150 struct mtk_plane_state *new_plane_state = to_mtk_plane_state(plane->state); in mtk_plane_atomic_async_update()
152 plane->state->crtc_x = new_state->crtc_x; in mtk_plane_atomic_async_update()
153 plane->state->crtc_y = new_state->crtc_y; in mtk_plane_atomic_async_update()
154 plane->state->crtc_h = new_state->crtc_h; in mtk_plane_atomic_async_update()
155 plane->state->crtc_w = new_state->crtc_w; in mtk_plane_atomic_async_update()
156 plane->state->src_x = new_state->src_x; in mtk_plane_atomic_async_update()
157 plane->state->src_y = new_state->src_y; in mtk_plane_atomic_async_update()
158 plane->state->src_h = new_state->src_h; in mtk_plane_atomic_async_update()
159 plane->state->src_w = new_state->src_w; in mtk_plane_atomic_async_update()
160 swap(plane->state->fb, new_state->fb); in mtk_plane_atomic_async_update()
165 mtk_drm_crtc_async_update(new_state->crtc, plane, state); in mtk_plane_atomic_async_update()
177 static int mtk_plane_atomic_check(struct drm_plane *plane, in mtk_plane_atomic_check() argument
181 plane); in mtk_plane_atomic_check()
192 ret = mtk_drm_crtc_plane_check(new_plane_state->crtc, plane, in mtk_plane_atomic_check()
209 static void mtk_plane_atomic_disable(struct drm_plane *plane, in mtk_plane_atomic_disable() argument
213 plane); in mtk_plane_atomic_disable()
220 static void mtk_plane_atomic_update(struct drm_plane *plane, in mtk_plane_atomic_update() argument
224 plane); in mtk_plane_atomic_update()
231 mtk_plane_atomic_disable(plane, state); in mtk_plane_atomic_update()
248 int mtk_plane_init(struct drm_device *dev, struct drm_plane *plane, in mtk_plane_init() argument
254 err = drm_universal_plane_init(dev, plane, possible_crtcs, in mtk_plane_init()
258 DRM_ERROR("failed to initialize plane\n"); in mtk_plane_init()
263 err = drm_plane_create_rotation_property(plane, in mtk_plane_init()
270 drm_plane_helper_add(plane, &mtk_plane_helper_funcs); in mtk_plane_init()