xref: /linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.h (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1*7c2d25f1SBen Skeggs /* SPDX-License-Identifier: MIT
2*7c2d25f1SBen Skeggs  *
3*7c2d25f1SBen Skeggs  * Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
4*7c2d25f1SBen Skeggs  */
5*7c2d25f1SBen Skeggs #ifndef __NVKM_RM_ENGINE_H__
6*7c2d25f1SBen Skeggs #define __NVKM_RM_ENGINE_H__
7*7c2d25f1SBen Skeggs #include "gpu.h"
8*7c2d25f1SBen Skeggs 
9*7c2d25f1SBen Skeggs int nvkm_rm_engine_ctor(void *(*dtor)(struct nvkm_engine *), struct nvkm_rm *,
10*7c2d25f1SBen Skeggs 			enum nvkm_subdev_type type, int inst,
11*7c2d25f1SBen Skeggs 			const u32 *class, int nclass, struct nvkm_engine *);
12*7c2d25f1SBen Skeggs int nvkm_rm_engine_new(struct nvkm_rm *, enum nvkm_subdev_type, int inst);
13*7c2d25f1SBen Skeggs 
14*7c2d25f1SBen Skeggs int nvkm_rm_engine_obj_new(struct nvkm_gsp_object *chan, int chid, const struct nvkm_oclass *,
15*7c2d25f1SBen Skeggs 			   struct nvkm_object **);
16*7c2d25f1SBen Skeggs 
17*7c2d25f1SBen Skeggs int nvkm_rm_gr_new(struct nvkm_rm *);
18*7c2d25f1SBen Skeggs int nvkm_rm_nvdec_new(struct nvkm_rm *, int inst);
19*7c2d25f1SBen Skeggs int nvkm_rm_nvenc_new(struct nvkm_rm *, int inst);
20*7c2d25f1SBen Skeggs #endif
21