Lines Matching refs:dev_priv

101 static int vmw_resource_context_res_add(struct vmw_private *dev_priv,
104 static int vmw_translate_mob_ptr(struct vmw_private *dev_priv,
167 static int vmw_cmd_ctx_first_setup(struct vmw_private *dev_priv, in vmw_cmd_ctx_first_setup() argument
173 ret = vmw_resource_context_res_add(dev_priv, sw_context, node->res); in vmw_cmd_ctx_first_setup()
179 vmw_binding_state_alloc(dev_priv); in vmw_cmd_ctx_first_setup()
190 node->staged_bindings = vmw_binding_state_alloc(dev_priv); in vmw_cmd_ctx_first_setup()
221 struct vmw_private *dev_priv = res->dev_priv; in vmw_resource_val_add() local
255 if (!dev_priv->has_mob) { in vmw_resource_val_add()
264 ret = vmw_cmd_ctx_first_setup(dev_priv, sw_context, node); in vmw_resource_val_add()
347 static int vmw_resource_context_res_add(struct vmw_private *dev_priv, in vmw_resource_context_res_add() argument
358 if (dev_priv->has_dx && vmw_res_type(ctx) == vmw_res_dx_context) { in vmw_resource_context_res_add()
373 mutex_lock(&dev_priv->binding_mutex); in vmw_resource_context_res_add()
392 if (dev_priv->has_dx && vmw_res_type(ctx) == vmw_res_dx_context) { in vmw_resource_context_res_add()
402 mutex_unlock(&dev_priv->binding_mutex); in vmw_resource_context_res_add()
470 static int vmw_cmd_invalid(struct vmw_private *dev_priv, in vmw_cmd_invalid() argument
477 static int vmw_cmd_ok(struct vmw_private *dev_priv, in vmw_cmd_ok() argument
646 static int vmw_cmd_res_reloc_add(struct vmw_private *dev_priv, in vmw_cmd_res_reloc_add() argument
687 vmw_cmd_res_check(struct vmw_private *dev_priv, in vmw_cmd_res_check() argument
727 ret = vmw_user_resource_lookup_handle(dev_priv, in vmw_cmd_res_check()
743 ret = vmw_cmd_res_reloc_add(dev_priv, sw_context, id_loc, in vmw_cmd_res_check()
770 struct vmw_private *dev_priv = ctx_res->dev_priv; in vmw_rebind_all_dx_query() local
783 cmd = vmw_fifo_reserve_dx(dev_priv, sizeof(*cmd), ctx_res->id); in vmw_rebind_all_dx_query()
794 vmw_fifo_commit(dev_priv, sizeof(*cmd)); in vmw_rebind_all_dx_query()
907 static int vmw_cmd_cid_check(struct vmw_private *dev_priv, in vmw_cmd_cid_check() argument
917 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_cid_check()
921 static int vmw_cmd_set_render_target_check(struct vmw_private *dev_priv, in vmw_cmd_set_render_target_check() argument
941 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_set_render_target_check()
947 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_set_render_target_check()
953 if (dev_priv->has_mob) { in vmw_cmd_set_render_target_check()
967 static int vmw_cmd_surface_copy_check(struct vmw_private *dev_priv, in vmw_cmd_surface_copy_check() argument
979 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_surface_copy_check()
985 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_surface_copy_check()
990 static int vmw_cmd_buffer_copy_check(struct vmw_private *dev_priv, in vmw_cmd_buffer_copy_check() argument
1001 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_buffer_copy_check()
1007 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_buffer_copy_check()
1012 static int vmw_cmd_pred_copy_check(struct vmw_private *dev_priv, in vmw_cmd_pred_copy_check() argument
1023 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_pred_copy_check()
1029 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_pred_copy_check()
1034 static int vmw_cmd_stretch_blt_check(struct vmw_private *dev_priv, in vmw_cmd_stretch_blt_check() argument
1045 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_stretch_blt_check()
1050 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_stretch_blt_check()
1055 static int vmw_cmd_blt_surf_screen_check(struct vmw_private *dev_priv, in vmw_cmd_blt_surf_screen_check() argument
1066 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_blt_surf_screen_check()
1071 static int vmw_cmd_present_check(struct vmw_private *dev_priv, in vmw_cmd_present_check() argument
1083 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_present_check()
1101 static int vmw_query_bo_switch_prepare(struct vmw_private *dev_priv, in vmw_query_bo_switch_prepare() argument
1123 dev_priv->has_mob, NULL); in vmw_query_bo_switch_prepare()
1130 dev_priv->dummy_query_bo, in vmw_query_bo_switch_prepare()
1131 dev_priv->has_mob, NULL); in vmw_query_bo_switch_prepare()
1158 static void vmw_query_bo_switch_commit(struct vmw_private *dev_priv, in vmw_query_bo_switch_commit() argument
1175 ret = vmw_fifo_emit_dummy_query(dev_priv, ctx->id); in vmw_query_bo_switch_commit()
1181 if (dev_priv->pinned_bo != sw_context->cur_query_bo) { in vmw_query_bo_switch_commit()
1182 if (dev_priv->pinned_bo) { in vmw_query_bo_switch_commit()
1183 vmw_bo_pin_reserved(dev_priv->pinned_bo, false); in vmw_query_bo_switch_commit()
1184 vmw_dmabuf_unreference(&dev_priv->pinned_bo); in vmw_query_bo_switch_commit()
1196 if (!dev_priv->dummy_query_bo_pinned) { in vmw_query_bo_switch_commit()
1197 vmw_bo_pin_reserved(dev_priv->dummy_query_bo, in vmw_query_bo_switch_commit()
1199 dev_priv->dummy_query_bo_pinned = true; in vmw_query_bo_switch_commit()
1203 dev_priv->query_cid = sw_context->last_query_ctx->id; in vmw_query_bo_switch_commit()
1204 dev_priv->query_cid_valid = true; in vmw_query_bo_switch_commit()
1205 dev_priv->pinned_bo = in vmw_query_bo_switch_commit()
1229 static int vmw_translate_mob_ptr(struct vmw_private *dev_priv, in vmw_translate_mob_ptr() argument
1290 static int vmw_translate_guest_ptr(struct vmw_private *dev_priv, in vmw_translate_guest_ptr() argument
1342 static int vmw_cmd_dx_define_query(struct vmw_private *dev_priv, in vmw_cmd_dx_define_query() argument
1388 static int vmw_cmd_dx_bind_query(struct vmw_private *dev_priv, in vmw_cmd_dx_bind_query() argument
1407 ret = vmw_translate_mob_ptr(dev_priv, sw_context, &cmd->q.mobid, in vmw_cmd_dx_bind_query()
1430 static int vmw_cmd_begin_gb_query(struct vmw_private *dev_priv, in vmw_cmd_begin_gb_query() argument
1442 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_begin_gb_query()
1454 static int vmw_cmd_begin_query(struct vmw_private *dev_priv, in vmw_cmd_begin_query() argument
1466 if (unlikely(dev_priv->has_mob)) { in vmw_cmd_begin_query()
1480 return vmw_cmd_begin_gb_query(dev_priv, sw_context, header); in vmw_cmd_begin_query()
1483 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_begin_query()
1495 static int vmw_cmd_end_gb_query(struct vmw_private *dev_priv, in vmw_cmd_end_gb_query() argument
1507 ret = vmw_cmd_cid_check(dev_priv, sw_context, header); in vmw_cmd_end_gb_query()
1511 ret = vmw_translate_mob_ptr(dev_priv, sw_context, in vmw_cmd_end_gb_query()
1517 ret = vmw_query_bo_switch_prepare(dev_priv, vmw_bo, sw_context); in vmw_cmd_end_gb_query()
1530 static int vmw_cmd_end_query(struct vmw_private *dev_priv, in vmw_cmd_end_query() argument
1542 if (dev_priv->has_mob) { in vmw_cmd_end_query()
1558 return vmw_cmd_end_gb_query(dev_priv, sw_context, header); in vmw_cmd_end_query()
1561 ret = vmw_cmd_cid_check(dev_priv, sw_context, header); in vmw_cmd_end_query()
1565 ret = vmw_translate_guest_ptr(dev_priv, sw_context, in vmw_cmd_end_query()
1571 ret = vmw_query_bo_switch_prepare(dev_priv, vmw_bo, sw_context); in vmw_cmd_end_query()
1584 static int vmw_cmd_wait_gb_query(struct vmw_private *dev_priv, in vmw_cmd_wait_gb_query() argument
1596 ret = vmw_cmd_cid_check(dev_priv, sw_context, header); in vmw_cmd_wait_gb_query()
1600 ret = vmw_translate_mob_ptr(dev_priv, sw_context, in vmw_cmd_wait_gb_query()
1617 static int vmw_cmd_wait_query(struct vmw_private *dev_priv, in vmw_cmd_wait_query() argument
1629 if (dev_priv->has_mob) { in vmw_cmd_wait_query()
1645 return vmw_cmd_wait_gb_query(dev_priv, sw_context, header); in vmw_cmd_wait_query()
1648 ret = vmw_cmd_cid_check(dev_priv, sw_context, header); in vmw_cmd_wait_query()
1652 ret = vmw_translate_guest_ptr(dev_priv, sw_context, in vmw_cmd_wait_query()
1662 static int vmw_cmd_dma(struct vmw_private *dev_priv, in vmw_cmd_dma() argument
1686 ret = vmw_translate_guest_ptr(dev_priv, sw_context, in vmw_cmd_dma()
1703 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dma()
1722 static int vmw_cmd_draw(struct vmw_private *dev_priv, in vmw_cmd_draw() argument
1737 ret = vmw_cmd_cid_check(dev_priv, sw_context, header); in vmw_cmd_draw()
1750 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_draw()
1766 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_draw()
1776 static int vmw_cmd_tex_state(struct vmw_private *dev_priv, in vmw_cmd_tex_state() argument
1796 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_tex_state()
1812 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_tex_state()
1818 if (dev_priv->has_mob) { in vmw_cmd_tex_state()
1833 static int vmw_cmd_check_define_gmrfb(struct vmw_private *dev_priv, in vmw_cmd_check_define_gmrfb() argument
1845 ret = vmw_translate_guest_ptr(dev_priv, sw_context, in vmw_cmd_check_define_gmrfb()
1872 static int vmw_cmd_res_switch_backup(struct vmw_private *dev_priv, in vmw_cmd_res_switch_backup() argument
1881 ret = vmw_translate_mob_ptr(dev_priv, sw_context, buf_id, &dma_buf); in vmw_cmd_res_switch_backup()
1913 static int vmw_cmd_switch_backup(struct vmw_private *dev_priv, in vmw_cmd_switch_backup() argument
1925 ret = vmw_cmd_res_check(dev_priv, sw_context, res_type, in vmw_cmd_switch_backup()
1930 return vmw_cmd_res_switch_backup(dev_priv, sw_context, val_node, in vmw_cmd_switch_backup()
1942 static int vmw_cmd_bind_gb_surface(struct vmw_private *dev_priv, in vmw_cmd_bind_gb_surface() argument
1953 return vmw_cmd_switch_backup(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_bind_gb_surface()
1967 static int vmw_cmd_update_gb_image(struct vmw_private *dev_priv, in vmw_cmd_update_gb_image() argument
1978 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_update_gb_image()
1991 static int vmw_cmd_update_gb_surface(struct vmw_private *dev_priv, in vmw_cmd_update_gb_surface() argument
2002 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_update_gb_surface()
2015 static int vmw_cmd_readback_gb_image(struct vmw_private *dev_priv, in vmw_cmd_readback_gb_image() argument
2026 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_readback_gb_image()
2039 static int vmw_cmd_readback_gb_surface(struct vmw_private *dev_priv, in vmw_cmd_readback_gb_surface() argument
2050 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_readback_gb_surface()
2063 static int vmw_cmd_invalidate_gb_image(struct vmw_private *dev_priv, in vmw_cmd_invalidate_gb_image() argument
2074 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_invalidate_gb_image()
2087 static int vmw_cmd_invalidate_gb_surface(struct vmw_private *dev_priv, in vmw_cmd_invalidate_gb_surface() argument
2098 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_invalidate_gb_surface()
2112 static int vmw_cmd_shader_define(struct vmw_private *dev_priv, in vmw_cmd_shader_define() argument
2127 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_shader_define()
2133 if (unlikely(!dev_priv->has_mob)) in vmw_cmd_shader_define()
2137 ret = vmw_compat_shader_add(dev_priv, in vmw_cmd_shader_define()
2160 static int vmw_cmd_shader_destroy(struct vmw_private *dev_priv, in vmw_cmd_shader_destroy() argument
2174 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_shader_destroy()
2180 if (unlikely(!dev_priv->has_mob)) in vmw_cmd_shader_destroy()
2205 static int vmw_cmd_set_shader(struct vmw_private *dev_priv, in vmw_cmd_set_shader() argument
2227 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_set_shader()
2233 if (!dev_priv->has_mob) in vmw_cmd_set_shader()
2242 ret = vmw_cmd_res_reloc_add(dev_priv, sw_context, in vmw_cmd_set_shader()
2252 ret = vmw_cmd_res_check(dev_priv, sw_context, in vmw_cmd_set_shader()
2277 static int vmw_cmd_set_shader_const(struct vmw_private *dev_priv, in vmw_cmd_set_shader_const() argument
2290 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_set_shader_const()
2296 if (dev_priv->has_mob) in vmw_cmd_set_shader_const()
2310 static int vmw_cmd_bind_gb_shader(struct vmw_private *dev_priv, in vmw_cmd_bind_gb_shader() argument
2322 return vmw_cmd_switch_backup(dev_priv, sw_context, vmw_res_shader, in vmw_cmd_bind_gb_shader()
2337 vmw_cmd_dx_set_single_constant_buffer(struct vmw_private *dev_priv, in vmw_cmd_dx_set_single_constant_buffer() argument
2356 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dx_set_single_constant_buffer()
2392 static int vmw_cmd_dx_set_shader_res(struct vmw_private *dev_priv, in vmw_cmd_dx_set_shader_res() argument
2425 static int vmw_cmd_dx_set_shader(struct vmw_private *dev_priv, in vmw_cmd_dx_set_shader() argument
2485 static int vmw_cmd_dx_set_vertex_buffers(struct vmw_private *dev_priv, in vmw_cmd_dx_set_vertex_buffers() argument
2514 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dx_set_vertex_buffers()
2542 static int vmw_cmd_dx_set_index_buffer(struct vmw_private *dev_priv, in vmw_cmd_dx_set_index_buffer() argument
2561 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dx_set_index_buffer()
2586 static int vmw_cmd_dx_set_rendertargets(struct vmw_private *dev_priv, in vmw_cmd_dx_set_rendertargets() argument
2622 static int vmw_cmd_dx_clear_rendertarget_view(struct vmw_private *dev_priv, in vmw_cmd_dx_clear_rendertarget_view() argument
2643 static int vmw_cmd_dx_clear_depthstencil_view(struct vmw_private *dev_priv, in vmw_cmd_dx_clear_depthstencil_view() argument
2656 static int vmw_cmd_dx_view_define(struct vmw_private *dev_priv, in vmw_cmd_dx_view_define() argument
2682 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dx_view_define()
2712 static int vmw_cmd_dx_set_so_targets(struct vmw_private *dev_priv, in vmw_cmd_dx_set_so_targets() argument
2741 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dx_set_so_targets()
2761 static int vmw_cmd_dx_so_define(struct vmw_private *dev_priv, in vmw_cmd_dx_so_define() argument
2800 static int vmw_cmd_dx_check_subresource(struct vmw_private *dev_priv, in vmw_cmd_dx_check_subresource() argument
2823 return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, in vmw_cmd_dx_check_subresource()
2828 static int vmw_cmd_dx_cid_check(struct vmw_private *dev_priv, in vmw_cmd_dx_cid_check() argument
2854 static int vmw_cmd_dx_view_remove(struct vmw_private *dev_priv, in vmw_cmd_dx_view_remove() argument
2894 static int vmw_cmd_dx_define_shader(struct vmw_private *dev_priv, in vmw_cmd_dx_define_shader() argument
2930 static int vmw_cmd_dx_destroy_shader(struct vmw_private *dev_priv, in vmw_cmd_dx_destroy_shader() argument
2962 static int vmw_cmd_dx_bind_shader(struct vmw_private *dev_priv, in vmw_cmd_dx_bind_shader() argument
2976 ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, in vmw_cmd_dx_bind_shader()
3003 ret = vmw_cmd_res_switch_backup(dev_priv, sw_context, res_node, in vmw_cmd_dx_bind_shader()
3012 static int vmw_cmd_check_not_3d(struct vmw_private *dev_priv, in vmw_cmd_check_not_3d() argument
3050 return vmw_cmd_check_define_gmrfb(dev_priv, sw_context, buf); in vmw_cmd_check_not_3d()
3364 static int vmw_cmd_check(struct vmw_private *dev_priv, in vmw_cmd_check() argument
3373 bool gb = dev_priv->capabilities & SVGA_CAP_GBOBJECTS; in vmw_cmd_check()
3378 return vmw_cmd_check_not_3d(dev_priv, sw_context, buf, size); in vmw_cmd_check()
3404 ret = entry->func(dev_priv, sw_context, header); in vmw_cmd_check()
3427 static int vmw_cmd_check_all(struct vmw_private *dev_priv, in vmw_cmd_check_all() argument
3439 ret = vmw_cmd_check(dev_priv, sw_context, buf, &size); in vmw_cmd_check_all()
3540 int vmw_validate_single_buffer(struct vmw_private *dev_priv, in vmw_validate_single_buffer() argument
3577 static int vmw_validate_buffers(struct vmw_private *dev_priv, in vmw_validate_buffers() argument
3584 ret = vmw_validate_single_buffer(dev_priv, entry->base.bo, in vmw_validate_buffers()
3634 struct vmw_private *dev_priv, in vmw_execbuf_fence_commands() argument
3645 ret = vmw_fifo_send_fence(dev_priv, &sequence); in vmw_execbuf_fence_commands()
3652 ret = vmw_user_fence_create(file_priv, dev_priv->fman, in vmw_execbuf_fence_commands()
3655 ret = vmw_fence_create(dev_priv->fman, sequence, p_fence); in vmw_execbuf_fence_commands()
3658 (void) vmw_fallback_wait(dev_priv, false, false, in vmw_execbuf_fence_commands()
3688 vmw_execbuf_copy_fence_user(struct vmw_private *dev_priv, in vmw_execbuf_copy_fence_user() argument
3708 vmw_update_seqno(dev_priv, &dev_priv->fifo); in vmw_execbuf_copy_fence_user()
3709 fence_rep.passed_seqno = dev_priv->last_read_seqno; in vmw_execbuf_copy_fence_user()
3745 static int vmw_execbuf_submit_fifo(struct vmw_private *dev_priv, in vmw_execbuf_submit_fifo() argument
3753 cmd = vmw_fifo_reserve_dx(dev_priv, command_size, in vmw_execbuf_submit_fifo()
3756 cmd = vmw_fifo_reserve(dev_priv, command_size); in vmw_execbuf_submit_fifo()
3766 vmw_fifo_commit(dev_priv, command_size); in vmw_execbuf_submit_fifo()
3783 static int vmw_execbuf_submit_cmdbuf(struct vmw_private *dev_priv, in vmw_execbuf_submit_cmdbuf() argument
3790 void *cmd = vmw_cmdbuf_reserve(dev_priv->cman, command_size, in vmw_execbuf_submit_cmdbuf()
3796 vmw_cmdbuf_commit(dev_priv->cman, command_size, header, false); in vmw_execbuf_submit_cmdbuf()
3823 static void *vmw_execbuf_cmdbuf(struct vmw_private *dev_priv, in vmw_execbuf_cmdbuf() argument
3833 if (!dev_priv->cman || kernel_commands) in vmw_execbuf_cmdbuf()
3844 kernel_commands = vmw_cmdbuf_alloc(dev_priv->cman, cmdbuf_size, in vmw_execbuf_cmdbuf()
3861 static int vmw_execbuf_tie_context(struct vmw_private *dev_priv, in vmw_execbuf_tie_context() argument
3872 ret = vmw_user_resource_lookup_handle(dev_priv, sw_context->fp->tfile, in vmw_execbuf_tie_context()
3893 struct vmw_private *dev_priv, in vmw_execbuf_process() argument
3902 struct vmw_sw_context *sw_context = &dev_priv->ctx; in vmw_execbuf_process()
3912 ret = vmw_wait_lag(dev_priv, &dev_priv->fifo.marker_queue, in vmw_execbuf_process()
3919 kernel_commands = vmw_execbuf_cmdbuf(dev_priv, user_commands, in vmw_execbuf_process()
3925 ret = mutex_lock_interruptible(&dev_priv->cmdbuf_mutex); in vmw_execbuf_process()
3955 sw_context->cur_query_bo = dev_priv->pinned_bo; in vmw_execbuf_process()
3975 ret = vmw_execbuf_tie_context(dev_priv, sw_context, dx_context_handle); in vmw_execbuf_process()
3982 ret = vmw_cmd_check_all(dev_priv, sw_context, kernel_commands, in vmw_execbuf_process()
4004 ret = vmw_validate_buffers(dev_priv, sw_context); in vmw_execbuf_process()
4012 ret = mutex_lock_interruptible(&dev_priv->binding_mutex); in vmw_execbuf_process()
4018 if (dev_priv->has_mob) { in vmw_execbuf_process()
4025 ret = vmw_execbuf_submit_fifo(dev_priv, kernel_commands, in vmw_execbuf_process()
4028 ret = vmw_execbuf_submit_cmdbuf(dev_priv, header, command_size, in vmw_execbuf_process()
4032 mutex_unlock(&dev_priv->binding_mutex); in vmw_execbuf_process()
4036 vmw_query_bo_switch_commit(dev_priv, sw_context); in vmw_execbuf_process()
4037 ret = vmw_execbuf_fence_commands(file_priv, dev_priv, in vmw_execbuf_process()
4054 if (unlikely(dev_priv->pinned_bo != NULL && in vmw_execbuf_process()
4055 !dev_priv->query_cid_valid)) in vmw_execbuf_process()
4056 __vmw_execbuf_release_pinned_bo(dev_priv, fence); in vmw_execbuf_process()
4059 vmw_execbuf_copy_fence_user(dev_priv, vmw_fpriv(file_priv), ret, in vmw_execbuf_process()
4072 mutex_unlock(&dev_priv->cmdbuf_mutex); in vmw_execbuf_process()
4083 mutex_unlock(&dev_priv->binding_mutex); in vmw_execbuf_process()
4091 if (unlikely(dev_priv->pinned_bo != NULL && in vmw_execbuf_process()
4092 !dev_priv->query_cid_valid)) in vmw_execbuf_process()
4093 __vmw_execbuf_release_pinned_bo(dev_priv, NULL); in vmw_execbuf_process()
4099 mutex_unlock(&dev_priv->cmdbuf_mutex); in vmw_execbuf_process()
4124 static void vmw_execbuf_unpin_panic(struct vmw_private *dev_priv) in vmw_execbuf_unpin_panic() argument
4128 (void) vmw_fallback_wait(dev_priv, false, true, 0, false, 10*HZ); in vmw_execbuf_unpin_panic()
4129 vmw_bo_pin_reserved(dev_priv->pinned_bo, false); in vmw_execbuf_unpin_panic()
4130 if (dev_priv->dummy_query_bo_pinned) { in vmw_execbuf_unpin_panic()
4131 vmw_bo_pin_reserved(dev_priv->dummy_query_bo, false); in vmw_execbuf_unpin_panic()
4132 dev_priv->dummy_query_bo_pinned = false; in vmw_execbuf_unpin_panic()
4161 void __vmw_execbuf_release_pinned_bo(struct vmw_private *dev_priv, in __vmw_execbuf_release_pinned_bo() argument
4170 if (dev_priv->pinned_bo == NULL) in __vmw_execbuf_release_pinned_bo()
4175 pinned_val.bo = ttm_bo_reference(&dev_priv->pinned_bo->base); in __vmw_execbuf_release_pinned_bo()
4179 query_val.bo = ttm_bo_reference(&dev_priv->dummy_query_bo->base); in __vmw_execbuf_release_pinned_bo()
4186 vmw_execbuf_unpin_panic(dev_priv); in __vmw_execbuf_release_pinned_bo()
4190 if (dev_priv->query_cid_valid) { in __vmw_execbuf_release_pinned_bo()
4192 ret = vmw_fifo_emit_dummy_query(dev_priv, dev_priv->query_cid); in __vmw_execbuf_release_pinned_bo()
4194 vmw_execbuf_unpin_panic(dev_priv); in __vmw_execbuf_release_pinned_bo()
4197 dev_priv->query_cid_valid = false; in __vmw_execbuf_release_pinned_bo()
4200 vmw_bo_pin_reserved(dev_priv->pinned_bo, false); in __vmw_execbuf_release_pinned_bo()
4201 if (dev_priv->dummy_query_bo_pinned) { in __vmw_execbuf_release_pinned_bo()
4202 vmw_bo_pin_reserved(dev_priv->dummy_query_bo, false); in __vmw_execbuf_release_pinned_bo()
4203 dev_priv->dummy_query_bo_pinned = false; in __vmw_execbuf_release_pinned_bo()
4206 (void) vmw_execbuf_fence_commands(NULL, dev_priv, &lfence, in __vmw_execbuf_release_pinned_bo()
4216 vmw_dmabuf_unreference(&dev_priv->pinned_bo); in __vmw_execbuf_release_pinned_bo()
4218 dev_priv->dummy_query_bo->pin_count); in __vmw_execbuf_release_pinned_bo()
4228 vmw_dmabuf_unreference(&dev_priv->pinned_bo); in __vmw_execbuf_release_pinned_bo()
4249 void vmw_execbuf_release_pinned_bo(struct vmw_private *dev_priv) in vmw_execbuf_release_pinned_bo() argument
4251 mutex_lock(&dev_priv->cmdbuf_mutex); in vmw_execbuf_release_pinned_bo()
4252 if (dev_priv->query_cid_valid) in vmw_execbuf_release_pinned_bo()
4253 __vmw_execbuf_release_pinned_bo(dev_priv, NULL); in vmw_execbuf_release_pinned_bo()
4254 mutex_unlock(&dev_priv->cmdbuf_mutex); in vmw_execbuf_release_pinned_bo()
4260 struct vmw_private *dev_priv = vmw_priv(dev); in vmw_execbuf_ioctl() local
4310 ret = ttm_read_lock(&dev_priv->reservation_sem, true); in vmw_execbuf_ioctl()
4314 ret = vmw_execbuf_process(file_priv, dev_priv, in vmw_execbuf_ioctl()
4320 ttm_read_unlock(&dev_priv->reservation_sem); in vmw_execbuf_ioctl()
4324 vmw_kms_cursor_post_execbuf(dev_priv); in vmw_execbuf_ioctl()