Lines Matching refs:parser

785 static void amdgpu_cs_parser_fini(struct amdgpu_cs_parser *parser, int error,  in amdgpu_cs_parser_fini()  argument
791 ttm_eu_backoff_reservation(&parser->ticket, in amdgpu_cs_parser_fini()
792 &parser->validated); in amdgpu_cs_parser_fini()
794 for (i = 0; i < parser->num_post_dep_syncobjs; i++) in amdgpu_cs_parser_fini()
795 drm_syncobj_put(parser->post_dep_syncobjs[i]); in amdgpu_cs_parser_fini()
796 kfree(parser->post_dep_syncobjs); in amdgpu_cs_parser_fini()
798 dma_fence_put(parser->fence); in amdgpu_cs_parser_fini()
800 if (parser->ctx) { in amdgpu_cs_parser_fini()
801 mutex_unlock(&parser->ctx->lock); in amdgpu_cs_parser_fini()
802 amdgpu_ctx_put(parser->ctx); in amdgpu_cs_parser_fini()
804 if (parser->bo_list) in amdgpu_cs_parser_fini()
805 amdgpu_bo_list_put(parser->bo_list); in amdgpu_cs_parser_fini()
807 for (i = 0; i < parser->nchunks; i++) in amdgpu_cs_parser_fini()
808 kvfree(parser->chunks[i].kdata); in amdgpu_cs_parser_fini()
809 kfree(parser->chunks); in amdgpu_cs_parser_fini()
810 if (parser->job) in amdgpu_cs_parser_fini()
811 amdgpu_job_free(parser->job); in amdgpu_cs_parser_fini()
812 amdgpu_bo_unref(&parser->uf_entry.robj); in amdgpu_cs_parser_fini()
986 struct amdgpu_cs_parser *parser) in amdgpu_cs_ib_fill() argument
988 struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; in amdgpu_cs_ib_fill()
993 for (i = 0, j = 0; i < parser->nchunks && j < parser->job->num_ibs; i++) { in amdgpu_cs_ib_fill()
999 chunk = &parser->chunks[i]; in amdgpu_cs_ib_fill()
1000 ib = &parser->job->ibs[j]; in amdgpu_cs_ib_fill()
1019 r = amdgpu_queue_mgr_map(adev, &parser->ctx->queue_mgr, chunk_ib->ip_type, in amdgpu_cs_ib_fill()
1025 parser->job->preamble_status |= in amdgpu_cs_ib_fill()
1028 if (parser->ring && parser->ring != ring) in amdgpu_cs_ib_fill()
1031 parser->ring = ring; in amdgpu_cs_ib_fill()
1049 if (parser->job->uf_addr && ( in amdgpu_cs_ib_fill()
1050 parser->ring->funcs->type == AMDGPU_RING_TYPE_UVD || in amdgpu_cs_ib_fill()
1051 parser->ring->funcs->type == AMDGPU_RING_TYPE_VCE)) in amdgpu_cs_ib_fill()
1054 return amdgpu_ctx_wait_prev_fence(parser->ctx, parser->ring->idx); in amdgpu_cs_ib_fill()
1287 struct amdgpu_cs_parser parser = {}; in amdgpu_cs_ioctl() local
1294 parser.adev = adev; in amdgpu_cs_ioctl()
1295 parser.filp = filp; in amdgpu_cs_ioctl()
1297 r = amdgpu_cs_parser_init(&parser, data); in amdgpu_cs_ioctl()
1303 r = amdgpu_cs_ib_fill(adev, &parser); in amdgpu_cs_ioctl()
1307 r = amdgpu_cs_parser_bos(&parser, data); in amdgpu_cs_ioctl()
1318 r = amdgpu_cs_dependencies(adev, &parser); in amdgpu_cs_ioctl()
1325 for (i = 0; i < parser.job->num_ibs; i++) in amdgpu_cs_ioctl()
1326 trace_amdgpu_cs(&parser, i); in amdgpu_cs_ioctl()
1329 r = amdgpu_cs_ib_vm_chunk(adev, &parser); in amdgpu_cs_ioctl()
1333 r = amdgpu_cs_submit(&parser, cs); in amdgpu_cs_ioctl()
1336 amdgpu_cs_parser_fini(&parser, r, reserved_buffers); in amdgpu_cs_ioctl()
1644 int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, in amdgpu_cs_find_mapping() argument
1648 struct amdgpu_fpriv *fpriv = parser->filp->driver_priv; in amdgpu_cs_find_mapping()
1664 if (READ_ONCE((*bo)->tbo.resv->lock.ctx) != &parser->ticket) in amdgpu_cs_find_mapping()