aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2009-10-19 03:43:49 -0400
committerEric Anholt <eric@anholt.net>2009-10-19 14:03:43 -0400
commitb1f60b7029989da71fd8ea1b1176480fac9e846c (patch)
tree774173fc5f95a2c7c72d931d9305500640ac6c31
parentc038e51e841581cc3fb9a76e5e16331331e9c85c (diff)
drm/i915: fix panel fitting filter coefficient select for Ironlake
Must set filter selection as hardcoded coefficients for medium 3x3 filtering, which matches vbios setting for Ironlake. This fixes display corrupt issue on HP arrandale with new vbios. Cc: Stable Team <stable@kernel.org> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h5
-rw-r--r--drivers/gpu/drm/i915/intel_display.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index cd0ffa015c27..78f336e00836 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2039,6 +2039,11 @@
2039#define PFA_CTL_1 0x68080 2039#define PFA_CTL_1 0x68080
2040#define PFB_CTL_1 0x68880 2040#define PFB_CTL_1 0x68880
2041#define PF_ENABLE (1<<31) 2041#define PF_ENABLE (1<<31)
2042#define PF_FILTER_MASK (3<<23)
2043#define PF_FILTER_PROGRAMMED (0<<23)
2044#define PF_FILTER_MED_3x3 (1<<23)
2045#define PF_FILTER_EDGE_ENHANCE (2<<23)
2046#define PF_FILTER_EDGE_SOFTEN (3<<23)
2042#define PFA_WIN_SZ 0x68074 2047#define PFA_WIN_SZ 0x68074
2043#define PFB_WIN_SZ 0x68874 2048#define PFB_WIN_SZ 0x68874
2044#define PFA_WIN_POS 0x68070 2049#define PFA_WIN_POS 0x68070
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index db4c38700951..e189fd6dedcf 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1515,7 +1515,7 @@ static void igdng_crtc_dpms(struct drm_crtc *crtc, int mode)
1515 /* Enable panel fitting for LVDS */ 1515 /* Enable panel fitting for LVDS */
1516 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { 1516 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
1517 temp = I915_READ(pf_ctl_reg); 1517 temp = I915_READ(pf_ctl_reg);
1518 I915_WRITE(pf_ctl_reg, temp | PF_ENABLE); 1518 I915_WRITE(pf_ctl_reg, temp | PF_ENABLE | PF_FILTER_MED_3x3);
1519 1519
1520 /* currently full aspect */ 1520 /* currently full aspect */
1521 I915_WRITE(pf_win_pos, 0); 1521 I915_WRITE(pf_win_pos, 0);