Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9617757f authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: fix fetching vbios from above 4GiB vram addresses



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 9a11dd65
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -135,13 +135,14 @@ static void load_vbios_pramin(struct drm_device *dev, uint8_t *data)
	int i;

	if (dev_priv->card_type >= NV_50) {
		uint32_t vbios_vram = (nv_rd32(dev, 0x619f04) & ~0xff) << 8;

		if (!vbios_vram)
			vbios_vram = (nv_rd32(dev, 0x1700) << 16) + 0xf0000;
		u64 addr = (u64)(nv_rd32(dev, 0x619f04) & 0xffffff00) << 8;
		if (!addr) {
			addr  = (u64)nv_rd32(dev, 0x1700) << 16;
			addr += 0xf0000;
		}

		old_bar0_pramin = nv_rd32(dev, 0x1700);
		nv_wr32(dev, 0x1700, vbios_vram >> 16);
		nv_wr32(dev, 0x1700, addr >> 16);
	}

	/* bail if no rom signature */