diff options
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_fbdev.c')
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c index 767afd2bfa82..4929ffe5a09a 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c @@ -49,6 +49,8 @@ static const struct fb_ops exynos_drm_fb_ops = {  	.owner		= THIS_MODULE,  	DRM_FB_HELPER_DEFAULT_OPS,  	.fb_mmap        = exynos_drm_fb_mmap, +	.fb_read	= drm_fb_helper_cfb_read, +	.fb_write	= drm_fb_helper_cfb_write,  	.fb_fillrect	= drm_fb_helper_cfb_fillrect,  	.fb_copyarea	= drm_fb_helper_cfb_copyarea,  	.fb_imageblit	= drm_fb_helper_cfb_imageblit, @@ -63,7 +65,7 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,  	unsigned int size = fb->width * fb->height * fb->format->cpp[0];  	unsigned long offset; -	fbi = drm_fb_helper_alloc_fbi(helper); +	fbi = drm_fb_helper_alloc_info(helper);  	if (IS_ERR(fbi)) {  		DRM_DEV_ERROR(to_dma_dev(helper->dev),  			      "failed to allocate fb info.\n"); @@ -161,7 +163,7 @@ int exynos_drm_fbdev_init(struct drm_device *dev)  	private->fb_helper = helper = &fbdev->drm_fb_helper; -	drm_fb_helper_prepare(dev, helper, &exynos_drm_fb_helper_funcs); +	drm_fb_helper_prepare(dev, helper, PREFERRED_BPP, &exynos_drm_fb_helper_funcs);  	ret = drm_fb_helper_init(dev, helper);  	if (ret < 0) { @@ -170,7 +172,7 @@ int exynos_drm_fbdev_init(struct drm_device *dev)  		goto err_init;  	} -	ret = drm_fb_helper_initial_config(helper, PREFERRED_BPP); +	ret = drm_fb_helper_initial_config(helper);  	if (ret < 0) {  		DRM_DEV_ERROR(dev->dev,  			      "failed to set up hw configuration.\n"); @@ -181,8 +183,8 @@ int exynos_drm_fbdev_init(struct drm_device *dev)  err_setup:  	drm_fb_helper_fini(helper); -  err_init: +	drm_fb_helper_unprepare(helper);  	private->fb_helper = NULL;  	kfree(fbdev); @@ -201,7 +203,7 @@ static void exynos_drm_fbdev_destroy(struct drm_device *dev,  			drm_framebuffer_remove(fb);  	} -	drm_fb_helper_unregister_fbi(fb_helper); +	drm_fb_helper_unregister_info(fb_helper);  	drm_fb_helper_fini(fb_helper);  } @@ -217,6 +219,7 @@ void exynos_drm_fbdev_fini(struct drm_device *dev)  	fbdev = to_exynos_fbdev(private->fb_helper);  	exynos_drm_fbdev_destroy(dev, private->fb_helper); +	drm_fb_helper_unprepare(private->fb_helper);  	kfree(fbdev);  	private->fb_helper = NULL;  }  |