mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 00:39:48 +00:00
drm: rcar-du: Don't write unimplemented ESCR and OTAR registers on Gen3
The ESCR and OTAR registers are not present in all DU channels on Gen3 SoCs. ESCR only exists in channels that can be routed to an LVDS or DPAD, and OTAR in channels that can be routed to a DPAD. Skip writing those registers for other channels. This replaces the DU gen check, as Gen4 doesn't have LVDS or DPAD outputs. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
This commit is contained in:
parent
ec1c6ff81e
commit
fb97147ad2
1 changed files with 15 additions and 2 deletions
|
@ -298,13 +298,26 @@ static void rcar_du_crtc_set_display_timing(struct rcar_du_crtc *rcrtc)
|
|||
escr = params.escr;
|
||||
}
|
||||
|
||||
if (rcdu->info->gen < 4) {
|
||||
/*
|
||||
* The ESCR register only exists in DU channels that can output to an
|
||||
* LVDS or DPAT, and the OTAR register in DU channels that can output
|
||||
* to a DPAD.
|
||||
*/
|
||||
if ((rcdu->info->routes[RCAR_DU_OUTPUT_DPAD0].possible_crtcs |
|
||||
rcdu->info->routes[RCAR_DU_OUTPUT_DPAD1].possible_crtcs |
|
||||
rcdu->info->routes[RCAR_DU_OUTPUT_LVDS0].possible_crtcs |
|
||||
rcdu->info->routes[RCAR_DU_OUTPUT_LVDS1].possible_crtcs) &
|
||||
BIT(rcrtc->index)) {
|
||||
dev_dbg(rcrtc->dev->dev, "%s: ESCR 0x%08x\n", __func__, escr);
|
||||
|
||||
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? ESCR13 : ESCR02, escr);
|
||||
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? OTAR13 : OTAR02, 0);
|
||||
}
|
||||
|
||||
if ((rcdu->info->routes[RCAR_DU_OUTPUT_DPAD0].possible_crtcs |
|
||||
rcdu->info->routes[RCAR_DU_OUTPUT_DPAD1].possible_crtcs) &
|
||||
BIT(rcrtc->index))
|
||||
rcar_du_crtc_write(rcrtc, rcrtc->index % 2 ? OTAR13 : OTAR02, 0);
|
||||
|
||||
/* Signal polarities */
|
||||
dsmr = ((mode->flags & DRM_MODE_FLAG_PVSYNC) ? DSMR_VSL : 0)
|
||||
| ((mode->flags & DRM_MODE_FLAG_PHSYNC) ? DSMR_HSL : 0)
|
||||
|
|
Loading…
Reference in a new issue