drm/nouveau/core: add nvenc plumbing
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
c0c914eca7
commit
294af04b16
|
@ -46,6 +46,11 @@ enum nvkm_devidx {
|
|||
NVKM_ENGINE_MSPDEC,
|
||||
NVKM_ENGINE_MSPPP,
|
||||
NVKM_ENGINE_MSVLD,
|
||||
|
||||
NVKM_ENGINE_NVENC0,
|
||||
NVKM_ENGINE_NVENC1,
|
||||
NVKM_ENGINE_NVENC_LAST = NVKM_ENGINE_NVENC1,
|
||||
|
||||
NVKM_ENGINE_PM,
|
||||
NVKM_ENGINE_SEC,
|
||||
NVKM_ENGINE_SW,
|
||||
|
@ -141,6 +146,7 @@ struct nvkm_device {
|
|||
struct nvkm_engine *mspdec;
|
||||
struct nvkm_engine *msppp;
|
||||
struct nvkm_engine *msvld;
|
||||
struct nvkm_engine *nvenc[2];
|
||||
struct nvkm_pm *pm;
|
||||
struct nvkm_engine *sec;
|
||||
struct nvkm_sw *sw;
|
||||
|
@ -208,6 +214,7 @@ struct nvkm_device_chip {
|
|||
int (*mspdec )(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 (*nvenc[2])(struct nvkm_device *, int idx, struct nvkm_engine **);
|
||||
int (*pm )(struct nvkm_device *, int idx, struct nvkm_pm **);
|
||||
int (*sec )(struct nvkm_device *, int idx, struct nvkm_engine **);
|
||||
int (*sw )(struct nvkm_device *, int idx, struct nvkm_sw **);
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef __NVKM_NVENC_H__
|
||||
#define __NVKM_NVENC_H__
|
||||
#include <core/engine.h>
|
||||
#endif
|
|
@ -67,6 +67,8 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = {
|
|||
[NVKM_ENGINE_MSPDEC ] = "mspdec",
|
||||
[NVKM_ENGINE_MSPPP ] = "msppp",
|
||||
[NVKM_ENGINE_MSVLD ] = "msvld",
|
||||
[NVKM_ENGINE_NVENC0 ] = "nvenc0",
|
||||
[NVKM_ENGINE_NVENC1 ] = "nvenc1",
|
||||
[NVKM_ENGINE_PM ] = "pm",
|
||||
[NVKM_ENGINE_SEC ] = "sec",
|
||||
[NVKM_ENGINE_SW ] = "sw",
|
||||
|
|
|
@ -14,6 +14,7 @@ include $(src)/nvkm/engine/msenc/Kbuild
|
|||
include $(src)/nvkm/engine/mspdec/Kbuild
|
||||
include $(src)/nvkm/engine/msppp/Kbuild
|
||||
include $(src)/nvkm/engine/msvld/Kbuild
|
||||
include $(src)/nvkm/engine/nvenc/Kbuild
|
||||
include $(src)/nvkm/engine/pm/Kbuild
|
||||
include $(src)/nvkm/engine/sec/Kbuild
|
||||
include $(src)/nvkm/engine/sw/Kbuild
|
||||
|
|
|
@ -2167,27 +2167,29 @@ nvkm_device_engine(struct nvkm_device *device, int index)
|
|||
|
||||
switch (index) {
|
||||
#define _(n,p,m) case NVKM_ENGINE_##n: if (p) return (m); break
|
||||
_(BSP , device->bsp , device->bsp);
|
||||
_(CE0 , device->ce[0] , device->ce[0]);
|
||||
_(CE1 , device->ce[1] , device->ce[1]);
|
||||
_(CE2 , device->ce[2] , device->ce[2]);
|
||||
_(CIPHER , device->cipher , device->cipher);
|
||||
_(DISP , device->disp , &device->disp->engine);
|
||||
_(DMAOBJ , device->dma , &device->dma->engine);
|
||||
_(FIFO , device->fifo , &device->fifo->engine);
|
||||
_(GR , device->gr , &device->gr->engine);
|
||||
_(IFB , device->ifb , device->ifb);
|
||||
_(ME , device->me , device->me);
|
||||
_(MPEG , device->mpeg , device->mpeg);
|
||||
_(MSENC , device->msenc , device->msenc);
|
||||
_(MSPDEC , device->mspdec , device->mspdec);
|
||||
_(MSPPP , device->msppp , device->msppp);
|
||||
_(MSVLD , device->msvld , device->msvld);
|
||||
_(PM , device->pm , &device->pm->engine);
|
||||
_(SEC , device->sec , device->sec);
|
||||
_(SW , device->sw , &device->sw->engine);
|
||||
_(VIC , device->vic , device->vic);
|
||||
_(VP , device->vp , device->vp);
|
||||
_(BSP , device->bsp , device->bsp);
|
||||
_(CE0 , device->ce[0] , device->ce[0]);
|
||||
_(CE1 , device->ce[1] , device->ce[1]);
|
||||
_(CE2 , device->ce[2] , device->ce[2]);
|
||||
_(CIPHER , device->cipher , device->cipher);
|
||||
_(DISP , device->disp , &device->disp->engine);
|
||||
_(DMAOBJ , device->dma , &device->dma->engine);
|
||||
_(FIFO , device->fifo , &device->fifo->engine);
|
||||
_(GR , device->gr , &device->gr->engine);
|
||||
_(IFB , device->ifb , device->ifb);
|
||||
_(ME , device->me , device->me);
|
||||
_(MPEG , device->mpeg , device->mpeg);
|
||||
_(MSENC , device->msenc , device->msenc);
|
||||
_(MSPDEC , device->mspdec , device->mspdec);
|
||||
_(MSPPP , device->msppp , device->msppp);
|
||||
_(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);
|
||||
_(SEC , device->sec , device->sec);
|
||||
_(SW , device->sw , &device->sw->engine);
|
||||
_(VIC , device->vic , device->vic);
|
||||
_(VP , device->vp , device->vp);
|
||||
#undef _
|
||||
default:
|
||||
WARN_ON(1);
|
||||
|
@ -2616,6 +2618,8 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
|
|||
_(NVKM_ENGINE_MSPDEC , mspdec);
|
||||
_(NVKM_ENGINE_MSPPP , msppp);
|
||||
_(NVKM_ENGINE_MSVLD , msvld);
|
||||
_(NVKM_ENGINE_NVENC0 , nvenc[0]);
|
||||
_(NVKM_ENGINE_NVENC1 , nvenc[1]);
|
||||
_(NVKM_ENGINE_PM , pm);
|
||||
_(NVKM_ENGINE_SEC , sec);
|
||||
_(NVKM_ENGINE_SW , sw);
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <engine/mspdec.h>
|
||||
#include <engine/msppp.h>
|
||||
#include <engine/msvld.h>
|
||||
#include <engine/nvenc.h>
|
||||
#include <engine/pm.h>
|
||||
#include <engine/sec.h>
|
||||
#include <engine/sw.h>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#nvkm-y += nvkm/engine/nvenc/base.o
|
Loading…
Reference in New Issue