[Intel-gfx] commit drm/i915: disable shared panel fitter for pipe breaks resolution switching
Daniel Vetter
daniel at ffwll.ch
Sun Apr 7 20:56:51 CEST 2013
On Sun, Mar 10, 2013 at 06:02:32PM +0100, Hans de Bruin wrote:
> On 03/06/2013 11:37 PM, Daniel Vetter wrote:
> >On Wed, Mar 6, 2013 at 7:39 PM, Hans de Bruin <jmdebruin at xmsnet.nl> wrote:
> >>On 03/06/2013 03:00 PM, Daniel Vetter wrote:
> >>>
> >>>Hi Hans,
> >>>
> >>>Can you please test with 3.9-rc1? That contains an additional patch
> >>>which might prevent the regression. Specifically
> >>>
> >>>commit 9d6d9f19e8146fa24903cb561e204a22232740e3
> >>>Author: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> >>>Date: Fri Feb 8 16:35:38 2013 +0200
> >>>
> >>> drm/i915: clean up panel fitter handling in lvds
> >>
> >>
> >>Today's kernel still contains the bug.
> >
> >Hm, I've just retested latest drm-intel-nightly which should have the
> >same set of relevant patches, and I couldn't reproduce your issue.
> >Low-res modes on the lvds panel seem to correctly scale up here on my
> >945gm.
> >
> >Can you pls retest with latest -nightly from
> >http://cgit.freedesktop.org/~danvet/drm-intel ?
> >
> >Also please attach the output of xrandr --verbose when running with a
> >reduced mode.
> >
>
> tested:
> http://cgit.freedesktop.org/~danvet/drm-intel
> commit d08a6eb2690b1ac6f0582feb41c2ccbea945285f
> Date: Thu Mar 7 22:54:25 2013 +0100
>
> The problem is still there
>
>
> my previous post contained the xrandr output whiteout the verbose.
> Doe you want my to repost with the verbose option?
Sorry for the long delay in taking again a look at this. I've tried to
reproduce this on my various machines similar to yours, but totally
failed. Also, a bunch of people with matching machines to yours actually
claim that the 2 commits which regress for you actually fix up lvds panel
fiting for them. So I'm a bit lost as to what's going on here.
Can you please try the below debug patch on top of latest 3.9-rc kernels?
Please boot that kernel with drm.debug=0xe added to your kernel cmdline,
reproduce the issue (preferrably with xrandr --output LVDS --mode ...) and
then attach the complete dmesg. This will enable lots of debugging, so
please make sure you grab everything starting from when i915.ko loads.
Thanks, Daniel
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index ca2d903..7b2122f 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -155,6 +155,12 @@ static void intel_pre_enable_lvds(struct intel_encoder *encoder)
struct drm_device *dev = encoder->base.dev;
struct intel_lvds_encoder *enc = to_lvds_encoder(&encoder->base);
struct drm_i915_private *dev_priv = dev->dev_private;
+ uint32_t tmp = I915_READ(PFIT_CONTROL);
+
+ WARN(tmp, "pfit control is dirty: 0x%08x\n", tmp);
+ assert_pipe_disabled(dev_priv,
+ INTEL_INFO(dev)->gen < 4 || (tmp & PFIT_PIPE_MASK) ?
+ PIPE_B : PIPE_A);
if (HAS_PCH_SPLIT(dev) || !enc->pfit_control)
return;
@@ -171,6 +177,10 @@ static void intel_pre_enable_lvds(struct intel_encoder *encoder)
I915_WRITE(PFIT_PGM_RATIOS, enc->pfit_pgm_ratios);
I915_WRITE(PFIT_CONTROL, enc->pfit_control);
+
+ DRM_DEBUG_KMS("panel-fitter state: %x, %x\n",
+ I915_READ(PFIT_CONTROL),
+ I915_READ(PFIT_PGM_RATIOS));
}
/**
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list