diff options
| author | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
|---|---|---|
| committer | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
| commit | 79828b4fa835f73cdaf4bffa48696abdcbea9d02 (patch) | |
| tree | 5e0fa7156acb75ba603022bc807df8f2fedb97a8 /drivers/gpu/drm/udl/udl_fb.c | |
| parent | 721b51fcf91898299d96f4b72cb9434cda29dce6 (diff) | |
| parent | 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a (diff) | |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645
Diffstat (limited to 'drivers/gpu/drm/udl/udl_fb.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_fb.c | 41 | 
1 files changed, 12 insertions, 29 deletions
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c index 5fc16cecd3ba..62c7b1dafaa4 100644 --- a/drivers/gpu/drm/udl/udl_fb.c +++ b/drivers/gpu/drm/udl/udl_fb.c @@ -288,7 +288,7 @@ static void udl_fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect  {  	struct udl_fbdev *ufbdev = info->par; -	sys_fillrect(info, rect); +	drm_fb_helper_sys_fillrect(info, rect);  	udl_handle_damage(&ufbdev->ufb, rect->dx, rect->dy, rect->width,  			  rect->height); @@ -298,7 +298,7 @@ static void udl_fb_copyarea(struct fb_info *info, const struct fb_copyarea *regi  {  	struct udl_fbdev *ufbdev = info->par; -	sys_copyarea(info, region); +	drm_fb_helper_sys_copyarea(info, region);  	udl_handle_damage(&ufbdev->ufb, region->dx, region->dy, region->width,  			  region->height); @@ -308,7 +308,7 @@ static void udl_fb_imageblit(struct fb_info *info, const struct fb_image *image)  {  	struct udl_fbdev *ufbdev = info->par; -	sys_imageblit(info, image); +	drm_fb_helper_sys_imageblit(info, image);  	udl_handle_damage(&ufbdev->ufb, image->dx, image->dy, image->width,  			  image->height); @@ -476,7 +476,6 @@ static int udlfb_create(struct drm_fb_helper *helper,  		container_of(helper, struct udl_fbdev, helper);  	struct drm_device *dev = ufbdev->helper.dev;  	struct fb_info *info; -	struct device *device = dev->dev;  	struct drm_framebuffer *fb;  	struct drm_mode_fb_cmd2 mode_cmd;  	struct udl_gem_object *obj; @@ -506,21 +505,20 @@ static int udlfb_create(struct drm_fb_helper *helper,  		goto out_gfree;  	} -	info = framebuffer_alloc(0, device); -	if (!info) { -		ret = -ENOMEM; +	info = drm_fb_helper_alloc_fbi(helper); +	if (IS_ERR(info)) { +		ret = PTR_ERR(info);  		goto out_gfree;  	}  	info->par = ufbdev;  	ret = udl_framebuffer_init(dev, &ufbdev->ufb, &mode_cmd, obj);  	if (ret) -		goto out_gfree; +		goto out_destroy_fbi;  	fb = &ufbdev->ufb.base;  	ufbdev->helper.fb = fb; -	ufbdev->helper.fbdev = info;  	strcpy(info->fix.id, "udldrmfb"); @@ -533,18 +531,13 @@ static int udlfb_create(struct drm_fb_helper *helper,  	drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);  	drm_fb_helper_fill_var(info, &ufbdev->helper, sizes->fb_width, sizes->fb_height); -	ret = fb_alloc_cmap(&info->cmap, 256, 0); -	if (ret) { -		ret = -ENOMEM; -		goto out_gfree; -	} - -  	DRM_DEBUG_KMS("allocated %dx%d vmal %p\n",  		      fb->width, fb->height,  		      ufbdev->ufb.obj->vmapping);  	return ret; +out_destroy_fbi: +	drm_fb_helper_release_fbi(helper);  out_gfree:  	drm_gem_object_unreference(&ufbdev->ufb.obj->base);  out: @@ -558,14 +551,8 @@ static const struct drm_fb_helper_funcs udl_fb_helper_funcs = {  static void udl_fbdev_destroy(struct drm_device *dev,  			      struct udl_fbdev *ufbdev)  { -	struct fb_info *info; -	if (ufbdev->helper.fbdev) { -		info = ufbdev->helper.fbdev; -		unregister_framebuffer(info); -		if (info->cmap.len) -			fb_dealloc_cmap(&info->cmap); -		framebuffer_release(info); -	} +	drm_fb_helper_unregister_fbi(&ufbdev->helper); +	drm_fb_helper_release_fbi(&ufbdev->helper);  	drm_fb_helper_fini(&ufbdev->helper);  	drm_framebuffer_unregister_private(&ufbdev->ufb.base);  	drm_framebuffer_cleanup(&ufbdev->ufb.base); @@ -631,11 +618,7 @@ void udl_fbdev_unplug(struct drm_device *dev)  		return;  	ufbdev = udl->fbdev; -	if (ufbdev->helper.fbdev) { -		struct fb_info *info; -		info = ufbdev->helper.fbdev; -		unlink_framebuffer(info); -	} +	drm_fb_helper_unlink_fbi(&ufbdev->helper);  }  struct drm_framebuffer *  |