Lines Matching full:plane
116 static void virtio_gpu_plane_destroy(struct drm_plane *plane) in virtio_gpu_plane_destroy() argument
118 drm_plane_cleanup(plane); in virtio_gpu_plane_destroy()
119 kfree(plane); in virtio_gpu_plane_destroy()
131 static int virtio_gpu_plane_atomic_check(struct drm_plane *plane, in virtio_gpu_plane_atomic_check() argument
134 bool is_cursor = plane->type == DRM_PLANE_TYPE_CURSOR; in virtio_gpu_plane_atomic_check()
175 static void virtio_gpu_primary_plane_update(struct drm_plane *plane, in virtio_gpu_primary_plane_update() argument
178 struct drm_device *dev = plane->dev; in virtio_gpu_primary_plane_update()
184 if (plane->state->crtc) in virtio_gpu_primary_plane_update()
185 output = drm_crtc_to_virtio_gpu_output(plane->state->crtc); in virtio_gpu_primary_plane_update()
191 if (!plane->state->fb || !output->crtc.state->active) { in virtio_gpu_primary_plane_update()
194 plane->state->src_w >> 16, in virtio_gpu_primary_plane_update()
195 plane->state->src_h >> 16, in virtio_gpu_primary_plane_update()
201 if (!drm_atomic_helper_damage_merged(old_state, plane->state, &rect)) in virtio_gpu_primary_plane_update()
204 bo = gem_to_virtio_gpu_obj(plane->state->fb->obj[0]); in virtio_gpu_primary_plane_update()
206 virtio_gpu_update_dumb_bo(vgdev, plane->state, &rect); in virtio_gpu_primary_plane_update()
208 if (plane->state->fb != old_state->fb || in virtio_gpu_primary_plane_update()
209 plane->state->src_w != old_state->src_w || in virtio_gpu_primary_plane_update()
210 plane->state->src_h != old_state->src_h || in virtio_gpu_primary_plane_update()
211 plane->state->src_x != old_state->src_x || in virtio_gpu_primary_plane_update()
212 plane->state->src_y != old_state->src_y || in virtio_gpu_primary_plane_update()
217 plane->state->crtc_w, plane->state->crtc_h, in virtio_gpu_primary_plane_update()
218 plane->state->crtc_x, plane->state->crtc_y, in virtio_gpu_primary_plane_update()
219 plane->state->src_w >> 16, in virtio_gpu_primary_plane_update()
220 plane->state->src_h >> 16, in virtio_gpu_primary_plane_update()
221 plane->state->src_x >> 16, in virtio_gpu_primary_plane_update()
222 plane->state->src_y >> 16); in virtio_gpu_primary_plane_update()
225 plane->state->src_w >> 16, in virtio_gpu_primary_plane_update()
226 plane->state->src_h >> 16, in virtio_gpu_primary_plane_update()
227 plane->state->src_x >> 16, in virtio_gpu_primary_plane_update()
228 plane->state->src_y >> 16); in virtio_gpu_primary_plane_update()
239 static int virtio_gpu_cursor_prepare_fb(struct drm_plane *plane, in virtio_gpu_cursor_prepare_fb() argument
242 struct drm_device *dev = plane->dev; in virtio_gpu_cursor_prepare_fb()
252 if (bo && bo->dumb && (plane->state->fb != new_state->fb)) { in virtio_gpu_cursor_prepare_fb()
261 static void virtio_gpu_cursor_cleanup_fb(struct drm_plane *plane, in virtio_gpu_cursor_cleanup_fb() argument
276 static void virtio_gpu_cursor_plane_update(struct drm_plane *plane, in virtio_gpu_cursor_plane_update() argument
279 struct drm_device *dev = plane->dev; in virtio_gpu_cursor_plane_update()
286 if (plane->state->crtc) in virtio_gpu_cursor_plane_update()
287 output = drm_crtc_to_virtio_gpu_output(plane->state->crtc); in virtio_gpu_cursor_plane_update()
293 if (plane->state->fb) { in virtio_gpu_cursor_plane_update()
294 vgfb = to_virtio_gpu_framebuffer(plane->state->fb); in virtio_gpu_cursor_plane_update()
301 if (bo && bo->dumb && (plane->state->fb != old_state->fb)) { in virtio_gpu_cursor_plane_update()
312 plane->state->crtc_w, in virtio_gpu_cursor_plane_update()
313 plane->state->crtc_h, in virtio_gpu_cursor_plane_update()
321 if (plane->state->fb != old_state->fb) { in virtio_gpu_cursor_plane_update()
323 plane->state->crtc_x, in virtio_gpu_cursor_plane_update()
324 plane->state->crtc_y, in virtio_gpu_cursor_plane_update()
325 plane->state->fb ? plane->state->fb->hot_x : 0, in virtio_gpu_cursor_plane_update()
326 plane->state->fb ? plane->state->fb->hot_y : 0); in virtio_gpu_cursor_plane_update()
330 if (plane->state->fb) { in virtio_gpu_cursor_plane_update()
332 cpu_to_le32(plane->state->fb->hot_x); in virtio_gpu_cursor_plane_update()
334 cpu_to_le32(plane->state->fb->hot_y); in virtio_gpu_cursor_plane_update()
341 plane->state->crtc_x, in virtio_gpu_cursor_plane_update()
342 plane->state->crtc_y); in virtio_gpu_cursor_plane_update()
346 output->cursor.pos.x = cpu_to_le32(plane->state->crtc_x); in virtio_gpu_cursor_plane_update()
347 output->cursor.pos.y = cpu_to_le32(plane->state->crtc_y); in virtio_gpu_cursor_plane_update()
369 struct drm_plane *plane; in virtio_gpu_plane_init() local
373 plane = kzalloc(sizeof(*plane), GFP_KERNEL); in virtio_gpu_plane_init()
374 if (!plane) in virtio_gpu_plane_init()
386 ret = drm_universal_plane_init(dev, plane, 1 << index, in virtio_gpu_plane_init()
393 drm_plane_helper_add(plane, funcs); in virtio_gpu_plane_init()
394 return plane; in virtio_gpu_plane_init()
397 kfree(plane); in virtio_gpu_plane_init()