aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 14:54:19 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:40:41 +1000
commit218f978d43296a9ac142a63361e25f517df3d318 (patch)
tree7f969e8f41d07c5237ed7e7a866ce1840090b024 /drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
parent27f3d6cf80324940edd29be7758f81145e73d1ff (diff)
drm/nouveau/mpeg: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
index cc167dcc788f..b4ef1ebd38ab 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.c
@@ -25,9 +25,7 @@
#include <subdev/instmem.h>
-/*******************************************************************************
- * MPEG object classes
- ******************************************************************************/
+#include <nvif/class.h>
bool
nv40_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data)
@@ -67,16 +65,6 @@ nv40_mpeg_mthd_dma(struct nvkm_device *device, u32 mthd, u32 data)
return true;
}
-struct nvkm_oclass
-nv40_mpeg_sclass[] = {
- { 0x3174, &nv31_mpeg_ofuncs },
- {}
-};
-
-/*******************************************************************************
- * PMPEG engine/subdev functions
- ******************************************************************************/
-
static void
nv40_mpeg_intr(struct nvkm_subdev *subdev)
{
@@ -93,6 +81,15 @@ nv40_mpeg_intr(struct nvkm_subdev *subdev)
}
}
+static const struct nvkm_engine_func
+nv40_mpeg = {
+ .fifo.cclass = nv31_mpeg_chan_new,
+ .sclass = {
+ { -1, -1, NV31_MPEG, &nv31_mpeg_object },
+ {}
+ }
+};
+
static int
nv40_mpeg_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
struct nvkm_oclass *oclass, void *data, u32 size,
@@ -106,11 +103,11 @@ nv40_mpeg_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
if (ret)
return ret;
+ mpeg->base.engine.func = &nv40_mpeg;
+
mpeg->mthd_dma = nv40_mpeg_mthd_dma;
nv_subdev(mpeg)->unit = 0x00000002;
nv_subdev(mpeg)->intr = nv40_mpeg_intr;
- nv_engine(mpeg)->cclass = &nv31_mpeg_cclass;
- nv_engine(mpeg)->sclass = nv40_mpeg_sclass;
nv_engine(mpeg)->tile_prog = nv31_mpeg_tile_prog;
return 0;
}