drm/vc4: Remove conflicting framebuffers before callind bind_all
authorMaxime Ripard <maxime@cerno.tech>
Wed, 15 Dec 2021 09:51:16 +0000 (10:51 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Tue, 11 Jan 2022 12:16:11 +0000 (13:16 +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.

Acked-by: Nicolas Saenz Julienne <nsaenz@kernel.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20211215095117.176435-4-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_drv.c

index d3cae84a4c4e519c76d34ee73b4a2d7c5fa7ef14..86c61ee120b7088fb39e19c1d3f3e6c060f576eb 100644 (file)
@@ -251,15 +251,15 @@ static int vc4_drm_bind(struct device *dev)
        if (ret)
                return ret;
 
-       ret = component_bind_all(dev, drm);
+       ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
        if (ret)
                return ret;
 
-       ret = vc4_plane_create_additional_planes(drm);
+       ret = component_bind_all(dev, drm);
        if (ret)
-               goto unbind_all;
+               return ret;
 
-       ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
+       ret = vc4_plane_create_additional_planes(drm);
        if (ret)
                goto unbind_all;