From: Ben Skeggs Date: Thu, 23 Jun 2011 22:18:23 +0000 (+1000) Subject: drm/nouveau: fix fetching vbios from above 4GiB vram addresses X-Git-Tag: v3.1-rc1~230^2~21^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9617757fb3dc6274b42afd2dcaa4fbc3ef6db98b;p=platform%2Fupstream%2Fkernel-adaptation-pc.git drm/nouveau: fix fetching vbios from above 4GiB vram addresses Signed-off-by: Ben Skeggs --- diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c index ff339df..1aa73d3 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c @@ -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 */