1/* SPDX-License-Identifier: MIT */
2#ifndef __NVKM_NVDEC_PRIV_H__
3#define __NVKM_NVDEC_PRIV_H__
4#include <engine/nvdec.h>
5
6struct nvkm_nvdec_func {
7	const struct nvkm_falcon_func *flcn;
8
9	struct nvkm_sclass sclass[];
10};
11
12struct nvkm_nvdec_fwif {
13	int version;
14	int (*load)(struct nvkm_nvdec *, int ver,
15		    const struct nvkm_nvdec_fwif *);
16	const struct nvkm_nvdec_func *func;
17};
18
19extern const struct nvkm_nvdec_fwif gm107_nvdec_fwif[];
20
21int nvkm_nvdec_new_(const struct nvkm_nvdec_fwif *fwif, struct nvkm_device *,
22		    enum nvkm_subdev_type, int, u32 addr, struct nvkm_nvdec **);
23
24int r535_nvdec_new(const struct nvkm_engine_func *, struct nvkm_device *,
25		   enum nvkm_subdev_type, int, struct nvkm_nvdec **);
26#endif
27