[Intel-gfx] [PATCH] drm/i915: fix pfit regression for non-autoscaled resolutions
Jesse Barnes
jbarnes at virtuousgeek.org
Fri Jul 12 17:04:16 CEST 2013
On Fri, 12 Jul 2013 08:07:30 +0200
Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> I.e. for letter/pillarboxing. For those cases we need to adjust the
> mode a bit, but Jesse gmch pfit refactoring in
>
> commit 2dd24552cab40ea829ba3fda890eeafd2c4816d8
> Author: Jesse Barnes <jbarnes at virtuousgeek.org>
> Date: Thu Apr 25 12:55:01 2013 -0700
>
> drm/i915: factor out GMCH panel fitting code and use for eDP v3
>
> broke that by reordering the computation of the gmch pfit state with
> the block of code that prepared the adjusted mode for it and told the
> modeset core not to overwrite the adjusted mode with default settings.
>
> We might want to switch around the core code to just fill in defaults,
> but this code predates the pipe_config modeset rework. And in the old
> crtc helpers we did not have a suitable spot to do this.
>
> Cc: Mika Kuoppala <mika.kuoppala at intel.com>
> Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
> Cc: Hans de Bruin <jmdebruin at xmsnet.nl>
> Reported-and-tested-by: Hans de Bruin <jmdebruin at xmsnet.nl>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/i915/intel_lvds.c | 5 +----
> drivers/gpu/drm/i915/intel_panel.c | 3 +++
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index b0e1088..0536c9b 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -297,14 +297,11 @@ static bool intel_lvds_compute_config(struct intel_encoder *intel_encoder,
>
> intel_pch_panel_fitting(intel_crtc, pipe_config,
> intel_connector->panel.fitting_mode);
> - return true;
> } else {
> intel_gmch_panel_fitting(intel_crtc, pipe_config,
> intel_connector->panel.fitting_mode);
> - }
>
> - drm_mode_set_crtcinfo(adjusted_mode, 0);
> - pipe_config->timings_set = true;
> + }
>
> /*
> * XXX: It would be nice to support lower refresh rates on the
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 80bea1d..45010bb 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -194,6 +194,9 @@ void intel_gmch_panel_fitting(struct intel_crtc *intel_crtc,
> adjusted_mode->vdisplay == mode->vdisplay)
> goto out;
>
> + drm_mode_set_crtcinfo(adjusted_mode, 0);
> + pipe_config->timings_set = true;
> +
> switch (fitting_mode) {
> case DRM_MODE_SCALE_CENTER:
> /*
This code is a bit confusing, but this looks better than what was there
before (clobbering the adjusted_mode after calling gmch_panel_fitting
definitely seems wrong). Only nit is that the timings_set flag isn't
very descriptive, but that's not the fault of this patch.
Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
--
Jesse Barnes, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list