drm/vc4: Call drm_dev_register() after all setup is done
authorNoralf Trønnes <noralf@tronnes.org>
Tue, 26 Mar 2019 17:55:46 +0000 (18:55 +0100)
committerNoralf Trønnes <noralf@tronnes.org>
Wed, 3 Apr 2019 09:09:45 +0000 (11:09 +0200)
drm_dev_register() initializes internal clients like bootsplash as the
last thing it does, so all setup needs to be done at this point.

Fix by calling vc4_kms_load() before registering.
Also check the error code returned from that function.

Cc: Eric Anholt <eric@anholt.net>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20190326175546.18126-17-noralf@tronnes.org
drivers/gpu/drm/vc4/vc4_drv.c

index f2d0fb3..8d56eb2 100644 (file)
@@ -277,11 +277,13 @@ static int vc4_drm_bind(struct device *dev)
 
        drm_fb_helper_remove_conflicting_framebuffers(NULL, "vc4drmfb", false);
 
-       ret = drm_dev_register(drm, 0);
+       ret = vc4_kms_load(drm);
        if (ret < 0)
                goto unbind_all;
 
-       vc4_kms_load(drm);
+       ret = drm_dev_register(drm, 0);
+       if (ret < 0)
+               goto unbind_all;
 
        drm_fbdev_generic_setup(drm, 16);