OSDN Git Service

drm/virtio: Call drm_helper_mode_fill_fb_struct() before drm_framebuffer_init()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 18 Nov 2016 19:52:52 +0000 (21:52 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 15 Dec 2016 12:55:28 +0000 (14:55 +0200)
We want framebuffers to be mostly useable already before
drm_framebuffer_init() get called, and so we will start demanding that
all the interesting format/size/etc. information be filled in before
drm_framebuffer_init(). drm_helper_mode_fill_fb_struct() will do that
for us, so let's make sure it gets called before drm_framebuffer_init().

Cc: Dave Airlie <airlied@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1479498793-31021-17-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/virtio/virtgpu_display.c

index 8b80fdd..fad5a1c 100644 (file)
@@ -88,12 +88,13 @@ virtio_gpu_framebuffer_init(struct drm_device *dev,
 
        bo = gem_to_virtio_gpu_obj(obj);
 
+       drm_helper_mode_fill_fb_struct(dev, &vgfb->base, mode_cmd);
+
        ret = drm_framebuffer_init(dev, &vgfb->base, &virtio_gpu_fb_funcs);
        if (ret) {
                vgfb->obj = NULL;
                return ret;
        }
-       drm_helper_mode_fill_fb_struct(dev, &vgfb->base, mode_cmd);
 
        spin_lock_init(&vgfb->dirty_lock);
        vgfb->x1 = vgfb->y1 = INT_MAX;