xref: /linux/drivers/gpu/drm/nouveau/nvkm/engine/nvdec/priv.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */
216307b5dSAlexandre Courbot #ifndef __NVKM_NVDEC_PRIV_H__
316307b5dSAlexandre Courbot #define __NVKM_NVDEC_PRIV_H__
416307b5dSAlexandre Courbot #include <engine/nvdec.h>
516307b5dSAlexandre Courbot 
698a34d99SBen Skeggs struct nvkm_nvdec_func {
73a900a5dSBen Skeggs 	const struct nvkm_falcon_func *flcn;
8*142cd602SBen Skeggs 
9*142cd602SBen Skeggs 	struct nvkm_sclass sclass[];
1098a34d99SBen Skeggs };
1198a34d99SBen Skeggs 
1298a34d99SBen Skeggs struct nvkm_nvdec_fwif {
1398a34d99SBen Skeggs 	int version;
1498a34d99SBen Skeggs 	int (*load)(struct nvkm_nvdec *, int ver,
1598a34d99SBen Skeggs 		    const struct nvkm_nvdec_fwif *);
1698a34d99SBen Skeggs 	const struct nvkm_nvdec_func *func;
1798a34d99SBen Skeggs };
1898a34d99SBen Skeggs 
19796928c6SBen Skeggs extern const struct nvkm_nvdec_fwif gm107_nvdec_fwif[];
20796928c6SBen Skeggs 
21f8aeb133SBen Skeggs int nvkm_nvdec_new_(const struct nvkm_nvdec_fwif *fwif, struct nvkm_device *,
22a51c69eeSBen Skeggs 		    enum nvkm_subdev_type, int, u32 addr, struct nvkm_nvdec **);
23*142cd602SBen Skeggs 
24*142cd602SBen Skeggs int r535_nvdec_new(const struct nvkm_engine_func *, struct nvkm_device *,
25*142cd602SBen Skeggs 		   enum nvkm_subdev_type, int, struct nvkm_nvdec **);
2616307b5dSAlexandre Courbot #endif
27