]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/nouveau/gr: add fini() hook
authorAlexandre Courbot <acourbot@nvidia.com>
Tue, 13 Dec 2016 08:11:28 +0000 (17:11 +0900)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 17 Feb 2017 05:14:31 +0000 (15:14 +1000)
Add a fini() hook to the GR engine. This will be used by gf100+ to
properly release the FECS and GPCCS falcons.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/engine/gr/base.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/priv.h

index 467065d1b4e6464d202bbe996d33d4cc6a56b52f..a8282edc2b582cd2d3bba0b64441a01bc7b87ebf 100644 (file)
@@ -106,6 +106,15 @@ nvkm_gr_init(struct nvkm_engine *engine)
        return gr->func->init(gr);
 }
 
+static int
+nvkm_gr_fini(struct nvkm_engine *engine, bool suspend)
+{
+       struct nvkm_gr *gr = nvkm_gr(engine);
+       if (gr->func->fini)
+               return gr->func->fini(gr, suspend);
+       return 0;
+}
+
 static void *
 nvkm_gr_dtor(struct nvkm_engine *engine)
 {
@@ -120,6 +129,7 @@ nvkm_gr = {
        .dtor = nvkm_gr_dtor,
        .oneinit = nvkm_gr_oneinit,
        .init = nvkm_gr_init,
+       .fini = nvkm_gr_fini,
        .intr = nvkm_gr_intr,
        .tile = nvkm_gr_tile,
        .fifo.cclass = nvkm_gr_cclass_new,
index d8adcdf6985aa65e3782ffbf98ec200201a4d17b..0d6d940a744f7fc64bc1cc7588b4198a20380e86 100644 (file)
@@ -15,6 +15,7 @@ struct nvkm_gr_func {
        void *(*dtor)(struct nvkm_gr *);
        int (*oneinit)(struct nvkm_gr *);
        int (*init)(struct nvkm_gr *);
+       int (*fini)(struct nvkm_gr *, bool);
        void (*intr)(struct nvkm_gr *);
        void (*tile)(struct nvkm_gr *, int region, struct nvkm_fb_tile *);
        int (*tlb_flush)(struct nvkm_gr *);