diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2013-06-25 18:38:18 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-07-01 13:38:17 -0400 |
commit | 4d6a3e63bce0cb604864e36585ca8983160a421a (patch) | |
tree | e9dedae77edf9d30bc052637fc0a243364fcaffc /drivers/gpu/drm/i915/intel_display.c | |
parent | babea61dfb82b4bdfdbc57ebf081ef6c16ffd524 (diff) |
drm/i915: turn off panel fitting at flip time if needed v2
Need better pfit tracking to do this right.
v2: use fastboot param around this hack
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 2e6fc4ce8ec9..6c0014d84812 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -2221,6 +2221,20 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y, | |||
2221 | return ret; | 2221 | return ret; |
2222 | } | 2222 | } |
2223 | 2223 | ||
2224 | /* Update pipe size and adjust fitter if needed */ | ||
2225 | if (i915_fastboot) { | ||
2226 | I915_WRITE(PIPESRC(intel_crtc->pipe), | ||
2227 | ((crtc->mode.hdisplay - 1) << 16) | | ||
2228 | (crtc->mode.vdisplay - 1)); | ||
2229 | if (!intel_crtc->config.pch_pfit.size && | ||
2230 | (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS) || | ||
2231 | intel_pipe_has_type(crtc, INTEL_OUTPUT_EDP))) { | ||
2232 | I915_WRITE(PF_CTL(intel_crtc->pipe), 0); | ||
2233 | I915_WRITE(PF_WIN_POS(intel_crtc->pipe), 0); | ||
2234 | I915_WRITE(PF_WIN_SZ(intel_crtc->pipe), 0); | ||
2235 | } | ||
2236 | } | ||
2237 | |||
2224 | ret = dev_priv->display.update_plane(crtc, fb, x, y); | 2238 | ret = dev_priv->display.update_plane(crtc, fb, x, y); |
2225 | if (ret) { | 2239 | if (ret) { |
2226 | intel_unpin_fb_obj(to_intel_framebuffer(fb)->obj); | 2240 | intel_unpin_fb_obj(to_intel_framebuffer(fb)->obj); |