summaryrefslogtreecommitdiff
path: root/linux-core/radeon_fb.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2008-09-23 16:47:34 +1000
committerDave Airlie <airlied@redhat.com>2008-09-23 16:49:32 +1000
commit5fdfbee22acb8eaaa834457c30e6f68883ab1353 (patch)
tree0e9b12245edb3915e29a32fea8cfb5fcb806be87 /linux-core/radeon_fb.c
parenta2216491c619082ad9a01bc949648834dc5a0d2f (diff)
Store the buffer object backing the fb as a void pointer, not a handle.
This lets us defer handle creation until userspace acutally asks for one, at which point we also have a drm_file to associate it with.
Diffstat (limited to 'linux-core/radeon_fb.c')
-rw-r--r--linux-core/radeon_fb.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/linux-core/radeon_fb.c b/linux-core/radeon_fb.c
index 86459674..8c9461da 100644
--- a/linux-core/radeon_fb.c
+++ b/linux-core/radeon_fb.c
@@ -744,7 +744,7 @@ int radeonfb_create(struct drm_device *dev, uint32_t fb_width, uint32_t fb_heigh
}
mutex_lock(&dev->struct_mutex);
- fb = radeon_user_framebuffer_create(dev, NULL, &mode_cmd);
+ fb = radeon_framebuffer_create(dev, &mode_cmd, fbo);
if (!fb) {
DRM_ERROR("failed to allocate fb.\n");
ret = -ENOMEM;
@@ -756,8 +756,6 @@ int radeonfb_create(struct drm_device *dev, uint32_t fb_width, uint32_t fb_heigh
radeon_fb = to_radeon_framebuffer(fb);
*radeon_fb_p = radeon_fb;
- radeon_fb->obj = fbo;
-
info = framebuffer_alloc(sizeof(struct radeonfb_par), device);
if (!info) {
ret = -ENOMEM;
@@ -1150,7 +1148,7 @@ int radeonfb_remove(struct drm_device *dev, struct drm_framebuffer *fb)
unregister_framebuffer(info);
drm_bo_kunmap(&radeon_fb->kmap_obj);
mutex_lock(&dev->struct_mutex);
- drm_gem_object_unreference(radeon_fb->obj);
+ drm_gem_object_unreference(fb->mm_private);
mutex_unlock(&dev->struct_mutex);
framebuffer_release(info);
}