drm/nouveau/pmu/gk104: check fuse to determine presence of PGOB
authorBen Skeggs <bskeggs@redhat.com>
Thu, 1 Oct 2015 04:58:04 +0000 (14:58 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 3 Nov 2015 05:02:18 +0000 (15:02 +1000)
Not 100% confirmed, but seems to match from the few boards I've looked
at so far.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c

index e33f5c0..d942fa7 100644 (file)
@@ -27,6 +27,7 @@
 #include "fuc/gf119.fuc4.h"
 
 #include <core/option.h>
+#include <subdev/fuse.h>
 #include <subdev/timer.h>
 
 static void
@@ -57,6 +58,9 @@ gk104_pmu_pgob(struct nvkm_pmu *pmu, bool enable)
 {
        struct nvkm_device *device = pmu->subdev.device;
 
+       if (!(nvkm_fuse_read(device->fuse, 0x31c) & 0x00000001))
+               return;
+
        nvkm_mask(device, 0x000200, 0x00001000, 0x00000000);
        nvkm_rd32(device, 0x000200);
        nvkm_mask(device, 0x000200, 0x08000000, 0x08000000);