Lines Matching refs:view
129 struct vmw_view *view = vmw_view(res); in vmw_view_commit_notify() local
134 struct vmw_surface *srf = vmw_res_to_srf(view->srf); in vmw_view_commit_notify()
136 list_add_tail(&view->srf_head, &srf->view_list); in vmw_view_commit_notify()
137 vmw_cotable_add_resource(view->cotable, &view->cotable_head); in vmw_view_commit_notify()
138 view->committed = true; in vmw_view_commit_notify()
139 res->id = view->view_id; in vmw_view_commit_notify()
142 list_del_init(&view->cotable_head); in vmw_view_commit_notify()
143 list_del_init(&view->srf_head); in vmw_view_commit_notify()
144 view->committed = false; in vmw_view_commit_notify()
160 struct vmw_view *view = vmw_view(res); in vmw_view_create() local
161 struct vmw_surface *srf = vmw_res_to_srf(view->srf); in vmw_view_create()
169 if (!view->committed) { in vmw_view_create()
174 cmd = VMW_CMD_CTX_RESERVE(res->dev_priv, view->cmd_size, view->ctx->id); in vmw_view_create()
180 memcpy(cmd, &view->cmd, view->cmd_size); in vmw_view_create()
181 WARN_ON(cmd->body.view_id != view->view_id); in vmw_view_create()
183 WARN_ON(view->srf->id == SVGA3D_INVALID_ID); in vmw_view_create()
184 cmd->body.sid = view->srf->id; in vmw_view_create()
185 vmw_cmd_commit(res->dev_priv, view->cmd_size); in vmw_view_create()
186 res->id = view->view_id; in vmw_view_create()
187 list_add_tail(&view->srf_head, &srf->view_list); in vmw_view_create()
188 vmw_cotable_add_resource(view->cotable, &view->cotable_head); in vmw_view_create()
205 struct vmw_view *view = vmw_view(res); in vmw_view_destroy() local
214 if (!view->committed || res->id == -1) in vmw_view_destroy()
217 cmd = VMW_CMD_CTX_RESERVE(dev_priv, sizeof(*cmd), view->ctx->id); in vmw_view_destroy()
221 cmd->header.id = vmw_view_destroy_cmds[view->view_type]; in vmw_view_destroy()
223 cmd->body.view_id = view->view_id; in vmw_view_destroy()
226 list_del_init(&view->cotable_head); in vmw_view_destroy()
227 list_del_init(&view->srf_head); in vmw_view_destroy()
286 struct vmw_view *view = vmw_view(res); in vmw_view_res_free() local
287 size_t size = offsetof(struct vmw_view, cmd) + view->cmd_size; in vmw_view_res_free()
290 vmw_resource_unreference(&view->cotable); in vmw_view_res_free()
291 vmw_resource_unreference(&view->srf); in vmw_view_res_free()
292 kfree_rcu(view, rcu); in vmw_view_res_free()
329 struct vmw_view *view; in vmw_view_add() local
357 view = kmalloc(size, GFP_KERNEL); in vmw_view_add()
358 if (!view) { in vmw_view_add()
363 res = &view->res; in vmw_view_add()
364 view->ctx = ctx; in vmw_view_add()
365 view->srf = vmw_resource_reference(srf); in vmw_view_add()
366 view->cotable = vmw_resource_reference in vmw_view_add()
368 view->view_type = view_type; in vmw_view_add()
369 view->view_id = user_key; in vmw_view_add()
370 view->cmd_size = cmd_size; in vmw_view_add()
371 view->committed = false; in vmw_view_add()
372 INIT_LIST_HEAD(&view->srf_head); in vmw_view_add()
373 INIT_LIST_HEAD(&view->cotable_head); in vmw_view_add()
374 memcpy(&view->cmd, cmd, cmd_size); in vmw_view_add()
386 res->id = view->view_id; in vmw_view_add()