From 29d516af153cbccf4eea133f00fa49b6fc6d9d1e Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Thu, 20 Jun 2019 13:54:56 +0200
Subject: [PATCH] WIP: AFBC

---
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c  | 2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index da76a88412c2f..b4f5b0528890e 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -40,7 +40,7 @@ rockchip_verify_afbc_mod(struct drm_device *dev,
 	if (mode_cmd->modifier[0] &
 	    ~DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_ROCKCHIP)) {
 		DRM_DEV_ERROR(dev->dev,
-			      "Unsupported format modifier 0%x\n",
+			      "Unsupported format modifier 0x%llx\n",
 			      mode_cmd->modifier[0]);
 		return -EINVAL;
 	}
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 447dfa8fd966a..0619eaa7d3770 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -622,7 +622,6 @@ static int vop_enable(struct drm_crtc *crtc)
 
 		vop_win_disable(vop, win);
 	}
-	spin_unlock(&vop->reg_lock);
 
 	if (vop->data->afbc) {
 		VOP_AFBC_SET(vop, enable, 0);
@@ -631,6 +630,8 @@ static int vop_enable(struct drm_crtc *crtc)
 
 	vop_cfg_done(vop);
 
+	spin_unlock(&vop->reg_lock);
+
 	/*
 	 * At here, vop clock & iommu is enable, R/W vop regs would be safe.
 	 */
@@ -798,13 +799,13 @@ static void vop_plane_atomic_disable(struct drm_plane *plane,
 	if (!old_state->crtc)
 		return;
 
+	if (vop->afbc_win == vop_win)
+		vop->afbc_win = NULL;
+
 	spin_lock(&vop->reg_lock);
 
 	vop_win_disable(vop, win);
 
-	if (vop->afbc_win == vop_win)
-		vop->afbc_win = NULL;
-
 	spin_unlock(&vop->reg_lock);
 }
 
-- 
GitLab