summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/meta-renesas/recipes-kernel/linux/linux/hibernation/0002-Fix-Black-blink-correction-of-display.patch
blob: 2ef1129ce643550ad2c3c7d2be7a888ec725da73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
From 175a91f2068c5cb4a9be5aa1ea5f1e24e2919bbb Mon Sep 17 00:00:00 2001
From: Yuichi Kusakabe <yuichi.kusakabe@jp.fujitsu.com>
Date: Fri, 9 Jun 2017 20:13:59 +0900
Subject: [PATCH 2/3] Fix Black blink correction of display

Signed-off-by: Yuichi Kusakabe <yuichi.kusakabe@jp.fujitsu.com>
---
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c  |  1 +
 drivers/gpu/drm/rcar-du/rcar_du_crtc.h  |  1 +
 drivers/gpu/drm/rcar-du/rcar_du_drv.c   | 13 ++++---------
 drivers/gpu/drm/rcar-du/rcar_du_group.c |  4 ++--
 4 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
index 262d8a8d..ab3bb09 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
@@ -1027,4 +1027,5 @@ void rcar_du_crtc_enable_vblank(struct rcar_du_crtc *rcrtc, bool enable)
 	} else {
 		rcar_du_crtc_clr(rcrtc, DIER, DIER_VBE);
 	}
+	rcrtc->vblank_enable = enable;
 }
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h
index 6cdd02e6..19c0d69 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h
@@ -49,6 +49,7 @@ struct rcar_du_crtc {
 	int lif_enable;
 	void *vpsd_handle;
 #endif
+	bool vblank_enable;
 };
 
 #define to_rcar_crtc(c)	container_of(c, struct rcar_du_crtc, crtc)
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index fbb212c..f83501d 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -517,7 +517,7 @@ static int rcar_du_pm_resume(struct device *dev)
 
 	return 0;
 }
-#ifdef CONFIG_MACH_FTEN
+
 static int rcar_du_pm_freeze(struct device *dev)
 {
 	int ret;
@@ -546,18 +546,13 @@ static int rcar_du_pm_restore(struct device *dev)
 	return ret;
 }
 #endif
-#endif
+
 static const struct dev_pm_ops rcar_du_pm_ops = {
-#if defined(CONFIG_MACH_FTEN) && defined(CONFIG_HIBERNATION) && \
-	defined(CONFIG_PM_SLEEP)
-	.suspend = rcar_du_pm_suspend,
-	.resume = rcar_du_pm_resume,
+	SET_SYSTEM_SLEEP_PM_OPS(rcar_du_pm_suspend, rcar_du_pm_resume)
+#ifdef CONFIG_HIBERNATION
 	.freeze = rcar_du_pm_freeze,
 	.thaw = rcar_du_pm_thaw,
-	.poweroff = rcar_du_pm_suspend,
 	.restore = rcar_du_pm_restore,
-#else
-	SET_SYSTEM_SLEEP_PM_OPS(rcar_du_pm_suspend, rcar_du_pm_resume)
 #endif
 };
 
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.c b/drivers/gpu/drm/rcar-du/rcar_du_group.c
index 3620040..0e571d4 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_group.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_group.c
@@ -151,8 +151,8 @@ void rcar_du_group_start_stop(struct rcar_du_group *rgrp, bool start)
 	 * when the display controller will have to be restarted.
 	 */
 	if (start) {
-		if (rgrp->used_crtcs++ != 0)
-			__rcar_du_group_start_stop(rgrp, false);
+		rgrp->used_crtcs++;
+		__rcar_du_group_start_stop(rgrp, false);
 		__rcar_du_group_start_stop(rgrp, true);
 	} else {
 		if (--rgrp->used_crtcs == 0)
-- 
1.8.3.1