Bug 97283 - drm/i915: Intermittent flicker (bisected)
Summary: drm/i915: Intermittent flicker (bisected)
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: high normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-10 17:29 UTC by Rainer Fiebig
Modified: 2017-07-24 22:40 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Rainer Fiebig 2016-08-10 17:29:30 UTC
Hi!

Noticed an intermittent flicker of the monitor (part goes black for a fraction of a second) with kernel 4.4.10.

dmesg showed the following messages:

[drm:ironlake_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
[drm:ironlake_irq_handler [i915]] *ERROR* PCH transcoder A FIFO underrun


Bisected it to this commit:

> git bisect bad
8e1001c5638e244ab9a2ddddf5466b05ddf6af77 is the first bad commit
commit 8e1001c5638e244ab9a2ddddf5466b05ddf6af77
Author: Shashank Sharma <shashank.sharma@intel.com>
Date:   Thu Apr 21 16:48:32 2016 +0530

    drm/i915: Fake HDMI live status
    
    commit 60b3143c7cac7e8d2ca65c0b347466c5776395d1 upstream.
    
    This patch does the following:
    - Fakes live status of HDMI as connected (even if that's not).
      While testing certain (monitor + cable) combinations with
      various intel  platforms, it seems that live status register
      doesn't work reliably on some older devices. So limit the
      live_status check for HDMI detection, only for platforms
      from gen7 onwards.
    
    V2: restrict faking live_status to certain platforms
    V3: (Ville)
       - keep the debug message for !live_status case
       - fix indentation of comment
       - remove "warning" from the debug message
    
        (Jani)
       - Change format of fix details in the commit message
    
    Fixes: 237ed86c693d ("drm/i915: Check live status before reading edid")
    Suggested-by: Ville Syrjala <ville.syrjala@linux.intel.com>
    Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1461237606-16491-1-git-send-email-shashank.sharma@intel.com
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    (cherry picked from commit 4f4a8185011773f7520d9916c6857db946e7f9d1)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

:040000 040000 6e90ff06fc964d1ddbb57155f8a42b840ea563d9 f76dff57b7ea8aa4d8cd66544eefc0a0b6c37a3d M     drivers
---

Regards!

Jay
Comment 1 Rainer Fiebig 2016-08-10 20:54:48 UTC
Reversing that patch did *not* resolve the problem in 4.4.10. 
Tough luck!
Comment 2 Jani Nikula 2016-08-11 08:02:04 UTC
(In reply to Jay from comment #1)
> Reversing that patch did *not* resolve the problem in 4.4.10. 
> Tough luck!

The bisect result looked suspicious anyway.
Comment 3 Rainer Fiebig 2016-08-11 12:10:20 UTC
(In reply to Jani Nikula from comment #2)
> (In reply to Jay from comment #1)
> > Reversing that patch did *not* resolve the problem in 4.4.10. 
> > Tough luck!
> 
> The bisect result looked suspicious anyway.

OK, I was wrong: it's also there in 4.4.9, 4.4 and 4.4.16 (the latest). The whole 4-series is probably affected. So it was introduced with or prior to 4.4.

I have a dual-monitor-setup and I found out that I can reproduce it reliably by moving the mouse between the two monitors (when bisecting, only one monitor was on).

Seems that 4.6.4 is *not* affected.

HTH.
Comment 4 Rainer Fiebig 2016-08-11 12:25:38 UTC
(In reply to Jay from comment #3)
> (In reply to Jani Nikula from comment #2)
> > (In reply to Jay from comment #1)
> > > Reversing that patch did *not* resolve the problem in 4.4.10. 
> > > Tough luck!
> > 
> > The bisect result looked suspicious anyway.
> 
> OK, I was wrong: it's also there in 4.4.9, 4.4 and 4.4.16 (the latest). The
> whole 4-series is probably affected. 

Damn! I mean 4.4 series, of course.
Comment 5 Rainer Fiebig 2016-08-11 17:27:46 UTC
(In reply to Jani Nikula from comment #2)
> (In reply to Jay from comment #1)
> > Reversing that patch did *not* resolve the problem in 4.4.10. 
> > Tough luck!
> 
> The bisect result looked suspicious anyway.

Perhaps you like this one better:


> git bisect good                            
43d59eda1f69631c267e06ab6b94ed3c14f1f6d1 is the first bad commit                       
commit 43d59eda1f69631c267e06ab6b94ed3c14f1f6d1                                        
Author: Matt Roper <matthew.d.roper@intel.com>
Date:   Thu Sep 24 15:53:07 2015 -0700

    drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2)
    
    Just pull the info out of the plane state structure rather than staging
    it in an additional structure.
    
    v2: Add 'visible' condition to sprites_scaled so that we don't limit the
        WM level when the sprite isn't enabled.  (Ville)
    
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
    Reviewed-by(v1): Ander Conselvan de Oliveira <conselvan2@gmail.com>
    Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

:040000 040000 b11db95f066a752dcccb0082490eabf21f62e8db 88bc02171246d693a868cd9ddb3144ee5d9b0ea8 M     drivers


4.2, 4.3, 4.3.6 were all good. So I bisected between 4.3 and 4.4.

The patch is a huge thing that I cannot easily reverse. That's one for you. ;)
Comment 6 Jani Nikula 2016-08-12 08:17:56 UTC
Please try v4.5 or try cherry-picking

commit 48e1d903f3e6b7fbb53142f24f9f35ae2c91b864
Author: Matt Roper <matthew.d.roper@intel.com>
Date:   Mon Feb 8 11:05:28 2016 -0800

    drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2)

to v4.4.
Comment 7 Rainer Fiebig 2016-08-12 10:24:40 UTC
(In reply to Jani Nikula from comment #6)
> Please try v4.5 or try cherry-picking
> 
> commit 48e1d903f3e6b7fbb53142f24f9f35ae2c91b864
> Author: Matt Roper <matthew.d.roper@intel.com>
> Date:   Mon Feb 8 11:05:28 2016 -0800
> 
>     drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2)
> 
> to v4.4.

Seems we had the same idea: saw your mail *after* I had already solved it. ;)

Applied 

commit e2e407dc093f530b771ee8bf8fe1be41e3cea8b3
Author: Matt Roper <matthew.d.roper@intel.com>
Date:   Mon Feb 8 11:05:28 2016 -0800

    drm/i915: Pretend cursor is always on for ILK-style WM calculations (v2)
    
    Due to our lack of two-step watermark programming, our driver has
...

to 4.4.16 and the flicker is gone, all else is fine so far.

How shall we proceed? 4.4 is a longterm kernel and openSuse is going to use it for its upcoming Leap 42.2 (I think).
Comment 8 Jani Nikula 2016-08-12 12:22:43 UTC
I sent the stable backport request, Cc: you. The bug is fixed upstream, we don't track stable backports here, as it's out of our hands. Closing as fixed.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.