Commit c082a521 authored by Janne Grunau's avatar Janne Grunau Committed by Alyssa Rosenzweig
Browse files

drm: adp: Enable vblank interrupts in crtc's .atomic_enable



Calling drm_crtc_vblank_on() drm_crtc_helper_funcs' atomic_enable is
expected to enable vblank interrupts. It may have been avoided here to
due to drm_crtc_vblank_get()'s error behavior after
drm_crtc_vblank_reset(). With that fixed in the preceding change the
driver can call drm_crtc_vblank_on() from adp_crtc_atomic_enable().

Reviewed-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
Signed-off-by: default avatarJanne Grunau <j@jannau.net>
Link: https://lore.kernel.org/r/20250428-drm_adp_fixes-v2-3-912e081e55d8@jannau.net


Signed-off-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
parent 7a7d6681
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -288,6 +288,7 @@ static void adp_crtc_atomic_enable(struct drm_crtc *crtc,
	writel(BIT(0), adp->be + ADBE_BLEND_EN3);
	writel(BIT(0), adp->be + ADBE_BLEND_BYPASS);
	writel(BIT(0), adp->be + ADBE_BLEND_EN4);
	drm_crtc_vblank_on(crtc);
}

static void adp_crtc_atomic_disable(struct drm_crtc *crtc,
@@ -519,8 +520,7 @@ static int adp_drm_bind(struct device *dev)
	struct adp_drv_private *adp = to_adp(drm);
	int err;

	adp_disable_vblank(adp);
	writel(ADP_CTRL_FIFO_ON | ADP_CTRL_VBLANK_ON, adp->fe + ADP_CTRL);
	writel(ADP_CTRL_FIFO_ON, adp->fe + ADP_CTRL);

	adp->next_bridge = drmm_of_get_bridge(&adp->drm, dev->of_node, 0, 0);
	if (IS_ERR(adp->next_bridge)) {