Maarten Lankhorst
2012-Jul-27 12:13 UTC
[Nouveau] [PATCH] nouveau: apply storage type to gart objects
If you want to access gart as linear, don't specify a non-zero
storage type.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
---
drivers/gpu/drm/nouveau/nouveau_mem.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c
b/drivers/gpu/drm/nouveau/nouveau_mem.c
index 5b498ea..4642ea7 100644
--- a/drivers/gpu/drm/nouveau/nouveau_mem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
@@ -1223,7 +1223,9 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager *man,
struct ttm_mem_reg *mem)
{
struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev);
+ struct nouveau_bo *nvbo = nouveau_bo(bo);
struct nouveau_mem *node;
+ uint32_t memtype = nvbo->tile_flags >> 8;
if (unlikely((mem->num_pages << PAGE_SHIFT) >
dev_priv->gart_info.aper_size))
@@ -1234,6 +1236,13 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager
*man,
return -ENOMEM;
node->page_shift = 12;
+ if (dev_priv->card_type == NV_50) {
+ uint32_t comp = (memtype & 0x300) >> 8;
+ uint32_t type = (memtype & 0x07f);
+ node->memtype = (comp << 7) | type;
+ } else if (dev_priv->card_type >= NV_C0) {
+ node->memtype = memtype & 0xff;
+ }
mem->mm_node = node;
mem->start = 0;
return 0;
Seemingly Similar Threads
- [PATCH] drm/nouveau: remove limit on gart
- [PATCH -next] drm/ttm: Remove set but not used variable 'mem'
- [PATCH] drm/nouveau: always do buffer object moves on bo->channel
- [PATCH 1/4] nouveau: add nouveau_addmap_{agp, fb, pci} functions
- [PATCH 2/2] drm/nouveau: remove set but not used variable 'mem'
