summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/mdp/mdp5/mdp5_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/mdp5/mdp5_irq.c
parent96673ecbd7f638c0865045377a44f53cd8606850 (diff)
downloadop-kernel-dev-7d8d9f670513593377cd1442f987ce03a64ba55d.zip
op-kernel-dev-7d8d9f670513593377cd1442f987ce03a64ba55d.tar.gz
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/mdp5/mdp5_irq.c')
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
index 353d494..f2b985b 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
@@ -71,11 +71,11 @@ static void mdp5_irq_mdp(struct mdp_kms *mdp_kms)
VERB("status=%08x", status);
+ mdp_dispatch_irqs(mdp_kms, status);
+
for (id = 0; id < priv->num_crtcs; id++)
if (status & mdp5_crtc_vblank(priv->crtcs[id]))
drm_handle_vblank(dev, id);
-
- mdp_dispatch_irqs(mdp_kms, status);
}
irqreturn_t mdp5_irq(struct msm_kms *kms)
OpenPOWER on IntegriCloud