drm/nouveau/flcn: specify FBIF offset from subdev
authorBen Skeggs <bskeggs@redhat.com>
Tue, 14 Jan 2020 20:34:21 +0000 (06:34 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 15 Jan 2020 00:50:27 +0000 (10:50 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/engine/falcon.h
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/nvdec/gm107.c
drivers/gpu/drm/nouveau/nvkm/engine/nvenc/gm107.c
drivers/gpu/drm/nouveau/nvkm/engine/sec2/gp102.c
drivers/gpu/drm/nouveau/nvkm/engine/sec2/tu102.c
drivers/gpu/drm/nouveau/nvkm/falcon/v1.c
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.c
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.c

index b773369..adf33bf 100644 (file)
@@ -78,6 +78,9 @@ struct nvkm_falcon_func {
        } data;
        void (*init)(struct nvkm_falcon *);
        void (*intr)(struct nvkm_falcon *, struct nvkm_fifo_chan *);
+
+       u32 fbif;
+
        void (*load_imem)(struct nvkm_falcon *, void *, u32, u32, u16, u8, bool);
        void (*load_dmem)(struct nvkm_falcon *, void *, u32, u32, u8);
        void (*read_dmem)(struct nvkm_falcon *, u32, u32, u8, void *);
index c55d680..8314f10 100644 (file)
@@ -2045,6 +2045,7 @@ gf100_gr_ = {
 
 static const struct nvkm_falcon_func
 gf100_gr_flcn = {
+       .fbif = 0x600,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,
index 2cc9172..1478079 100644 (file)
@@ -23,6 +23,7 @@
 
 static const struct nvkm_falcon_func
 gm107_nvdec_flcn = {
+       .fbif = 0x600,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,
index e8a13ed..d249c8f 100644 (file)
@@ -24,6 +24,7 @@
 
 static const struct nvkm_falcon_func
 gm107_nvenc_flcn = {
+       .fbif = 0x800,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,
index c6919f2..444512e 100644 (file)
@@ -48,6 +48,7 @@ gp102_sec2_intr(struct nvkm_sec2 *sec2)
 
 static const struct nvkm_falcon_func
 gp102_sec2_flcn = {
+       .fbif = 0x600,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,
index e3eb08f..f1796f3 100644 (file)
@@ -23,6 +23,7 @@
 
 static const struct nvkm_falcon_func
 tu102_sec2_flcn = {
+       .fbif = 0x600,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,
index 49ea8a5..5c49052 100644 (file)
@@ -183,8 +183,8 @@ void
 nvkm_falcon_v1_bind_context(struct nvkm_falcon *falcon, struct nvkm_memory *ctx)
 {
        struct nvkm_device *device = falcon->owner->device;
+       const u32 fbif = falcon->func->fbif;
        u32 inst_loc;
-       u32 fbif;
 
        /* disable instance block binding */
        if (ctx == NULL) {
@@ -192,20 +192,6 @@ nvkm_falcon_v1_bind_context(struct nvkm_falcon *falcon, struct nvkm_memory *ctx)
                return;
        }
 
-       switch (falcon->owner->index) {
-       case NVKM_ENGINE_NVENC0:
-       case NVKM_ENGINE_NVENC1:
-       case NVKM_ENGINE_NVENC2:
-               fbif = 0x800;
-               break;
-       case NVKM_SUBDEV_PMU:
-               fbif = 0xe00;
-               break;
-       default:
-               fbif = 0x600;
-               break;
-       }
-
        nvkm_falcon_wr32(falcon, 0x10c, 0x1);
 
        /* setup apertures - virtual */
index e935c1b..45fde85 100644 (file)
@@ -23,6 +23,7 @@
 
 static const struct nvkm_falcon_func
 gv100_gsp_flcn = {
+       .fbif = 0x600,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,
index 0735589..c38a80b 100644 (file)
@@ -243,6 +243,7 @@ gt215_pmu_init(struct nvkm_pmu *pmu)
 
 const struct nvkm_falcon_func
 gt215_pmu_flcn = {
+       .fbif = 0xe00,
        .load_imem = nvkm_falcon_v1_load_imem,
        .load_dmem = nvkm_falcon_v1_load_dmem,
        .read_dmem = nvkm_falcon_v1_read_dmem,