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 b7733694faed2628d713c48a9e3f1c01de05f529..adf33bfffa9f262c12f8d61254ea4cf6fc0dfe5e 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 c55d6804aef73286269985abbf15f88102e43009..8314f10c359a48ee92e40a6e062ceab9bffcd832 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 2cc9172bd1ad619d065d72a65721a40eace649bf..1478079d95803ebbe0b08880c84fa9ab494e4b25 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 e8a13ed04c639cfc8b691eeec7963891b54a2537..d249c8ffb2d5c3b9374b1b1eb98a2ef32f0ad795 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 c6919f2886de63d714de1924a967ab84b55cd5cf..444512ea5a31d2b5c6c9d1af8e9e9277ce55e2b6 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 e3eb08f4e9a18fc02640a68b2103de4ddf027c8e..f1796f32c89b7bf04fb410532a51d74a34447b56 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 49ea8a54061f5207ed8697a3b7dc6949e6878d07..5c490528b0df291b422f88e0f7a5f7fc15fa41f3 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 e935c1bf6238e5f32552601310030d4b32ac7407..45fde8521c264eafcd07e666516b653275119c02 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 073558972e42d931b241d47e635d59b29f6a94c1..c38a80bc7e538284d3d4a8374b4fed78165eac9e 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,