Lines Matching refs:parser

748 static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error,  in amdgpu_cs_parser_fini()  argument
754 ttm_eu_backoff_reservation(&parser->ticket, in amdgpu_cs_parser_fini()
755 &parser->validated); in amdgpu_cs_parser_fini()
757 for (i = 0; i < parser->num_post_deps; i++) { in amdgpu_cs_parser_fini()
758 drm_syncobj_put(parser->post_deps[i].syncobj); in amdgpu_cs_parser_fini()
759 kfree(parser->post_deps[i].chain); in amdgpu_cs_parser_fini()
761 kfree(parser->post_deps); in amdgpu_cs_parser_fini()
763 dma_fence_put(parser->fence); in amdgpu_cs_parser_fini()
765 if (parser->ctx) { in amdgpu_cs_parser_fini()
766 mutex_unlock(&parser->ctx->lock); in amdgpu_cs_parser_fini()
767 amdgpu_ctx_put(parser->ctx); in amdgpu_cs_parser_fini()
769 if (parser->bo_list) in amdgpu_cs_parser_fini()
770 amdgpu_bo_list_put(parser->bo_list); in amdgpu_cs_parser_fini()
772 for (i = 0; i < parser->nchunks; i++) in amdgpu_cs_parser_fini()
773 kvfree(parser->chunks[i].kdata); in amdgpu_cs_parser_fini()
774 kfree(parser->chunks); in amdgpu_cs_parser_fini()
775 if (parser->job) in amdgpu_cs_parser_fini()
776 amdgpu_job_free(parser->job); in amdgpu_cs_parser_fini()
777 if (parser->uf_entry.tv.bo) { in amdgpu_cs_parser_fini()
778 struct amdgpu_bo *uf = ttm_to_amdgpu_bo(parser->uf_entry.tv.bo); in amdgpu_cs_parser_fini()
941 struct amdgpu_cs_parser *parser) in amdgpu_cs_ib_fill() argument
943 struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; in amdgpu_cs_ib_fill()
949 for (i = 0, j = 0; i < parser->nchunks && j < parser->job->num_ibs; i++) { in amdgpu_cs_ib_fill()
955 chunk = &parser->chunks[i]; in amdgpu_cs_ib_fill()
956 ib = &parser->job->ibs[j]; in amdgpu_cs_ib_fill()
976 r = amdgpu_ctx_get_entity(parser->ctx, chunk_ib->ip_type, in amdgpu_cs_ib_fill()
983 parser->job->preamble_status |= in amdgpu_cs_ib_fill()
986 if (parser->entity && parser->entity != entity) in amdgpu_cs_ib_fill()
989 parser->entity = entity; in amdgpu_cs_ib_fill()
1007 ring = to_amdgpu_ring(parser->entity->rq->sched); in amdgpu_cs_ib_fill()
1008 if (parser->job->uf_addr && ring->funcs->no_user_fence) in amdgpu_cs_ib_fill()
1011 return amdgpu_ctx_wait_prev_fence(parser->ctx, parser->entity); in amdgpu_cs_ib_fill()
1354 struct amdgpu_cs_parser parser = {}; in amdgpu_cs_ioctl() local
1361 parser.adev = adev; in amdgpu_cs_ioctl()
1362 parser.filp = filp; in amdgpu_cs_ioctl()
1364 r = amdgpu_cs_parser_init(&parser, data); in amdgpu_cs_ioctl()
1370 r = amdgpu_cs_ib_fill(adev, &parser); in amdgpu_cs_ioctl()
1374 r = amdgpu_cs_dependencies(adev, &parser); in amdgpu_cs_ioctl()
1380 r = amdgpu_cs_parser_bos(&parser, data); in amdgpu_cs_ioctl()
1391 for (i = 0; i < parser.job->num_ibs; i++) in amdgpu_cs_ioctl()
1392 trace_amdgpu_cs(&parser, i); in amdgpu_cs_ioctl()
1394 r = amdgpu_cs_vm_handling(&parser); in amdgpu_cs_ioctl()
1398 r = amdgpu_cs_submit(&parser, cs); in amdgpu_cs_ioctl()
1401 amdgpu_cs_parser_fini(&parser, r, reserved_buffers); in amdgpu_cs_ioctl()
1711 int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, in amdgpu_cs_find_mapping() argument
1715 struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; in amdgpu_cs_find_mapping()
1731 if (dma_resv_locking_ctx((*bo)->tbo.base.resv) != &parser->ticket) in amdgpu_cs_find_mapping()