aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index c5c21776131a..7b93880a4577 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -155,11 +155,13 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
155 if (dispc_mgr_is_enabled(channel) == enable) 155 if (dispc_mgr_is_enabled(channel) == enable)
156 return; 156 return;
157 157
158 /* 158 if (omap_crtc->channel == OMAP_DSS_CHANNEL_DIGIT) {
159 * Digit output produces some sync lost interrupts during the first 159 /*
160 * frame when enabling, so we need to ignore those. 160 * Digit output produces some sync lost interrupts during the
161 */ 161 * first frame when enabling, so we need to ignore those.
162 omap_crtc->ignore_digit_sync_lost = true; 162 */
163 omap_crtc->ignore_digit_sync_lost = true;
164 }
163 165
164 framedone_irq = dispc_mgr_get_framedone_irq(channel); 166 framedone_irq = dispc_mgr_get_framedone_irq(channel);
165 vsync_irq = dispc_mgr_get_vsync_irq(channel); 167 vsync_irq = dispc_mgr_get_vsync_irq(channel);
@@ -190,9 +192,11 @@ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
190 omap_crtc->name, enable ? "enable" : "disable"); 192 omap_crtc->name, enable ? "enable" : "disable");
191 } 193 }
192 194
193 omap_crtc->ignore_digit_sync_lost = false; 195 if (omap_crtc->channel == OMAP_DSS_CHANNEL_DIGIT) {
194 /* make sure the irq handler sees the value above */ 196 omap_crtc->ignore_digit_sync_lost = false;
195 mb(); 197 /* make sure the irq handler sees the value above */
198 mb();
199 }
196} 200}
197 201
198 202