[Bug 63609] [i915 SDVO regression] omposite TV-OUT shows vertical flickering with kernel >= 3.6.11

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Apr 25 10:05:13 PDT 2013


https://bugs.freedesktop.org/show_bug.cgi?id=63609

--- Comment #13 from Daniel Vetter <daniel at ffwll.ch> ---
> --- Comment #12 from Pierre Assal <pierre.assal at verint.com> ---
> (In reply to comment #11)
> > (In reply to comment #10)
> > > (In reply to comment #9)
> > > > So TV-out is now perfectly working, without any flickering?
> > > > 
> > > > Problem is that this is an pretty massive rework of the modeset flow for
> > > > 3.11, so first we need to figure out what exactly fixed things for you. I
> > > > suspect it's the patch titled "drm/i915: make SDVO TV-out work for
> > > > multifunction devices". Can you please try to revert that with git revert
> > > > <sha1 of patch>, compile & install the kernel and then check whether things
> > > > are broken again? Please make really sure that you're booting the right
> > > > kernel.
> > > > 
> > > > If it's indeed that patch we can try to figure out whether/how to backport
> > > > this to older kernels.
> > > 
> > > I will try this immediately and get back to you asap.
> > > Again thanks alot for your help. It is extremely appreciated.
> > 
> > You're right. If I revert this patch the things are broken again. 
> > I will try to merge it to my kernel 3.6.11.
> 
> At first sight, I do not think that It will be easy to patch kernel 3.6.11 with
> this fix.
> Do you think that you could help me with that?

The below diff is the core change (or at least I hope it is):

diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915/intel_display.c
index e8dd8fe..3343d37 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4303,7 +4303,8 @@ static void vlv_update_pll(struct intel_crtc *crtc)

 static void i9xx_update_pll(struct intel_crtc *crtc,
                 intel_clock_t *reduced_clock,
-                int num_connectors)
+                int num_connectors,
+                bool needs_tv_clock)
 {
     struct drm_device *dev = crtc->base.dev;
     struct drm_i915_private *dev_priv = dev->dev_private;
@@ -4361,7 +4362,7 @@ static void i9xx_update_pll(struct intel_crtc *crtc,
     if (INTEL_INFO(dev)->gen >= 4)
         dpll |= (6 << PLL_LOAD_PULSE_PHASE_SHIFT);

-    if (is_sdvo && intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_TVOUT))
+    if (is_sdvo && needs_tv_clock)
         dpll |= PLL_REF_INPUT_TVCLKINBC;
     else if (intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_TVOUT))
         /* XXX: just matching BIOS for now */
@@ -4686,7 +4687,8 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
     else
         i9xx_update_pll(intel_crtc,
                 has_reduced_clock ? &reduced_clock : NULL,
-                num_connectors);
+                num_connectors,
+                is_sdvo && is_tv);

     /* Set up the display plane register */
     dspcntr = DISPPLANE_GAMMA_ENABLE;

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20130425/d8030a55/attachment.html>


More information about the intel-gfx-bugs mailing list