]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/nouveau/bios: specify correct display fuse register for Ampere and Ada
authorTimur Tabi <ttabi@nvidia.com>
Thu, 30 Apr 2026 22:38:35 +0000 (17:38 -0500)
committerDanilo Krummrich <dakr@kernel.org>
Thu, 28 May 2026 17:30:15 +0000 (19:30 +0200)
The NV_FUSE_STATUS_OPT_DISPLAY register is used to determine whether
the GPU has display hardware.  The current code that normally reads
this register is instead hard-coded to check for GA100 vs later GPUs.
Since this function is called only on pre-Hopper GPUs, and this
if-statement applies only to GA100 and later, the check works
because GA100 is the only non-display Ampere and Ada GPU.

However, there actually is a register that can be read, so we should
use it.

Fixes: a34632482f1e ("drm/nouveau/bios/ga10[024]: initial support")
Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://patch.msgid.link/20260430223838.2530778-8-ttabi@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.c

index d5411d176e3a807a8102cdeef90f57bd78565faa..0d9e6cdd6119308af6e7ec5cba8ea297a066cf5d 100644 (file)
@@ -65,13 +65,14 @@ pramin_init(struct nvkm_bios *bios, const char *name)
 
        /* 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 */
+               addr = nvkm_rd32(device, 0x820c04);
        else
        if (device->card_type >= GM100)
                addr = nvkm_rd32(device, 0x021c04);
        else
        if (device->card_type >= NV_C0)
                addr = nvkm_rd32(device, 0x022500);
+
        if (addr & 0x00000001) {
                nvkm_debug(subdev, "... display disabled\n");
                return ERR_PTR(-ENODEV);