aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2021-01-13 17:12:52 +1000
committerBen Skeggs <bskeggs@redhat.com>2021-01-15 10:25:19 +1000
commita34632482f1ea768429a9d4c79a10d12f5093405 (patch)
treeb62f2ec46ce5d449f4391c3829f4cd751c2cc570
parentdrm/nouveau/pci/ga10[024]: initial support (diff)
downloadlinux-dev-a34632482f1ea768429a9d4c79a10d12f5093405.tar.xz
linux-dev-a34632482f1ea768429a9d4c79a10d12f5093405.zip
drm/nouveau/bios/ga10[024]: initial support
Forcing PRAMIN-shadowing off for GA100, as it requires display, and we don't know if/where the fuse register for detecting its presence is. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/device/base.c3
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
index 95c470d13cb9..7c35c32cdf73 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
@@ -2655,18 +2655,21 @@ nv168_chipset = {
static const struct nvkm_device_chip
nv170_chipset = {
.name = "GA100",
+ .bios = nvkm_bios_new,
.pci = gp100_pci_new,
};
static const struct nvkm_device_chip
nv172_chipset = {
.name = "GA102",
+ .bios = nvkm_bios_new,
.pci = gp100_pci_new,
};
static const struct nvkm_device_chip
nv174_chipset = {
.name = "GA104",
+ .bios = nvkm_bios_new,
.pci = gp100_pci_new,
};
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
index 3634cd0630b8..023ddc7c5399 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c
@@ -64,6 +64,9 @@ pramin_init(struct nvkm_bios *bios, const char *name)
return NULL;
/* we can't get the bios image pointer without PDISP */
+ if (device->card_type >= GA100)
+ addr = device->chipset == 0x170; /*XXX: find the fuse reg for this */
+ else
if (device->card_type >= GM100)
addr = nvkm_rd32(device, 0x021c04);
else