aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_gtt.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2010-11-06 05:10:47 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-11-23 15:14:47 -0500
commit7c2e6fdf452cddeff6a8ee5156edba39e53246fc (patch)
tree47d05b26b8cda6da59bf0b6ce8f4ca0529a7c791 /drivers/gpu/drm/i915/i915_gem_gtt.c
parentcb16b67b5cb33b7d6732e0c416d29d933eea13ce (diff)
drm/i915: move gtt handling to i915_gem_gtt.c
No more drm_*_agp in i915_gem.c! Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_gtt.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 5f21d0a962c..f78c15f9e7f 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -47,3 +47,31 @@ void i915_gem_restore_gtt_mappings(struct drm_device *dev)
47 /* Be paranoid and flush the chipset cache. */ 47 /* Be paranoid and flush the chipset cache. */
48 intel_gtt_chipset_flush(); 48 intel_gtt_chipset_flush();
49} 49}
50
51int i915_gem_gtt_bind_object(struct drm_gem_object *obj)
52{
53 struct drm_device *dev = obj->dev;
54 struct drm_i915_gem_object *obj_priv = to_intel_bo(obj);
55
56 /* Create an AGP memory structure pointing at our pages, and bind it
57 * into the GTT.
58 */
59 obj_priv->agp_mem = drm_agp_bind_pages(dev,
60 obj_priv->pages,
61 obj->size >> PAGE_SHIFT,
62 obj_priv->gtt_space->start,
63 obj_priv->agp_type);
64
65 if (obj_priv->agp_mem)
66 return 0;
67 else
68 return -ENOMEM;
69}
70
71void i915_gem_gtt_unbind_object(struct drm_gem_object *obj)
72{
73 struct drm_i915_gem_object *obj_priv = to_intel_bo(obj);
74
75 drm_unbind_agp(obj_priv->agp_mem);
76 drm_free_agp(obj_priv->agp_mem, obj->size / PAGE_SIZE);
77}