linux_dsm_epyc7002/drivers/gpu/drm/rcar-du
Laurent Pinchart 9144adc5e5 drm: rcar-du: Cache DSYSR value to ensure known initial value
DSYSR is a DU channel register that also contains group fields. It is
thus written to by both the group and CRTC code, using read-update-write
sequences. As the register isn't initialized explicitly at startup time,
this can lead to invalid or otherwise unexpected values being written to
some of the fields if they have been modified by the firmware or just
not reset properly.

To fix this we can write a fully known value to the DSYSR register when
turning a channel's functional clock on. However, the mix of group and
channel fields complicate this. A simpler solution is to cache the
register and initialize the cached value to the desired hardware
defaults.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
2018-09-25 00:41:04 +03:00
..
Kconfig drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
Makefile drm: rcar-du: disable dtc graph-endpoint warnings on DT overlays 2018-05-15 08:23:46 -05:00
rcar_du_crtc.c drm: rcar-du: Cache DSYSR value to ensure known initial value 2018-09-25 00:41:04 +03:00
rcar_du_crtc.h drm: rcar-du: Cache DSYSR value to ensure known initial value 2018-09-25 00:41:04 +03:00
rcar_du_drv.c drm: rcar-du: Rename and document dpll_ch field 2018-09-15 17:28:31 +03:00
rcar_du_drv.h drm: rcar-du: Use LVDS PLL clock as dot clock when possible 2018-09-25 00:41:03 +03:00
rcar_du_encoder.c drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_du_encoder.h drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_du_group.c drm: rcar-du: Cache DSYSR value to ensure known initial value 2018-09-25 00:41:04 +03:00
rcar_du_group.h drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_du_kms.c drm: rcar-du: Enable configurable DPAD0 routing on Gen3 2018-09-25 00:41:03 +03:00
rcar_du_kms.h drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_du_of_lvds_r8a7790.dts drm: rcar-du: Fix legacy DT to create LVDS encoder nodes 2018-03-07 18:06:41 +02:00
rcar_du_of_lvds_r8a7791.dts drm: rcar-du: Fix legacy DT to create LVDS encoder nodes 2018-03-07 18:06:41 +02:00
rcar_du_of_lvds_r8a7793.dts drm: rcar-du: Fix legacy DT to create LVDS encoder nodes 2018-03-07 18:06:41 +02:00
rcar_du_of_lvds_r8a7795.dts drm: rcar-du: Fix legacy DT to create LVDS encoder nodes 2018-03-07 18:06:41 +02:00
rcar_du_of_lvds_r8a7796.dts drm: rcar-du: Fix legacy DT to create LVDS encoder nodes 2018-03-07 18:06:41 +02:00
rcar_du_of.c drm: rcar-du: of: Include header to define prototypes 2018-05-05 17:11:15 +03:00
rcar_du_of.h drm: rcar-du: Fix rcar_du_of_init() stub 2018-05-17 15:03:32 +10:00
rcar_du_plane.c drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_du_plane.h drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_du_regs.h drm: rcar-du: Write ESCR and OTAR as CRTC registers 2018-09-15 17:28:31 +03:00
rcar_du_vsp.c drm: rcar-du: Remove packed VYUY support 2018-09-15 17:28:34 +03:00
rcar_du_vsp.h drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_dw_hdmi.c drm: rcar-du: Convert to SPDX identifiers 2018-09-14 13:54:03 +03:00
rcar_lvds_regs.h drm: rcar-du: lvds: D3/E3 support 2018-09-25 00:40:56 +03:00
rcar_lvds.c drm: rcar-du: lvds: D3/E3 support 2018-09-25 00:40:56 +03:00