summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2009-03-06 09:04:44 +1000
committerBen Skeggs <bskeggs@redhat.com>2009-03-06 09:16:54 +1000
commit391c92ae1799f0d1fddb2321c5713afc58575514 (patch)
treee70b43c3d60029cc5485e9fcab135f4d3c256e81
parent14503dafa79cfdea69d618f2c28dafb66765a8a0 (diff)
drm/nouveau: make portion of vram as reserved for PRAMIN on all chipsets
NV04 was completely busted. Push buffers were getting allocated at the end of VRAM, overwriting PRAMIN. So, it turns out PRAMIN is in VRAM on all chips. Question answered!
-rw-r--r--shared-core/nouveau_mem.c5
-rw-r--r--shared-core/nv04_instmem.c3
2 files changed, 2 insertions, 6 deletions
diff --git a/shared-core/nouveau_mem.c b/shared-core/nouveau_mem.c
index 991e7d40..64125b61 100644
--- a/shared-core/nouveau_mem.c
+++ b/shared-core/nouveau_mem.c
@@ -485,10 +485,7 @@ int nouveau_mem_init(struct drm_device *dev)
*/
if (dev_priv->card_type >= NV_50 && fb_size > (512 * 1024 * 1024))
fb_size = (512 * 1024 * 1024);
- /* On at least NV40, RAMIN is actually at the end of vram.
- * We don't want to allocate this... */
- if (dev_priv->card_type >= NV_40)
- fb_size -= dev_priv->ramin_rsvd_vram;
+ fb_size -= dev_priv->ramin_rsvd_vram;
dev_priv->fb_available_size = fb_size;
DRM_DEBUG("Available VRAM: %dKiB\n", fb_size>>10);
diff --git a/shared-core/nv04_instmem.c b/shared-core/nv04_instmem.c
index 7b58aa41..713b02d0 100644
--- a/shared-core/nv04_instmem.c
+++ b/shared-core/nv04_instmem.c
@@ -17,8 +17,7 @@ nv04_instmem_determine_amount(struct drm_device *dev)
*/
dev_priv->ramin_rsvd_vram = (1*1024* 1024);
} else {
- /*XXX: what *are* the limits on <NV40 cards?, and does RAMIN
- * exist in vram on those cards as well?
+ /*XXX: what *are* the limits on <NV40 cards?
*/
dev_priv->ramin_rsvd_vram = (512*1024);
}