Lines Matching refs:fbdev
207 struct tegra_fbdev *fbdev = to_tegra_fbdev(helper); in tegra_fbdev_probe() local
242 fbdev->fb = tegra_fb_alloc(drm, &cmd, &bo, 1); in tegra_fbdev_probe()
243 if (IS_ERR(fbdev->fb)) { in tegra_fbdev_probe()
244 err = PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
248 return PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
251 fb = fbdev->fb; in tegra_fbdev_probe()
253 helper->fbdev = info; in tegra_fbdev_probe()
291 struct tegra_fbdev *fbdev; in tegra_fbdev_create() local
293 fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL); in tegra_fbdev_create()
294 if (!fbdev) { in tegra_fbdev_create()
299 drm_fb_helper_prepare(drm, &fbdev->base, &tegra_fb_helper_funcs); in tegra_fbdev_create()
301 return fbdev; in tegra_fbdev_create()
304 static void tegra_fbdev_free(struct tegra_fbdev *fbdev) in tegra_fbdev_free() argument
306 kfree(fbdev); in tegra_fbdev_free()
309 static int tegra_fbdev_init(struct tegra_fbdev *fbdev, in tegra_fbdev_init() argument
314 struct drm_device *drm = fbdev->base.dev; in tegra_fbdev_init()
317 err = drm_fb_helper_init(drm, &fbdev->base); in tegra_fbdev_init()
324 err = drm_fb_helper_initial_config(&fbdev->base, preferred_bpp); in tegra_fbdev_init()
334 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_init()
338 static void tegra_fbdev_exit(struct tegra_fbdev *fbdev) in tegra_fbdev_exit() argument
340 drm_fb_helper_unregister_fbi(&fbdev->base); in tegra_fbdev_exit()
342 if (fbdev->fb) { in tegra_fbdev_exit()
343 struct tegra_bo *bo = tegra_fb_get_plane(fbdev->fb, 0); in tegra_fbdev_exit()
351 drm_framebuffer_remove(fbdev->fb); in tegra_fbdev_exit()
354 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_exit()
355 tegra_fbdev_free(fbdev); in tegra_fbdev_exit()
364 tegra->fbdev = tegra_fbdev_create(drm); in tegra_drm_fb_prepare()
365 if (IS_ERR(tegra->fbdev)) in tegra_drm_fb_prepare()
366 return PTR_ERR(tegra->fbdev); in tegra_drm_fb_prepare()
377 tegra_fbdev_free(tegra->fbdev); in tegra_drm_fb_free()
387 err = tegra_fbdev_init(tegra->fbdev, 32, drm->mode_config.num_crtc, in tegra_drm_fb_init()
401 tegra_fbdev_exit(tegra->fbdev); in tegra_drm_fb_exit()