diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2009-10-19 03:43:49 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-10-19 14:03:43 -0400 |
commit | b1f60b7029989da71fd8ea1b1176480fac9e846c (patch) | |
tree | 774173fc5f95a2c7c72d931d9305500640ac6c31 /drivers/gpu | |
parent | c038e51e841581cc3fb9a76e5e16331331e9c85c (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>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 2 |
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); |