From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v3] drm/i915: Handle RC6 counter wrap Date: Thu, 8 Feb 2018 08:18:42 +0000 Message-ID: <20180208081842.6190-1-tvrtko.ursulin@linux.intel.com> References: <151807682017.28809.17040553218386245341@mail.alporthouse.com151807682017.28809.17040553218386245341@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A8C66E401 for ; Thu, 8 Feb 2018 08:18:53 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id v71so8149748wmv.2 for ; Thu, 08 Feb 2018 00:18:53 -0800 (PST) In-Reply-To: <151807682017.28809.17040553218386245341@mail.alporthouse.com151807682017.28809.17040553218386245341@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 bmQgdGhlIGNvbW1lbnQgdG8gZXhwbGFpbiB3aHkgaW5kZXhpbmcgd29ya3MuCgpTaWduZWQtb2Zm LWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpCdWd6aWxsYTog aHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ4NTIKQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIHwg NjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCBhZDFmYzg0NWNkMWIuLjI4YTI2NzFhMjZjNyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCkBAIC05NDYsNiArOTQ2LDggQEAgc3RydWN0IGludGVsX3JwcyB7CiAKIHN0cnVjdCBp bnRlbF9yYzYgewogCWJvb2wgZW5hYmxlZDsKKwl1NjQgcHJldl9od19yZXNpZGVuY3lbNF07CisJ dTY0IGN1cl9yZXNpZGVuY3lbNF07CiB9OwogCiBzdHJ1Y3QgaW50ZWxfbGxjX3BzdGF0ZSB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA0MWYyNmFiNDY1MDEuLjA2M2M4ODUxNzVlNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC05NDE3LDE1ICs5NDE3LDE2IEBAIHN0YXRpYyB1NjQg dmx2X3Jlc2lkZW5jeV9yYXcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ ICAgICBjb25zdCBpOTE1X3JlZ190IHJlZykKIHsKIAl1MzIgbG93ZXIsIHVwcGVyLCB0bXA7Ci0J dW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgbG9vcCA9IDI7CiAKLQkvKiBUaGUgcmVnaXN0ZXIg YWNjZXNzZWQgZG8gbm90IG5lZWQgZm9yY2V3YWtlLiBXZSBib3Jyb3cKKwkvKgorCSAqIFRoZSBy ZWdpc3RlciBhY2Nlc3NlZCBkbyBub3QgbmVlZCBmb3JjZXdha2UuIFdlIGJvcnJvdwogCSAqIHVu Y29yZSBsb2NrIHRvIHByZXZlbnQgY29uY3VycmVudCBhY2Nlc3MgdG8gcmFuZ2UgcmVnLgogCSAq LwotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGZsYWdzKTsKKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOwogCi0JLyogdmx2IGFu ZCBjaHYgcmVzaWRlbmN5IGNvdW50ZXJzIGFyZSA0MCBiaXRzIGluIHdpZHRoLgorCS8qCisJICog dmx2IGFuZCBjaHYgcmVzaWRlbmN5IGNvdW50ZXJzIGFyZSA0MCBiaXRzIGluIHdpZHRoLgogCSAq IFdpdGggYSBjb250cm9sIGJpdCwgd2UgY2FuIGNob29zZSBiZXR3ZWVuIHVwcGVyIG9yIGxvd2Vy CiAJICogMzJiaXQgd2luZG93IGludG8gdGhpcyBjb3VudGVyLgogCSAqCkBAIC05NDQ5LDI5ICs5 NDUwLDQ5IEBAIHN0YXRpYyB1NjQgdmx2X3Jlc2lkZW5jeV9yYXcoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQl1cHBlciA9IEk5MTVfUkVBRF9GVyhyZWcpOwogCX0gd2hpbGUg KHVwcGVyICE9IHRtcCAmJiAtLWxvb3ApOwogCi0JLyogRXZlcnl3aGVyZSBlbHNlIHdlIGFsd2F5 cyB1c2UgVkxWX0NPVU5URVJfQ09OVFJPTCB3aXRoIHRoZQorCS8qCisJICogRXZlcnl3aGVyZSBl bHNlIHdlIGFsd2F5cyB1c2UgVkxWX0NPVU5URVJfQ09OVFJPTCB3aXRoIHRoZQogCSAqIFZMVl9D T1VOVF9SQU5HRV9ISUdIIGJpdCBzZXQgLSBzbyBpdCBpcyBzYWZlIHRvIGxlYXZlIGl0IHNldAog CSAqIG5vdy4KIAkgKi8KIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNv cmUubG9jaywgZmxhZ3MpOwotCiAJcmV0dXJuIGxvd2VyIHwgKHU2NCl1cHBlciA8PCA4OwogfQog CiB1NjQgaW50ZWxfcmM2X3Jlc2lkZW5jeV9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCQkgICBjb25zdCBpOTE1X3JlZ190IHJlZykKIHsKLQl1NjQgdGltZV9odzsKKwl1 NjQgdGltZV9odywgcHJldl9odywgb3ZlcmZsb3dfaHc7CisJdW5zaWduZWQgaW50IGZ3X2RvbWFp bnM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgaTsKIAl1MzIgbXVsLCBk aXY7CiAKIAlpZiAoIUhBU19SQzYoZGV2X3ByaXYpKQogCQlyZXR1cm4gMDsKIAorCS8qCisJICog U3RvcmUgcHJldmlvdXMgaHcgY291bnRlciB2YWx1ZXMgZm9yIGNvdW50ZXIgd3JhcC1hcm91bmQg aGFuZGxpbmcuCisJICoKKwkgKiBUaGVyZSBhcmUgb25seSBmb3VyIGludGVyZXN0aW5nIHJlZ2lz dGVycyBhbmQgdGhleSBsaXZlIG5leHQgdG8gZWFjaAorCSAqIG90aGVyIHNvIHdlIGNhbiB1c2Ug dGhlIHJlbGF0aXZlIGFkZHJlc3MsIGNvbXBhcmVkIHRvIHRoZSBzbWFsbGVzdAorCSAqIG9uZSBh cyB0aGUgaW5kZXggaW50byBkcml2ZXIgc3RvcmFnZS4KKwkgKi8KKwlpID0gKGk5MTVfbW1pb19y ZWdfb2Zmc2V0KHJlZykgLQorCSAgICAgaTkxNV9tbWlvX3JlZ19vZmZzZXQoR0VONl9HVF9HRlhf UkM2X0xPQ0tFRCkpIC8gc2l6ZW9mKHUzMik7CisJaWYgKFdBUk5fT05fT05DRShpID49IEFSUkFZ X1NJWkUoZGV2X3ByaXYtPmd0X3BtLnJjNi5jdXJfcmVzaWRlbmN5KSkpCisJCXJldHVybiAwOwor CisJZndfZG9tYWlucyA9IGludGVsX3VuY29yZV9mb3JjZXdha2VfZm9yX3JlZyhkZXZfcHJpdiwg cmVnLCBGV19SRUdfUkVBRCk7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnVuY29y ZS5sb2NrLCBmbGFncyk7CisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXRfX2xvY2tlZChkZXZf cHJpdiwgZndfZG9tYWlucyk7CisKIAkvKiBPbiBWTFYgYW5kIENIViwgcmVzaWRlbmN5IHRpbWUg aXMgaW4gQ1ogdW5pdHMgcmF0aGVyIHRoYW4gMS4yOHVzICovCiAJaWYgKElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCW11bCA9IDEwMDAwMDA7 CiAJCWRpdiA9IGRldl9wcml2LT5jemNsa19mcmVxOworCQlvdmVyZmxvd19odyA9IEJJVF9VTEwo NDApOwogCQl0aW1lX2h3ID0gdmx2X3Jlc2lkZW5jeV9yYXcoZGV2X3ByaXYsIHJlZyk7CiAJfSBl bHNlIHsKIAkJLyogODMzLjMzbnMgdW5pdHMgb24gR2VuOUxQLCAxLjI4dXMgZWxzZXdoZXJlLiAq LwpAQCAtOTQ4Myw5ICs5NTA0LDMyIEBAIHU2NCBpbnRlbF9yYzZfcmVzaWRlbmN5X25zKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWRpdiA9IDE7CiAJCX0KIAotCQl0aW1l X2h3ID0gSTkxNV9SRUFEKHJlZyk7CisJCW92ZXJmbG93X2h3ID0gQklUX1VMTCgzMik7CisJCXRp bWVfaHcgPSBJOTE1X1JFQURfRlcocmVnKTsKIAl9CiAKKwkvKgorCSAqIENvdW50ZXIgd3JhcCBo YW5kbGluZy4KKwkgKgorCSAqIEJ1dCByZWx5aW5nIG9uIGEgc3VmZmljaWVudCBmcmVxdWVuY3kg b2YgcXVlcmllcyBvdGhlcndpc2UgY291bnRlcnMKKwkgKiBjYW4gc3RpbGwgd3JhcC4KKwkgKi8K KwlwcmV2X2h3ID0gZGV2X3ByaXYtPmd0X3BtLnJjNi5wcmV2X2h3X3Jlc2lkZW5jeVtpXTsKKwlk ZXZfcHJpdi0+Z3RfcG0ucmM2LnByZXZfaHdfcmVzaWRlbmN5W2ldID0gdGltZV9odzsKKworCS8q IFJDNiBkZWx0YSBmcm9tIGxhc3Qgc2FtcGxlLiAqLworCWlmICh0aW1lX2h3ID49IHByZXZfaHcp CisJCXRpbWVfaHcgLT0gcHJldl9odzsKKwllbHNlCisJCXRpbWVfaHcgKz0gb3ZlcmZsb3dfaHcg LSBwcmV2X2h3OworCisJLyogQWRkIGRlbHRhIHRvIFJDNiBleHRlbmRlZCByYXcgZHJpdmVyIGNv cHkuICovCisJdGltZV9odyArPSBkZXZfcHJpdi0+Z3RfcG0ucmM2LmN1cl9yZXNpZGVuY3lbaV07 CisJZGV2X3ByaXYtPmd0X3BtLnJjNi5jdXJfcmVzaWRlbmN5W2ldID0gdGltZV9odzsKKworCWlu dGVsX3VuY29yZV9mb3JjZXdha2VfcHV0X19sb2NrZWQoZGV2X3ByaXYsIGZ3X2RvbWFpbnMpOwor CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgZmxhZ3MpOwor CiAJcmV0dXJuIERJVl9ST1VORF9VUF9VTEwodGltZV9odyAqIG11bCwgZGl2KTsKIH0KIAotLSAK Mi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK