OSDN Git Service

drm/nouveau/core: increase maximum number of copy engines to 9
authorBen Skeggs <bskeggs@redhat.com>
Tue, 8 May 2018 10:39:47 +0000 (20:39 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 18 May 2018 05:01:31 +0000 (15:01 +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 f2f9b9e..08c52e3 100644 (file)
@@ -38,7 +38,10 @@ enum nvkm_devidx {
        NVKM_ENGINE_CE3,
        NVKM_ENGINE_CE4,
        NVKM_ENGINE_CE5,
-       NVKM_ENGINE_CE_LAST = NVKM_ENGINE_CE5,
+       NVKM_ENGINE_CE6,
+       NVKM_ENGINE_CE7,
+       NVKM_ENGINE_CE8,
+       NVKM_ENGINE_CE_LAST = NVKM_ENGINE_CE8,
 
        NVKM_ENGINE_CIPHER,
        NVKM_ENGINE_DISP,
@@ -145,7 +148,7 @@ struct nvkm_device {
        struct nvkm_volt *volt;
 
        struct nvkm_engine *bsp;
-       struct nvkm_engine *ce[6];
+       struct nvkm_engine *ce[9];
        struct nvkm_engine *cipher;
        struct nvkm_disp *disp;
        struct nvkm_dma *dma;
@@ -217,7 +220,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[6]   )(struct nvkm_device *, int idx, struct nvkm_engine **);
+       int (*ce[9]   )(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 b96f9e2..03f676c 100644 (file)
@@ -61,6 +61,9 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = {
        [NVKM_ENGINE_CE3     ] = "ce3",
        [NVKM_ENGINE_CE4     ] = "ce4",
        [NVKM_ENGINE_CE5     ] = "ce5",
+       [NVKM_ENGINE_CE6     ] = "ce6",
+       [NVKM_ENGINE_CE7     ] = "ce7",
+       [NVKM_ENGINE_CE8     ] = "ce8",
        [NVKM_ENGINE_CIPHER  ] = "cipher",
        [NVKM_ENGINE_DISP    ] = "disp",
        [NVKM_ENGINE_DMAOBJ  ] = "dma",
index 5c79c79..b9b6bef 100644 (file)
@@ -2471,6 +2471,9 @@ nvkm_device_engine(struct nvkm_device *device, int index)
        _(CE3    , device->ce[3]   ,  device->ce[3]);
        _(CE4    , device->ce[4]   ,  device->ce[4]);
        _(CE5    , device->ce[5]   ,  device->ce[5]);
+       _(CE6    , device->ce[6]   ,  device->ce[6]);
+       _(CE7    , device->ce[7]   ,  device->ce[7]);
+       _(CE8    , device->ce[8]   ,  device->ce[8]);
        _(CIPHER , device->cipher  ,  device->cipher);
        _(DISP   , device->disp    , &device->disp->engine);
        _(DMAOBJ , device->dma     , &device->dma->engine);
@@ -2925,6 +2928,9 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
                _(NVKM_ENGINE_CE3     ,    ce[3]);
                _(NVKM_ENGINE_CE4     ,    ce[4]);
                _(NVKM_ENGINE_CE5     ,    ce[5]);
+               _(NVKM_ENGINE_CE6     ,    ce[6]);
+               _(NVKM_ENGINE_CE7     ,    ce[7]);
+               _(NVKM_ENGINE_CE8     ,    ce[8]);
                _(NVKM_ENGINE_CIPHER  ,   cipher);
                _(NVKM_ENGINE_DISP    ,     disp);
                _(NVKM_ENGINE_DMAOBJ  ,      dma);