From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v4] drm/i915: Handle RC6 counter wrap Date: Thu, 8 Feb 2018 15:46:38 +0000 Message-ID: <20180208154638.23839-1-tvrtko.ursulin@linux.intel.com> References: <20180208081842.6190-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA6A889873 for ; Thu, 8 Feb 2018 15:46:48 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id v71so10826183wmv.2 for ; Thu, 08 Feb 2018 07:46:48 -0800 (PST) In-Reply-To: <20180208081842.6190-1-tvrtko.ursulin@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGNhbiBp bXBsZW1lbnQgbGltaXRlZCBSQzYgY291bnRlciB3cmFwLWFyb3VuZCBwcm90ZWN0aW9uIHVuZGVy IHRoZQphc3N1bXB0aW9uIHRoYXQgY2xpZW50cyB3aWxsIGJlIHJlYWRpbmcgdGhpcyB2YWx1ZSBt b3JlIGZyZXF1ZW50bHkgdGhhbgp0aGUgd3JhcCBwZXJpb2Qgb24gYSBnaXZlbiBwbGF0Zm9ybS4K CldpdGggdGhlIHR5cGljYWwgd3JhcC1hcm91bmQgcGVyaW9kIGJlaW5nIH45MCBtaW51dGVzLCBl dmVuIHdpdGggdGhlCmV4Y2VwdGlvbiBvZiBCYXl0cmFpbCB3aGljaCB3cmFwcyBldmVyeSAxMyBz ZWNvbmRzLCB0aGlzIHNvdW5kcyBsaWtlIGEKcmVhc29uYWJsZSBhc3N1bXB0aW9uLgoKSW1wbGVt ZW50YXRpb24gd29ya3MgYnkgc3RvcmluZyBhIDY0LWJpdCBzb2Z0d2FyZSBjb3B5IG9mIGEgaGFy ZHdhcmUgUkM2CmNvdW50ZXIsIGFsb25nIHdpdGggdGhlIHByZXZpb3VzIEhXIGNvdW50ZXIgc25h cHNob3QuIFRoaXMgZW5hYmxlcyBpdCB0bwpkZXRlY3Qgd3JhcCBpcyBwb2xsZWQgZnJlcXVlbnRs eSBlbm91Z2ggYW5kIGtlZXAgdGhlIHNvZnR3YXJlIGNvcHkKbW9ub3RvbmljYWxseSBpbmNyZW1l bnRpbmcuCgp2MjoKICogTWlzc2VkIEdFTjZfR1RfR0ZYX1JDNl9MT0NLRUQgd2hlbiBjb25zaWRl cmluZyBzbG90IHNpemluZyBhbmQKICAgaW5kZXhpbmcuCiAqIEZpeGVkIG9mZi1ieS1vbmUgaW4g d3JhcC1hcm91bmQgaGFuZGxpbmcuIChDaHJpcyBXaWxzb24pCgp2MzoKICogU2ltcGxpZnkgaW5k ZXggY2hlY2tpbmcgYnkgdXNpbmcgdW5zaWduZWQgaW50LiAoQ2hyaXMgV2lsc29uKQogKiBFeHBh bmQgdGhlIGNvbW1lbnQgdG8gZXhwbGFpbiB3aHkgaW5kZXhpbmcgd29ya3MuCgp2NDoKICogVXNl IF9faW50MTI4IGlmIHN1cHBvcnRlZC4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0 b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05NDg1MgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4gIyB2MwpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIHwgIDIgKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCA3MiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBhZDFmYzg0NWNk MWIuLjI4YTI2NzFhMjZjNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC05NDYsNiArOTQ2 LDggQEAgc3RydWN0IGludGVsX3JwcyB7CiAKIHN0cnVjdCBpbnRlbF9yYzYgewogCWJvb2wgZW5h YmxlZDsKKwl1NjQgcHJldl9od19yZXNpZGVuY3lbNF07CisJdTY0IGN1cl9yZXNpZGVuY3lbNF07 CiB9OwogCiBzdHJ1Y3QgaW50ZWxfbGxjX3BzdGF0ZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpp bmRleCA0MWYyNmFiNDY1MDEuLjI0ZDk0MjNjNWY5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CkBAIC05NDE3LDE1ICs5NDE3LDE2IEBAIHN0YXRpYyB1NjQgdmx2X3Jlc2lkZW5jeV9yYXcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICBjb25zdCBpOTE1X3JlZ190 IHJlZykKIHsKIAl1MzIgbG93ZXIsIHVwcGVyLCB0bXA7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsK IAlpbnQgbG9vcCA9IDI7CiAKLQkvKiBUaGUgcmVnaXN0ZXIgYWNjZXNzZWQgZG8gbm90IG5lZWQg Zm9yY2V3YWtlLiBXZSBib3Jyb3cKKwkvKgorCSAqIFRoZSByZWdpc3RlciBhY2Nlc3NlZCBkbyBu b3QgbmVlZCBmb3JjZXdha2UuIFdlIGJvcnJvdwogCSAqIHVuY29yZSBsb2NrIHRvIHByZXZlbnQg Y29uY3VycmVudCBhY2Nlc3MgdG8gcmFuZ2UgcmVnLgogCSAqLwotCXNwaW5fbG9ja19pcnFzYXZl KCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGZsYWdzKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZk ZXZfcHJpdi0+dW5jb3JlLmxvY2spOwogCi0JLyogdmx2IGFuZCBjaHYgcmVzaWRlbmN5IGNvdW50 ZXJzIGFyZSA0MCBiaXRzIGluIHdpZHRoLgorCS8qCisJICogdmx2IGFuZCBjaHYgcmVzaWRlbmN5 IGNvdW50ZXJzIGFyZSA0MCBiaXRzIGluIHdpZHRoLgogCSAqIFdpdGggYSBjb250cm9sIGJpdCwg d2UgY2FuIGNob29zZSBiZXR3ZWVuIHVwcGVyIG9yIGxvd2VyCiAJICogMzJiaXQgd2luZG93IGlu dG8gdGhpcyBjb3VudGVyLgogCSAqCkBAIC05NDQ5LDI5ICs5NDUwLDU0IEBAIHN0YXRpYyB1NjQg dmx2X3Jlc2lkZW5jeV9yYXcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQl1 cHBlciA9IEk5MTVfUkVBRF9GVyhyZWcpOwogCX0gd2hpbGUgKHVwcGVyICE9IHRtcCAmJiAtLWxv b3ApOwogCi0JLyogRXZlcnl3aGVyZSBlbHNlIHdlIGFsd2F5cyB1c2UgVkxWX0NPVU5URVJfQ09O VFJPTCB3aXRoIHRoZQorCS8qCisJICogRXZlcnl3aGVyZSBlbHNlIHdlIGFsd2F5cyB1c2UgVkxW X0NPVU5URVJfQ09OVFJPTCB3aXRoIHRoZQogCSAqIFZMVl9DT1VOVF9SQU5HRV9ISUdIIGJpdCBz ZXQgLSBzbyBpdCBpcyBzYWZlIHRvIGxlYXZlIGl0IHNldAogCSAqIG5vdy4KIAkgKi8KIAotCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgZmxhZ3MpOwotCiAJ cmV0dXJuIGxvd2VyIHwgKHU2NCl1cHBlciA8PCA4OwogfQogCiB1NjQgaW50ZWxfcmM2X3Jlc2lk ZW5jeV9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICBjb25zdCBp OTE1X3JlZ190IHJlZykKIHsKLQl1NjQgdGltZV9odzsKKyNpZiBJU19FTkFCTEVEKENPTkZJR19B UkNIX1NVUFBPUlRTX0lOVDEyOCkKKwl1bnNpZ25lZCBfX2ludDEyOCBhY2M7CisjZWxzZQorCXU2 NCBhY2M7CisjZW5kaWYKKwl1NjQgdGltZV9odywgcHJldl9odywgb3ZlcmZsb3dfaHc7CisJdW5z aWduZWQgaW50IGZ3X2RvbWFpbnM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBp bnQgaTsKIAl1MzIgbXVsLCBkaXY7CiAKIAlpZiAoIUhBU19SQzYoZGV2X3ByaXYpKQogCQlyZXR1 cm4gMDsKIAorCS8qCisJICogU3RvcmUgcHJldmlvdXMgaHcgY291bnRlciB2YWx1ZXMgZm9yIGNv dW50ZXIgd3JhcC1hcm91bmQgaGFuZGxpbmcuCisJICoKKwkgKiBUaGVyZSBhcmUgb25seSBmb3Vy IGludGVyZXN0aW5nIHJlZ2lzdGVycyBhbmQgdGhleSBsaXZlIG5leHQgdG8gZWFjaAorCSAqIG90 aGVyIHNvIHdlIGNhbiB1c2UgdGhlIHJlbGF0aXZlIGFkZHJlc3MsIGNvbXBhcmVkIHRvIHRoZSBz bWFsbGVzdAorCSAqIG9uZSBhcyB0aGUgaW5kZXggaW50byBkcml2ZXIgc3RvcmFnZS4KKwkgKi8K KwlpID0gKGk5MTVfbW1pb19yZWdfb2Zmc2V0KHJlZykgLQorCSAgICAgaTkxNV9tbWlvX3JlZ19v ZmZzZXQoR0VONl9HVF9HRlhfUkM2X0xPQ0tFRCkpIC8gc2l6ZW9mKHUzMik7CisJaWYgKFdBUk5f T05fT05DRShpID49IEFSUkFZX1NJWkUoZGV2X3ByaXYtPmd0X3BtLnJjNi5jdXJfcmVzaWRlbmN5 KSkpCisJCXJldHVybiAwOworCisJZndfZG9tYWlucyA9IGludGVsX3VuY29yZV9mb3JjZXdha2Vf Zm9yX3JlZyhkZXZfcHJpdiwgcmVnLCBGV19SRUdfUkVBRCk7CisKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBmbGFncyk7CisJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9nZXRfX2xvY2tlZChkZXZfcHJpdiwgZndfZG9tYWlucyk7CisKIAkvKiBPbiBWTFYgYW5kIENI ViwgcmVzaWRlbmN5IHRpbWUgaXMgaW4gQ1ogdW5pdHMgcmF0aGVyIHRoYW4gMS4yOHVzICovCiAJ aWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7 CiAJCW11bCA9IDEwMDAwMDA7CiAJCWRpdiA9IGRldl9wcml2LT5jemNsa19mcmVxOworCQlvdmVy Zmxvd19odyA9IEJJVF9VTEwoNDApOwogCQl0aW1lX2h3ID0gdmx2X3Jlc2lkZW5jeV9yYXcoZGV2 X3ByaXYsIHJlZyk7CiAJfSBlbHNlIHsKIAkJLyogODMzLjMzbnMgdW5pdHMgb24gR2VuOUxQLCAx LjI4dXMgZWxzZXdoZXJlLiAqLwpAQCAtOTQ4MywxMCArOTUwOSwzNiBAQCB1NjQgaW50ZWxfcmM2 X3Jlc2lkZW5jeV9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlkaXYg PSAxOwogCQl9CiAKLQkJdGltZV9odyA9IEk5MTVfUkVBRChyZWcpOworCQlvdmVyZmxvd19odyA9 IEJJVF9VTEwoMzIpOworCQl0aW1lX2h3ID0gSTkxNV9SRUFEX0ZXKHJlZyk7CiAJfQogCi0JcmV0 dXJuIERJVl9ST1VORF9VUF9VTEwodGltZV9odyAqIG11bCwgZGl2KTsKKwkvKgorCSAqIENvdW50 ZXIgd3JhcCBoYW5kbGluZy4KKwkgKgorCSAqIEJ1dCByZWx5aW5nIG9uIGEgc3VmZmljaWVudCBm cmVxdWVuY3kgb2YgcXVlcmllcyBvdGhlcndpc2UgY291bnRlcnMKKwkgKiBjYW4gc3RpbGwgd3Jh cC4KKwkgKi8KKwlwcmV2X2h3ID0gZGV2X3ByaXYtPmd0X3BtLnJjNi5wcmV2X2h3X3Jlc2lkZW5j eVtpXTsKKwlkZXZfcHJpdi0+Z3RfcG0ucmM2LnByZXZfaHdfcmVzaWRlbmN5W2ldID0gdGltZV9o dzsKKworCS8qIFJDNiBkZWx0YSBmcm9tIGxhc3Qgc2FtcGxlLiAqLworCWlmICh0aW1lX2h3ID49 IHByZXZfaHcpCisJCXRpbWVfaHcgLT0gcHJldl9odzsKKwllbHNlCisJCXRpbWVfaHcgKz0gb3Zl cmZsb3dfaHcgLSBwcmV2X2h3OworCisJLyogQWRkIGRlbHRhIHRvIFJDNiBleHRlbmRlZCByYXcg ZHJpdmVyIGNvcHkuICovCisJdGltZV9odyArPSBkZXZfcHJpdi0+Z3RfcG0ucmM2LmN1cl9yZXNp ZGVuY3lbaV07CisJZGV2X3ByaXYtPmd0X3BtLnJjNi5jdXJfcmVzaWRlbmN5W2ldID0gdGltZV9o dzsKKworCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0X19sb2NrZWQoZGV2X3ByaXYsIGZ3X2Rv bWFpbnMpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywg ZmxhZ3MpOworCisJYWNjID0gdGltZV9odzsKKwlhY2MgKj0gbXVsOworCisJcmV0dXJuIERJVl9S T1VORF9VUF9VTEwoYWNjLCBkaXYpOwogfQogCiB1MzIgaW50ZWxfZ2V0X2NhZ2Yoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcnBzdGF0KQotLSAKMi4xNC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK