From d1d233e2658db139d389e55f52f5252fbae9cf13 Mon Sep 17 00:00:00 2001
From: Emil Karlson <jekarlson@gmail.com>
Date: Fri, 2 Aug 2019 13:56:28 +0300
Subject: [PATCH] throttle damage flushes for rockchip drm

---
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index 9b13c784b347..7743f75ce9a6 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -18,10 +18,26 @@
 #include "rockchip_drm_fb.h"
 #include "rockchip_drm_gem.h"
 
+u64 ke_old_jiffies;
+static int rockchip_drm_fb_dirty(struct drm_framebuffer *fb,
+				 struct drm_file *file,
+				 unsigned int flags, unsigned int color,
+				 struct drm_clip_rect *clips,
+				 unsigned int num_clips)
+{
+	u64 newjiffies = jiffies >> 5;
+
+	if (ke_old_jiffies != newjiffies) {
+		ke_old_jiffies = newjiffies;
+		return drm_atomic_helper_dirtyfb(fb, file, flags, color, clips, num_clips);
+	}
+	return 0;
+}
+
 static const struct drm_framebuffer_funcs rockchip_drm_fb_funcs = {
 	.destroy       = drm_gem_fb_destroy,
 	.create_handle = drm_gem_fb_create_handle,
-	.dirty	       = drm_atomic_helper_dirtyfb,
+	.dirty	       = rockchip_drm_fb_dirty,
 };
 
 static struct drm_framebuffer *
-- 
2.28.0

