Lines Matching refs:fb

54 struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb,  in drm_gem_fb_get_obj()  argument
57 struct drm_device *dev = fb->dev; in drm_gem_fb_get_obj()
59 if (drm_WARN_ON_ONCE(dev, plane >= ARRAY_SIZE(fb->obj))) in drm_gem_fb_get_obj()
61 else if (drm_WARN_ON_ONCE(dev, !fb->obj[plane])) in drm_gem_fb_get_obj()
64 return fb->obj[plane]; in drm_gem_fb_get_obj()
70 struct drm_framebuffer *fb, in drm_gem_fb_init() argument
79 drm_helper_mode_fill_fb_struct(dev, fb, info, mode_cmd); in drm_gem_fb_init()
82 fb->obj[i] = obj[i]; in drm_gem_fb_init()
84 ret = drm_framebuffer_init(dev, fb, funcs); in drm_gem_fb_init()
99 void drm_gem_fb_destroy(struct drm_framebuffer *fb) in drm_gem_fb_destroy() argument
103 for (i = 0; i < fb->format->num_planes; i++) in drm_gem_fb_destroy()
104 drm_gem_object_put(fb->obj[i]); in drm_gem_fb_destroy()
106 drm_framebuffer_cleanup(fb); in drm_gem_fb_destroy()
107 kfree(fb); in drm_gem_fb_destroy()
124 int drm_gem_fb_create_handle(struct drm_framebuffer *fb, struct drm_file *file, in drm_gem_fb_create_handle() argument
127 return drm_gem_handle_create(file, fb->obj[0], handle); in drm_gem_fb_create_handle()
155 struct drm_framebuffer *fb, in drm_gem_fb_init_with_funcs() argument
199 ret = drm_gem_fb_init(dev, fb, info, mode_cmd, objs, i, funcs); in drm_gem_fb_init_with_funcs()
237 struct drm_framebuffer *fb; in drm_gem_fb_create_with_funcs() local
240 fb = kzalloc(sizeof(*fb), GFP_KERNEL); in drm_gem_fb_create_with_funcs()
241 if (!fb) in drm_gem_fb_create_with_funcs()
244 ret = drm_gem_fb_init_with_funcs(dev, fb, file, info, mode_cmd, funcs); in drm_gem_fb_create_with_funcs()
246 kfree(fb); in drm_gem_fb_create_with_funcs()
250 return fb; in drm_gem_fb_create_with_funcs()
355 int drm_gem_fb_vmap(struct drm_framebuffer *fb, struct iosys_map *map, in drm_gem_fb_vmap() argument
362 for (i = 0; i < fb->format->num_planes; ++i) { in drm_gem_fb_vmap()
363 obj = drm_gem_fb_get_obj(fb, i); in drm_gem_fb_vmap()
374 for (i = 0; i < fb->format->num_planes; ++i) { in drm_gem_fb_vmap()
378 iosys_map_incr(&data[i], fb->offsets[i]); in drm_gem_fb_vmap()
387 obj = drm_gem_fb_get_obj(fb, i); in drm_gem_fb_vmap()
405 void drm_gem_fb_vunmap(struct drm_framebuffer *fb, struct iosys_map *map) in drm_gem_fb_vunmap() argument
407 unsigned int i = fb->format->num_planes; in drm_gem_fb_vunmap()
412 obj = drm_gem_fb_get_obj(fb, i); in drm_gem_fb_vunmap()
422 static void __drm_gem_fb_end_cpu_access(struct drm_framebuffer *fb, enum dma_data_direction dir, in __drm_gem_fb_end_cpu_access() argument
431 obj = drm_gem_fb_get_obj(fb, num_planes); in __drm_gem_fb_end_cpu_access()
439 drm_err(fb->dev, "dma_buf_end_cpu_access(%u, %d) failed: %d\n", in __drm_gem_fb_end_cpu_access()
458 int drm_gem_fb_begin_cpu_access(struct drm_framebuffer *fb, enum dma_data_direction dir) in drm_gem_fb_begin_cpu_access() argument
465 for (i = 0; i < fb->format->num_planes; ++i) { in drm_gem_fb_begin_cpu_access()
466 obj = drm_gem_fb_get_obj(fb, i); in drm_gem_fb_begin_cpu_access()
482 __drm_gem_fb_end_cpu_access(fb, dir, i); in drm_gem_fb_begin_cpu_access()
498 void drm_gem_fb_end_cpu_access(struct drm_framebuffer *fb, enum dma_data_direction dir) in drm_gem_fb_end_cpu_access() argument
500 __drm_gem_fb_end_cpu_access(fb, dir, fb->format->num_planes); in drm_gem_fb_end_cpu_access()