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 <e...@anholt.net>
Signed-off-by: Noralf Trønnes <nor...@tronnes.org>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 4daf44fd4548..ba87b2dfa767 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -280,11 +280,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);
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to