diff options
Diffstat (limited to 'drivers/gpu/drm/drm_fbdev_generic.c')
| -rw-r--r-- | drivers/gpu/drm/drm_fbdev_generic.c | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/drivers/gpu/drm/drm_fbdev_generic.c b/drivers/gpu/drm/drm_fbdev_generic.c index ab8695669279..593aa3283792 100644 --- a/drivers/gpu/drm/drm_fbdev_generic.c +++ b/drivers/gpu/drm/drm_fbdev_generic.c @@ -171,11 +171,6 @@ static const struct fb_ops drm_fbdev_fb_ops = {  	.fb_imageblit	= drm_fbdev_fb_imageblit,  }; -static struct fb_deferred_io drm_fbdev_defio = { -	.delay		= HZ / 20, -	.deferred_io	= drm_fb_helper_deferred_io, -}; -  /*   * This function uses the client API to create a framebuffer backed by a dumb buffer.   */ @@ -222,8 +217,14 @@ static int drm_fbdev_fb_probe(struct drm_fb_helper *fb_helper,  			return -ENOMEM;  		fbi->flags |= FBINFO_VIRTFB | FBINFO_READS_FAST; -		fbi->fbdefio = &drm_fbdev_defio; -		fb_deferred_io_init(fbi); +		/* Set a default deferred I/O handler */ +		fb_helper->fbdefio.delay = HZ / 20; +		fb_helper->fbdefio.deferred_io = drm_fb_helper_deferred_io; + +		fbi->fbdefio = &fb_helper->fbdefio; +		ret = fb_deferred_io_init(fbi); +		if (ret) +			return ret;  	} else {  		/* buffer is mapped for HW framebuffer */  		ret = drm_client_buffer_vmap(fb_helper->buffer, &map); |