diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-06-06 09:45:59 +0100 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-06-09 14:41:26 -0700 |
commit | 1f803ee5cea67d2387aeedb4b07e645a743729de (patch) | |
tree | 4eec806dcc444bec0482d3e67ba1d2f2e06c1e0b | |
parent | 5f26a2c7ad6eba97141e8372f3def282f934b169 (diff) | |
download | op-kernel-dev-1f803ee5cea67d2387aeedb4b07e645a743729de.zip op-kernel-dev-1f803ee5cea67d2387aeedb4b07e645a743729de.tar.gz |
drm/i915: Call drm_vblank_post_modeset() on error paths.
Ensure that the drm_vblank_pre_modeset() is always balanced by
drm_vblank_post_modeset() within intel_crtc_mode_set().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index c5c4582..a87eeff 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -1598,6 +1598,7 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, ok = limit->find_pll(limit, crtc, adjusted_mode->clock, refclk, &clock); if (!ok) { DRM_ERROR("Couldn't find PLL settings for mode!\n"); + drm_vblank_post_modeset(dev, pipe); return -EINVAL; } @@ -1858,12 +1859,9 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, /* Flush the plane changes */ ret = intel_pipe_set_base(crtc, x, y, old_fb); - if (ret != 0) - return ret; - drm_vblank_post_modeset(dev, pipe); - return 0; + return ret; } /** Loads the palette/gamma unit for the CRTC with the prepared values */ |