summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2014-04-22 12:27:28 -0400
committerRob Clark <robdclark@gmail.com>2014-04-25 08:58:23 -0400
commit7d8d9f670513593377cd1442f987ce03a64ba55d (patch)
tree1961f2cd4a040a0525fb806196ddce33360a0ab9 /drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
parent96673ecbd7f638c0865045377a44f53cd8606850 (diff)
downloadblackbird-obmc-linux-7d8d9f670513593377cd1442f987ce03a64ba55d.tar.gz
blackbird-obmc-linux-7d8d9f670513593377cd1442f987ce03a64ba55d.zip
drm/msm/mdp4: cure for the cursor blues (v2)
The hw cursor is relatively adept at triggering underflows, which manifest as a "blue flash" (since blue is configured as the underflow color). Juggle a few things around to tighten up the timing for setting cursor registers in DONE irq. And most importantly, don't ever disable the hw cursor. Instead flip it to a blank/empty cursor. This seems far more reliable, as even simply clearing the cursor-enable bit (with no other updates in previous/ following frames) can in some cases cause underflow. v1: original v2: add missing locking spotted by Micah Cc: Micah Richert <richert@braincorporation.com> Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c')
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
index c740ccd1cc67..8edd531cb621 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
@@ -70,12 +70,12 @@ irqreturn_t mdp4_irq(struct msm_kms *kms)
VERB("status=%08x", status);
+ mdp_dispatch_irqs(mdp_kms, status);
+
for (id = 0; id < priv->num_crtcs; id++)
if (status & mdp4_crtc_vblank(priv->crtcs[id]))
drm_handle_vblank(dev, id);
- mdp_dispatch_irqs(mdp_kms, status);
-
return IRQ_HANDLED;
}
OpenPOWER on IntegriCloud