Lines Matching refs:fb_helper

18 	struct drm_fb_helper *fb_helper = info->par;  in drm_fbdev_generic_fb_open()  local
21 if (user && !try_module_get(fb_helper->dev->driver->fops->owner)) in drm_fbdev_generic_fb_open()
29 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_generic_fb_release() local
32 module_put(fb_helper->dev->driver->fops->owner); in drm_fbdev_generic_fb_release()
43 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_generic_fb_destroy() local
46 if (!fb_helper->dev) in drm_fbdev_generic_fb_destroy()
50 drm_fb_helper_fini(fb_helper); in drm_fbdev_generic_fb_destroy()
52 drm_client_framebuffer_delete(fb_helper->buffer); in drm_fbdev_generic_fb_destroy()
54 drm_client_release(&fb_helper->client); in drm_fbdev_generic_fb_destroy()
55 drm_fb_helper_unprepare(fb_helper); in drm_fbdev_generic_fb_destroy()
56 kfree(fb_helper); in drm_fbdev_generic_fb_destroy()
71 static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, in drm_fbdev_generic_helper_fb_probe() argument
74 struct drm_client_dev *client = &fb_helper->client; in drm_fbdev_generic_helper_fb_probe()
75 struct drm_device *dev = fb_helper->dev; in drm_fbdev_generic_helper_fb_probe()
93 fb_helper->buffer = buffer; in drm_fbdev_generic_helper_fb_probe()
94 fb_helper->fb = buffer->fb; in drm_fbdev_generic_helper_fb_probe()
103 info = drm_fb_helper_alloc_info(fb_helper); in drm_fbdev_generic_helper_fb_probe()
109 drm_fb_helper_fill_info(info, fb_helper, sizes); in drm_fbdev_generic_helper_fb_probe()
120 fb_helper->fbdefio.delay = HZ / 20; in drm_fbdev_generic_helper_fb_probe()
121 fb_helper->fbdefio.deferred_io = drm_fb_helper_deferred_io; in drm_fbdev_generic_helper_fb_probe()
123 info->fbdefio = &fb_helper->fbdefio; in drm_fbdev_generic_helper_fb_probe()
131 drm_fb_helper_release_info(fb_helper); in drm_fbdev_generic_helper_fb_probe()
135 fb_helper->fb = NULL; in drm_fbdev_generic_helper_fb_probe()
136 fb_helper->buffer = NULL; in drm_fbdev_generic_helper_fb_probe()
141 static void drm_fbdev_generic_damage_blit_real(struct drm_fb_helper *fb_helper, in drm_fbdev_generic_damage_blit_real() argument
145 struct drm_framebuffer *fb = fb_helper->fb; in drm_fbdev_generic_damage_blit_real()
170 src = fb_helper->info->screen_buffer + offset; in drm_fbdev_generic_damage_blit_real()
180 static int drm_fbdev_generic_damage_blit(struct drm_fb_helper *fb_helper, in drm_fbdev_generic_damage_blit() argument
183 struct drm_client_buffer *buffer = fb_helper->buffer; in drm_fbdev_generic_damage_blit()
198 mutex_lock(&fb_helper->lock); in drm_fbdev_generic_damage_blit()
205 drm_fbdev_generic_damage_blit_real(fb_helper, clip, &dst); in drm_fbdev_generic_damage_blit()
210 mutex_unlock(&fb_helper->lock); in drm_fbdev_generic_damage_blit()
245 struct drm_fb_helper *fb_helper = drm_fb_helper_from_client(client); in drm_fbdev_generic_client_unregister() local
247 if (fb_helper->info) { in drm_fbdev_generic_client_unregister()
248 drm_fb_helper_unregister_info(fb_helper); in drm_fbdev_generic_client_unregister()
250 drm_client_release(&fb_helper->client); in drm_fbdev_generic_client_unregister()
251 drm_fb_helper_unprepare(fb_helper); in drm_fbdev_generic_client_unregister()
252 kfree(fb_helper); in drm_fbdev_generic_client_unregister()
265 struct drm_fb_helper *fb_helper = drm_fb_helper_from_client(client); in drm_fbdev_generic_client_hotplug() local
269 if (dev->fb_helper) in drm_fbdev_generic_client_hotplug()
270 return drm_fb_helper_hotplug_event(dev->fb_helper); in drm_fbdev_generic_client_hotplug()
272 ret = drm_fb_helper_init(dev, fb_helper); in drm_fbdev_generic_client_hotplug()
279 ret = drm_fb_helper_initial_config(fb_helper); in drm_fbdev_generic_client_hotplug()
286 drm_fb_helper_fini(fb_helper); in drm_fbdev_generic_client_hotplug()
324 struct drm_fb_helper *fb_helper; in drm_fbdev_generic_setup() local
328 drm_WARN(dev, dev->fb_helper, "fb_helper is already set!\n"); in drm_fbdev_generic_setup()
330 fb_helper = kzalloc(sizeof(*fb_helper), GFP_KERNEL); in drm_fbdev_generic_setup()
331 if (!fb_helper) in drm_fbdev_generic_setup()
333 drm_fb_helper_prepare(dev, fb_helper, preferred_bpp, &drm_fbdev_generic_helper_funcs); in drm_fbdev_generic_setup()
335 ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_generic_client_funcs); in drm_fbdev_generic_setup()
341 drm_client_register(&fb_helper->client); in drm_fbdev_generic_setup()
346 drm_fb_helper_unprepare(fb_helper); in drm_fbdev_generic_setup()
347 kfree(fb_helper); in drm_fbdev_generic_setup()