xref: /linux/drivers/gpu/drm/nouveau/include/nvkm/engine/nvdec.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */
23545b425SBen Skeggs #ifndef __NVKM_NVDEC_H__
33545b425SBen Skeggs #define __NVKM_NVDEC_H__
416307b5dSAlexandre Courbot #define nvkm_nvdec(p) container_of((p), struct nvkm_nvdec, engine)
53545b425SBen Skeggs #include <core/engine.h>
63a900a5dSBen Skeggs #include <core/falcon.h>
716307b5dSAlexandre Courbot 
816307b5dSAlexandre Courbot struct nvkm_nvdec {
998a34d99SBen Skeggs 	const struct nvkm_nvdec_func *func;
1016307b5dSAlexandre Courbot 	struct nvkm_engine engine;
113a900a5dSBen Skeggs 	struct nvkm_falcon falcon;
1216307b5dSAlexandre Courbot };
1316307b5dSAlexandre Courbot 
14f8aeb133SBen Skeggs int gm107_nvdec_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_nvdec **);
15796928c6SBen Skeggs int tu102_nvdec_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_nvdec **);
16*142cd602SBen Skeggs int ga100_nvdec_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_nvdec **);
17a51c69eeSBen Skeggs int ga102_nvdec_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_nvdec **);
18*142cd602SBen Skeggs int ad102_nvdec_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_nvdec **);
193545b425SBen Skeggs #endif
20