drm/armada: replace the simple-framebuffer
authorLubomir Rintel <lkundrak@v3.sk>
Mon, 21 Jan 2019 06:01:57 +0000 (07:01 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Fri, 28 Jun 2019 13:50:07 +0000 (14:50 +0100)
If there's a simple-framebuffer carried over from boot firmware, it's going
to stop working once we setup the LCDC for use via DRM. Kick it off from
the hardware.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
drivers/gpu/drm/armada/armada_drv.c

index e524bfff1c49ebd557f6f9fa889de3915c848807..05fab5cb5c2d308d5f74cdead488ff3cdab6bbda 100644 (file)
@@ -100,6 +100,17 @@ static int armada_drm_bind(struct device *dev)
                return ret;
        }
 
+       /* Remove early framebuffers */
+       ret = drm_fb_helper_remove_conflicting_framebuffers(NULL,
+                                                           "armada-drm-fb",
+                                                           false);
+       if (ret) {
+               dev_err(dev, "[" DRM_NAME ":%s] can't kick out simple-fb: %d\n",
+                       __func__, ret);
+               kfree(priv);
+               return ret;
+       }
+
        priv->drm.dev_private = priv;
 
        dev_set_drvdata(dev, &priv->drm);