Lines Matching refs:fbdev

200 	struct tegra_fbdev *fbdev = to_tegra_fbdev(helper);  in tegra_fbdev_probe()  local
234 fbdev->fb = tegra_fb_alloc(drm, &cmd, &bo, 1); in tegra_fbdev_probe()
235 if (IS_ERR(fbdev->fb)) { in tegra_fbdev_probe()
236 err = PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
243 fb = &fbdev->fb->base; in tegra_fbdev_probe()
245 helper->fbdev = info; in tegra_fbdev_probe()
295 struct tegra_fbdev *fbdev; in tegra_fbdev_create() local
297 fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL); in tegra_fbdev_create()
298 if (!fbdev) { in tegra_fbdev_create()
303 drm_fb_helper_prepare(drm, &fbdev->base, &tegra_fb_helper_funcs); in tegra_fbdev_create()
305 return fbdev; in tegra_fbdev_create()
308 static void tegra_fbdev_free(struct tegra_fbdev *fbdev) in tegra_fbdev_free() argument
310 kfree(fbdev); in tegra_fbdev_free()
313 static int tegra_fbdev_init(struct tegra_fbdev *fbdev, in tegra_fbdev_init() argument
318 struct drm_device *drm = fbdev->base.dev; in tegra_fbdev_init()
321 err = drm_fb_helper_init(drm, &fbdev->base, num_crtc, max_connectors); in tegra_fbdev_init()
328 err = drm_fb_helper_single_add_all_connectors(&fbdev->base); in tegra_fbdev_init()
334 err = drm_fb_helper_initial_config(&fbdev->base, preferred_bpp); in tegra_fbdev_init()
344 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_init()
348 static void tegra_fbdev_exit(struct tegra_fbdev *fbdev) in tegra_fbdev_exit() argument
350 struct fb_info *info = fbdev->base.fbdev; in tegra_fbdev_exit()
365 if (fbdev->fb) { in tegra_fbdev_exit()
366 drm_framebuffer_unregister_private(&fbdev->fb->base); in tegra_fbdev_exit()
367 drm_framebuffer_remove(&fbdev->fb->base); in tegra_fbdev_exit()
370 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_exit()
371 tegra_fbdev_free(fbdev); in tegra_fbdev_exit()
374 void tegra_fbdev_restore_mode(struct tegra_fbdev *fbdev) in tegra_fbdev_restore_mode() argument
376 if (fbdev) in tegra_fbdev_restore_mode()
377 drm_fb_helper_restore_fbdev_mode_unlocked(&fbdev->base); in tegra_fbdev_restore_mode()
384 if (tegra->fbdev) in tegra_fb_output_poll_changed()
385 drm_fb_helper_hotplug_event(&tegra->fbdev->base); in tegra_fb_output_poll_changed()
394 tegra->fbdev = tegra_fbdev_create(drm); in tegra_drm_fb_prepare()
395 if (IS_ERR(tegra->fbdev)) in tegra_drm_fb_prepare()
396 return PTR_ERR(tegra->fbdev); in tegra_drm_fb_prepare()
407 tegra_fbdev_free(tegra->fbdev); in tegra_drm_fb_free()
417 err = tegra_fbdev_init(tegra->fbdev, 32, drm->mode_config.num_crtc, in tegra_drm_fb_init()
431 tegra_fbdev_exit(tegra->fbdev); in tegra_drm_fb_exit()