diff options
author | Kristian Høgsberg <krh@redhat.com> | 2008-09-23 16:47:34 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-09-23 16:49:32 +1000 |
commit | 5fdfbee22acb8eaaa834457c30e6f68883ab1353 (patch) | |
tree | 0e9b12245edb3915e29a32fea8cfb5fcb806be87 /linux-core/radeon_fb.c | |
parent | a2216491c619082ad9a01bc949648834dc5a0d2f (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.c | 6 |
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); } |