Skip to content

Commit fd228eb

Browse files
tombaLaurent Pinchart
authored andcommitted
drm: rcar-du: Stop accessing non-existent registers on gen4
The following registers do not exist on gen4, so we should not write them: DEF6Rm, DEF7Rm, DEF8Rm, ESCRn, OTARn. Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
1 parent 5fbc2f3 commit fd228eb

2 files changed

Lines changed: 19 additions & 13 deletions

File tree

drivers/gpu/drm/rcar-du/rcar_du_crtc.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,10 +298,12 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
298298
escr = params.escr;
299299
}
300300

301-
dev_dbg(rcrtc->dev->dev, "%s: ESCR 0x%08x\n", __func__, escr);
301+
if (rcdu->info->gen < 4) {
302+
dev_dbg(rcrtc->dev->dev, "%s: ESCR 0x%08x\n", __func__, escr);
302303

303-
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? ESCR13 : ESCR02, escr);
304-
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? OTAR13 : OTAR02, 0);
304+
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? ESCR13 : ESCR02, escr);
305+
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? OTAR13 : OTAR02, 0);
306+
}
305307

306308
/* Signal polarities */
307309
dsmr = ((mode->flags & DRM_MODE_FLAG_PVSYNC) ? DSMR_VSL : 0)

drivers/gpu/drm/rcar-du/rcar_du_group.c

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,19 +148,23 @@ static void rcar_du_group_setup(struct rcar_du_group *rgrp)
148148
}
149149
rcar_du_group_write(rgrp, DEFR5, DEFR5_CODE | DEFR5_DEFE5);
150150

151-
rcar_du_group_setup_pins(rgrp);
151+
if (rcdu->info->gen < 4)
152+
rcar_du_group_setup_pins(rgrp);
152153

153-
/*
154-
* TODO: Handle routing of the DU output to CMM dynamically, as we
155-
* should bypass CMM completely when no color management feature is
156-
* used.
157-
*/
158-
defr7 |= (rgrp->cmms_mask & BIT(1) ? DEFR7_CMME1 : 0) |
159-
(rgrp->cmms_mask & BIT(0) ? DEFR7_CMME0 : 0);
160-
rcar_du_group_write(rgrp, DEFR7, defr7);
154+
if (rcdu->info->gen < 4) {
155+
/*
156+
* TODO: Handle routing of the DU output to CMM dynamically, as
157+
* we should bypass CMM completely when no color management
158+
* feature is used.
159+
*/
160+
defr7 |= (rgrp->cmms_mask & BIT(1) ? DEFR7_CMME1 : 0) |
161+
(rgrp->cmms_mask & BIT(0) ? DEFR7_CMME0 : 0);
162+
rcar_du_group_write(rgrp, DEFR7, defr7);
163+
}
161164

162165
if (rcdu->info->gen >= 2) {
163-
rcar_du_group_setup_defr8(rgrp);
166+
if (rcdu->info->gen < 4)
167+
rcar_du_group_setup_defr8(rgrp);
164168
rcar_du_group_setup_didsr(rgrp);
165169
}
166170

0 commit comments

Comments
 (0)