diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2009-09-19 02:54:09 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-09-17 17:31:10 -0400 |
commit | 8dd81a381e8886129c0923f1fe22ff5ca36ae8da (patch) | |
tree | 6b0616a3e01f13789aaaf077585c6b3a82149603 /drivers/gpu/drm/i915/intel_lvds.c | |
parent | 730915d65f9e763de9dc26c5f1b8abaae775b243 (diff) |
drm/i915: Fix LVDS panel fitting on Arrandale
Arrandale has new window based method for panel fitting.
This one enables full screen aspect scaling on LVDS. It fixes
standard mode display failure on LVDS for Arrandale.
Cc: Stable Team <stable@kernel.org>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lvds.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index c4799bd7eaad..4c55596649f9 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -296,6 +296,10 @@ static bool intel_lvds_mode_fixup(struct drm_encoder *encoder, | |||
296 | goto out; | 296 | goto out; |
297 | } | 297 | } |
298 | 298 | ||
299 | /* full screen scale for now */ | ||
300 | if (IS_IGDNG(dev)) | ||
301 | goto out; | ||
302 | |||
299 | /* 965+ wants fuzzy fitting */ | 303 | /* 965+ wants fuzzy fitting */ |
300 | if (IS_I965G(dev)) | 304 | if (IS_I965G(dev)) |
301 | pfit_control |= (intel_crtc->pipe << PFIT_PIPE_SHIFT) | | 305 | pfit_control |= (intel_crtc->pipe << PFIT_PIPE_SHIFT) | |
@@ -323,8 +327,10 @@ static bool intel_lvds_mode_fixup(struct drm_encoder *encoder, | |||
323 | * to register description and PRM. | 327 | * to register description and PRM. |
324 | * Change the value here to see the borders for debugging | 328 | * Change the value here to see the borders for debugging |
325 | */ | 329 | */ |
326 | I915_WRITE(BCLRPAT_A, 0); | 330 | if (!IS_IGDNG(dev)) { |
327 | I915_WRITE(BCLRPAT_B, 0); | 331 | I915_WRITE(BCLRPAT_A, 0); |
332 | I915_WRITE(BCLRPAT_B, 0); | ||
333 | } | ||
328 | 334 | ||
329 | switch (lvds_priv->fitting_mode) { | 335 | switch (lvds_priv->fitting_mode) { |
330 | case DRM_MODE_SCALE_CENTER: | 336 | case DRM_MODE_SCALE_CENTER: |
@@ -573,7 +579,6 @@ static void intel_lvds_mode_set(struct drm_encoder *encoder, | |||
573 | * settings. | 579 | * settings. |
574 | */ | 580 | */ |
575 | 581 | ||
576 | /* No panel fitting yet, fixme */ | ||
577 | if (IS_IGDNG(dev)) | 582 | if (IS_IGDNG(dev)) |
578 | return; | 583 | return; |
579 | 584 | ||