From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v5] drm/i915: Handle RC6 counter wrap Date: Thu, 8 Feb 2018 16:00:36 +0000 Message-ID: <20180208160036.29919-1-tvrtko.ursulin@linux.intel.com> References: <151810509993.28809.2232183378316076347@mail.alporthouse.com> 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 2DE3D6E0C4 for ; Thu, 8 Feb 2018 16:00:47 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id t74so10424248wme.3 for ; Thu, 08 Feb 2018 08:00:47 -0800 (PST) In-Reply-To: <151810509993.28809.2232183378316076347@mail.alporthouse.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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGNhbiBp bXBsZW1lbnQgbGltaXRlZCBSQzYgY291bnRlciB3cmFwLWFyb3VuZCBwcm90ZWN0aW9uIHVuZGVy IHRoZQphc3N1bXB0aW9uIHRoYXQgY2xpZW50cyB3aWxsIGJlIHJlYWRpbmcgdGhpcyB2YWx1ZSBt b3JlIGZyZXF1ZW50bHkgdGhhbgp0aGUgd3JhcCBwZXJpb2Qgb24gYSBnaXZlbiBwbGF0Zm9ybS4K CldpdGggdGhlIHR5cGljYWwgd3JhcC1hcm91bmQgcGVyaW9kIGJlaW5nIH45MCBtaW51dGVzLCBl dmVuIHdpdGggdGhlCmV4Y2VwdGlvbiBvZiBCYXl0cmFpbCB3aGljaCB3cmFwcyBldmVyeSAxMyBz ZWNvbmRzLCB0aGlzIHNvdW5kcyBsaWtlIGEKcmVhc29uYWJsZSBhc3N1bXB0aW9uLgoKSW1wbGVt ZW50YXRpb24gd29ya3MgYnkgc3RvcmluZyBhIDY0LWJpdCBzb2Z0d2FyZSBjb3B5IG9mIGEgaGFy ZHdhcmUgUkM2CmNvdW50ZXIsIGFsb25nIHdpdGggdGhlIHByZXZpb3VzIEhXIGNvdW50ZXIgc25h cHNob3QuIFRoaXMgZW5hYmxlcyBpdCB0bwpkZXRlY3Qgd3JhcCBpcyBwb2xsZWQgZnJlcXVlbnRs eSBlbm91Z2ggYW5kIGtlZXAgdGhlIHNvZnR3YXJlIGNvcHkKbW9ub3RvbmljYWxseSBpbmNyZW1l bnRpbmcuCgp2MjoKICogTWlzc2VkIEdFTjZfR1RfR0ZYX1JDNl9MT0NLRUQgd2hlbiBjb25zaWRl cmluZyBzbG90IHNpemluZyBhbmQKICAgaW5kZXhpbmcuCiAqIEZpeGVkIG9mZi1ieS1vbmUgaW4g d3JhcC1hcm91bmQgaGFuZGxpbmcuIChDaHJpcyBXaWxzb24pCgp2MzoKICogU2ltcGxpZnkgaW5k ZXggY2hlY2tpbmcgYnkgdXNpbmcgdW5zaWduZWQgaW50LiAoQ2hyaXMgV2lsc29uKQogKiBFeHBh bmQgdGhlIGNvbW1lbnQgdG8gZXhwbGFpbiB3aHkgaW5kZXhpbmcgd29ya3MuCgp2NDoKICogVXNl IF9faW50MTI4IGlmIHN1cHBvcnRlZC4KCnY1OgogKiBVc2UgbXVsX3U2NF91MzJfZGl2LiAoQ2hy aXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19i dWcuY2dpP2lkPTk0ODUyCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAj IHYzCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggfCAgMiArKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYyB8IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGFkMWZjODQ1Y2QxYi4uMjhhMjY3MWEy NmM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTk0Niw2ICs5NDYsOCBAQCBzdHJ1Y3Qg aW50ZWxfcnBzIHsKIAogc3RydWN0IGludGVsX3JjNiB7CiAJYm9vbCBlbmFibGVkOworCXU2NCBw cmV2X2h3X3Jlc2lkZW5jeVs0XTsKKwl1NjQgY3VyX3Jlc2lkZW5jeVs0XTsKIH07CiAKIHN0cnVj dCBpbnRlbF9sbGNfcHN0YXRlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDQxZjI2YWI0 NjUwMS4uYjEwZjY3MzM4YzBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTk0MTcsMTUg Kzk0MTcsMTYgQEAgc3RhdGljIHU2NCB2bHZfcmVzaWRlbmN5X3JhdyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgIGNvbnN0IGk5MTVfcmVnX3QgcmVnKQogewogCXUz MiBsb3dlciwgdXBwZXIsIHRtcDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBsb29wID0g MjsKIAotCS8qIFRoZSByZWdpc3RlciBhY2Nlc3NlZCBkbyBub3QgbmVlZCBmb3JjZXdha2UuIFdl IGJvcnJvdworCS8qCisJICogVGhlIHJlZ2lzdGVyIGFjY2Vzc2VkIGRvIG5vdCBuZWVkIGZvcmNl d2FrZS4gV2UgYm9ycm93CiAJICogdW5jb3JlIGxvY2sgdG8gcHJldmVudCBjb25jdXJyZW50IGFj Y2VzcyB0byByYW5nZSByZWcuCiAJICovCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT51 bmNvcmUubG9jaywgZmxhZ3MpOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT51bmNv cmUubG9jayk7CiAKLQkvKiB2bHYgYW5kIGNodiByZXNpZGVuY3kgY291bnRlcnMgYXJlIDQwIGJp dHMgaW4gd2lkdGguCisJLyoKKwkgKiB2bHYgYW5kIGNodiByZXNpZGVuY3kgY291bnRlcnMgYXJl IDQwIGJpdHMgaW4gd2lkdGguCiAJICogV2l0aCBhIGNvbnRyb2wgYml0LCB3ZSBjYW4gY2hvb3Nl IGJldHdlZW4gdXBwZXIgb3IgbG93ZXIKIAkgKiAzMmJpdCB3aW5kb3cgaW50byB0aGlzIGNvdW50 ZXIuCiAJICoKQEAgLTk0NDksMjkgKzk0NTAsNDkgQEAgc3RhdGljIHU2NCB2bHZfcmVzaWRlbmN5 X3JhdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXVwcGVyID0gSTkxNV9S RUFEX0ZXKHJlZyk7CiAJfSB3aGlsZSAodXBwZXIgIT0gdG1wICYmIC0tbG9vcCk7CiAKLQkvKiBF dmVyeXdoZXJlIGVsc2Ugd2UgYWx3YXlzIHVzZSBWTFZfQ09VTlRFUl9DT05UUk9MIHdpdGggdGhl CisJLyoKKwkgKiBFdmVyeXdoZXJlIGVsc2Ugd2UgYWx3YXlzIHVzZSBWTFZfQ09VTlRFUl9DT05U Uk9MIHdpdGggdGhlCiAJICogVkxWX0NPVU5UX1JBTkdFX0hJR0ggYml0IHNldCAtIHNvIGl0IGlz IHNhZmUgdG8gbGVhdmUgaXQgc2V0CiAJICogbm93LgogCSAqLwogCi0Jc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBmbGFncyk7Ci0KIAlyZXR1cm4gbG93ZXIg fCAodTY0KXVwcGVyIDw8IDg7CiB9CiAKIHU2NCBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgIGNvbnN0IGk5MTVfcmVnX3QgcmVn KQogewotCXU2NCB0aW1lX2h3OworCXU2NCB0aW1lX2h3LCBwcmV2X2h3LCBvdmVyZmxvd19odzsK Kwl1bnNpZ25lZCBpbnQgZndfZG9tYWluczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2ln bmVkIGludCBpOwogCXUzMiBtdWwsIGRpdjsKIAogCWlmICghSEFTX1JDNihkZXZfcHJpdikpCiAJ CXJldHVybiAwOwogCisJLyoKKwkgKiBTdG9yZSBwcmV2aW91cyBodyBjb3VudGVyIHZhbHVlcyBm b3IgY291bnRlciB3cmFwLWFyb3VuZCBoYW5kbGluZy4KKwkgKgorCSAqIFRoZXJlIGFyZSBvbmx5 IGZvdXIgaW50ZXJlc3RpbmcgcmVnaXN0ZXJzIGFuZCB0aGV5IGxpdmUgbmV4dCB0byBlYWNoCisJ ICogb3RoZXIgc28gd2UgY2FuIHVzZSB0aGUgcmVsYXRpdmUgYWRkcmVzcywgY29tcGFyZWQgdG8g dGhlIHNtYWxsZXN0CisJICogb25lIGFzIHRoZSBpbmRleCBpbnRvIGRyaXZlciBzdG9yYWdlLgor CSAqLworCWkgPSAoaTkxNV9tbWlvX3JlZ19vZmZzZXQocmVnKSAtCisJICAgICBpOTE1X21taW9f cmVnX29mZnNldChHRU42X0dUX0dGWF9SQzZfTE9DS0VEKSkgLyBzaXplb2YodTMyKTsKKwlpZiAo V0FSTl9PTl9PTkNFKGkgPj0gQVJSQVlfU0laRShkZXZfcHJpdi0+Z3RfcG0ucmM2LmN1cl9yZXNp ZGVuY3kpKSkKKwkJcmV0dXJuIDA7CisKKwlmd19kb21haW5zID0gaW50ZWxfdW5jb3JlX2ZvcmNl d2FrZV9mb3JfcmVnKGRldl9wcml2LCByZWcsIEZXX1JFR19SRUFEKTsKKworCXNwaW5fbG9ja19p cnFzYXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGZsYWdzKTsKKwlpbnRlbF91bmNvcmVfZm9y Y2V3YWtlX2dldF9fbG9ja2VkKGRldl9wcml2LCBmd19kb21haW5zKTsKKwogCS8qIE9uIFZMViBh bmQgQ0hWLCByZXNpZGVuY3kgdGltZSBpcyBpbiBDWiB1bml0cyByYXRoZXIgdGhhbiAxLjI4dXMg Ki8KIAlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpIHsKIAkJbXVsID0gMTAwMDAwMDsKIAkJZGl2ID0gZGV2X3ByaXYtPmN6Y2xrX2ZyZXE7CisJ CW92ZXJmbG93X2h3ID0gQklUX1VMTCg0MCk7CiAJCXRpbWVfaHcgPSB2bHZfcmVzaWRlbmN5X3Jh dyhkZXZfcHJpdiwgcmVnKTsKIAl9IGVsc2UgewogCQkvKiA4MzMuMzNucyB1bml0cyBvbiBHZW45 TFAsIDEuMjh1cyBlbHNld2hlcmUuICovCkBAIC05NDgzLDEwICs5NTA0LDMzIEBAIHU2NCBpbnRl bF9yYzZfcmVzaWRlbmN5X25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ CWRpdiA9IDE7CiAJCX0KIAotCQl0aW1lX2h3ID0gSTkxNV9SRUFEKHJlZyk7CisJCW92ZXJmbG93 X2h3ID0gQklUX1VMTCgzMik7CisJCXRpbWVfaHcgPSBJOTE1X1JFQURfRlcocmVnKTsKIAl9CiAK LQlyZXR1cm4gRElWX1JPVU5EX1VQX1VMTCh0aW1lX2h3ICogbXVsLCBkaXYpOworCS8qCisJICog Q291bnRlciB3cmFwIGhhbmRsaW5nLgorCSAqCisJICogQnV0IHJlbHlpbmcgb24gYSBzdWZmaWNp ZW50IGZyZXF1ZW5jeSBvZiBxdWVyaWVzIG90aGVyd2lzZSBjb3VudGVycworCSAqIGNhbiBzdGls bCB3cmFwLgorCSAqLworCXByZXZfaHcgPSBkZXZfcHJpdi0+Z3RfcG0ucmM2LnByZXZfaHdfcmVz aWRlbmN5W2ldOworCWRldl9wcml2LT5ndF9wbS5yYzYucHJldl9od19yZXNpZGVuY3lbaV0gPSB0 aW1lX2h3OworCisJLyogUkM2IGRlbHRhIGZyb20gbGFzdCBzYW1wbGUuICovCisJaWYgKHRpbWVf aHcgPj0gcHJldl9odykKKwkJdGltZV9odyAtPSBwcmV2X2h3OworCWVsc2UKKwkJdGltZV9odyAr PSBvdmVyZmxvd19odyAtIHByZXZfaHc7CisKKwkvKiBBZGQgZGVsdGEgdG8gUkM2IGV4dGVuZGVk IHJhdyBkcml2ZXIgY29weS4gKi8KKwl0aW1lX2h3ICs9IGRldl9wcml2LT5ndF9wbS5yYzYuY3Vy X3Jlc2lkZW5jeVtpXTsKKwlkZXZfcHJpdi0+Z3RfcG0ucmM2LmN1cl9yZXNpZGVuY3lbaV0gPSB0 aW1lX2h3OworCisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXRfX2xvY2tlZChkZXZfcHJpdiwg ZndfZG9tYWlucyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5s b2NrLCBmbGFncyk7CisKKwlyZXR1cm4gbXVsX3U2NF91MzJfZGl2KHRpbWVfaHcsIG11bCwgZGl2 KTsKIH0KIAogdTMyIGludGVsX2dldF9jYWdmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTMyIHJwc3RhdCkKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==