Add hibernation image area
[AGL/meta-agl.git] / meta-agl-bsp / meta-renesas / recipes-kernel / linux / linux / hibernation / 0002-Fix-Black-blink-correction-of-display.patch
1 From 175a91f2068c5cb4a9be5aa1ea5f1e24e2919bbb Mon Sep 17 00:00:00 2001
2 From: Yuichi Kusakabe <yuichi.kusakabe@jp.fujitsu.com>
3 Date: Fri, 9 Jun 2017 20:13:59 +0900
4 Subject: [PATCH 2/3] Fix Black blink correction of display
5
6 Signed-off-by: Yuichi Kusakabe <yuichi.kusakabe@jp.fujitsu.com>
7 ---
8  drivers/gpu/drm/rcar-du/rcar_du_crtc.c  |  1 +
9  drivers/gpu/drm/rcar-du/rcar_du_crtc.h  |  1 +
10  drivers/gpu/drm/rcar-du/rcar_du_drv.c   | 13 ++++---------
11  drivers/gpu/drm/rcar-du/rcar_du_group.c |  4 ++--
12  4 files changed, 8 insertions(+), 11 deletions(-)
13
14 diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
15 index 262d8a8d..ab3bb09 100644
16 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
17 +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.c
18 @@ -1027,4 +1027,5 @@ void rcar_du_crtc_enable_vblank(struct rcar_du_crtc *rcrtc, bool enable)
19         } else {
20                 rcar_du_crtc_clr(rcrtc, DIER, DIER_VBE);
21         }
22 +       rcrtc->vblank_enable = enable;
23  }
24 diff --git a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h
25 index 6cdd02e6..19c0d69 100644
26 --- a/drivers/gpu/drm/rcar-du/rcar_du_crtc.h
27 +++ b/drivers/gpu/drm/rcar-du/rcar_du_crtc.h
28 @@ -49,6 +49,7 @@ struct rcar_du_crtc {
29         int lif_enable;
30         void *vpsd_handle;
31  #endif
32 +       bool vblank_enable;
33  };
34  
35  #define to_rcar_crtc(c)        container_of(c, struct rcar_du_crtc, crtc)
36 diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
37 index fbb212c..f83501d 100644
38 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
39 +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
40 @@ -517,7 +517,7 @@ static int rcar_du_pm_resume(struct device *dev)
41  
42         return 0;
43  }
44 -#ifdef CONFIG_MACH_FTEN
45 +
46  static int rcar_du_pm_freeze(struct device *dev)
47  {
48         int ret;
49 @@ -546,18 +546,13 @@ static int rcar_du_pm_restore(struct device *dev)
50         return ret;
51  }
52  #endif
53 -#endif
54 +
55  static const struct dev_pm_ops rcar_du_pm_ops = {
56 -#if defined(CONFIG_MACH_FTEN) && defined(CONFIG_HIBERNATION) && \
57 -       defined(CONFIG_PM_SLEEP)
58 -       .suspend = rcar_du_pm_suspend,
59 -       .resume = rcar_du_pm_resume,
60 +       SET_SYSTEM_SLEEP_PM_OPS(rcar_du_pm_suspend, rcar_du_pm_resume)
61 +#ifdef CONFIG_HIBERNATION
62         .freeze = rcar_du_pm_freeze,
63         .thaw = rcar_du_pm_thaw,
64 -       .poweroff = rcar_du_pm_suspend,
65         .restore = rcar_du_pm_restore,
66 -#else
67 -       SET_SYSTEM_SLEEP_PM_OPS(rcar_du_pm_suspend, rcar_du_pm_resume)
68  #endif
69  };
70  
71 diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.c b/drivers/gpu/drm/rcar-du/rcar_du_group.c
72 index 3620040..0e571d4 100644
73 --- a/drivers/gpu/drm/rcar-du/rcar_du_group.c
74 +++ b/drivers/gpu/drm/rcar-du/rcar_du_group.c
75 @@ -151,8 +151,8 @@ void rcar_du_group_start_stop(struct rcar_du_group *rgrp, bool start)
76          * when the display controller will have to be restarted.
77          */
78         if (start) {
79 -               if (rgrp->used_crtcs++ != 0)
80 -                       __rcar_du_group_start_stop(rgrp, false);
81 +               rgrp->used_crtcs++;
82 +               __rcar_du_group_start_stop(rgrp, false);
83                 __rcar_du_group_start_stop(rgrp, true);
84         } else {
85                 if (--rgrp->used_crtcs == 0)
86 -- 
87 1.8.3.1
88