drm/nouveau/devinit/gm200-: export function to upload+execute PMU/PRE_OS
authorBen Skeggs <bskeggs@redhat.com>
Tue, 11 Dec 2018 04:50:02 +0000 (14:50 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 11 Dec 2018 05:37:45 +0000 (15:37 +1000)
Will be used for Turing.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.c
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.h

index 17235e940ca9e354226836b4bb9e8582a48e1f90..59940dacc2ba028939d3822c0e736248a5af9359 100644 (file)
@@ -105,6 +105,15 @@ pmu_load(struct nv50_devinit *init, u8 type, bool post,
        return pmu_exec(init, pmu.init_addr_pmu), 0;
 }
 
+void
+gm200_devinit_preos(struct nv50_devinit *init, bool post)
+{
+       /* Optional: Execute PRE_OS application on PMU, which should at
+        * least take care of fans until a full PMU has been loaded.
+        */
+       pmu_load(init, 0x01, post, NULL, NULL);
+}
+
 int
 gm200_devinit_post(struct nvkm_devinit *base, bool post)
 {
@@ -156,10 +165,7 @@ gm200_devinit_post(struct nvkm_devinit *base, bool post)
                        return -ETIMEDOUT;
        }
 
-       /* Optional: Execute PRE_OS application on PMU, which should at
-        * least take care of fans until a full PMU has been loaded.
-        */
-       pmu_load(init, 0x01, post, NULL, NULL);
+       gm200_devinit_preos(init, post);
        return 0;
 }
 
index 9b9f0dc1e19288b80200f3f4f4a54f5da849bf4e..72d130bb7f7cd2c4a9a00b1573cf2fbffbdf8d34 100644 (file)
@@ -26,4 +26,5 @@ void gf100_devinit_preinit(struct nvkm_devinit *);
 u64  gm107_devinit_disable(struct nvkm_devinit *);
 
 int gm200_devinit_post(struct nvkm_devinit *, bool);
+void gm200_devinit_preos(struct nv50_devinit *, bool);
 #endif