Dear Laurent-san

On 2018/10/22 20:23, Laurent Pinchart wrote:
Hello Hoan,

Thank you for the patch.

On Monday, 22 October 2018 09:30:54 EEST Nguyen An Hoan wrote:
From: Hoan Nguyen An <na-hoan@jinso.co.jp>

>From previous commit 0521ccb "drm: rcar-du: Cache DSYSR value to ensure
known initial value"
What exact commit are you referring to ? The mainline commit that has this 
subject is 9144adc5e5a99577bce0d4ee2ca3615f53b9d296.

We only need to update DSYSR0, DSYSR2 for start/stop.
So using rgrp-> mmio_offset is enough, the change back from rcar_du_crtc ->
rcar_du_group -> rcar_du_crtc leading to mmio addresses for DSYSR may be
different.
Is this fixing an actual problem ? If you look at the code, the line

	struct rcar_du_crtc *rcrtc = &rgrp->dev->crtcs[rgrp->index * 2];

makes sure that we select DU0 or DU2 only, so the register write

	rcar_du_crtc_dsysr_clr_set(rcrtc, DSYSR_DRES | DSYSR_DEN,
				   start ? DSYSR_DEN : DSYSR_DRES);

should only access DSYSR0 and DSYSR2.

Dear Laurent-san

I add information about the current error occurring at M3N-r8a77965

when probe rcar-du driver:

[   13.027115] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:55:crtc-2] flip_done timed out
[   23.267103] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:55:crtc-2] flip_done timed out
[   33.507102] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:57:VGA-1] flip_done timed out
[   43.747100] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:30:plane-1] flip_done timed out
[   53.987100] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:55:crtc-2] flip_done timed out
[   53.989913] Console: switching to colour frame buffer device 128x48
[   64.227102] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CRTC:55:crtc-2] flip_done timed out
[   74.467099] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [CONNECTOR:57:VGA-1] flip_done timed out
[   84.707100] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR* [PLANE:30:plane-1] flip_done timed out
[   94.947100] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR* [CRTC:55:crtc-2] flip_done timed out
[   95.040076] rcar-du feb00000.display: fb0: DRM emulated frame buffer device
[   95.047747] [drm] Initialized rcar-du 1.0.0 20130110 for feb00000.display on minor 0
[   95.055512] [drm] Device feb00000.display probed
[   95.061252] bd9571mwv 7-0030: Device: BD9571MWV rev. 4

on renesas-drivers/renesas-drivers-2018-10-09-v4.19-rc7

Thank you!

Hoan.



      
Signed-off-by: Hoan Nguyen An <na-hoan@jinso.co.jp>
---
 drivers/gpu/drm/rcar-du/rcar_du_group.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.c
b/drivers/gpu/drm/rcar-du/rcar_du_group.c index d85f0a1..a5f7eed 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_group.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_group.c
@@ -202,10 +202,9 @@ void rcar_du_group_put(struct rcar_du_group *rgrp)

 static void __rcar_du_group_start_stop(struct rcar_du_group *rgrp, bool
start) {
-	struct rcar_du_crtc *rcrtc = &rgrp->dev->crtcs[rgrp->index * 2];
-
-	rcar_du_crtc_dsysr_clr_set(rcrtc, DSYSR_DRES | DSYSR_DEN,
-				   start ? DSYSR_DEN : DSYSR_DRES);
+	rcar_du_group_write(rgrp, DSYSR,
+			(rcar_du_group_read(rgrp, DSYSR) & ~(DSYSR_DRES | DSYSR_DEN)) |
+			(start ? DSYSR_DEN : DSYSR_DRES));
 }

 void rcar_du_group_start_stop(struct rcar_du_group *rgrp, bool start)