Lines Matching refs:cursor
27 SVGAFifoCmdDefineAlphaCursor cursor;
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;
65 cmd->cursor.width = width;
66 cmd->cursor.height = height;
67 cmd->cursor.hotspotX = hotspotX;
68 cmd->cursor.hotspotY = hotspotY;
78 s32 hotspot_x = vps->cursor.legacy.hotspot_x + vps->base.hotspot_x;
79 s32 hotspot_y = vps->cursor.legacy.hotspot_y + vps->base.hotspot_y;
84 if (vps->cursor.legacy.id != surface->snooper.id) {
88 vps->cursor.legacy.id = surface->snooper.id;
117 header = vmw_bo_map_and_cache(vps->cursor.mob);
125 alpha_header->hotspotX = vps->cursor.legacy.hotspot_x + vps->base.hotspot_x;
126 alpha_header->hotspotY = vps->cursor.legacy.hotspot_y + vps->base.hotspot_y;
131 vmw_write(vmw, SVGA_REG_CURSOR_MOBID, vmw_bo_mobid(vps->cursor.mob));
134 vmw_bo_unmap(vps->cursor.mob);
160 * vmw_cursor_mob_unmap - Unmaps the cursor mobs.
162 * @vps: state of the cursor plane
171 struct vmw_bo *vbo = vps->cursor.mob;
190 if (!vps->cursor.mob)
198 vcp->cursor_mobs[i] = vps->cursor.mob;
199 vps->cursor.mob = NULL;
207 vps->cursor.mob->tbo.base.size) {
209 vcp->cursor_mobs[i] = vps->cursor.mob;
210 vps->cursor.mob = NULL;
216 vmw_cursor_mob_destroy(&vps->cursor.mob);
223 u32 size = vmw_cursor_mob_size(vps->cursor.update_type,
241 if (vps->cursor.mob) {
242 if (vps->cursor.mob->tbo.base.size >= size)
251 vps->cursor.mob = vcp->cursor_mobs[i];
258 &vps->cursor.mob);
264 ret = ttm_bo_reserve(&vps->cursor.mob->tbo, false, false, NULL);
270 ttm_bo_unreserve(&vps->cursor.mob->tbo);
277 ttm_bo_unreserve(&vps->cursor.mob->tbo);
282 vmw_cursor_mob_destroy(&vps->cursor.mob);
363 DRM_ERROR("Can't snoop dma request for cursor!\n");
418 * vmw_cursor_mob_map - Maps the cursor mobs.
429 u32 size = vmw_cursor_mob_size(vps->cursor.update_type,
431 struct vmw_bo *vbo = vps->cursor.mob;
456 * @plane: cursor plane
459 * Unmaps all cursor bo mappings and unpins the cursor surface
572 if (old_vps->cursor.legacy.hotspot_x !=
573 new_vps->cursor.legacy.hotspot_x ||
574 old_vps->cursor.legacy.hotspot_y !=
575 new_vps->cursor.legacy.hotspot_y)
585 * vmw_cursor_plane_prepare_fb - Readies the cursor by referencing it
619 vps->cursor.update_type = vmw_cursor_update_type(vmw, vps);
620 switch (vps->cursor.update_type) {
623 if (!surface || vps->cursor.legacy.id == surface->snooper.id)
624 vps->cursor.update_type = VMW_CURSOR_UPDATE_NONE;
660 vps->cursor.update_type =
680 * @plane: cursor plane
683 * This is a chance to fail if the new cursor state does not fit
721 "Invalid cursor dimensions (%d, %d)\n",
728 "surface not suitable for cursor\n");
751 * Hide the cursor if the new bo is null
758 switch (vps->cursor.update_type) {
771 * For all update types update the cursor position
776 hotspot_x = vps->cursor.legacy.hotspot_x + new_state->hotspot_x;
777 hotspot_y = vps->cursor.legacy.hotspot_y + new_state->hotspot_y;
796 vps = vmw_plane_state_to_vps(du->cursor.base.state);
797 vps->cursor.legacy.hotspot_x = arg->xhot;
798 vps->cursor.legacy.hotspot_y = arg->yhot;
812 vps = vmw_plane_state_to_vps(du->cursor.base.state);
813 vps->cursor.legacy.hotspot_x = arg->xhot;
814 vps->cursor.legacy.hotspot_y = arg->yhot;