@@ -620,7 +620,7 @@ static int rcar_du_crtc_enable_vblank(struct drm_crtc *crtc)
struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
rcar_du_crtc_write(rcrtc, DSRCR, DSRCR_VBCL);
- rcar_du_crtc_set(rcrtc, DIER, DIER_VBE);
+ rcar_du_crtc_set(rcrtc, DIER, DIER_FRE);
return 0;
}
@@ -629,7 +629,7 @@ static void rcar_du_crtc_disable_vblank(struct drm_crtc *crtc)
{
struct rcar_du_crtc *rcrtc = to_rcar_crtc(crtc);
- rcar_du_crtc_clr(rcrtc, DIER, DIER_VBE);
+ rcar_du_crtc_clr(rcrtc, DIER, DIER_FRE);
}
static const struct drm_crtc_funcs crtc_funcs = {
The rcar_du_crtc_{enable,disable}_vblank functions are configured to control the VBE interrupt event. The implementation of interlaced support in the rcar-du changes the required behavior such that vblanks are handled on frame end events, but does not update the enable register to reflect this. Enable the FRM interrupt in the DIER register using the FRE bit. Fixes: 906eff7fcada ("drm: rcar-du: Implement support for interlaced modes") Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> --- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)