Lines Matching defs:fb
48 * drm_gem_fb_destroy(fb)
58 drm_gem_fb_destroy(struct drm_framebuffer *fb)
62 for (plane = 0; plane < __arraycount(fb->obj); plane++)
63 drm_gem_object_put_unlocked(fb->obj[plane]);
64 drm_framebuffer_cleanup(fb);
65 kfree(fb);
69 * drm_gem_fb_create_handle(fb, file, handlep)
72 * of fb in the specified drm file namespace, and store it in
78 drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file,
82 return drm_gem_handle_create(file, fb->obj[0], handlep);
102 struct drm_framebuffer *fb;
107 fb = kmalloc(sizeof(*fb), GFP_KERNEL);
108 if (fb == NULL) {
117 drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
118 if (fb->format == NULL) {
124 for (plane = 0; plane < fb->format->num_planes; plane++) {
125 unsigned vsub = (plane > 0 ? fb->format->vsub : 1); /* XXX ? */
126 unsigned hsub = (plane > 0 ? fb->format->hsub : 1); /* XXX ? */
131 fb->obj[plane] = drm_gem_object_lookup(file, handle);
132 if (fb->obj[plane] == NULL) {
139 + (mode_cmd->width/hsub)*fb->format->cpp[plane]
141 if (fb->obj[plane]->size < size) {
149 ret = drm_framebuffer_init(dev, fb, funcs);
154 return fb;
157 drm_gem_object_put_unlocked(fb->obj[plane]);
158 fail1: kmem_free(fb, sizeof(*fb));