Commit d4547ed8 authored by Ben Skeggs's avatar Ben Skeggs

drm/nvc0/vram: skip disabled PBFB subunits

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2bfa7482
...@@ -110,22 +110,26 @@ nvc0_vram_init(struct drm_device *dev) ...@@ -110,22 +110,26 @@ nvc0_vram_init(struct drm_device *dev)
u32 bsize = nv_rd32(dev, 0x10f20c); u32 bsize = nv_rd32(dev, 0x10f20c);
u32 offset, length; u32 offset, length;
bool uniform = true; bool uniform = true;
int ret, i; int ret, part;
NV_DEBUG(dev, "0x100800: 0x%08x\n", nv_rd32(dev, 0x100800)); NV_DEBUG(dev, "0x100800: 0x%08x\n", nv_rd32(dev, 0x100800));
NV_DEBUG(dev, "parts 0x%08x bcast_mem_amount 0x%08x\n", parts, bsize); NV_DEBUG(dev, "parts 0x%08x bcast_mem_amount 0x%08x\n", parts, bsize);
/* read amount of vram attached to each memory controller */ /* read amount of vram attached to each memory controller */
for (i = 0; i < parts; i++) { part = 0;
u32 psize = nv_rd32(dev, 0x11020c + (i * 0x1000)); while (parts) {
u32 psize = nv_rd32(dev, 0x11020c + (part++ * 0x1000));
if (psize == 0)
continue;
parts--;
if (psize != bsize) { if (psize != bsize) {
if (psize < bsize) if (psize < bsize)
bsize = psize; bsize = psize;
uniform = false; uniform = false;
} }
NV_DEBUG(dev, "%d: mem_amount 0x%08x\n", i, psize); NV_DEBUG(dev, "%d: mem_amount 0x%08x\n", part, psize);
dev_priv->vram_size += (u64)psize << 20; dev_priv->vram_size += (u64)psize << 20;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment