From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 4/7] drm/i915: Calculate gen4 watermarks semiatomically. Date: Mon, 7 Aug 2017 12:48:25 +0200 Message-ID: <20170807104828.21046-5-maarten.lankhorst@linux.intel.com> References: <20170807104828.21046-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4D7E36E3E6 for ; Mon, 7 Aug 2017 10:48:41 +0000 (UTC) In-Reply-To: <20170807104828.21046-1-maarten.lankhorst@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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org R2VuNCB3YXRlcm1hcmsgaXMgaGFuZGxlZCBzYW1lIGFzIGdlbjMtLiBDYWxjdWxhdGUKdGhlIG9w dGltYWwgd2F0ZXJtYXJrcyBhdG9taWNhbGx5IGZpcnN0LCBhbmQgcHJvZ3JhbQppdCBpbiB0aGUg bGVnYWN5IGhlbHBlci4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyB8IDEzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKaW5kZXggN2VjZjM5ODE1YWI1Li5mMjA2MmY1ODlmNDEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwpAQCAtMjE4Nyw1OCArMjE4NywxMDkgQEAgc3RhdGljIHZvaWQgdmx2 X29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogfQogCi1zdGF0aWMgdm9pZCBp OTY1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCitzdGF0aWMgaW50 IGk5NjVfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUodW51c2Vk X2NydGMtPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9CisJCXRvX2ludGVsX2F0b21p Y19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwlzdHJ1Y3QgaTl4eF93bV9zdGF0ZSAq d21fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20uaTl4eC5vcHRpbWFsOworCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpOworCWNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnByaW1hcnlfcGxhbmVfc3RhdGUgPSBOVUxMOworCWNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmN1cnNvcl9wbGFuZV9zdGF0ZSA9IE5VTEw7CisK KwltZW1zZXQod21fc3RhdGUsIDAsIHNpemVvZigqd21fc3RhdGUpKTsKKworCWlmIChjcnRjX3N0 YXRlLT5iYXNlLnBsYW5lX21hc2sgJiBCSVQoZHJtX3BsYW5lX2luZGV4KCZwbGFuZS0+YmFzZSkp KQorCQlwcmltYXJ5X3BsYW5lX3N0YXRlID0gX19kcm1fYXRvbWljX2dldF9jdXJyZW50X3BsYW5l X3N0YXRlKCZzdGF0ZS0+YmFzZSwgJnBsYW5lLT5iYXNlKTsKKworCWlmIChjcnRjX3N0YXRlLT5i YXNlLnBsYW5lX21hc2sgJiBCSVQoZHJtX3BsYW5lX2luZGV4KGNydGMtPmJhc2UuY3Vyc29yKSkp CisJCWN1cnNvcl9wbGFuZV9zdGF0ZSA9IF9fZHJtX2F0b21pY19nZXRfY3VycmVudF9wbGFuZV9z dGF0ZSgmc3RhdGUtPmJhc2UsIGNydGMtPmJhc2UuY3Vyc29yKTsKKworCWlmIChwcmltYXJ5X3Bs YW5lX3N0YXRlKSB7CisJCXN0YXRpYyBjb25zdCBpbnQgc3JfbGF0ZW5jeV9ucyA9IDEyMDAwOwor CQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9CisJCQkmY3J0 Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQl1bnNpZ25lZCBhY3RpdmVfY3J0Y3M7CisJ CXVuc2lnbmVkIGxvbmcgZW50cmllczsKKwkJYm9vbCBtYXlfY3hzcjsKKworCQlpZiAoc3RhdGUt Pm1vZGVzZXQpCisJCQlhY3RpdmVfY3J0Y3MgPSBzdGF0ZS0+YWN0aXZlX2NydGNzOworCQllbHNl CisJCQlhY3RpdmVfY3J0Y3MgPSBkZXZfcHJpdi0+YWN0aXZlX2NydGNzOworCisJCW1heV9jeHNy ID0gYWN0aXZlX2NydGNzID09IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOworCisJCWlmICht YXlfY3hzciAmJiBpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNydGNfc3RhdGUsIHRvX2ludGVsX3Bs YW5lX3N0YXRlKHByaW1hcnlfcGxhbmVfc3RhdGUpKSkgeworCQkJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBwcmltYXJ5X3BsYW5lX3N0YXRlLT5mYjsKKwkJCXVuc2lnbmVkIGNwcCA9IGZi LT5mb3JtYXQtPmNwcFswXTsKKworCQkJZW50cmllcyA9IGludGVsX3dtX21ldGhvZDIoYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJCQkJCSAgIGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFs LAorCQkJCQkJICAgY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdywgY3BwLAorCQkJCQkJICAgc3JfbGF0 ZW5jeV9ucyAvIDEwMCk7CisJCQllbnRyaWVzID0gRElWX1JPVU5EX1VQKGVudHJpZXMsIEk5MTVf RklGT19MSU5FX1NJWkUpOworCQkJaWYgKGVudHJpZXMgPCBJOTY1X0ZJRk9fU0laRSkKKwkJCQl3 bV9zdGF0ZS0+c3IucGxhbmUgPSBJOTY1X0ZJRk9fU0laRSAtIGVudHJpZXM7CisJCQllbHNlCisJ CQkJbWF5X2N4c3IgPSBmYWxzZTsKKworCQkJRFJNX0RFQlVHX0tNUygic2VsZi1yZWZyZXNoIGVu dHJpZXM6ICVsZFxuIiwgZW50cmllcyk7CisJCX0KKworCQkvKiBObyBuZWVkIHRvIHVzZSBpbnRl bF93bV9wbGFuZV92aXNpYmxlIGhlcmUsIHNpbmNlIGN1cnNvci4gKi8KKwkJaWYgKG1heV9jeHNy ICYmIGN1cnNvcl9wbGFuZV9zdGF0ZSAmJiBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgeworCQkJ ZW50cmllcyA9IGludGVsX3dtX21ldGhvZDIoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJ CQkJCSAgIGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsLAorCQkJCQkJICAgY3Vyc29yX3BsYW5l X3N0YXRlLT5jcnRjX3csIDQsCisJCQkJCQkgICBzcl9sYXRlbmN5X25zIC8gMTAwKTsKKworCQkJ ZW50cmllcyA9IERJVl9ST1VORF9VUChlbnRyaWVzLAorCQkJCQkgICAgICBpOTY1X2N1cnNvcl93 bV9pbmZvLmNhY2hlbGluZV9zaXplKSArCisJCQkJaTk2NV9jdXJzb3Jfd21faW5mby5ndWFyZF9z aXplOworCisJCQlpZiAoZW50cmllcyA8IGk5NjVfY3Vyc29yX3dtX2luZm8uZmlmb19zaXplKQor CQkJCXdtX3N0YXRlLT5zci5jdXJzb3IgPSBtaW4oaTk2NV9jdXJzb3Jfd21faW5mby5maWZvX3Np emUgLSBlbnRyaWVzLAorCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcpKGk5NjVfY3Vyc29yX3dtX2lu Zm8ubWF4X3dtKSk7CisJCQllbHNlCisJCQkJbWF5X2N4c3IgPSBmYWxzZTsKKwkJfSBlbHNlIGlm IChtYXlfY3hzcikKKwkJCXdtX3N0YXRlLT5zci5jdXJzb3IgPSAxNjsKKworCQl3bV9zdGF0ZS0+ Y3hzciA9IG1heV9jeHNyOworCisJCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyAtIGNh biBjeHNyOiAlcywgZGlzcGxheSBwbGFuZSAlZCwgY3Vyc29yIFNSIHNpemU6ICVkXG4iLAorCQkJ ICAgICAgeWVzbm8od21fc3RhdGUtPmN4c3IpLCB3bV9zdGF0ZS0+c3IucGxhbmUsIHdtX3N0YXRl LT5zci5jdXJzb3IpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBpOTY1X3Vw ZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlpbnQgc3J3bSA9IDE7 CiAJaW50IGN1cnNvcl9zciA9IDE2OwotCWJvb2wgY3hzcl9lbmFibGVkOworCWJvb2wgY3hzcl9l bmFibGVkID0gZmFsc2U7CisKKwljcnRjLT53bS5hY3RpdmUuaTl4eCA9IGNydGMtPmNvbmZpZy0+ d20uaTl4eC5vcHRpbWFsOwogCiAJLyogQ2FsYyBzciBlbnRyaWVzIGZvciBvbmUgcGxhbmUgY29u ZmlncyAqLwogCWNydGMgPSBzaW5nbGVfZW5hYmxlZF9jcnRjKGRldl9wcml2KTsKLQlpZiAoY3J0 YykgewotCQkvKiBzZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KLQkJc3Rh dGljIGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0gMTIwMDA7Ci0JCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKLQkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQotCQkJY3J0 Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7Ci0JCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUt PmNydGNfY2xvY2s7Ci0JCWludCBodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsK LQkJaW50IGhkaXNwbGF5ID0gY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193OwotCQlpbnQgY3BwID0g ZmItPmZvcm1hdC0+Y3BwWzBdOwotCQlpbnQgZW50cmllczsKLQotCQllbnRyaWVzID0gaW50ZWxf d21fbWV0aG9kMihjbG9jaywgaHRvdGFsLAotCQkJCQkgICBoZGlzcGxheSwgY3BwLCBzcl9sYXRl bmN5X25zIC8gMTAwKTsKLQkJZW50cmllcyA9IERJVl9ST1VORF9VUChlbnRyaWVzLCBJOTE1X0ZJ Rk9fTElORV9TSVpFKTsKLQkJc3J3bSA9IEk5NjVfRklGT19TSVpFIC0gZW50cmllczsKLQkJaWYg KHNyd20gPCAwKQotCQkJc3J3bSA9IDE7Ci0JCXNyd20gJj0gMHgxZmY7Ci0JCURSTV9ERUJVR19L TVMoInNlbGYtcmVmcmVzaCBlbnRyaWVzOiAlZCwgd206ICVkXG4iLAotCQkJICAgICAgZW50cmll cywgc3J3bSk7Ci0KLQkJZW50cmllcyA9IGludGVsX3dtX21ldGhvZDIoY2xvY2ssIGh0b3RhbCwK LQkJCQkJICAgY3J0Yy0+YmFzZS5jdXJzb3ItPnN0YXRlLT5jcnRjX3csIDQsCi0JCQkJCSAgIHNy X2xhdGVuY3lfbnMgLyAxMDApOwotCQllbnRyaWVzID0gRElWX1JPVU5EX1VQKGVudHJpZXMsCi0J CQkJICAgICAgIGk5NjVfY3Vyc29yX3dtX2luZm8uY2FjaGVsaW5lX3NpemUpICsKLQkJCWk5NjVf Y3Vyc29yX3dtX2luZm8uZ3VhcmRfc2l6ZTsKLQotCQljdXJzb3Jfc3IgPSBpOTY1X2N1cnNvcl93 bV9pbmZvLmZpZm9fc2l6ZSAtIGVudHJpZXM7Ci0JCWlmIChjdXJzb3Jfc3IgPiBpOTY1X2N1cnNv cl93bV9pbmZvLm1heF93bSkKLQkJCWN1cnNvcl9zciA9IGk5NjVfY3Vyc29yX3dtX2luZm8ubWF4 X3dtOworCWlmIChjcnRjICYmIGNydGMtPndtLmFjdGl2ZS5pOXh4LmN4c3IpIHsKKwkJc3RydWN0 IGk5eHhfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGMtPndtLmFjdGl2ZS5pOXh4OworCisJCXNy d20gPSB3bV9zdGF0ZS0+c3IucGxhbmU7CisJCWN1cnNvcl9zciA9IHdtX3N0YXRlLT5zci5jdXJz b3I7CiAKIAkJRFJNX0RFQlVHX0tNUygic2VsZi1yZWZyZXNoIHdhdGVybWFyazogZGlzcGxheSBw bGFuZSAlZCAiCiAJCQkgICAgICAiY3Vyc29yICVkXG4iLCBzcndtLCBjdXJzb3Jfc3IpOwogCiAJ CWN4c3JfZW5hYmxlZCA9IHRydWU7Ci0JfSBlbHNlIHsKLQkJY3hzcl9lbmFibGVkID0gZmFsc2U7 CisJfSBlbHNlIGlmIChkZXZfcHJpdi0+d20uaTl4eC5jeHNyKSB7CiAJCS8qIFR1cm4gb2ZmIHNl bGYgcmVmcmVzaCBpZiBib3RoIHBpcGVzIGFyZSBlbmFibGVkICovCi0JCWludGVsX3NldF9tZW1v cnlfY3hzcihkZXZfcHJpdiwgZmFsc2UpOworCQlfaW50ZWxfc2V0X21lbW9yeV9jeHNyKGRldl9w cml2LCBmYWxzZSk7CiAJfQogCiAJRFJNX0RFQlVHX0tNUygiU2V0dGluZyBGSUZPIHdhdGVybWFy a3MgLSBBOiA4LCBCOiA4LCBDOiA4LCBTUiAlZFxuIiwKQEAgLTIyNTUsNyArMjMwNiw5IEBAIHN0 YXRpYyB2b2lkIGk5NjVfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykK IAlJOTE1X1dSSVRFKERTUEZXMywgRldfV00oY3Vyc29yX3NyLCBDVVJTT1JfU1IpKTsKIAogCWlm IChjeHNyX2VuYWJsZWQpCi0JCWludGVsX3NldF9tZW1vcnlfY3hzcihkZXZfcHJpdiwgdHJ1ZSk7 CisJCV9pbnRlbF9zZXRfbWVtb3J5X2N4c3IoZGV2X3ByaXYsIHRydWUpOworCisJZGV2X3ByaXYt PndtLmk5eHguY3hzciA9IGN4c3JfZW5hYmxlZDsKIH0KIAogI3VuZGVmIEZXX1dNCkBAIC04OTY1 LDYgKzkwMTgsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogCQkJZGV2X3ByaXYtPmRpc3BsYXkub3B0aW1pemVfd2F0ZXJtYXJrcyA9IGk5 eHhfb3B0aW1pemVfd2F0ZXJtYXJrczsKIAkJfQogCX0gZWxzZSBpZiAoSVNfR0VONChkZXZfcHJp dikpIHsKKwkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9waXBlX3dtID0gaTk2NV9jb21wdXRl X3BpcGVfd207CiAJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGk5NjVfdXBkYXRlX3dt OwogCX0gZWxzZSBpZiAoSVNfR0VOMyhkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPmRpc3BsYXku Y29tcHV0ZV9waXBlX3dtID0gaTl4eF9jb21wdXRlX3BpcGVfd207Ci0tIAoyLjExLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=