Lines Matching refs:fbdev
217 struct tegra_fbdev *fbdev = to_tegra_fbdev(helper); in tegra_fbdev_probe() local
252 fbdev->fb = tegra_fb_alloc(drm, &cmd, &bo, 1); in tegra_fbdev_probe()
253 if (IS_ERR(fbdev->fb)) { in tegra_fbdev_probe()
254 err = PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
258 return PTR_ERR(fbdev->fb); in tegra_fbdev_probe()
261 fb = fbdev->fb; in tegra_fbdev_probe()
263 helper->fbdev = info; in tegra_fbdev_probe()
301 struct tegra_fbdev *fbdev; in tegra_fbdev_create() local
303 fbdev = kzalloc(sizeof(*fbdev), GFP_KERNEL); in tegra_fbdev_create()
304 if (!fbdev) { in tegra_fbdev_create()
309 drm_fb_helper_prepare(drm, &fbdev->base, &tegra_fb_helper_funcs); in tegra_fbdev_create()
311 return fbdev; in tegra_fbdev_create()
314 static void tegra_fbdev_free(struct tegra_fbdev *fbdev) in tegra_fbdev_free() argument
316 kfree(fbdev); in tegra_fbdev_free()
319 static int tegra_fbdev_init(struct tegra_fbdev *fbdev, in tegra_fbdev_init() argument
324 struct drm_device *drm = fbdev->base.dev; in tegra_fbdev_init()
327 err = drm_fb_helper_init(drm, &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 drm_fb_helper_unregister_fbi(&fbdev->base); in tegra_fbdev_exit()
352 if (fbdev->fb) { in tegra_fbdev_exit()
353 struct tegra_bo *bo = tegra_fb_get_plane(fbdev->fb, 0); in tegra_fbdev_exit()
361 drm_framebuffer_remove(fbdev->fb); in tegra_fbdev_exit()
364 drm_fb_helper_fini(&fbdev->base); in tegra_fbdev_exit()
365 tegra_fbdev_free(fbdev); in tegra_fbdev_exit()
374 tegra->fbdev = tegra_fbdev_create(drm); in tegra_drm_fb_prepare()
375 if (IS_ERR(tegra->fbdev)) in tegra_drm_fb_prepare()
376 return PTR_ERR(tegra->fbdev); in tegra_drm_fb_prepare()
387 tegra_fbdev_free(tegra->fbdev); in tegra_drm_fb_free()
397 err = tegra_fbdev_init(tegra->fbdev, 32, drm->mode_config.num_crtc, in tegra_drm_fb_init()
411 tegra_fbdev_exit(tegra->fbdev); in tegra_drm_fb_exit()