Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 196466
b: refs/heads/master
c: c397b90
h: refs/heads/master
v: v3
  • Loading branch information
Daniel Vetter authored and Dave Airlie committed Apr 20, 2010
1 parent 8d85336 commit 35a447b
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 30 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ac52bc56de25535a907ef07f8755f1387b89b0f5
refs/heads/master: c397b9084cabdcaae26266bd0bd32ba62e757046
1 change: 1 addition & 0 deletions trunk/drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -647,6 +647,7 @@ typedef struct drm_i915_private {

/** driver private structure attached to each drm_gem_object */
struct drm_i915_gem_object {
struct drm_gem_object base;
struct drm_gem_object *obj;

/** Current space allocated to this object in the GTT, if any. */
Expand Down
58 changes: 29 additions & 29 deletions trunk/drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -4424,37 +4424,38 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev,
size_t size)
{
return drm_gem_object_alloc(dev, size);
}
struct drm_i915_gem_object *obj;

int i915_gem_init_object(struct drm_gem_object *obj)
{
struct drm_i915_gem_object *obj_priv;
obj = kzalloc(sizeof(*obj), GFP_KERNEL);
if (obj == NULL)
return NULL;

obj_priv = kzalloc(sizeof(*obj_priv), GFP_KERNEL);
if (obj_priv == NULL)
return -ENOMEM;
if (drm_gem_object_init(dev, &obj->base, size) != 0) {
kfree(obj);
return NULL;
}

/*
* We've just allocated pages from the kernel,
* so they've just been written by the CPU with
* zeros. They'll need to be clflushed before we
* use them with the GPU.
*/
obj->write_domain = I915_GEM_DOMAIN_CPU;
obj->read_domains = I915_GEM_DOMAIN_CPU;
obj->base.write_domain = I915_GEM_DOMAIN_CPU;
obj->base.read_domains = I915_GEM_DOMAIN_CPU;

obj_priv->agp_type = AGP_USER_MEMORY;
obj->agp_type = AGP_USER_MEMORY;

obj->driver_private = obj_priv;
obj_priv->obj = obj;
obj_priv->fence_reg = I915_FENCE_REG_NONE;
INIT_LIST_HEAD(&obj_priv->list);
INIT_LIST_HEAD(&obj_priv->gpu_write_list);
INIT_LIST_HEAD(&obj_priv->fence_list);
obj_priv->madv = I915_MADV_WILLNEED;
obj->base.driver_private = obj;
obj->obj = &obj->base;
obj->fence_reg = I915_FENCE_REG_NONE;
INIT_LIST_HEAD(&obj->list);
INIT_LIST_HEAD(&obj->gpu_write_list);
INIT_LIST_HEAD(&obj->fence_list);
obj->madv = I915_MADV_WILLNEED;

trace_i915_gem_object_create(obj);
trace_i915_gem_object_create(&obj->base);

return &obj->base;
}

int i915_gem_init_object(struct drm_gem_object *obj)
{
BUG();

return 0;
}
Expand All @@ -4477,12 +4478,11 @@ void i915_gem_free_object(struct drm_gem_object *obj)
if (obj_priv->mmap_offset)
i915_gem_free_mmap_offset(obj);

drm_gem_object_release(obj);

kfree(obj_priv->page_cpu_valid);
kfree(obj_priv->bit_17);
kfree(obj->driver_private);

drm_gem_object_release(obj);
kfree(obj);
kfree(obj_priv);
}

/** Unbinds all inactive objects. */
Expand Down

0 comments on commit 35a447b

Please sign in to comment.