Bug 14380

Summary: Video tearing/glitching with T400 laptops
Product: Drivers Reporter: Rafael J. Wysocki (rjw)
Component: Video(DRI - Intel)Assignee: Jesse Barnes (jbarnes)
Status: CLOSED CODE_FIX    
Severity: high CC: gordon.jin
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.32-rc Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 14230    

Description Rafael J. Wysocki 2009-10-11 21:03:07 UTC
Subject    : 2.6.32 regression (bisected): Video tearing/glitching with T400 laptops
Submitter  : "Theodore Ts'o" <tytso@mit.edu>
Date       : 2009-10-02 22:40
References : http://marc.info/?l=linux-kernel&m=125452324520623&w=4
Handled-By : Jesse Barnes <jbarnes@virtuousgeek.org>
Notify-Also : Arkadiusz Miskiewicz <a.miskiewicz@gmail.com>

This entry is being used for tracking a regression from 2.6.31.  Please don't
close it until the problem is fixed in the mainline.
Comment 1 Gordon Jin 2009-10-12 02:26:11 UTC
maybe related to http://bugs.freedesktop.org/show_bug.cgi?id=24314?
Comment 2 Rafael J. Wysocki 2009-10-26 18:08:37 UTC
Patch : http://marc.info/?l=linux-kernel&m=125591495325000&w=4
Comment 3 Rafael J. Wysocki 2009-11-16 22:57:16 UTC
Fixed by commits 0e442c60dd39ac6924b11a20497734bd2303744c and 629598da932cfa5ff398fe10bc123282a6f3049e .
Comment 4 Rafael J. Wysocki 2009-11-17 22:28:46 UTC
On Tuesday 17 November 2009, Arkadiusz Miskiewicz wrote:
> On Monday 16 of November 2009, Rafael J. Wysocki wrote:
> > This message has been generated automatically as a part of a report
> > of recent regressions.
> > 
> > The following bug entry is on the current list of known regressions
> > from 2.6.31.  Please verify if it still should be listed and let me know
> > (either way).
> 
> It's mostly gone. It still happens for like 1/4s once per 6hours but jbarnes
> asked me to fill separate bug for that and gave such patch for testing (see
> below).
> 
> So far haven't seen 1/4s problem with this patch applied.
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c
> b/drivers/gpu/drm/i915/intel_display.c
> index 3ba6546..b2cbf7f 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2491,6 +2491,8 @@ static void g4x_update_wm(struct drm_device *dev,  int
> planea_clock,
>                 /* Use ns/us then divide to preserve precision */
>                 sr_entries = (((sr_latency_ns / line_time_us) + 1) *
>                               pixel_size * sr_hdisplay) / 1000;
> +               if (sr_entries > G4X_FIFO_SIZE)
> +                       sr_entries = G4X_FIFO_SIZE;
>                 sr_entries = roundup(sr_entries / cacheline_size, 1);
>                 DRM_DEBUG("self-refresh entries: %d\n", sr_entries);
>                 I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN);
>