[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