summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c
diff options
context:
space:
mode:
authorBen Skeggs2015-10-01 06:58:04 +0200
committerBen Skeggs2015-11-03 06:02:18 +0100
commit560f989fe4260f0c729d3fc8a8691a3a02815f25 (patch)
tree972ddf8dd67113f0ee62da1a580371a2db3117fc /drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c
parentdrm/nouveau/pci: prepare for chipset-specific initialisation tasks (diff)
downloadkernel-qcow2-linux-560f989fe4260f0c729d3fc8a8691a3a02815f25.tar.gz
kernel-qcow2-linux-560f989fe4260f0c729d3fc8a8691a3a02815f25.tar.xz
kernel-qcow2-linux-560f989fe4260f0c729d3fc8a8691a3a02815f25.zip
drm/nouveau/pmu/gk104: check fuse to determine presence of PGOB
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>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c
index e33f5c03b9ac..d942fa7b9f18 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c
@@ -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);