drm/vc4: Remove conflicting framebuffers before callind bind_all
authorMaxime Ripard <maxime@cerno.tech>
Fri, 25 Jun 2021 15:01:33 +0000 (17:01 +0200)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Fri, 2 Jul 2021 12:03:14 +0000 (13:03 +0100)
The bind hooks will modify their controller registers, so simplefb is
going to be unusable anyway. Let's avoid any transient state where it
could still be in the system but no longer functionnal.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/gpu/drm/vc4/vc4_drv.c

index 3683780..9b9d088 100644 (file)
@@ -305,6 +305,8 @@ static int vc4_drm_bind(struct device *dev)
        if (ret)
                return ret;
 
+       drm_fb_helper_remove_conflicting_framebuffers(NULL, "vc4drmfb", false);
+
        ret = component_bind_all(dev, drm);
        if (ret)
                return ret;
@@ -315,8 +317,6 @@ static int vc4_drm_bind(struct device *dev)
                        goto unbind_all;
        }
 
-       drm_fb_helper_remove_conflicting_framebuffers(NULL, "vc4drmfb", false);
-
        ret = vc4_kms_load(drm);
        if (ret < 0)
                goto unbind_all;