Module Name: src Committed By: jmcneill Date: Wed Jan 22 11:38:54 UTC 2020
Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo: nouveau_nvkm_engine_fifo_gk104.c Log Message: Write pbdma timeout regs during initialisation on GK208B, GK208, and GM107. Based on the following upstream commit: https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3 Mon Aug 27 07:40:11 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c Wed Jan 22 11:38:54 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $"); #include "gk104.h" #include "changk104.h" @@ -752,6 +752,20 @@ gk104_fifo_init(struct nvkm_fifo *base) nvkm_wr32(device, 0x002254, 0x10000000 | fifo->user.bar.offset >> 12); + /* XXX NetBSD + * write pbdma timeout regs during initialization + * backport of: + * https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2 + */ + switch (device->chipset) { + case 0x106: /* GK208B */ + case 0x108: /* GK208 */ + case 0x117: /* GM107 */ + for (i = 0; i < fifo->spoon_nr; i++) + nvkm_wr32(device, 0x04012c + (i * 0x2000), 0x0000ffff); + break; + } + nvkm_wr32(device, 0x002100, 0xffffffff); nvkm_wr32(device, 0x002140, 0x7fffffff); }