提交 7a2e4e03 编写于 作者: B Ben Skeggs

drm/nv50: fix memory detection for cards with >=4GiB VRAM

Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
上级 fb4f5621
...@@ -364,9 +364,14 @@ nouveau_mem_detect(struct drm_device *dev) ...@@ -364,9 +364,14 @@ nouveau_mem_detect(struct drm_device *dev)
} else } else
if (dev_priv->flags & (NV_NFORCE | NV_NFORCE2)) { if (dev_priv->flags & (NV_NFORCE | NV_NFORCE2)) {
dev_priv->vram_size = nouveau_mem_detect_nforce(dev); dev_priv->vram_size = nouveau_mem_detect_nforce(dev);
} else { } else
if (dev_priv->card_type < NV_50) {
dev_priv->vram_size = nv_rd32(dev, NV04_FIFO_DATA); dev_priv->vram_size = nv_rd32(dev, NV04_FIFO_DATA);
dev_priv->vram_size &= NV10_FIFO_DATA_RAM_AMOUNT_MB_MASK; dev_priv->vram_size &= NV10_FIFO_DATA_RAM_AMOUNT_MB_MASK;
} else {
dev_priv->vram_size = nv_rd32(dev, NV04_FIFO_DATA);
dev_priv->vram_size |= (dev_priv->vram_size & 0xff) << 32;
dev_priv->vram_size &= 0xffffffff00;
if (dev_priv->chipset == 0xaa || dev_priv->chipset == 0xac) { if (dev_priv->chipset == 0xaa || dev_priv->chipset == 0xac) {
dev_priv->vram_sys_base = nv_rd32(dev, 0x100e10); dev_priv->vram_sys_base = nv_rd32(dev, 0x100e10);
dev_priv->vram_sys_base <<= 12; dev_priv->vram_sys_base <<= 12;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册