Lines Matching refs:fbdev
209 struct tegra_fbdev *fbdev = to_tegra_fbdev(helper); in tegra_fbdev_probe() local
244 fbdev->fb = tegra_fb_alloc(drm, &cmd, &bo, 1); in tegra_fbdev_probe()
245 if (IS_ERR(fbdev->fb)) { in tegra_fbdev_probe()
246 err = PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
250 return PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
253 fb = fbdev->fb; in tegra_fbdev_probe()
255 helper->fbdev = info; in tegra_fbdev_probe()
296 struct tegra_fbdev *fbdev; in tegra_fbdev_create() local
298 fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL); in tegra_fbdev_create()
299 if (!fbdev) { in tegra_fbdev_create()
304 drm_fb_helper_prepare(drm, &fbdev->base, &tegra_fb_helper_funcs); in tegra_fbdev_create()
306 return fbdev; in tegra_fbdev_create()
309 static void tegra_fbdev_free(struct tegra_fbdev *fbdev) in tegra_fbdev_free() argument
311 kfree(fbdev); in tegra_fbdev_free()
314 static int tegra_fbdev_init(struct tegra_fbdev *fbdev, in tegra_fbdev_init() argument
319 struct drm_device *drm = fbdev->base.dev; in tegra_fbdev_init()
322 err = drm_fb_helper_init(drm, &fbdev->base, max_connectors); in tegra_fbdev_init()
329 err = drm_fb_helper_single_add_all_connectors(&fbdev->base); in tegra_fbdev_init()
335 err = drm_fb_helper_initial_config(&fbdev->base, preferred_bpp); in tegra_fbdev_init()
345 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_init()
349 static void tegra_fbdev_exit(struct tegra_fbdev *fbdev) in tegra_fbdev_exit() argument
351 drm_fb_helper_unregister_fbi(&fbdev->base); in tegra_fbdev_exit()
353 if (fbdev->fb) { in tegra_fbdev_exit()
354 struct tegra_bo *bo = tegra_fb_get_plane(fbdev->fb, 0); in tegra_fbdev_exit()
362 drm_framebuffer_remove(fbdev->fb); in tegra_fbdev_exit()
365 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_exit()
366 tegra_fbdev_free(fbdev); in tegra_fbdev_exit()
375 tegra->fbdev = tegra_fbdev_create(drm); in tegra_drm_fb_prepare()
376 if (IS_ERR(tegra->fbdev)) in tegra_drm_fb_prepare()
377 return PTR_ERR(tegra->fbdev); in tegra_drm_fb_prepare()
388 tegra_fbdev_free(tegra->fbdev); in tegra_drm_fb_free()
398 err = tegra_fbdev_init(tegra->fbdev, 32, drm->mode_config.num_crtc, in tegra_drm_fb_init()
412 tegra_fbdev_exit(tegra->fbdev); in tegra_drm_fb_exit()
422 drm_fb_helper_set_suspend(&tegra->fbdev->base, 1); in tegra_drm_fb_suspend()
433 drm_fb_helper_set_suspend(&tegra->fbdev->base, 0); in tegra_drm_fb_resume()