drm/mediatek: fix kernel oops if no crtc is found
[platform/kernel/linux-starfive.git] / drivers / gpu / drm / mediatek / mtk_drm_drv.c
index 2d6a979..cdd506c 100644 (file)
@@ -421,6 +421,7 @@ static int mtk_drm_kms_init(struct drm_device *drm)
        struct mtk_drm_private *private = drm->dev_private;
        struct mtk_drm_private *priv_n;
        struct device *dma_dev = NULL;
+       struct drm_crtc *crtc;
        int ret, i, j;
 
        if (drm_firmware_drivers_only())
@@ -495,7 +496,9 @@ static int mtk_drm_kms_init(struct drm_device *drm)
        }
 
        /* Use OVL device for all DMA memory allocations */
-       dma_dev = mtk_drm_crtc_dma_dev_get(drm_crtc_from_index(drm, 0));
+       crtc = drm_crtc_from_index(drm, 0);
+       if (crtc)
+               dma_dev = mtk_drm_crtc_dma_dev_get(crtc);
        if (!dma_dev) {
                ret = -ENODEV;
                dev_err(drm->dev, "Need at least one OVL device\n");