From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/4] drm/i915: Disable LP1+ watermarks on Lenovo Thinkpad T431s Date: Mon, 25 Feb 2019 15:19:52 +0200 Message-ID: <875zt8ronb.fsf@intel.com> References: <20190222155251.16730-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id A366D896E7 for ; Mon, 25 Feb 2019 13:17:50 +0000 (UTC) In-Reply-To: <20190222155251.16730-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala , intel-gfx@lists.freedesktop.org Cc: Andrea , stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMiBGZWIgMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBMZW5vdm8gVGhpbmtwYWQgVDQzMXMgKGl2YikgYXBwYXJlbnRs eSBjYW4ndCBoYW5kbGUgTFAxKyB3YXRlcm1hcmtzCj4gYmVpbmcgZW5hYmxlZC4gSXQgdW5kZXJy dW5zIHNldmVybHkgZW5vdWdoIHRoYXQgdGhlIHNjcmVlbiBpcwo+IHVudXNhYmxlLiBUaGUgbGF0 ZW5jeSB2YWx1ZXMgYW5kIHdhdGVtYXJrcyBsb29rIGFzIGV4cGVjdGVkLgo+IEFuZCBzYWRseSB1 cGRhdGluZyB0aGUgQklPUyB0byB0aGUgbGF0ZXN0IHZlcnNpb24gKEJJT1MgR0hFVDQxV1cKPiAo MS4yNiApIDExLzIxLzIwMTgpIGRpZCBub3QgaGVscC4KPgo+IE9uZSBnbGltbWVyIG9mIGhvcGUg SSBoYWQgd2FzIHRoZSBWQlQuIEl0IHNlZW1zIHRvIGhhdmUgc29tZSBzb3J0Cj4gb2YgZmxhZyBm b3IgInNlbGYgcmVmcmVzaCA9IHllcy9ubyIsIGJ1dCB3aGVuIEkgbG9va2VkIGF0IGEgYnVuY2gK PiBvZiBWQlRzIEkgaGFkIGx5aW5nIGFyb3VuZCBtb3N0IG9mIHRoZW0gaGFkIHRoYXQgZmllbGQg c2V0IHRvICJubyIuCj4gU28gaWYgd2UgdXNlZCB0aGF0IHdlJ2QgZW5kIHVwIGRpc2FibGluZyBM UDErIG9uIG1vc3QgbWFjaGluZXMuCj4gVGhhdCBzZWVtcyBhIGJpdCBoYXJzaCBzaW5jZSB3ZSBr bm93IExQMSsgd29ya3MganVzdCBmaW5lIG9uCj4gbW9zdCBtYWNoaW5lcy4KPgo+IFNpbmNlIEkg aGF2ZSBubyBiZXR0ZXIgaWRlYXMgbGV0J3MganVzdCBkaXNhYmxlIExQMSsgd2F0ZXJtYXJrcwo+ IG9uIHRoaXMgcGFydGljdWxhciBtYWNoaW5lIHZpYSBhIHF1aXJrLgo+Cj4gQ2M6IHN0YWJsZUB2 Z2VyLmtlcm5lbC5vcmcKPiBDYzogQW5kcmVhIDxhbmRyZWF0Y2xpc3RAZ21haWwuY29tPgo+IFJl cG9ydGVkLWJ5OiBBbmRyZWEgPGFuZHJlYXRjbGlzdEBnbWFpbC5jb20+Cj4gQnVnemlsbGE6IGh0 dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQ3Nwo+IEZpeGVz OiBhNDZhNzM1MGIxZTggKCJkcm0vaTkxNTogRml4IGlsaysgd2F0ZXJtYXJrcyB3aGVuIGRpc2Fi bGluZyBwaXBlcyIpCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KCkRvZXMgd2hhdCBpdCBzYXlzIG9uIHRoZSBib3gsIHRob3Vn aCBJJ20gc2FkZGVuZWQgd2UgaGF2ZSB0byByZXNvcnQgdG8gYQpxdWlyay4KClJldmlld2VkLWJ5 OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgoKCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCA1MSArKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggNGMwZTQzY2FhNWNkLi43NWRjZWFj MTk5NTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtMzAxNSw2ICszMDE1LDI5 IEBAIHN0YXRpYyB2b2lkIHNuYl93bV9sYXRlbmN5X3F1aXJrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2X3ByaXYsICJDdXJz b3IiLCBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3kpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBp bGtfd21fZGlzYWJsZV9xdWlyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g KwkJCQkgaW50IGxldmVsKQo+ICt7Cj4gKwlpbnQgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZl bChkZXZfcHJpdik7Cj4gKwo+ICsJaWYgKGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF0g PT0gMCAmJgo+ICsJICAgIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVtsZXZlbF0gPT0gMCAmJgo+ ICsJICAgIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeVtsZXZlbF0gPT0gMCkKPiArCQlyZXR1cm47 Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiTFAlZCsgd2F0ZXJtYXJrcyBkaXNhYmxlZCBieSBxdWly a1xuIiwgbGV2ZWwpOwo+ICsKPiArCWZvciAoOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKysp IHsKPiArCQlkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbbGV2ZWxdID0gMDsKPiArCQlkZXZfcHJp di0+d20uc3ByX2xhdGVuY3lbbGV2ZWxdID0gMDsKPiArCQlkZXZfcHJpdi0+d20uY3VyX2xhdGVu Y3lbbGV2ZWxdID0gMDsKPiArCX0KPiArCj4gKwlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldl9w cml2LCAiUHJpbWFyeSIsIGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeSk7Cj4gKwlpbnRlbF9wcmlu dF93bV9sYXRlbmN5KGRldl9wcml2LCAiU3ByaXRlIiwgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5 KTsKPiArCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2X3ByaXYsICJDdXJzb3IiLCBkZXZfcHJp di0+d20uY3VyX2xhdGVuY3kpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBzbmJfd21fbHAzX2ly cV9xdWlyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCS8qCj4g QEAgLTMwMjgsMjMgKzMwNTEsMTggQEAgc3RhdGljIHZvaWQgc25iX3dtX2xwM19pcnFfcXVpcmso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJICogaW50ZXJydXB0cyBvbmx5 LiBUbyBwbGF5IGl0IHNhZmUgd2UgZGlzYWJsZSBMUDMKPiAgCSAqIHdhdGVybWFya3MgZW50aXJl bHkuCj4gIAkgKi8KPiAtCWlmIChkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbM10gPT0gMCAmJgo+ IC0JICAgIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVszXSA9PSAwICYmCj4gLQkgICAgZGV2X3By aXYtPndtLmN1cl9sYXRlbmN5WzNdID09IDApCj4gLQkJcmV0dXJuOwo+IC0KPiAtCWRldl9wcml2 LT53bS5wcmlfbGF0ZW5jeVszXSA9IDA7Cj4gLQlkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lbM10g PSAwOwo+IC0JZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5WzNdID0gMDsKPiArCWlsa193bV9kaXNh YmxlX3F1aXJrKGRldl9wcml2LCAzKTsKPiArfQo+ICAKPiAtCURSTV9ERUJVR19LTVMoIkxQMyB3 YXRlcm1hcmtzIGRpc2FibGVkIGR1ZSB0byBwb3RlbnRpYWwgZm9yIGxvc3QgaW50ZXJydXB0c1xu Iik7Cj4gLQlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldl9wcml2LCAiUHJpbWFyeSIsIGRldl9w cml2LT53bS5wcmlfbGF0ZW5jeSk7Cj4gLQlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldl9wcml2 LCAiU3ByaXRlIiwgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5KTsKPiAtCWludGVsX3ByaW50X3dt X2xhdGVuY3koZGV2X3ByaXYsICJDdXJzb3IiLCBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3kpOwo+ ICtzdGF0aWMgdm9pZCBpbGtfd21fZGlzYWJsZV9scDFfcXVpcmsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlpbGtfd21fZGlzYWJsZV9xdWlyayhkZXZfcHJpdiwg MSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGlsa19zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYg PSBkZXZfcHJpdi0+ZHJtLnBkZXY7Cj4gKwo+ICAJaW50ZWxfcmVhZF93bV9sYXRlbmN5KGRldl9w cml2LCBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3kpOwo+ICAKPiAgCW1lbWNweShkZXZfcHJpdi0+ d20uc3ByX2xhdGVuY3ksIGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeSwKPiBAQCAtMzA2Myw2ICsz MDgxLDE1IEBAIHN0YXRpYyB2b2lkIGlsa19zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlzbmJfd21fbGF0ZW5jeV9xdWlyayhkZXZfcHJpdik7 Cj4gIAkJc25iX3dtX2xwM19pcnFfcXVpcmsoZGV2X3ByaXYpOwo+ICAJfQo+ICsKPiArCS8qCj4g KwkgKiBMZW5vdm8gVGhpbmtwYWQgVDQzMXMgKGl2YikKPiArCSAqIE1hc3NpdmUgdW5kZXJydW5z Lgo+ICsJICovCj4gKwlpZiAocGRldi0+ZGV2aWNlID09IDB4MDE2NiAmJgo+ICsJICAgIHBkZXYt PnN1YnN5c3RlbV92ZW5kb3IgPT0gMHgxN2FhICYmCj4gKwkgICAgcGRldi0+c3Vic3lzdGVtX2Rl dmljZSA9PSAweDIyMDgpCj4gKwkJaWxrX3dtX2Rpc2FibGVfbHAxX3F1aXJrKGRldl9wcml2KTsK PiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgc2tsX3NldHVwX3dtX2xhdGVuY3koc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJj ZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE4D8C43381 for ; Mon, 25 Feb 2019 13:17:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 96A2020652 for ; Mon, 25 Feb 2019 13:17:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726997AbfBYNRv convert rfc822-to-8bit (ORCPT ); Mon, 25 Feb 2019 08:17:51 -0500 Received: from mga09.intel.com ([134.134.136.24]:12600 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726967AbfBYNRv (ORCPT ); Mon, 25 Feb 2019 08:17:51 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Feb 2019 05:17:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,411,1544515200"; d="scan'208";a="149768494" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.172]) by fmsmga001.fm.intel.com with ESMTP; 25 Feb 2019 05:17:48 -0800 From: Jani Nikula To: Ville Syrjala , intel-gfx@lists.freedesktop.org Cc: Andrea , stable@vger.kernel.org Subject: Re: [Intel-gfx] [PATCH 1/4] drm/i915: Disable LP1+ watermarks on Lenovo Thinkpad T431s In-Reply-To: <20190222155251.16730-1-ville.syrjala@linux.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20190222155251.16730-1-ville.syrjala@linux.intel.com> Date: Mon, 25 Feb 2019 15:19:52 +0200 Message-ID: <875zt8ronb.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On Fri, 22 Feb 2019, Ville Syrjala wrote: > From: Ville Syrjälä > > Lenovo Thinkpad T431s (ivb) apparently can't handle LP1+ watermarks > being enabled. It underruns severly enough that the screen is > unusable. The latency values and watemarks look as expected. > And sadly updating the BIOS to the latest version (BIOS GHET41WW > (1.26 ) 11/21/2018) did not help. > > One glimmer of hope I had was the VBT. It seems to have some sort > of flag for "self refresh = yes/no", but when I looked at a bunch > of VBTs I had lying around most of them had that field set to "no". > So if we used that we'd end up disabling LP1+ on most machines. > That seems a bit harsh since we know LP1+ works just fine on > most machines. > > Since I have no better ideas let's just disable LP1+ watermarks > on this particular machine via a quirk. > > Cc: stable@vger.kernel.org > Cc: Andrea > Reported-by: Andrea > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109477 > Fixes: a46a7350b1e8 ("drm/i915: Fix ilk+ watermarks when disabling pipes") > Signed-off-by: Ville Syrjälä Does what it says on the box, though I'm saddened we have to resort to a quirk. Reviewed-by: Jani Nikula > --- > drivers/gpu/drm/i915/intel_pm.c | 51 +++++++++++++++++++++++++-------- > 1 file changed, 39 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 4c0e43caa5cd..75dceac19950 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -3015,6 +3015,29 @@ static void snb_wm_latency_quirk(struct drm_i915_private *dev_priv) > intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency); > } > > +static void ilk_wm_disable_quirk(struct drm_i915_private *dev_priv, > + int level) > +{ > + int max_level = ilk_wm_max_level(dev_priv); > + > + if (dev_priv->wm.pri_latency[level] == 0 && > + dev_priv->wm.spr_latency[level] == 0 && > + dev_priv->wm.cur_latency[level] == 0) > + return; > + > + DRM_DEBUG_KMS("LP%d+ watermarks disabled by quirk\n", level); > + > + for (; level <= max_level; level++) { > + dev_priv->wm.pri_latency[level] = 0; > + dev_priv->wm.spr_latency[level] = 0; > + dev_priv->wm.cur_latency[level] = 0; > + } > + > + intel_print_wm_latency(dev_priv, "Primary", dev_priv->wm.pri_latency); > + intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency); > + intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency); > +} > + > static void snb_wm_lp3_irq_quirk(struct drm_i915_private *dev_priv) > { > /* > @@ -3028,23 +3051,18 @@ static void snb_wm_lp3_irq_quirk(struct drm_i915_private *dev_priv) > * interrupts only. To play it safe we disable LP3 > * watermarks entirely. > */ > - if (dev_priv->wm.pri_latency[3] == 0 && > - dev_priv->wm.spr_latency[3] == 0 && > - dev_priv->wm.cur_latency[3] == 0) > - return; > - > - dev_priv->wm.pri_latency[3] = 0; > - dev_priv->wm.spr_latency[3] = 0; > - dev_priv->wm.cur_latency[3] = 0; > + ilk_wm_disable_quirk(dev_priv, 3); > +} > > - DRM_DEBUG_KMS("LP3 watermarks disabled due to potential for lost interrupts\n"); > - intel_print_wm_latency(dev_priv, "Primary", dev_priv->wm.pri_latency); > - intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency); > - intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency); > +static void ilk_wm_disable_lp1_quirk(struct drm_i915_private *dev_priv) > +{ > + ilk_wm_disable_quirk(dev_priv, 1); > } > > static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv) > { > + struct pci_dev *pdev = dev_priv->drm.pdev; > + > intel_read_wm_latency(dev_priv, dev_priv->wm.pri_latency); > > memcpy(dev_priv->wm.spr_latency, dev_priv->wm.pri_latency, > @@ -3063,6 +3081,15 @@ static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv) > snb_wm_latency_quirk(dev_priv); > snb_wm_lp3_irq_quirk(dev_priv); > } > + > + /* > + * Lenovo Thinkpad T431s (ivb) > + * Massive underruns. > + */ > + if (pdev->device == 0x0166 && > + pdev->subsystem_vendor == 0x17aa && > + pdev->subsystem_device == 0x2208) > + ilk_wm_disable_lp1_quirk(dev_priv); > } > > static void skl_setup_wm_latency(struct drm_i915_private *dev_priv) -- Jani Nikula, Intel Open Source Graphics Center