diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2010-11-06 05:10:47 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-23 15:14:47 -0500 |
commit | 7c2e6fdf452cddeff6a8ee5156edba39e53246fc (patch) | |
tree | 47d05b26b8cda6da59bf0b6ce8f4ca0529a7c791 /drivers/gpu/drm/i915/i915_gem_gtt.c | |
parent | cb16b67b5cb33b7d6732e0c416d29d933eea13ce (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.c | 28 |
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 5f21d0a962c4..f78c15f9e7f2 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 | |||
51 | int 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 | |||
71 | void 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 | } | ||