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