From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v7] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Wed, 3 Aug 2016 07:53:01 -0700 Message-ID: <20160803145301.GF32025@intel.com> References: <1470232224-9102-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470232224-9102-1-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Cc: dri-devel@lists.freedesktop.org, David Airlie , Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMDk6NTA6MjNBTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Ci4u Lgo+ICtpbnQKPiArc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gK3sKPiArCWludCByZXQsIHJlc3VsdDsKPiArCj4gKwlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpCj4gKwkJcmV0dXJuIDA7Cj4gKwlpZiAoIWRldl9wcml2LT5za2xfc2Fndl9lbmFi bGVkKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdf bG9jayk7Cj4gKwlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgdGhlIFNBR1ZcbiIpOwo+ICsKPiAr CS8qIGJzcGVjIHNheXMgdG8ga2VlcCByZXRyeWluZyBmb3IgYXQgbGVhc3QgMSBtcyAqLwo+ICsJ cmV0ID0gd2FpdF9mb3IocmVzdWx0ID0gc2tsX2RvX3NhZ3ZfZGlzYWJsZShkZXZfcHJpdiksIDEp Owo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsKPiArCWlmIChy ZXQgPT0gLUVUSU1FRE9VVCkKPiArCQlEUk1fRVJST1IoIlJlcXVlc3QgdG8gZGlzYWJsZSBTQUdW IHRpbWVkIG91dFxuIik7Cj4gKwllbHNlIHsKCkkgdGhpbmsgeW91IG1pZ2h0IGhhdmUgbWlzc2Vk IG15IG5vdGUgaGVyZSBvbiB0aGUgbGFzdCBwYXRjaCwgYnV0IHdlCm5lZWQgdG8gZml4IHRoZSBt aW5vciBjb2Rpbmcgc3R5bGUgaXNzdWUgaGVyZSAoaWYgZWl0aGVyIGJyYW5jaCBvZiBhbgppZi9l bHNlIG5lZWRzIGJyYWNlcywgeW91IG5lZWQgdG8gcHV0IHRoZW0gb24gYm90aCBicmFuY2hlcyku Cgo+ICsJCWlmIChyZXN1bHQgPT0gMSkKCkFzIEkgbWVudGlvbmVkIGJlZm9yZSwgdGhlIDE9b2Zm IGxvb2tzIGNvbmZ1c2luZyBpZiBzb21lb25lIGlzbid0Cmxvb2tpbmcgYXQgdGhlIGJzcGVjIGNh cmVmdWxseS4gIFVzaW5nIGEgI2RlZmluZSBmb3IgdGhlIHZhcmlvdXMgMHgxJ3MKaW4gdGhpcyBw YXRjaCBtaWdodCBoZWxwIGNsYXJpZnkgdGhlIGNvZGUgc2xpZ2h0bHkuCgpXaXRoIHRob3NlIG1p bm9yIGNoYW5nZXMgbWFkZSwKClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9w ZXJAaW50ZWwuY29tPgoKCk1hdHQKCj4gKwkJCWRldl9wcml2LT5za2xfc2Fndl9lbmFibGVkID0g ZmFsc2U7Cj4gKwo+ICsJCXJldCA9IHJlc3VsdDsKPiArCX0KPiArCj4gKwlyZXR1cm4gcmV0Owo+ ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGlt aXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9j LCAvKiBvdXQgKi8KPiBAQCAtNDIzNiw2ICs0MzQ2LDggQEAgdm9pZCBza2xfd21fZ2V0X2h3X3N0 YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJLyogRWFzeS9jb21tb24gY2FzZTsganVz dCBzYW5pdGl6ZSBEREIgbm93IGlmIGV2ZXJ5dGhpbmcgb2ZmICovCj4gIAkJbWVtc2V0KGRkYiwg MCwgc2l6ZW9mKCpkZGIpKTsKPiAgCX0KPiArCj4gKwlza2xfc2Fndl9nZXRfaHdfc3RhdGUoZGV2 X3ByaXYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdfc3RhdGUo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+IC0tIAo+IDIuNy40Cj4gCgotLSAKTWF0dCBSb3BlcgpH cmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxv cG1lbnQKSW50ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757150AbcHCPIU (ORCPT ); Wed, 3 Aug 2016 11:08:20 -0400 Received: from mga01.intel.com ([192.55.52.88]:10328 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754194AbcHCPIS (ORCPT ); Wed, 3 Aug 2016 11:08:18 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,466,1464678000"; d="scan'208";a="859041525" Date: Wed, 3 Aug 2016 07:53:01 -0700 From: Matt Roper To: Lyude Cc: intel-gfx@lists.freedesktop.org, Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Maarten Lankhorst , Daniel Vetter , stable@vger.kernel.org, Daniel Vetter , Jani Nikula , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v7] drm/i915/skl: Add support for the SAGV, fix underrun hangs Message-ID: <20160803145301.GF32025@intel.com> References: <1470232224-9102-1-git-send-email-cpaul@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1470232224-9102-1-git-send-email-cpaul@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 03, 2016 at 09:50:23AM -0400, Lyude wrote: ... > +int > +skl_disable_sagv(struct drm_i915_private *dev_priv) > +{ > + int ret, result; > + > + if (IS_BROXTON(dev_priv)) > + return 0; > + if (!dev_priv->skl_sagv_enabled) > + return 0; > + > + mutex_lock(&dev_priv->rps.hw_lock); > + DRM_DEBUG_KMS("Disabling the SAGV\n"); > + > + /* bspec says to keep retrying for at least 1 ms */ > + ret = wait_for(result = skl_do_sagv_disable(dev_priv), 1); > + mutex_unlock(&dev_priv->rps.hw_lock); > + > + if (ret == -ETIMEDOUT) > + DRM_ERROR("Request to disable SAGV timed out\n"); > + else { I think you might have missed my note here on the last patch, but we need to fix the minor coding style issue here (if either branch of an if/else needs braces, you need to put them on both branches). > + if (result == 1) As I mentioned before, the 1=off looks confusing if someone isn't looking at the bspec carefully. Using a #define for the various 0x1's in this patch might help clarify the code slightly. With those minor changes made, Reviewed-by: Matt Roper Matt > + dev_priv->skl_sagv_enabled = false; > + > + ret = result; > + } > + > + return ret; > +} > + > +static void > skl_ddb_get_pipe_allocation_limits(struct drm_device *dev, > const struct intel_crtc_state *cstate, > struct skl_ddb_entry *alloc, /* out */ > @@ -4236,6 +4346,8 @@ void skl_wm_get_hw_state(struct drm_device *dev) > /* Easy/common case; just sanitize DDB now if everything off */ > memset(ddb, 0, sizeof(*ddb)); > } > + > + skl_sagv_get_hw_state(dev_priv); > } > > static void ilk_pipe_wm_get_hw_state(struct drm_crtc *crtc) > -- > 2.7.4 > -- Matt Roper Graphics Software Engineer IoTG Platform Enabling & Development Intel Corporation (916) 356-2795