drm/nouveau/core: increase maximum ce instances to 6
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 126a85cc81bc22a763c06bc3dcb204b10793b59c..3f87c1b55bba1c20d2c0ba7d89b89f96d0f5979a 100644 (file)
@@ -33,7 +33,10 @@ enum nvkm_devidx {
        NVKM_ENGINE_CE0,
        NVKM_ENGINE_CE1,
        NVKM_ENGINE_CE2,
-       NVKM_ENGINE_CE_LAST = NVKM_ENGINE_CE2,
+       NVKM_ENGINE_CE3,
+       NVKM_ENGINE_CE4,
+       NVKM_ENGINE_CE5,
+       NVKM_ENGINE_CE_LAST = NVKM_ENGINE_CE5,
 
        NVKM_ENGINE_CIPHER,
        NVKM_ENGINE_DISP,
@@ -136,7 +139,7 @@ struct nvkm_device {
        struct nvkm_volt *volt;
 
        struct nvkm_engine *bsp;
-       struct nvkm_engine *ce[3];
+       struct nvkm_engine *ce[6];
        struct nvkm_engine *cipher;
        struct nvkm_disp *disp;
        struct nvkm_dma *dma;
@@ -206,7 +209,7 @@ struct nvkm_device_chip {
        int (*volt    )(struct nvkm_device *, int idx, struct nvkm_volt **);
 
        int (*bsp     )(struct nvkm_device *, int idx, struct nvkm_engine **);
-       int (*ce[3]   )(struct nvkm_device *, int idx, struct nvkm_engine **);
+       int (*ce[6]   )(struct nvkm_device *, int idx, struct nvkm_engine **);
        int (*cipher  )(struct nvkm_device *, int idx, struct nvkm_engine **);
        int (*disp    )(struct nvkm_device *, int idx, struct nvkm_disp **);
        int (*dma     )(struct nvkm_device *, int idx, struct nvkm_dma **);
index f17fd7ddc7ca5c7aa95aa5eb9003fcd15bfc1780..bf825ad53c9e050aec110dd16c003d7d6b3420a0 100644 (file)
@@ -57,6 +57,9 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = {
        [NVKM_ENGINE_CE0     ] = "ce0",
        [NVKM_ENGINE_CE1     ] = "ce1",
        [NVKM_ENGINE_CE2     ] = "ce2",
+       [NVKM_ENGINE_CE3     ] = "ce3",
+       [NVKM_ENGINE_CE4     ] = "ce4",
+       [NVKM_ENGINE_CE5     ] = "ce5",
        [NVKM_ENGINE_CIPHER  ] = "cipher",
        [NVKM_ENGINE_DISP    ] = "disp",
        [NVKM_ENGINE_DMAOBJ  ] = "dma",
index 4572debcb0c9862f54fa5d7f4db436b885b2df42..e1bc7d1d9c5a142dd6199cc947b2902f83d342f7 100644 (file)
@@ -2221,6 +2221,9 @@ nvkm_device_engine(struct nvkm_device *device, int index)
        _(CE0    , device->ce[0]   ,  device->ce[0]);
        _(CE1    , device->ce[1]   ,  device->ce[1]);
        _(CE2    , device->ce[2]   ,  device->ce[2]);
+       _(CE3    , device->ce[3]   ,  device->ce[3]);
+       _(CE4    , device->ce[4]   ,  device->ce[4]);
+       _(CE5    , device->ce[5]   ,  device->ce[5]);
        _(CIPHER , device->cipher  ,  device->cipher);
        _(DISP   , device->disp    , &device->disp->engine);
        _(DMAOBJ , device->dma     , &device->dma->engine);
@@ -2659,6 +2662,9 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
                _(NVKM_ENGINE_CE0     ,    ce[0]);
                _(NVKM_ENGINE_CE1     ,    ce[1]);
                _(NVKM_ENGINE_CE2     ,    ce[2]);
+               _(NVKM_ENGINE_CE3     ,    ce[3]);
+               _(NVKM_ENGINE_CE4     ,    ce[4]);
+               _(NVKM_ENGINE_CE5     ,    ce[5]);
                _(NVKM_ENGINE_CIPHER  ,   cipher);
                _(NVKM_ENGINE_DISP    ,     disp);
                _(NVKM_ENGINE_DMAOBJ  ,      dma);