xref: /linux/drivers/gpu/drm/nouveau/nvkm/engine/nvenc/gm107.c (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
110e43bfdSBen Skeggs /*
210e43bfdSBen Skeggs  * Copyright 2019 Red Hat Inc.
310e43bfdSBen Skeggs  *
410e43bfdSBen Skeggs  * Permission is hereby granted, free of charge, to any person obtaining a
510e43bfdSBen Skeggs  * copy of this software and associated documentation files (the "Software"),
610e43bfdSBen Skeggs  * to deal in the Software without restriction, including without limitation
710e43bfdSBen Skeggs  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
810e43bfdSBen Skeggs  * and/or sell copies of the Software, and to permit persons to whom the
910e43bfdSBen Skeggs  * Software is furnished to do so, subject to the following conditions:
1010e43bfdSBen Skeggs  *
1110e43bfdSBen Skeggs  * The above copyright notice and this permission notice shall be included in
1210e43bfdSBen Skeggs  * all copies or substantial portions of the Software.
1310e43bfdSBen Skeggs  *
1410e43bfdSBen Skeggs  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1510e43bfdSBen Skeggs  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1610e43bfdSBen Skeggs  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1710e43bfdSBen Skeggs  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
1810e43bfdSBen Skeggs  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
1910e43bfdSBen Skeggs  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2010e43bfdSBen Skeggs  * OTHER DEALINGS IN THE SOFTWARE.
2110e43bfdSBen Skeggs  */
2210e43bfdSBen Skeggs 
2310e43bfdSBen Skeggs #include "priv.h"
2410e43bfdSBen Skeggs 
2510e43bfdSBen Skeggs static const struct nvkm_falcon_func
2610e43bfdSBen Skeggs gm107_nvenc_flcn = {
2710e43bfdSBen Skeggs };
2810e43bfdSBen Skeggs 
2910e43bfdSBen Skeggs static const struct nvkm_nvenc_func
3010e43bfdSBen Skeggs gm107_nvenc = {
3110e43bfdSBen Skeggs 	.flcn = &gm107_nvenc_flcn,
3210e43bfdSBen Skeggs };
3310e43bfdSBen Skeggs 
3410e43bfdSBen Skeggs static int
gm107_nvenc_nofw(struct nvkm_nvenc * nvenc,int ver,const struct nvkm_nvenc_fwif * fwif)3510e43bfdSBen Skeggs gm107_nvenc_nofw(struct nvkm_nvenc *nvenc, int ver,
3610e43bfdSBen Skeggs 		 const struct nvkm_nvenc_fwif *fwif)
3710e43bfdSBen Skeggs {
3810e43bfdSBen Skeggs 	return 0;
3910e43bfdSBen Skeggs }
4010e43bfdSBen Skeggs 
41*47c9136bSBen Skeggs const struct nvkm_nvenc_fwif
4210e43bfdSBen Skeggs gm107_nvenc_fwif[] = {
4310e43bfdSBen Skeggs 	{ -1, gm107_nvenc_nofw, &gm107_nvenc },
4410e43bfdSBen Skeggs 	{}
4510e43bfdSBen Skeggs };
4610e43bfdSBen Skeggs 
4710e43bfdSBen Skeggs int
gm107_nvenc_new(struct nvkm_device * device,enum nvkm_subdev_type type,int inst,struct nvkm_nvenc ** pnvenc)48ee532a8dSBen Skeggs gm107_nvenc_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
4910e43bfdSBen Skeggs 		struct nvkm_nvenc **pnvenc)
5010e43bfdSBen Skeggs {
51ee532a8dSBen Skeggs 	return nvkm_nvenc_new_(gm107_nvenc_fwif, device, type, inst, pnvenc);
5210e43bfdSBen Skeggs }
53