Commit 715e7d26 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/pmu/gt215: fix reset



The NV_PMC_ENABLE bit for PMU did not appear until GF100, and some other
unknown register needs to be poked instead.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 1ccd7d52
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -24,13 +24,23 @@
#include "priv.h"
#include "fuc/gf100.fuc3.h"

#include <subdev/mc.h>

void
gf100_pmu_reset(struct nvkm_pmu *pmu)
{
	struct nvkm_device *device = pmu->subdev.device;
	nvkm_mc_disable(device, NVKM_SUBDEV_PMU);
	nvkm_mc_enable(device, NVKM_SUBDEV_PMU);
}

static const struct nvkm_pmu_func
gf100_pmu = {
	.code.data = gf100_pmu_code,
	.code.size = sizeof(gf100_pmu_code),
	.data.data = gf100_pmu_data,
	.data.size = sizeof(gf100_pmu_data),
	.reset = gt215_pmu_reset,
	.reset = gf100_pmu_reset,
	.init = gt215_pmu_init,
	.fini = gt215_pmu_fini,
	.intr = gt215_pmu_intr,
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ gf119_pmu = {
	.code.size = sizeof(gf119_pmu_code),
	.data.data = gf119_pmu_data,
	.data.size = sizeof(gf119_pmu_data),
	.reset = gt215_pmu_reset,
	.reset = gf100_pmu_reset,
	.init = gt215_pmu_init,
	.fini = gt215_pmu_fini,
	.intr = gt215_pmu_intr,
+1 −1
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ gk104_pmu = {
	.code.size = sizeof(gk104_pmu_code),
	.data.data = gk104_pmu_data,
	.data.size = sizeof(gk104_pmu_data),
	.reset = gt215_pmu_reset,
	.reset = gf100_pmu_reset,
	.init = gt215_pmu_init,
	.fini = gt215_pmu_fini,
	.intr = gt215_pmu_intr,
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ gk110_pmu = {
	.code.size = sizeof(gk110_pmu_code),
	.data.data = gk110_pmu_data,
	.data.size = sizeof(gk110_pmu_data),
	.reset = gt215_pmu_reset,
	.reset = gf100_pmu_reset,
	.init = gt215_pmu_init,
	.fini = gt215_pmu_fini,
	.intr = gt215_pmu_intr,
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ gk208_pmu = {
	.code.size = sizeof(gk208_pmu_code),
	.data.data = gk208_pmu_data,
	.data.size = sizeof(gk208_pmu_data),
	.reset = gt215_pmu_reset,
	.reset = gf100_pmu_reset,
	.init = gt215_pmu_init,
	.fini = gt215_pmu_fini,
	.intr = gt215_pmu_intr,
Loading