Lines Matching full:cursor

27 	SVGAFifoCmdDefineAlphaCursor cursor;  member
31 * vmw_send_define_cursor_cmd - queue a define cursor command
33 * @image: buffer which holds the cursor image
34 * @width: width of the mouse cursor image
35 * @height: height of the mouse cursor image
64 cmd->cursor.id = 0; in vmw_send_define_cursor_cmd()
65 cmd->cursor.width = width; in vmw_send_define_cursor_cmd()
66 cmd->cursor.height = height; in vmw_send_define_cursor_cmd()
67 cmd->cursor.hotspotX = hotspotX; in vmw_send_define_cursor_cmd()
68 cmd->cursor.hotspotY = hotspotY; in vmw_send_define_cursor_cmd()
78 s32 hotspot_x = vps->cursor.legacy.hotspot_x + vps->base.hotspot_x; in vmw_cursor_plane_update_legacy()
79 s32 hotspot_y = vps->cursor.legacy.hotspot_y + vps->base.hotspot_y; in vmw_cursor_plane_update_legacy()
84 if (vps->cursor.legacy.id != surface->snooper.id) { in vmw_cursor_plane_update_legacy()
88 vps->cursor.legacy.id = surface->snooper.id; in vmw_cursor_plane_update_legacy()
106 drm_warn_once(&vmw->drm, "Unknown Cursor Type!\n"); in vmw_cursor_update_type()
119 header = vmw_bo_map_and_cache(vps->cursor.mob); in vmw_cursor_update_mob()
127 alpha_header->hotspotX = vps->cursor.legacy.hotspot_x + vps->base.hotspot_x; in vmw_cursor_update_mob()
128 alpha_header->hotspotY = vps->cursor.legacy.hotspot_y + vps->base.hotspot_y; in vmw_cursor_update_mob()
133 vmw_write(vmw, SVGA_REG_CURSOR_MOBID, vmw_bo_mobid(vps->cursor.mob)); in vmw_cursor_update_mob()
136 vmw_bo_unmap(vps->cursor.mob); in vmw_cursor_update_mob()
163 * vmw_cursor_mob_unmap - Unmaps the cursor mobs.
165 * @vps: state of the cursor plane
174 struct vmw_bo *vbo = vps->cursor.mob; in vmw_cursor_mob_unmap()
193 if (!vps->cursor.mob) in vmw_cursor_mob_put()
201 vcp->cursor_mobs[i] = vps->cursor.mob; in vmw_cursor_mob_put()
202 vps->cursor.mob = NULL; in vmw_cursor_mob_put()
210 vps->cursor.mob->tbo.base.size) { in vmw_cursor_mob_put()
212 vcp->cursor_mobs[i] = vps->cursor.mob; in vmw_cursor_mob_put()
213 vps->cursor.mob = NULL; in vmw_cursor_mob_put()
219 vmw_cursor_mob_destroy(&vps->cursor.mob); in vmw_cursor_mob_put()
226 u32 size = vmw_cursor_mob_size(vps->cursor.update_type, in vmw_cursor_mob_get()
244 if (vps->cursor.mob) { in vmw_cursor_mob_get()
245 if (vps->cursor.mob->tbo.base.size >= size) in vmw_cursor_mob_get()
254 vps->cursor.mob = vcp->cursor_mobs[i]; in vmw_cursor_mob_get()
261 &vps->cursor.mob); in vmw_cursor_mob_get()
267 ret = ttm_bo_reserve(&vps->cursor.mob->tbo, false, false, NULL); in vmw_cursor_mob_get()
273 ttm_bo_unreserve(&vps->cursor.mob->tbo); in vmw_cursor_mob_get()
280 ttm_bo_unreserve(&vps->cursor.mob->tbo); in vmw_cursor_mob_get()
285 vmw_cursor_mob_destroy(&vps->cursor.mob); in vmw_cursor_mob_get()
366 DRM_ERROR("Can't snoop dma request for cursor!\n"); in vmw_kms_cursor_snoop()
421 * vmw_cursor_mob_map - Maps the cursor mobs.
432 u32 size = vmw_cursor_mob_size(vps->cursor.update_type, in vmw_cursor_mob_map()
434 struct vmw_bo *vbo = vps->cursor.mob; in vmw_cursor_mob_map()
459 * @plane: cursor plane
462 * Unmaps all cursor bo mappings and unpins the cursor surface
575 if (old_vps->cursor.legacy.hotspot_x != in vmw_cursor_plane_changed()
576 new_vps->cursor.legacy.hotspot_x || in vmw_cursor_plane_changed()
577 old_vps->cursor.legacy.hotspot_y != in vmw_cursor_plane_changed()
578 new_vps->cursor.legacy.hotspot_y) in vmw_cursor_plane_changed()
588 * vmw_cursor_plane_prepare_fb - Readies the cursor by referencing it
622 vps->cursor.update_type = vmw_cursor_update_type(vmw, vps); in vmw_cursor_plane_prepare_fb()
623 switch (vps->cursor.update_type) { in vmw_cursor_plane_prepare_fb()
626 if (!surface || vps->cursor.legacy.id == surface->snooper.id) in vmw_cursor_plane_prepare_fb()
627 vps->cursor.update_type = VMW_CURSOR_UPDATE_NONE; in vmw_cursor_plane_prepare_fb()
664 vps->cursor.update_type = in vmw_cursor_plane_prepare_fb()
684 * @plane: cursor plane
687 * This is a chance to fail if the new cursor state does not fit
725 "Invalid cursor dimensions (%d, %d)\n", in vmw_cursor_plane_atomic_check()
732 "surface not suitable for cursor\n"); in vmw_cursor_plane_atomic_check()
756 * Hide the cursor if the new bo is null in vmw_cursor_plane_atomic_update()
763 switch (vps->cursor.update_type) { in vmw_cursor_plane_atomic_update()
785 * For all update types update the cursor position in vmw_cursor_plane_atomic_update()
790 hotspot_x = vps->cursor.legacy.hotspot_x + new_state->hotspot_x; in vmw_cursor_plane_atomic_update()
791 hotspot_y = vps->cursor.legacy.hotspot_y + new_state->hotspot_y; in vmw_cursor_plane_atomic_update()
810 vps = vmw_plane_state_to_vps(du->cursor.base.state); in vmw_kms_cursor_bypass_ioctl()
811 vps->cursor.legacy.hotspot_x = arg->xhot; in vmw_kms_cursor_bypass_ioctl()
812 vps->cursor.legacy.hotspot_y = arg->yhot; in vmw_kms_cursor_bypass_ioctl()
826 vps = vmw_plane_state_to_vps(du->cursor.base.state); in vmw_kms_cursor_bypass_ioctl()
827 vps->cursor.legacy.hotspot_x = arg->xhot; in vmw_kms_cursor_bypass_ioctl()
828 vps->cursor.legacy.hotspot_y = arg->yhot; in vmw_kms_cursor_bypass_ioctl()