| From f778f35845f34a99bce7fedab0cfd8dedc3728fa Mon Sep 17 00:00:00 2001 |
| From: Imre Deak <imre.deak@intel.com> |
| Date: Tue, 27 Aug 2013 12:24:09 +0300 |
| Subject: drm/i915: fix lvds/dp panel fitter setting |
| |
| If need to enable the panel fitter, the crtc timings have to be |
| programmed according to the panel's native (fixed) mode. This isn't the |
| case atm, since after the encoder changes adjusted_mode to fixed |
| mode the crtc_* timing fields of adjusted_mode will stay at their original |
| non-native values that the user passed in. This results in a corrupted |
| output. |
| |
| One exception is when we have a second pass of computing encoder configs |
| due to bandwidth limitation, since then we'll set adjusted_mode.crtc_* |
| fields to the fixed mode values set in the first pass; so in this case |
| things will work out. |
| |
| Fix this by updating the adjusted_mode.crtc_* fields when we set the |
| fixed panel mode. |
| |
| This regression has been introduced in |
| |
| commit 135c81b8c3c9a70d7b55758c9c2a247a4abb7b64 |
| Author: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Date: Sun Jul 21 21:37:09 2013 +0200 |
| |
| drm/i915: clean up crtc timings computation |
| |
| Signed-off-by: Imre Deak <imre.deak@intel.com> |
| Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit a52690e445637dda7f71878965d64d9b6a15a2b7) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/intel_panel.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c |
| index a43c33bc4a35..913cb9d7fd32 100644 |
| --- a/drivers/gpu/drm/i915/intel_panel.c |
| +++ b/drivers/gpu/drm/i915/intel_panel.c |
| @@ -50,6 +50,8 @@ intel_fixed_panel_mode(struct drm_display_mode *fixed_mode, |
| adjusted_mode->vtotal = fixed_mode->vtotal; |
| |
| adjusted_mode->clock = fixed_mode->clock; |
| + |
| + drm_mode_set_crtcinfo(adjusted_mode, 0); |
| } |
| |
| /* adjusted_mode has been preset to be the panel's fixed mode */ |
| -- |
| 1.8.5.rc3 |
| |