drm/nouveau/core: increase maximum nvenc instances to 3
authorBen Skeggs <bskeggs@redhat.com>
Sat, 9 Jul 2016 00:41:01 +0000 (10:41 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 14 Jul 2016 01:53:25 +0000 (11:53 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/core/device.h
drivers/gpu/drm/nouveau/nvkm/core/subdev.c
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c

index 3f87c1b55bba1c20d2c0ba7d89b89f96d0f5979a..fe3247dd90408daf1336795cf6949d279ba94ed0 100644 (file)
@@ -53,7 +53,8 @@ enum nvkm_devidx {
 
        NVKM_ENGINE_NVENC0,
        NVKM_ENGINE_NVENC1,
-       NVKM_ENGINE_NVENC_LAST = NVKM_ENGINE_NVENC1,
+       NVKM_ENGINE_NVENC2,
+       NVKM_ENGINE_NVENC_LAST = NVKM_ENGINE_NVENC2,
 
        NVKM_ENGINE_NVDEC,
        NVKM_ENGINE_PM,
@@ -152,7 +153,7 @@ struct nvkm_device {
        struct nvkm_engine *mspdec;
        struct nvkm_engine *msppp;
        struct nvkm_engine *msvld;
-       struct nvkm_engine *nvenc[2];
+       struct nvkm_engine *nvenc[3];
        struct nvkm_engine *nvdec;
        struct nvkm_pm *pm;
        struct nvkm_engine *sec;
@@ -222,7 +223,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 (*nvenc[3])(struct nvkm_device *, int idx, struct nvkm_engine **);
        int (*nvdec   )(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 **);
index bf825ad53c9e050aec110dd16c003d7d6b3420a0..19044aba265eb165efa73c74d76f8f042c28873d 100644 (file)
@@ -74,6 +74,7 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = {
        [NVKM_ENGINE_MSVLD   ] = "msvld",
        [NVKM_ENGINE_NVENC0  ] = "nvenc0",
        [NVKM_ENGINE_NVENC1  ] = "nvenc1",
+       [NVKM_ENGINE_NVENC2  ] = "nvenc2",
        [NVKM_ENGINE_NVDEC   ] = "nvdec",
        [NVKM_ENGINE_PM      ] = "pm",
        [NVKM_ENGINE_SEC     ] = "sec",
index e1bc7d1d9c5a142dd6199cc947b2902f83d342f7..dcc623dc7b95428ad5c6360222c60f401e52f773 100644 (file)
@@ -2238,6 +2238,7 @@ nvkm_device_engine(struct nvkm_device *device, int index)
        _(MSVLD  , device->msvld   ,  device->msvld);
        _(NVENC0 , device->nvenc[0],  device->nvenc[0]);
        _(NVENC1 , device->nvenc[1],  device->nvenc[1]);
+       _(NVENC2 , device->nvenc[2],  device->nvenc[2]);
        _(NVDEC  , device->nvdec   ,  device->nvdec);
        _(PM     , device->pm      , &device->pm->engine);
        _(SEC    , device->sec     ,  device->sec);
@@ -2679,6 +2680,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
                _(NVKM_ENGINE_MSVLD   ,    msvld);
                _(NVKM_ENGINE_NVENC0  , nvenc[0]);
                _(NVKM_ENGINE_NVENC1  , nvenc[1]);
+               _(NVKM_ENGINE_NVENC2  , nvenc[2]);
                _(NVKM_ENGINE_NVDEC   ,    nvdec);
                _(NVKM_ENGINE_PM      ,       pm);
                _(NVKM_ENGINE_SEC     ,      sec);