Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 294af04b authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/core: add nvenc plumbing



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent c0c914ec
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -46,6 +46,11 @@ enum nvkm_devidx {
	NVKM_ENGINE_MSPDEC,
	NVKM_ENGINE_MSPDEC,
	NVKM_ENGINE_MSPPP,
	NVKM_ENGINE_MSPPP,
	NVKM_ENGINE_MSVLD,
	NVKM_ENGINE_MSVLD,

	NVKM_ENGINE_NVENC0,
	NVKM_ENGINE_NVENC1,
	NVKM_ENGINE_NVENC_LAST = NVKM_ENGINE_NVENC1,

	NVKM_ENGINE_PM,
	NVKM_ENGINE_PM,
	NVKM_ENGINE_SEC,
	NVKM_ENGINE_SEC,
	NVKM_ENGINE_SW,
	NVKM_ENGINE_SW,
@@ -141,6 +146,7 @@ struct nvkm_device {
	struct nvkm_engine *mspdec;
	struct nvkm_engine *mspdec;
	struct nvkm_engine *msppp;
	struct nvkm_engine *msppp;
	struct nvkm_engine *msvld;
	struct nvkm_engine *msvld;
	struct nvkm_engine *nvenc[2];
	struct nvkm_pm *pm;
	struct nvkm_pm *pm;
	struct nvkm_engine *sec;
	struct nvkm_engine *sec;
	struct nvkm_sw *sw;
	struct nvkm_sw *sw;
@@ -208,6 +214,7 @@ struct nvkm_device_chip {
	int (*mspdec  )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*mspdec  )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*msppp   )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*msppp   )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*msvld   )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*msvld   )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*nvenc[2])(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*pm      )(struct nvkm_device *, int idx, struct nvkm_pm **);
	int (*pm      )(struct nvkm_device *, int idx, struct nvkm_pm **);
	int (*sec     )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*sec     )(struct nvkm_device *, int idx, struct nvkm_engine **);
	int (*sw      )(struct nvkm_device *, int idx, struct nvkm_sw **);
	int (*sw      )(struct nvkm_device *, int idx, struct nvkm_sw **);
+4 −0
Original line number Original line Diff line number Diff line
#ifndef __NVKM_NVENC_H__
#define __NVKM_NVENC_H__
#include <core/engine.h>
#endif
+2 −0
Original line number Original line Diff line number Diff line
@@ -67,6 +67,8 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = {
	[NVKM_ENGINE_MSPDEC  ] = "mspdec",
	[NVKM_ENGINE_MSPDEC  ] = "mspdec",
	[NVKM_ENGINE_MSPPP   ] = "msppp",
	[NVKM_ENGINE_MSPPP   ] = "msppp",
	[NVKM_ENGINE_MSVLD   ] = "msvld",
	[NVKM_ENGINE_MSVLD   ] = "msvld",
	[NVKM_ENGINE_NVENC0  ] = "nvenc0",
	[NVKM_ENGINE_NVENC1  ] = "nvenc1",
	[NVKM_ENGINE_PM      ] = "pm",
	[NVKM_ENGINE_PM      ] = "pm",
	[NVKM_ENGINE_SEC     ] = "sec",
	[NVKM_ENGINE_SEC     ] = "sec",
	[NVKM_ENGINE_SW      ] = "sw",
	[NVKM_ENGINE_SW      ] = "sw",
+1 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,7 @@ include $(src)/nvkm/engine/msenc/Kbuild
include $(src)/nvkm/engine/mspdec/Kbuild
include $(src)/nvkm/engine/mspdec/Kbuild
include $(src)/nvkm/engine/msppp/Kbuild
include $(src)/nvkm/engine/msppp/Kbuild
include $(src)/nvkm/engine/msvld/Kbuild
include $(src)/nvkm/engine/msvld/Kbuild
include $(src)/nvkm/engine/nvenc/Kbuild
include $(src)/nvkm/engine/pm/Kbuild
include $(src)/nvkm/engine/pm/Kbuild
include $(src)/nvkm/engine/sec/Kbuild
include $(src)/nvkm/engine/sec/Kbuild
include $(src)/nvkm/engine/sw/Kbuild
include $(src)/nvkm/engine/sw/Kbuild
+25 −21
Original line number Original line Diff line number Diff line
@@ -2183,6 +2183,8 @@ nvkm_device_engine(struct nvkm_device *device, int index)
	_(MSPDEC , device->mspdec  ,  device->mspdec);
	_(MSPDEC , device->mspdec  ,  device->mspdec);
	_(MSPPP  , device->msppp   ,  device->msppp);
	_(MSPPP  , device->msppp   ,  device->msppp);
	_(MSVLD  , device->msvld   ,  device->msvld);
	_(MSVLD  , device->msvld   ,  device->msvld);
	_(NVENC0 , device->nvenc[0],  device->nvenc[0]);
	_(NVENC1 , device->nvenc[1],  device->nvenc[1]);
	_(PM     , device->pm      , &device->pm->engine);
	_(PM     , device->pm      , &device->pm->engine);
	_(SEC    , device->sec     ,  device->sec);
	_(SEC    , device->sec     ,  device->sec);
	_(SW     , device->sw      , &device->sw->engine);
	_(SW     , device->sw      , &device->sw->engine);
@@ -2616,6 +2618,8 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
		_(NVKM_ENGINE_MSPDEC  ,   mspdec);
		_(NVKM_ENGINE_MSPDEC  ,   mspdec);
		_(NVKM_ENGINE_MSPPP   ,    msppp);
		_(NVKM_ENGINE_MSPPP   ,    msppp);
		_(NVKM_ENGINE_MSVLD   ,    msvld);
		_(NVKM_ENGINE_MSVLD   ,    msvld);
		_(NVKM_ENGINE_NVENC0  , nvenc[0]);
		_(NVKM_ENGINE_NVENC1  , nvenc[1]);
		_(NVKM_ENGINE_PM      ,       pm);
		_(NVKM_ENGINE_PM      ,       pm);
		_(NVKM_ENGINE_SEC     ,      sec);
		_(NVKM_ENGINE_SEC     ,      sec);
		_(NVKM_ENGINE_SW      ,       sw);
		_(NVKM_ENGINE_SW      ,       sw);
Loading