diff options
author | Rob Clark <robdclark@gmail.com> | 2014-11-25 12:41:18 -0500 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2014-12-18 14:32:14 -0500 |
commit | f86afecf0defbc8d046bc7a7c5fc19a8c9ba1364 (patch) | |
tree | 1522a0b086298ed21cda7ea41cd74fa3e0b4ee2f /drivers/gpu/drm/msm/mdp/mdp5 | |
parent | 5acb07ea802c3a06bbe22cba32fbb8eb97b6b3ae (diff) | |
download | lwn-f86afecf0defbc8d046bc7a7c5fc19a8c9ba1364.tar.gz lwn-f86afecf0defbc8d046bc7a7c5fc19a8c9ba1364.zip |
drm/msm: block incoming update on pending updates
We can't have multiple updates pending on a given CRTC, and we don't
want a sync update to race w/ an async update that preceeded it. So
keep track of which CRTCs have updates in flight, and block later
updates that would conflict.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/mdp/mdp5')
-rw-r--r-- | drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c index 0e9a2e3a82d7..930bcec7067f 100644 --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c @@ -303,11 +303,6 @@ static int mdp5_crtc_atomic_check(struct drm_crtc *crtc, DBG("%s: check", mdp5_crtc->name); - if (mdp5_crtc->event) { - dev_err(dev->dev, "already pending flip!\n"); - return -EBUSY; - } - /* request a free CTL, if none is already allocated for this CRTC */ if (state->enable && !mdp5_crtc->ctl) { mdp5_crtc->ctl = mdp5_ctlm_request(mdp5_kms->ctlm, crtc); @@ -364,7 +359,7 @@ static void mdp5_crtc_atomic_flush(struct drm_crtc *crtc) struct drm_device *dev = crtc->dev; unsigned long flags; - DBG("%s: flush", mdp5_crtc->name); + DBG("%s: event: %p", mdp5_crtc->name, crtc->state->event); WARN_ON(mdp5_crtc->event); |