Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef422283 authored by Tomi Valkeinen's avatar Tomi Valkeinen
Browse files

drm/omap: only ignore DIGIT SYNC LOST for TV output



We need to ignore DIGIT SYNC LOST error when enabling/disabling TV
output. The code does that, but it ignores the DIGI SYNC LOST when
enabling any output. Normally this does no harm, but it could make us
miss DIGIT SYNC LOST on some rare occasions.

Fix the code to only ignore DIGIT SYNC LOST when enabling/disabling TV.

Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent a36af73f
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -155,11 +155,13 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
	if (dispc_mgr_is_enabled(channel) == enable)
		return;

	if (omap_crtc->channel == OMAP_DSS_CHANNEL_DIGIT) {
		/*
	 * Digit output produces some sync lost interrupts during the first
	 * frame when enabling, so we need to ignore those.
		 * Digit output produces some sync lost interrupts during the
		 * first frame when enabling, so we need to ignore those.
		 */
		omap_crtc->ignore_digit_sync_lost = true;
	}

	framedone_irq = dispc_mgr_get_framedone_irq(channel);
	vsync_irq = dispc_mgr_get_vsync_irq(channel);
@@ -190,10 +192,12 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
				omap_crtc->name, enable ? "enable" : "disable");
	}

	if (omap_crtc->channel == OMAP_DSS_CHANNEL_DIGIT) {
		omap_crtc->ignore_digit_sync_lost = false;
		/* make sure the irq handler sees the value above */
		mb();
	}
}


static int omap_crtc_enable(struct omap_overlay_manager *mgr)