]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: use crtc_htotal when calculating ilk watermarks
authorJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 20 Dec 2013 21:08:00 +0000 (13:08 -0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 8 Jan 2014 09:40:50 +0000 (10:40 +0100)
This was introduced in:

commit 65787f07a87a4677d53e826fe9089fd4658f9198
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Wed Oct 9 19:17:56 2013 +0300

    drm/i915: Don't re-compute pipe watermarks except for the affected pipe

and I missed fixing it in:

commit 0f8944e97a8649e55661279ca1fcdc9ca4404bd7
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed Nov 27 11:10:26 2013 -0800

    drm/i915: use crtc_htotal in watermark calculations to match fastboot v2

It's needed for ILK+ platforms to fastboot without crashing on a divide
by 0 after a DPMS on action.

Note: Ville mentioned in his review that this confusion seems to go
down to the original introduction of this code in

commit 9e085e94daa49e92c36656f64c438cdc533b40b8
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Fri May 31 10:08:35 2013 -0300

    drm/i915: properly set HSW WM_PIPE registers

So it seems to have been missed both in the fastboot patch and in the
3d mode suppport (where only crtc_htotal reflects the real pipe
width).

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
[danvet: Add note based on Ville's review.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index 743449a51be807fa24d307840ed5f14440c86101..534459944d704c78ebd819b28202ba4de1436b55 100644 (file)
@@ -2123,7 +2123,7 @@ static void ilk_compute_wm_parameters(struct drm_crtc *crtc,
 
        p->active = intel_crtc_active(crtc);
        if (p->active) {
-               p->pipe_htotal = intel_crtc->config.adjusted_mode.htotal;
+               p->pipe_htotal = intel_crtc->config.adjusted_mode.crtc_htotal;
                p->pixel_rate = ilk_pipe_pixel_rate(dev, crtc);
                p->pri.bytes_per_pixel = crtc->fb->bits_per_pixel / 8;
                p->cur.bytes_per_pixel = 4;