From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 01/62] drm/i915: Use a hybrid scheme for fast register waits Date: Thu, 30 Jun 2016 15:32:44 +0100 Message-ID: <1467297225-21379-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id E71AE6E8B4 for ; Thu, 30 Jun 2016 14:33:51 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id r201so23388461wme.0 for ; Thu, 30 Jun 2016 07:33:51 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id o2sm3878278wjp.26.2016.06.30.07.33.48 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Jun 2016 07:33:49 -0700 (PDT) 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 VmlsbGUgU3lyasOkbMOkIHJlcG9ydGVkIHRoYXQgaW4gdGhlIG1ham9yaXR5IG9mIHdhaXRfZm9y KEk5MTVfUkVBRCgpKSBoZQppbnNwZWN0LCBtb3N0IGNvbXBsZXRlZCB3aXRoaW4gdGhlIGZpcnN0 IGNvdXBsZSBvZiByZWFkcyBhbmQgdGhhdCB0aGUKZGVsYXkgYmV0d2VlbiB0aG9zZSB3YWl0X2Zv cigpIHJlYWRzIHdhcyB0aGUgcmF0ZWxpbWl0aW5nIHN0ZXAgZm9yIG1hbnkKY29kZSBwYXRocy4g Rm9yIGV4YW1wbGUsIF9fZ2VuNl91cGRhdGVfcmluZ19mcmVxKCkgd2FzIGJsYW1lZCBmb3IKc2xv d2luZyBkb3duIGJvb3QgYnkgbWFueSBtaWxsaXNlY29uZHMsIGJ1dCB1bmRlciBWaWxsZSdzIHNj cnV0aW55IHRoZQppc3N1ZSB3YXMganVzdCBleGNlc3NpdmUgZGVsYXkgd2FpdGluZyBmb3Igc2Fu ZHlicmlkZ2VfcGNvZGVfd3JpdGUoKS4KCldlIGNhbiBlbGltaW5hdGUgdGhlIHdhaXQgYnkgaW5p dGlhbGx5IHVzaW5nIGEgYnVzeXNwaW4gdXBvbiB0aGUgcmVnaXN0ZXIKcmVhZCBhbmQgb25seSBm YWxsYmFjayB0byB0aGUgc2xlZXBpbmcgbG9vcCBpbiBjYXNlcyB3aGVyZSB0aGUgaGFyZHdhcmUK aXMgaW5kZWVkIHRvbyBzbG93LiBBIHRocmVzaG9sZCBvZiAyIG1pY3Jvc2Vjb25kcyBpcyB1c2Vk IGFzIHRoZSBpbml0aWFsCmJhbGxwYXJrLgoKVG8gYXZvaWQgZXhjZXNzaXZlIGNvZGUgYmxvYXRp bmcgZnJvbSBjb252ZXJ0aW5nIGV2ZXJ5IHdhaXRfZm9yKCkgaW50byBhCmh5YnJpZCBidXN5L3Ns ZWVwIGxvb3AsIHdlIGV4dGVuZCB3YWl0X2Zvcl9yZWdpc3Rlcl9mdygpIGFuZCBleHBvcnQgaXQK Zm9yIHVzZSBieSBvdGhlciBjYWxsZXJzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxh QGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgMTEgKysrKysKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIHwgODMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA4MmIyMGUxNGIwNjUuLjQ4ZDMw Njc2NDU1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yOTY4LDYgKzI5NjgsMTcgQEAg dTY0IGludGVsX3VuY29yZV9lZHJhbV9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CiAKIHZvaWQgYXNzZXJ0X2ZvcmNld2FrZXNfaW5hY3RpdmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKIAoraW50IGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICBpOTE1X3JlZ190IHJlZywKKwkJ CSAgICBjb25zdCB1MzIgbWFzaywKKwkJCSAgICBjb25zdCB1MzIgdmFsdWUsCisJCQkgICAgY29u c3QgdW5zaWduZWQgbG9uZyB0aW1lb3V0X21zKTsKK2ludCBpbnRlbF93YWl0X2Zvcl9yZWdpc3Rl cl9mdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgICAgaTkxNV9y ZWdfdCByZWcsCisJCQkgICAgICAgY29uc3QgdTMyIG1hc2ssCisJCQkgICAgICAgY29uc3QgdTMy IHZhbHVlLAorCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgdGltZW91dF9tcyk7CisKIHN0 YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9ndnRfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIHsKIAlyZXR1cm4gZGV2X3ByaXYtPmd2dC5pbml0aWFsaXplZDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggYzFjYTQ1OGQ2ODhlLi40YzE2NmY2NTUwYmUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCkBAIC0xNjA5LDEzICsxNjA5LDc0IEBA IHN0YXRpYyBpbnQgZ2VuNl9yZXNldF9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHdhaXRfZm9yX3JlZ2lzdGVy X2Z3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQlpOTE1X3JlZ190IHJl ZywKLQkJCQljb25zdCB1MzIgbWFzaywKLQkJCQljb25zdCB1MzIgdmFsdWUsCi0JCQkJY29uc3Qg dW5zaWduZWQgbG9uZyB0aW1lb3V0X21zKQorLyoqCisgKiBpbnRlbF93YWl0X2Zvcl9yZWdpc3Rl cl9mdyAtIHdhaXQgdW50aWwgcmVnaXN0ZXIgbWF0Y2hlcyBleHBlY3RlZCBzdGF0ZQorICogQGRl dl9wcml2OiB0aGUgaTkxNSBkZXZpY2UKKyAqIEByZWc6IHRoZSByZWdpc3RlciB0byByZWFkCisg KiBAbWFzazogbWFzayB0byBhcHBseSB0byByZWdpc3RlciB2YWx1ZQorICogQHZhbHVlOiBleHBl Y3RlZCB2YWx1ZQorICogQHRpbWVvdXRfbXM6IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmQKKyAqCisg KiBUaGlzIHJvdXRpbmUgd2FpdHMgdW50aWwgdGhlIHRhcmdldCByZWdpc3RlciBAcmVnIGNvbnRh aW5zIHRoZSBleHBlY3RlZAorICogQHZhbHVlIGFmdGVyIGFwcGx5aW5nIHRoZSBAbWFzaywgaS5l LiBpdCB3YWl0cyB1bnRpbAorICogICAoSTkxNV9SRUFEX0ZXKEByZWcpICYgQG1hc2spID09IEB2 YWx1ZQorICogT3RoZXJ3aXNlLCB0aGUgd2FpdCB3aWxsIHRpbWVvdXQgYWZ0ZXIgQHRpbWVvdXRf bXMgbWlsbGlzZWNvbmRzLgorICoKKyAqIE5vdGUgdGhhdCB0aGlzIHJvdXRpbmUgYXNzdW1lcyB0 aGUgY2FsbGVyIGhvbGRzIGZvcmNld2FrZSBhc3NlcnRlZCwgaXQgaXMKKyAqIG5vdCBzdWl0YWJs ZSBmb3IgdmVyeSBsb25nIHdhaXRzLiBTZWUgaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoKSBpZiB5 b3UKKyAqIHdpc2ggdG8gd2FpdCB3aXRob3V0IGhvbGRpbmcgZm9yY2V3YWtlIGZvciB0aGUgZHVy YXRpb24gKGkuZS4geW91IGV4cGVjdAorICogdGhlIHdhaXQgdG8gYmUgc2xvdykuCisgKgorICog UmV0dXJucyAwIGlmIHRoZSByZWdpc3RlciBtYXRjaGVzIHRoZSBkZXNpcmVkIGNvbmRpdGlvbiwg b3IgLUVUSU1FT1VULgorICovCitpbnQgaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXJfZncoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgIGk5MTVfcmVnX3QgcmVnLAor CQkJICAgICAgIGNvbnN0IHUzMiBtYXNrLAorCQkJICAgICAgIGNvbnN0IHUzMiB2YWx1ZSwKKwkJ CSAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIHRpbWVvdXRfbXMpCit7CisjZGVmaW5lIGRvbmUg KChJOTE1X1JFQURfRlcocmVnKSAmIG1hc2spID09IHZhbHVlKQorCWludCByZXQgPSB3YWl0X2Zv cl91cyhkb25lLCAyKTsKKwlpZiAocmV0KQorCQlyZXQgPSB3YWl0X2Zvcihkb25lLCB0aW1lb3V0 X21zKTsKKwlyZXR1cm4gcmV0OworI3VuZGVmIGRvbmUKK30KKworLyoqCisgKiBpbnRlbF93YWl0 X2Zvcl9yZWdpc3RlciAtIHdhaXQgdW50aWwgcmVnaXN0ZXIgbWF0Y2hlcyBleHBlY3RlZCBzdGF0 ZQorICogQGRldl9wcml2OiB0aGUgaTkxNSBkZXZpY2UKKyAqIEByZWc6IHRoZSByZWdpc3RlciB0 byByZWFkCisgKiBAbWFzazogbWFzayB0byBhcHBseSB0byByZWdpc3RlciB2YWx1ZQorICogQHZh bHVlOiBleHBlY3RlZCB2YWx1ZQorICogQHRpbWVvdXRfbXM6IHRpbWVvdXQgaW4gbWlsbGlzZWNv bmQKKyAqCisgKiBUaGlzIHJvdXRpbmUgd2FpdHMgdW50aWwgdGhlIHRhcmdldCByZWdpc3RlciBA cmVnIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorICogQHZhbHVlIGFmdGVyIGFwcGx5aW5nIHRoZSBA bWFzaywgaS5lLiBpdCB3YWl0cyB1bnRpbAorICogICAoSTkxNV9SRUFEKEByZWcpICYgQG1hc2sp ID09IEB2YWx1ZQorICogT3RoZXJ3aXNlLCB0aGUgd2FpdCB3aWxsIHRpbWVvdXQgYWZ0ZXIgQHRp bWVvdXRfbXMgbWlsbGlzZWNvbmRzLgorICoKKyAqIFJldHVybnMgMCBpZiB0aGUgcmVnaXN0ZXIg bWF0Y2hlcyB0aGUgZGVzaXJlZCBjb25kaXRpb24sIG9yIC1FVElNRU9VVC4KKyAqLworaW50IGlu dGVsX3dhaXRfZm9yX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK KwkJCSAgICBpOTE1X3JlZ190IHJlZywKKwkJCSAgICBjb25zdCB1MzIgbWFzaywKKwkJCSAgICBj b25zdCB1MzIgdmFsdWUsCisJCQkgICAgY29uc3QgdW5zaWduZWQgbG9uZyB0aW1lb3V0X21zKQog ewotCXJldHVybiB3YWl0X2ZvcigoSTkxNV9SRUFEX0ZXKHJlZykgJiBtYXNrKSA9PSB2YWx1ZSwg dGltZW91dF9tcyk7CisKKwl1bnNpZ25lZCBmdyA9CisJCWludGVsX3VuY29yZV9mb3JjZXdha2Vf Zm9yX3JlZyhkZXZfcHJpdiwgcmVnLCBGV19SRUdfUkVBRCk7CisJaW50IHJldDsKKworCWludGVs X3VuY29yZV9mb3JjZXdha2VfZ2V0KGRldl9wcml2LCBmdyk7CisJcmV0ID0gd2FpdF9mb3JfdXMo KEk5MTVfUkVBRF9GVyhyZWcpICYgbWFzaykgPT0gdmFsdWUsIDIpOworCWludGVsX3VuY29yZV9m b3JjZXdha2VfcHV0KGRldl9wcml2LCBmdyk7CisJaWYgKHJldCkKKwkJcmV0ID0gd2FpdF9mb3Io KEk5MTVfUkVBRF9OT1RSQUNFKHJlZykgJiBtYXNrKSA9PSB2YWx1ZSwKKwkJCSAgICAgICB0aW1l b3V0X21zKTsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgZ2VuOF9yZXF1ZXN0X2Vu Z2luZV9yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCkBAIC0xNjI2LDExICsx Njg3LDExIEBAIHN0YXRpYyBpbnQgZ2VuOF9yZXF1ZXN0X2VuZ2luZV9yZXNldChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJSTkxNV9XUklURV9GVyhSSU5HX1JFU0VUX0NUTChlbmdp bmUtPm1taW9fYmFzZSksCiAJCSAgICAgIF9NQVNLRURfQklUX0VOQUJMRShSRVNFVF9DVExfUkVR VUVTVF9SRVNFVCkpOwogCi0JcmV0ID0gd2FpdF9mb3JfcmVnaXN0ZXJfZncoZGV2X3ByaXYsCi0J CQkJICAgUklOR19SRVNFVF9DVEwoZW5naW5lLT5tbWlvX2Jhc2UpLAotCQkJCSAgIFJFU0VUX0NU TF9SRUFEWV9UT19SRVNFVCwKLQkJCQkgICBSRVNFVF9DVExfUkVBRFlfVE9fUkVTRVQsCi0JCQkJ ICAgNzAwKTsKKwlyZXQgPSBpbnRlbF93YWl0X2Zvcl9yZWdpc3Rlcl9mdyhkZXZfcHJpdiwKKwkJ CQkJIFJJTkdfUkVTRVRfQ1RMKGVuZ2luZS0+bW1pb19iYXNlKSwKKwkJCQkJIFJFU0VUX0NUTF9S RUFEWV9UT19SRVNFVCwKKwkJCQkJIFJFU0VUX0NUTF9SRUFEWV9UT19SRVNFVCwKKwkJCQkJIDcw MCk7CiAJaWYgKHJldCkKIAkJRFJNX0VSUk9SKCIlczogcmVzZXQgcmVxdWVzdCB0aW1lb3V0XG4i LCBlbmdpbmUtPm5hbWUpOwogCi0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==