Lines Matching refs:plane
69 static void virtio_gpu_plane_destroy(struct drm_plane *plane) in virtio_gpu_plane_destroy() argument
71 drm_plane_cleanup(plane); in virtio_gpu_plane_destroy()
72 kfree(plane); in virtio_gpu_plane_destroy()
84 static int virtio_gpu_plane_atomic_check(struct drm_plane *plane, in virtio_gpu_plane_atomic_check() argument
90 static void virtio_gpu_primary_plane_update(struct drm_plane *plane, in virtio_gpu_primary_plane_update() argument
93 struct drm_device *dev = plane->dev; in virtio_gpu_primary_plane_update()
100 if (plane->state->crtc) in virtio_gpu_primary_plane_update()
101 output = drm_crtc_to_virtio_gpu_output(plane->state->crtc); in virtio_gpu_primary_plane_update()
107 if (plane->state->fb && output->enabled) { in virtio_gpu_primary_plane_update()
108 vgfb = to_virtio_gpu_framebuffer(plane->state->fb); in virtio_gpu_primary_plane_update()
114 cpu_to_le32(plane->state->src_w >> 16), in virtio_gpu_primary_plane_update()
115 cpu_to_le32(plane->state->src_h >> 16), in virtio_gpu_primary_plane_update()
116 cpu_to_le32(plane->state->src_x >> 16), in virtio_gpu_primary_plane_update()
117 cpu_to_le32(plane->state->src_y >> 16), NULL); in virtio_gpu_primary_plane_update()
124 plane->state->crtc_w, plane->state->crtc_h, in virtio_gpu_primary_plane_update()
125 plane->state->crtc_x, plane->state->crtc_y, in virtio_gpu_primary_plane_update()
126 plane->state->src_w >> 16, in virtio_gpu_primary_plane_update()
127 plane->state->src_h >> 16, in virtio_gpu_primary_plane_update()
128 plane->state->src_x >> 16, in virtio_gpu_primary_plane_update()
129 plane->state->src_y >> 16); in virtio_gpu_primary_plane_update()
131 plane->state->src_w >> 16, in virtio_gpu_primary_plane_update()
132 plane->state->src_h >> 16, in virtio_gpu_primary_plane_update()
133 plane->state->src_x >> 16, in virtio_gpu_primary_plane_update()
134 plane->state->src_y >> 16); in virtio_gpu_primary_plane_update()
137 plane->state->src_x >> 16, in virtio_gpu_primary_plane_update()
138 plane->state->src_y >> 16, in virtio_gpu_primary_plane_update()
139 plane->state->src_w >> 16, in virtio_gpu_primary_plane_update()
140 plane->state->src_h >> 16); in virtio_gpu_primary_plane_update()
143 static int virtio_gpu_cursor_prepare_fb(struct drm_plane *plane, in virtio_gpu_cursor_prepare_fb() argument
146 struct drm_device *dev = plane->dev; in virtio_gpu_cursor_prepare_fb()
156 if (bo && bo->dumb && (plane->state->fb != new_state->fb)) { in virtio_gpu_cursor_prepare_fb()
165 static void virtio_gpu_cursor_cleanup_fb(struct drm_plane *plane, in virtio_gpu_cursor_cleanup_fb() argument
170 if (!plane->state->fb) in virtio_gpu_cursor_cleanup_fb()
173 vgfb = to_virtio_gpu_framebuffer(plane->state->fb); in virtio_gpu_cursor_cleanup_fb()
180 static void virtio_gpu_cursor_plane_update(struct drm_plane *plane, in virtio_gpu_cursor_plane_update() argument
183 struct drm_device *dev = plane->dev; in virtio_gpu_cursor_plane_update()
191 if (plane->state->crtc) in virtio_gpu_cursor_plane_update()
192 output = drm_crtc_to_virtio_gpu_output(plane->state->crtc); in virtio_gpu_cursor_plane_update()
198 if (plane->state->fb) { in virtio_gpu_cursor_plane_update()
199 vgfb = to_virtio_gpu_framebuffer(plane->state->fb); in virtio_gpu_cursor_plane_update()
206 if (bo && bo->dumb && (plane->state->fb != old_state->fb)) { in virtio_gpu_cursor_plane_update()
210 cpu_to_le32(plane->state->crtc_w), in virtio_gpu_cursor_plane_update()
211 cpu_to_le32(plane->state->crtc_h), in virtio_gpu_cursor_plane_update()
224 if (plane->state->fb != old_state->fb) { in virtio_gpu_cursor_plane_update()
226 plane->state->crtc_x, in virtio_gpu_cursor_plane_update()
227 plane->state->crtc_y, in virtio_gpu_cursor_plane_update()
228 plane->state->fb ? plane->state->fb->hot_x : 0, in virtio_gpu_cursor_plane_update()
229 plane->state->fb ? plane->state->fb->hot_y : 0); in virtio_gpu_cursor_plane_update()
233 if (plane->state->fb) { in virtio_gpu_cursor_plane_update()
235 cpu_to_le32(plane->state->fb->hot_x); in virtio_gpu_cursor_plane_update()
237 cpu_to_le32(plane->state->fb->hot_y); in virtio_gpu_cursor_plane_update()
244 plane->state->crtc_x, in virtio_gpu_cursor_plane_update()
245 plane->state->crtc_y); in virtio_gpu_cursor_plane_update()
249 output->cursor.pos.x = cpu_to_le32(plane->state->crtc_x); in virtio_gpu_cursor_plane_update()
250 output->cursor.pos.y = cpu_to_le32(plane->state->crtc_y); in virtio_gpu_cursor_plane_update()
272 struct drm_plane *plane; in virtio_gpu_plane_init() local
276 plane = kzalloc(sizeof(*plane), GFP_KERNEL); in virtio_gpu_plane_init()
277 if (!plane) in virtio_gpu_plane_init()
289 ret = drm_universal_plane_init(dev, plane, 1 << index, in virtio_gpu_plane_init()
296 drm_plane_helper_add(plane, funcs); in virtio_gpu_plane_init()
297 return plane; in virtio_gpu_plane_init()
300 kfree(plane); in virtio_gpu_plane_init()