diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-29 13:00:23 -0500 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-29 13:45:01 -0500 |
commit | c5d1b51d3559664920136b45f4d2366ed9a9e8be (patch) | |
tree | 0ff3983cb395dc5bd0de1684a60647977b35ea91 /drivers/gpu/drm/i915/intel_display.c | |
parent | de18a29e0fa3904894b4e02fae0e712cd43f740c (diff) |
drm/i915: Clear pfit registers when not used by any outputs
... otherwise the panel-fitter may be left enabled with random settings
and cause unintended filtering (i.e. blurring of native modes on external
panels).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=31942
Reported-and-tested-by: Ben Kohler <bkohler@gmail.com>
Tested-by: Ciprian Docan <docan@eden.rutgers.edu>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index bee24b1a58e8..255b52ee0091 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -5336,9 +5336,14 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
5336 | struct drm_i915_private *dev_priv = dev->dev_private; | 5336 | struct drm_i915_private *dev_priv = dev->dev_private; |
5337 | struct intel_encoder *encoder; | 5337 | struct intel_encoder *encoder; |
5338 | bool dpd_is_edp = false; | 5338 | bool dpd_is_edp = false; |
5339 | bool has_lvds = false; | ||
5339 | 5340 | ||
5340 | if (IS_MOBILE(dev) && !IS_I830(dev)) | 5341 | if (IS_MOBILE(dev) && !IS_I830(dev)) |
5341 | intel_lvds_init(dev); | 5342 | has_lvds = intel_lvds_init(dev); |
5343 | if (!has_lvds && !HAS_PCH_SPLIT(dev)) { | ||
5344 | /* disable the panel fitter on everything but LVDS */ | ||
5345 | I915_WRITE(PFIT_CONTROL, 0); | ||
5346 | } | ||
5342 | 5347 | ||
5343 | if (HAS_PCH_SPLIT(dev)) { | 5348 | if (HAS_PCH_SPLIT(dev)) { |
5344 | dpd_is_edp = intel_dpd_is_edp(dev); | 5349 | dpd_is_edp = intel_dpd_is_edp(dev); |