summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-06-23 02:42:15 +1000
committerBen Skeggs <skeggsb@gmail.com>2008-06-23 02:42:15 +1000
commit01e8f0ea426970859bafba72e067590df1a64eb0 (patch)
tree28a165156ee843a15fd36731cc48f85f7de3dad7
parent89cf2ee2e5b3930b36f2347f35933fc29bc42518 (diff)
nv50: oops, keep VRAM allocations aligned at 64KiB - that's our page size..
-rw-r--r--shared-core/nouveau_mem.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/shared-core/nouveau_mem.c b/shared-core/nouveau_mem.c
index 207d7860..58942829 100644
--- a/shared-core/nouveau_mem.c
+++ b/shared-core/nouveau_mem.c
@@ -593,8 +593,11 @@ nouveau_mem_alloc(struct drm_device *dev, int alignment, uint64_t size,
/* Align allocation sizes to 64KiB blocks on G8x. We use a 64KiB
* page size in the GPU VM.
*/
- if (flags & NOUVEAU_MEM_FB && dev_priv->card_type >= NV_50)
+ if (flags & NOUVEAU_MEM_FB && dev_priv->card_type >= NV_50) {
size = (size + (64 * 1024)) & ~((64 * 1024) - 1);
+ if (alignment < 16)
+ alignment = 16;
+ }
/*
* Warn about 0 sized allocations, but let it go through. It'll return 1 page