Merge tag 'memblock-v5.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt...
[linux-2.6-microblaze.git] / drivers / gpu / drm / mediatek / mtk_drm_crtc.c
index 8cc0a12..ede435d 100644 (file)
@@ -12,7 +12,6 @@
 #include <linux/soc/mediatek/mtk-mutex.h>
 
 #include <asm/barrier.h>
-#include <soc/mediatek/smi.h>
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
@@ -663,15 +662,15 @@ static void mtk_drm_crtc_atomic_enable(struct drm_crtc *crtc,
 
        DRM_DEBUG_DRIVER("%s %d\n", __func__, crtc->base.id);
 
-       ret = mtk_smi_larb_get(comp->larb_dev);
-       if (ret) {
-               DRM_ERROR("Failed to get larb: %d\n", ret);
+       ret = pm_runtime_resume_and_get(comp->dev);
+       if (ret < 0) {
+               DRM_DEV_ERROR(comp->dev, "Failed to enable power domain: %d\n", ret);
                return;
        }
 
        ret = mtk_crtc_ddp_hw_init(mtk_crtc);
        if (ret) {
-               mtk_smi_larb_put(comp->larb_dev);
+               pm_runtime_put(comp->dev);
                return;
        }
 
@@ -684,7 +683,7 @@ static void mtk_drm_crtc_atomic_disable(struct drm_crtc *crtc,
 {
        struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc);
        struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0];
-       int i;
+       int i, ret;
 
        DRM_DEBUG_DRIVER("%s %d\n", __func__, crtc->base.id);
        if (!mtk_crtc->enabled)
@@ -714,7 +713,9 @@ static void mtk_drm_crtc_atomic_disable(struct drm_crtc *crtc,
 
        drm_crtc_vblank_off(crtc);
        mtk_crtc_ddp_hw_fini(mtk_crtc);
-       mtk_smi_larb_put(comp->larb_dev);
+       ret = pm_runtime_put(comp->dev);
+       if (ret < 0)
+               DRM_DEV_ERROR(comp->dev, "Failed to disable power domain: %d\n", ret);
 
        mtk_crtc->enabled = false;
 }