summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nv50_vram.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2010-12-06 15:28:54 +1000
committerBen Skeggs <bskeggs@redhat.com>2010-12-08 13:48:20 +1000
commit60d2a88ae896ae51c76f8b15c2f4b762d5b00864 (patch)
treee136aee905d35f8936036fd01af1ca29526fcc67 /drivers/gpu/drm/nouveau/nv50_vram.c
parent34cf01bc4b8021cef62cbd79224577c13d01b106 (diff)
drm/nouveau: kick vram functions out into an "engine"
NVC0 will be able to share some of nv50's paths this way. This also makes it the card-specific vram code responsible for deciding if a given set of tile_flags is valid, rather than duplicating the allowed types in nv50_vram.c and nouveau_gem.c Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nv50_vram.c')
-rw-r--r--drivers/gpu/drm/nouveau/nv50_vram.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_vram.c b/drivers/gpu/drm/nouveau/nv50_vram.c
index 6e753356cd9..47489ed0a5a 100644
--- a/drivers/gpu/drm/nouveau/nv50_vram.c
+++ b/drivers/gpu/drm/nouveau/nv50_vram.c
@@ -37,6 +37,16 @@ static int types[0x80] = {
1, 0, 2, 0, 1, 0, 2, 0, 1, 1, 2, 2, 1, 1, 0, 0
};
+bool
+nv50_vram_flags_valid(struct drm_device *dev, u32 tile_flags)
+{
+ int type = (tile_flags & NOUVEAU_GEM_TILE_LAYOUT_MASK) >> 8;
+
+ if (likely(type < sizeof(types) && types[type]))
+ return true;
+ return false;
+}
+
void
nv50_vram_del(struct drm_device *dev, struct nouveau_vram **pvram)
{