Lines Matching refs:parser

783 static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error,  in amdgpu_cs_parser_fini()  argument
789 ttm_eu_backoff_reservation(&parser->ticket, in amdgpu_cs_parser_fini()
790 &parser->validated); in amdgpu_cs_parser_fini()
792 for (i = 0; i < parser->num_post_dep_syncobjs; i++) in amdgpu_cs_parser_fini()
793 drm_syncobj_put(parser->post_dep_syncobjs[i]); in amdgpu_cs_parser_fini()
794 kfree(parser->post_dep_syncobjs); in amdgpu_cs_parser_fini()
796 dma_fence_put(parser->fence); in amdgpu_cs_parser_fini()
798 if (parser->ctx) { in amdgpu_cs_parser_fini()
799 mutex_unlock(&parser->ctx->lock); in amdgpu_cs_parser_fini()
800 amdgpu_ctx_put(parser->ctx); in amdgpu_cs_parser_fini()
802 if (parser->bo_list) in amdgpu_cs_parser_fini()
803 amdgpu_bo_list_put(parser->bo_list); in amdgpu_cs_parser_fini()
805 for (i = 0; i < parser->nchunks; i++) in amdgpu_cs_parser_fini()
806 kvfree(parser->chunks[i].kdata); in amdgpu_cs_parser_fini()
807 kfree(parser->chunks); in amdgpu_cs_parser_fini()
808 if (parser->job) in amdgpu_cs_parser_fini()
809 amdgpu_job_free(parser->job); in amdgpu_cs_parser_fini()
810 amdgpu_bo_unref(&parser->uf_entry.robj); in amdgpu_cs_parser_fini()
984 struct amdgpu_cs_parser *parser) in amdgpu_cs_ib_fill() argument
986 struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; in amdgpu_cs_ib_fill()
991 for (i = 0, j = 0; i < parser->nchunks && j < parser->job->num_ibs; i++) { in amdgpu_cs_ib_fill()
997 chunk = &parser->chunks[i]; in amdgpu_cs_ib_fill()
998 ib = &parser->job->ibs[j]; in amdgpu_cs_ib_fill()
1017 r = amdgpu_queue_mgr_map(adev, &parser->ctx->queue_mgr, chunk_ib->ip_type, in amdgpu_cs_ib_fill()
1023 parser->job->preamble_status |= in amdgpu_cs_ib_fill()
1026 if (parser->ring && parser->ring != ring) in amdgpu_cs_ib_fill()
1029 parser->ring = ring; in amdgpu_cs_ib_fill()
1047 if (parser->job->uf_addr && ( in amdgpu_cs_ib_fill()
1048 parser->ring->funcs->type == AMDGPU_RING_TYPE_UVD || in amdgpu_cs_ib_fill()
1049 parser->ring->funcs->type == AMDGPU_RING_TYPE_VCE)) in amdgpu_cs_ib_fill()
1052 return amdgpu_ctx_wait_prev_fence(parser->ctx, parser->ring->idx); in amdgpu_cs_ib_fill()
1283 struct amdgpu_cs_parser parser = {}; in amdgpu_cs_ioctl() local
1290 parser.adev = adev; in amdgpu_cs_ioctl()
1291 parser.filp = filp; in amdgpu_cs_ioctl()
1293 r = amdgpu_cs_parser_init(&parser, data); in amdgpu_cs_ioctl()
1299 r = amdgpu_cs_ib_fill(adev, &parser); in amdgpu_cs_ioctl()
1303 r = amdgpu_cs_parser_bos(&parser, data); in amdgpu_cs_ioctl()
1314 r = amdgpu_cs_dependencies(adev, &parser); in amdgpu_cs_ioctl()
1320 for (i = 0; i < parser.job->num_ibs; i++) in amdgpu_cs_ioctl()
1321 trace_amdgpu_cs(&parser, i); in amdgpu_cs_ioctl()
1323 r = amdgpu_cs_ib_vm_chunk(adev, &parser); in amdgpu_cs_ioctl()
1327 r = amdgpu_cs_submit(&parser, cs); in amdgpu_cs_ioctl()
1330 amdgpu_cs_parser_fini(&parser, r, reserved_buffers); in amdgpu_cs_ioctl()
1638 int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, in amdgpu_cs_find_mapping() argument
1642 struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; in amdgpu_cs_find_mapping()
1658 if (READ_ONCE((*bo)->tbo.resv->lock.ctx) != &parser->ticket) in amdgpu_cs_find_mapping()