From: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx> Signed-off-by: Koji Matsuoka <koji.matsuoka.xm@xxxxxxxxxxx> --- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 3 ++- drivers/gpu/drm/rcar-du/rcar_du_group.c | 5 +++++ drivers/gpu/drm/rcar-du/rcar_du_plane.c | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index d968fa9..77e005b 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -141,7 +141,8 @@ static const struct rcar_du_device_info rcar_du_r8a7795_info = { .gen = 3, .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK | RCAR_DU_FEATURE_EXT_CTRL_REGS - | RCAR_DU_FEATURE_VSP1_SOURCE, + | RCAR_DU_FEATURE_VSP1_SOURCE + | RCAR_DU_FEATURE_GEN3_REGS, .num_crtcs = 4, .routes = { /* R8A7795 has one RGB output, two HDMI outputs and one diff --git a/drivers/gpu/drm/rcar-du/rcar_du_group.c b/drivers/gpu/drm/rcar-du/rcar_du_group.c index 33b2fc5..55dd3bd 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_group.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_group.c @@ -101,6 +101,11 @@ static void rcar_du_group_setup(struct rcar_du_group *rgrp) rcar_du_group_write(rgrp, DEFR5, DEFR5_CODE | DEFR5_DEFE5); rcar_du_group_setup_pins(rgrp); + if (rcdu->info->gen == 3) { + rcar_du_group_write(rgrp, DEFR6, DEFR6_CODE | + DEFR6_ODPM22_DISP); + rcar_du_group_write(rgrp, DEFR10, DEFR10_CODE | DEFR10_DEFE10); + } if (rcar_du_has(rgrp->dev, RCAR_DU_FEATURE_EXT_CTRL_REGS)) { rcar_du_group_setup_defr8(rgrp); diff --git a/drivers/gpu/drm/rcar-du/rcar_du_plane.c b/drivers/gpu/drm/rcar-du/rcar_du_plane.c index a74f8ed..e408aa3 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_plane.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_plane.c @@ -454,6 +454,7 @@ static void rcar_du_plane_setup_format_gen2(struct rcar_du_group *rgrp, unsigned int index, const struct rcar_du_plane_state *state) { + struct rcar_du_device *rcdu = rgrp->dev; u32 ddcr2 = PnDDCR2_CODE; u32 ddcr4; @@ -480,7 +481,8 @@ static void rcar_du_plane_setup_format_gen2(struct rcar_du_group *rgrp, } } - rcar_du_plane_write(rgrp, index, PnDDCR2, ddcr2); + if (!rcar_du_has(rcdu, RCAR_DU_FEATURE_GEN3_REGS)) + rcar_du_plane_write(rgrp, index, PnDDCR2, ddcr2); ddcr4 = state->format->edf | PnDDCR4_CODE; if (state->source != RCAR_DU_PLANE_MEMORY) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel