drm/nouveau/pmu/gm20x: don't pretend we support loading with our custom FW
authorBen Skeggs <bskeggs@redhat.com>
Tue, 16 Jun 2020 05:15:58 +0000 (15:15 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 24 Jul 2020 08:50:48 +0000 (18:50 +1000)
It technically loads, and runs, but is ultimately pointless outside of
a very narrow window (fanless systems where one wants to attempt using
the, broken for a lot of gm20x, memory reclocking code).

It's also potentially dangerous to override the VBIOS-provided "Pre-OS"
PMU, which would be responsible for fan control otherwise.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/subdev/pmu.h
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/Kbuild
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm200.c [moved from drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp100.c with 87% similarity]

index da55308..5ff6d1f 100644 (file)
@@ -47,8 +47,8 @@ int gk110_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 int gk208_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 int gk20a_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 int gm107_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
+int gm200_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 int gm20b_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
-int gp100_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 int gp102_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 int gp10b_pmu_new(struct nvkm_device *, int, struct nvkm_pmu **);
 
index 5b90c2a..9f4ac26 100644 (file)
@@ -2046,7 +2046,7 @@ nv120_chipset = {
        .mmu = gm200_mmu_new,
        .mxm = nv50_mxm_new,
        .pci = gk104_pci_new,
-       .pmu = gm107_pmu_new,
+       .pmu = gm200_pmu_new,
        .therm = gm200_therm_new,
        .timer = gk20a_timer_new,
        .top = gk104_top_new,
@@ -2084,7 +2084,7 @@ nv124_chipset = {
        .mmu = gm200_mmu_new,
        .mxm = nv50_mxm_new,
        .pci = gk104_pci_new,
-       .pmu = gm107_pmu_new,
+       .pmu = gm200_pmu_new,
        .therm = gm200_therm_new,
        .timer = gk20a_timer_new,
        .top = gk104_top_new,
@@ -2122,7 +2122,7 @@ nv126_chipset = {
        .mmu = gm200_mmu_new,
        .mxm = nv50_mxm_new,
        .pci = gk104_pci_new,
-       .pmu = gm107_pmu_new,
+       .pmu = gm200_pmu_new,
        .therm = gm200_therm_new,
        .timer = gk20a_timer_new,
        .top = gk104_top_new,
@@ -2184,7 +2184,7 @@ nv130_chipset = {
        .mmu = gp100_mmu_new,
        .therm = gp100_therm_new,
        .pci = gp100_pci_new,
-       .pmu = gp100_pmu_new,
+       .pmu = gm200_pmu_new,
        .timer = gk20a_timer_new,
        .top = gk104_top_new,
        .ce[0] = gp100_ce_new,
index a76c2a7..eafc932 100644 (file)
@@ -9,7 +9,7 @@ nvkm-y += nvkm/subdev/pmu/gk110.o
 nvkm-y += nvkm/subdev/pmu/gk208.o
 nvkm-y += nvkm/subdev/pmu/gk20a.o
 nvkm-y += nvkm/subdev/pmu/gm107.o
+nvkm-y += nvkm/subdev/pmu/gm200.o
 nvkm-y += nvkm/subdev/pmu/gm20b.o
-nvkm-y += nvkm/subdev/pmu/gp100.o
 nvkm-y += nvkm/subdev/pmu/gp102.o
 nvkm-y += nvkm/subdev/pmu/gp10b.o
 #include "priv.h"
 
 static const struct nvkm_pmu_func
-gp100_pmu = {
+gm200_pmu = {
        .flcn = &gt215_pmu_flcn,
        .enabled = gf100_pmu_enabled,
        .reset = gf100_pmu_reset,
 };
 
 static const struct nvkm_pmu_fwif
-gp100_pmu_fwif[] = {
-       { -1, gf100_pmu_nofw, &gp100_pmu },
+gm200_pmu_fwif[] = {
+       { -1, gf100_pmu_nofw, &gm200_pmu },
        {}
 };
 
 int
-gp100_pmu_new(struct nvkm_device *device, int index, struct nvkm_pmu **ppmu)
+gm200_pmu_new(struct nvkm_device *device, int index, struct nvkm_pmu **ppmu)
 {
-       return nvkm_pmu_new_(gp100_pmu_fwif, device, index, ppmu);
+       return nvkm_pmu_new_(gm200_pmu_fwif, device, index, ppmu);
 }