Lines Matching refs:fb_helper
20 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_dma_fb_open() local
23 if (user && !try_module_get(fb_helper->dev->driver->fops->owner)) in drm_fbdev_dma_fb_open()
31 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_dma_fb_release() local
34 module_put(fb_helper->dev->driver->fops->owner); in drm_fbdev_dma_fb_release()
41 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_dma_fb_mmap() local
43 return drm_gem_prime_mmap(fb_helper->buffer->gem, vma); in drm_fbdev_dma_fb_mmap()
48 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_dma_fb_destroy() local
50 if (!fb_helper->dev) in drm_fbdev_dma_fb_destroy()
55 drm_fb_helper_fini(fb_helper); in drm_fbdev_dma_fb_destroy()
57 drm_client_buffer_vunmap(fb_helper->buffer); in drm_fbdev_dma_fb_destroy()
58 drm_client_framebuffer_delete(fb_helper->buffer); in drm_fbdev_dma_fb_destroy()
59 drm_client_release(&fb_helper->client); in drm_fbdev_dma_fb_destroy()
60 drm_fb_helper_unprepare(fb_helper); in drm_fbdev_dma_fb_destroy()
61 kfree(fb_helper); in drm_fbdev_dma_fb_destroy()
81 struct drm_fb_helper *fb_helper = info->par; in drm_fbdev_dma_deferred_fb_mmap() local
82 struct drm_framebuffer *fb = fb_helper->fb; in drm_fbdev_dma_deferred_fb_mmap()
106 static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper *fb_helper, in drm_fbdev_dma_helper_fb_probe() argument
109 struct drm_client_dev *client = &fb_helper->client; in drm_fbdev_dma_helper_fb_probe()
110 struct drm_device *dev = fb_helper->dev; in drm_fbdev_dma_helper_fb_probe()
151 fb_helper->buffer = buffer; in drm_fbdev_dma_helper_fb_probe()
152 fb_helper->fb = fb; in drm_fbdev_dma_helper_fb_probe()
154 info = drm_fb_helper_alloc_info(fb_helper); in drm_fbdev_dma_helper_fb_probe()
160 drm_fb_helper_fill_info(info, fb_helper, sizes); in drm_fbdev_dma_helper_fb_probe()
193 fb_helper->fbdefio.delay = HZ / 20; in drm_fbdev_dma_helper_fb_probe()
194 fb_helper->fbdefio.deferred_io = drm_fb_helper_deferred_io; in drm_fbdev_dma_helper_fb_probe()
196 info->fbdefio = &fb_helper->fbdefio; in drm_fbdev_dma_helper_fb_probe()
205 drm_fb_helper_release_info(fb_helper); in drm_fbdev_dma_helper_fb_probe()
207 fb_helper->fb = NULL; in drm_fbdev_dma_helper_fb_probe()
208 fb_helper->buffer = NULL; in drm_fbdev_dma_helper_fb_probe()
245 struct drm_fb_helper *fb_helper = drm_fb_helper_from_client(client); in drm_fbdev_dma_client_unregister() local
247 if (fb_helper->info) { in drm_fbdev_dma_client_unregister()
248 drm_fb_helper_unregister_info(fb_helper); in drm_fbdev_dma_client_unregister()
250 drm_client_release(&fb_helper->client); in drm_fbdev_dma_client_unregister()
251 drm_fb_helper_unprepare(fb_helper); in drm_fbdev_dma_client_unregister()
252 kfree(fb_helper); in drm_fbdev_dma_client_unregister()
265 struct drm_fb_helper *fb_helper = drm_fb_helper_from_client(client); in drm_fbdev_dma_client_hotplug() local
269 if (dev->fb_helper) in drm_fbdev_dma_client_hotplug()
270 return drm_fb_helper_hotplug_event(dev->fb_helper); in drm_fbdev_dma_client_hotplug()
272 ret = drm_fb_helper_init(dev, fb_helper); in drm_fbdev_dma_client_hotplug()
279 ret = drm_fb_helper_initial_config(fb_helper); in drm_fbdev_dma_client_hotplug()
286 drm_fb_helper_fini(fb_helper); in drm_fbdev_dma_client_hotplug()
321 struct drm_fb_helper *fb_helper; in drm_fbdev_dma_setup() local
325 drm_WARN(dev, dev->fb_helper, "fb_helper is already set!\n"); in drm_fbdev_dma_setup()
327 fb_helper = kzalloc(sizeof(*fb_helper), GFP_KERNEL); in drm_fbdev_dma_setup()
328 if (!fb_helper) in drm_fbdev_dma_setup()
330 drm_fb_helper_prepare(dev, fb_helper, preferred_bpp, &drm_fbdev_dma_helper_funcs); in drm_fbdev_dma_setup()
332 ret = drm_client_init(dev, &fb_helper->client, "fbdev", &drm_fbdev_dma_client_funcs); in drm_fbdev_dma_setup()
338 drm_client_register(&fb_helper->client); in drm_fbdev_dma_setup()
343 drm_fb_helper_unprepare(fb_helper); in drm_fbdev_dma_setup()
344 kfree(fb_helper); in drm_fbdev_dma_setup()