Merge tag 'drm-fixes-2023-01-27' of git://anongit.freedesktop.org/drm/drm
[sfrench/cifs-2.6.git] / drivers / gpu / drm / drm_fbdev_generic.c
index ab869566927958108c0b220655c6cb45e2877bf6..593aa3283792b607066476c99c8c6c476ab3a22b 100644 (file)
@@ -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);