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 >> >> 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 renesas-drivers-2018-10-09-v4.19-rc7 Thank you! Hoan. >> Signed-off-by: Hoan Nguyen An >> --- >> 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)