From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 01/11] drm/i915: Add support for tracking wakerefs w/o power-on guarantee Date: Thu, 9 May 2019 09:19:44 +0300 Message-ID: <20190509061954.10379-2-imre.deak@intel.com> References: <20190509061954.10379-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A00489A4F for ; Thu, 9 May 2019 06:20:16 +0000 (UTC) In-Reply-To: <20190509061954.10379-1-imre.deak@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 SXQncyB1c2VmdWwgdG8gdHJhY2sgcnVudGltZSBQTSByZWZzIHRoYXQgZG9uJ3QgZ3VhcmFudGVl IGEgZGV2aWNlCnBvd2VyLW9uIHN0YXRlIHRvIHRoZSByZXN0IG9mIHRoZSBkcml2ZXIuIE9uZSBz dWNoIGNhc2UgaXMgaG9sZGluZyBhCnJlZmVyZW5jZSB0aGF0IHdpbGwgYmUgcHV0IGFzeW5jaHJv bm91c2x5LCBkdXJpbmcgd2hpY2ggbm9ybWFsIHVzZXJzCndpdGhvdXQgdGhlaXIgb3duIHJlZmVy ZW5jZSBzaG91bGRuJ3QgYWNjZXNzIHRoZSBIVy4gQSBmb2xsb3ctdXAgcGF0Y2gKd2lsbCBhZGQg c3VwcG9ydCBmb3IgZGlzYWJsaW5nIGRpc3BsYXkgcG93ZXIgZG9tYWlucyBhc3luY2hyb25vdXNs eQp3aGljaCBuZWVkcyB0aGlzLgoKRm9yIHRoaXMgd2UgY2FuIHNwbGl0IHdha2VyZWZfY291bnQg aW50byBhIGxvdyBoYWxmLXdvcmQgdHJhY2tpbmcKYWxsIHJlZmVyZW5jZXMgKHJhdy13YWtlcmVm cykgYW5kIGEgaGlnaCBoYWxmLXdvcmQgdHJhY2tpbmcKcmVmZXJlbmNlcyBndWFyYW50ZWVpbmcg YSBwb3dlci1vbiBzdGF0ZSAod2FrZWxvY2tzKS4KCkZvbGxvdy11cCBwYXRjaGVzIHdpbGwgbWFr ZSB1c2Ugb2YgdGhlIEFQSSBhZGRlZCBoZXJlLgoKV2hpbGUgYXQgaXQgYWRkIHRoZSBtaXNzaW5n IGRvY2Jvb2sgaGVhZGVyIGZvciB0aGUgdW5jaGVja2VkCmRpc3BsYXktcG93ZXIgYW5kIHJ1bnRp bWVfcG0gcHV0IGZ1bmN0aW9ucy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlcywgZXhjZXB0IGZvciBw cmludGluZyBsZWFrZWQgcmF3LXdha2VyZWZzCmFuZCB3YWtlbG9ja3Mgc2VwYXJhdGVseSBpbiBp bnRlbF9ydW50aW1lX3BtX2NsZWFudXAoKS4KCnYyOgotIFRyYWNrIHJhdyB3YWtlcmVmcy93YWtl bG9ja3MgaW4gdGhlIGxvdy9oaWdoIGhhbGYtd29yZCBvZgogIHdha2VyZWZfY291bnQsIGluc3Rl YWQgb2YgYWRkaW5nIGEgbmV3IGNvdW50ZXIuIChDaHJpcykKCkNjOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRl YWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAg ICB8ICA1MiArKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j IHwgMTUwICsrKysrKysrKysrKysrKysrKy0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNjAgaW5z ZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRl eCAyNDc4OTNlZDE1NDMuLjc3MmVkMGZlZGIzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK QEAgLTE2MTksNiArMTYxOSwyNCBAQCB1bnNpZ25lZCBpbnQgaTl4eF9wbGFuZV9tYXhfc3RyaWRl KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJCQkJICAgdW5zaWduZWQgaW50IHJvdGF0aW9u KTsKIAogLyogaW50ZWxfcnVudGltZV9wbS5jICovCisjZGVmaW5lIEJJVFNfUEVSX1dBS0VSRUYJ XAorCUJJVFNfUEVSX1RZUEUoKChzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICopTlVMTCktPndha2Vy ZWZfY291bnQpCisjZGVmaW5lIElOVEVMX1JQTV9XQUtFTE9DS19TSElGVAkoQklUU19QRVJfV0FL RVJFRiAvIDIpCisjZGVmaW5lIElOVEVMX1JQTV9XQUtFTE9DS19CSUFTCQkoMSA8PCBJTlRFTF9S UE1fV0FLRUxPQ0tfU0hJRlQpCisjZGVmaW5lIElOVEVMX1JQTV9SQVdfV0FLRVJFRl9NQVNLCShJ TlRFTF9SUE1fV0FLRUxPQ0tfQklBUyAtIDEpCisKK3N0YXRpYyBpbmxpbmUgaW50CitpbnRlbF9y cG1fcmF3X3dha2VyZWZfY291bnQoaW50IHdha2VyZWZfY291bnQpCit7CisJcmV0dXJuIHdha2Vy ZWZfY291bnQgJiBJTlRFTF9SUE1fUkFXX1dBS0VSRUZfTUFTSzsKK30KKworc3RhdGljIGlubGlu ZSBpbnQKK2ludGVsX3JwbV93YWtlbG9ja19jb3VudChpbnQgd2FrZXJlZl9jb3VudCkKK3sKKwly ZXR1cm4gd2FrZXJlZl9jb3VudCA+PiBJTlRFTF9SUE1fV0FLRUxPQ0tfU0hJRlQ7Cit9CisKIHN0 YXRpYyBpbmxpbmUgdm9pZAogYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRlZChzdHJ1Y3Qg aTkxNV9ydW50aW1lX3BtICpycG0pCiB7CkBAIC0xNjI3LDExICsxNjQ1LDMzIEBAIGFzc2VydF9y cG1fZGV2aWNlX25vdF9zdXNwZW5kZWQoc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtKQogfQog CiBzdGF0aWMgaW5saW5lIHZvaWQKLV9fYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHN0cnVjdCBp OTE1X3J1bnRpbWVfcG0gKnJwbSkKK19fX19hc3NlcnRfcnBtX3Jhd193YWtlcmVmX2hlbGQoc3Ry dWN0IGk5MTVfcnVudGltZV9wbSAqcnBtLCBpbnQgd2FrZXJlZl9jb3VudCkKIHsKIAlhc3NlcnRf cnBtX2RldmljZV9ub3Rfc3VzcGVuZGVkKHJwbSk7Ci0JV0FSTl9PTkNFKCFhdG9taWNfcmVhZCgm cnBtLT53YWtlcmVmX2NvdW50KSwKLQkJICAiUlBNIHdha2Vsb2NrIHJlZiBub3QgaGVsZCBkdXJp bmcgSFcgYWNjZXNzIik7CisJV0FSTl9PTkNFKCFpbnRlbF9ycG1fcmF3X3dha2VyZWZfY291bnQo d2FrZXJlZl9jb3VudCksCisJCSAgIlJQTSByYXctd2FrZXJlZiBub3QgaGVsZFxuIik7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZAorX19fX2Fzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChzdHJ1Y3Qg aTkxNV9ydW50aW1lX3BtICpycG0sIGludCB3YWtlcmVmX2NvdW50KQoreworCV9fX19hc3NlcnRf cnBtX3Jhd193YWtlcmVmX2hlbGQocnBtLCB3YWtlcmVmX2NvdW50KTsKKwlXQVJOX09OQ0UoIWlu dGVsX3JwbV93YWtlbG9ja19jb3VudCh3YWtlcmVmX2NvdW50KSwKKwkJICAiUlBNIHdha2Vsb2Nr IHJlZiBub3QgaGVsZCBkdXJpbmcgSFcgYWNjZXNzXG4iKTsKK30KKworc3RhdGljIGlubGluZSB2 b2lkCithc3NlcnRfcnBtX3Jhd193YWtlcmVmX2hlbGQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCit7CisJc3RydWN0IGk5MTVfcnVudGltZV9wbSAqcnBtID0gJmk5MTUtPnJ1bnRpbWVf cG07CisKKwlfX19fYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9oZWxkKHJwbSwgYXRvbWljX3JlYWQo JnJwbS0+d2FrZXJlZl9jb3VudCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19fYXNzZXJ0 X3JwbV93YWtlbG9ja19oZWxkKHN0cnVjdCBpOTE1X3J1bnRpbWVfcG0gKnJwbSkKK3sKKwlfX19f YXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHJwbSwgYXRvbWljX3JlYWQoJnJwbS0+d2FrZXJlZl9j b3VudCkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKQEAgLTE2NjEsNyArMTcwMSw4IEBAIGFz c2VydF9ycG1fd2FrZWxvY2tfaGVsZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHN0 YXRpYyBpbmxpbmUgdm9pZAogZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQogewotCWF0b21pY19pbmMoJmk5MTUtPnJ1bnRpbWVfcG0ud2Fr ZXJlZl9jb3VudCk7CisJYXRvbWljX2FkZChJTlRFTF9SUE1fV0FLRUxPQ0tfQklBUyArIDEsCisJ CSAgICZpOTE1LT5ydW50aW1lX3BtLndha2VyZWZfY291bnQpOwogfQogCiAvKioKQEAgLTE2Nzgs NyArMTcxOSw4IEBAIGRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKIHN0YXRpYyBpbmxpbmUgdm9pZAogZW5hYmxlX3JwbV93YWtlcmVmX2Fz c2VydHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7Ci0JYXRvbWljX2RlYygmaTkx NS0+cnVudGltZV9wbS53YWtlcmVmX2NvdW50KTsKKwlhdG9taWNfc3ViKElOVEVMX1JQTV9XQUtF TE9DS19CSUFTICsgMSwKKwkJICAgJmk5MTUtPnJ1bnRpbWVfcG0ud2FrZXJlZl9jb3VudCk7CiB9 CiAKICNlbmRpZiAvKiBfX0lOVEVMX0RSVl9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3J1bnRpbWVfcG0uYwppbmRleCBiOGZhZGQxYjY4NWMuLjg0YTE4ZDhiOTQyYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMTEwLDkgKzExMCw2IEBAIHRyYWNr X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK IAlkZXBvdF9zdGFja19oYW5kbGVfdCBzdGFjaywgKnN0YWNrczsKIAl1bnNpZ25lZCBsb25nIGZs YWdzOwogCi0JYXRvbWljX2luYygmcnBtLT53YWtlcmVmX2NvdW50KTsKLQlhc3NlcnRfcnBtX3dh a2Vsb2NrX2hlbGQoaTkxNSk7Ci0KIAlpZiAoIUhBU19SVU5USU1FX1BNKGk5MTUpKQogCQlyZXR1 cm4gLTE7CiAKQEAgLTE0MCw3ICsxMzcsNyBAQCB0cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2Vy ZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcmV0dXJuIHN0YWNrOwogfQogCi1z dGF0aWMgdm9pZCBjYW5jZWxfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAorc3RhdGljIHZvaWQgdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dh a2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJCSAgICBkZXBvdF9zdGFj a19oYW5kbGVfdCBzdGFjaykKIHsKIAlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtICpycG0gPSAmaTkx NS0+cnVudGltZV9wbTsKQEAgLTIzNiwxNCArMjMzLDEzIEBAIF9fcHJpbnRfaW50ZWxfcnVudGlt ZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwKIH0KIAogc3RhdGljIG5vaW5saW5l IHZvaWQKLXVudHJhY2tfaW50ZWxfcnVudGltZV9wbV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQorX19pbnRlbF93YWtlcmVmX2RlY19hbmRfY2hlY2tfdHJhY2tpbmcoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RydWN0IGk5MTVfcnVudGltZV9wbSAq cnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CiAJc3RydWN0IGludGVsX3J1bnRpbWVfcG1fZGVidWcg ZGJnID0ge307CiAJc3RydWN0IGRybV9wcmludGVyIHA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsK IAotCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChpOTE1KTsKIAlpZiAoYXRvbWljX2RlY19hbmRf bG9ja19pcnFzYXZlKCZycG0tPndha2VyZWZfY291bnQsCiAJCQkJCSZycG0tPmRlYnVnLmxvY2ss CiAJCQkJCWZsYWdzKSkgewpAQCAtMzExLDE5ICszMDcsNTEgQEAgc3RhdGljIHZvaWQgaW5pdF9p bnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiBz dGF0aWMgZGVwb3Rfc3RhY2tfaGFuZGxlX3QKIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJl ZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlhdG9taWNfaW5jKCZpOTE1LT5y dW50aW1lX3BtLndha2VyZWZfY291bnQpOwotCWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChpOTE1 KTsKIAlyZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyB2b2lkIHVudHJhY2tfaW50ZWxfcnVudGltZV9w bV93YWtlcmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQorc3RhdGljIHZvaWQgdW50 cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCisJCQkJCSAgICAgaW50ZWxfd2FrZXJlZl90IHdyZWYpCit7Cit9CisKK3N0YXRpYyB2b2lk CitfX2ludGVsX3dha2VyZWZfZGVjX2FuZF9jaGVja190cmFja2luZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKIHsKLQlhc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoaTkxNSk7CiAJYXRv bWljX2RlYygmaTkxNS0+cnVudGltZV9wbS53YWtlcmVmX2NvdW50KTsKIH0KIAogI2VuZGlmCiAK K3N0YXRpYyB2b2lkCitpbnRlbF9ydW50aW1lX3BtX2FjcXVpcmUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsIGJvb2wgd2FrZWxvY2spCit7CisJc3RydWN0IGk5MTVfcnVudGltZV9wbSAq cnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CisKKwlpZiAod2FrZWxvY2spIHsKKwkJYXRvbWljX2Fk ZCgxICsgSU5URUxfUlBNX1dBS0VMT0NLX0JJQVMsICZycG0tPndha2VyZWZfY291bnQpOworCQlh c3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQoaTkxNSk7CisJfSBlbHNlIHsKKwkJYXRvbWljX2luYygm cnBtLT53YWtlcmVmX2NvdW50KTsKKwkJYXNzZXJ0X3JwbV9yYXdfd2FrZXJlZl9oZWxkKGk5MTUp OworCX0KK30KKworc3RhdGljIHZvaWQKK2ludGVsX3J1bnRpbWVfcG1fcmVsZWFzZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50IHdha2Vsb2NrKQoreworCXN0cnVjdCBpOTE1X3J1 bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOworCisJaWYgKHdha2Vsb2NrKSB7CisJ CWFzc2VydF9ycG1fd2FrZWxvY2tfaGVsZChpOTE1KTsKKwkJYXRvbWljX3N1YihJTlRFTF9SUE1f V0FLRUxPQ0tfQklBUywgJnJwbS0+d2FrZXJlZl9jb3VudCk7CisJfSBlbHNlIHsKKwkJYXNzZXJ0 X3JwbV9yYXdfd2FrZXJlZl9oZWxkKGk5MTUpOworCX0KKworCV9faW50ZWxfd2FrZXJlZl9kZWNf YW5kX2NoZWNrX3RyYWNraW5nKGk5MTUpOworfQorCiBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJf d2VsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJ IGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHBvd2VyX3dlbGxfaWQpOwogCkBAIC0xOTQ2LDEzICsx OTc0LDE3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogfQogCiAvKioKLSAqIGludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0IC0gcmVsZWFzZSBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2UKKyAqIGludGVsX2Rpc3Bs YXlfcG93ZXJfcHV0X3VuY2hlY2tlZCAtIHJlbGVhc2UgYW4gdW5jaGVja2VkIHBvd2VyIGRvbWFp biByZWZlcmVuY2UKICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKICAqIEBkb21h aW46IHBvd2VyIGRvbWFpbiB0byByZWZlcmVuY2UKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGRyb3Bz IHRoZSBwb3dlciBkb21haW4gcmVmZXJlbmNlIG9idGFpbmVkIGJ5CiAgKiBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2dldCgpIGFuZCBtaWdodCBwb3dlciBkb3duIHRoZSBjb3JyZXNwb25kaW5nIGhhcmR3 YXJlCiAgKiBibG9jayByaWdodCBhd2F5IGlmIHRoaXMgaXMgdGhlIGxhc3QgcmVmZXJlbmNlLgor ICoKKyAqIFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgZm9yIGhpc3RvcmljYWwgcmVhc29ucyBh bmQgc2hvdWxkIGJlIGF2b2lkZWQgaW4KKyAqIG5ldyBjb2RlLCBhcyB0aGUgY29ycmVjdG5lc3Mg b2YgaXRzIHVzZSBjYW5ub3QgYmUgY2hlY2tlZC4gQWx3YXlzIHVzZQorICogaW50ZWxfZGlzcGxh eV9wb3dlcl9wdXQoKSBpbnN0ZWFkLgogICovCiB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 X3VuY2hlY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAg IGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKQpAQCAtMTk2Miw2ICsxOTk0 LDE2IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXRfdW5jaGVja2VkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9J OTE1X0RFQlVHX1JVTlRJTUVfUE0pCisvKioKKyAqIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0IC0g cmVsZWFzZSBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2UKKyAqIEBkZXZfcHJpdjogaTkxNSBkZXZp Y2UgaW5zdGFuY2UKKyAqIEBkb21haW46IHBvd2VyIGRvbWFpbiB0byByZWZlcmVuY2UKKyAqIEB3 YWtlcmVmOiB3YWtlcmVmIGFjcXVpcmVkIGZvciB0aGUgcmVmZXJlbmNlIHRoYXQgaXMgYmVpbmcg cmVsZWFzZWQKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGRyb3BzIHRoZSBwb3dlciBkb21haW4gcmVm ZXJlbmNlIG9idGFpbmVkIGJ5CisgKiBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCgpIGFuZCBtaWdo dCBwb3dlciBkb3duIHRoZSBjb3JyZXNwb25kaW5nIGhhcmR3YXJlCisgKiBibG9jayByaWdodCBh d2F5IGlmIHRoaXMgaXMgdGhlIGxhc3QgcmVmZXJlbmNlLgorICovCiB2b2lkIGludGVsX2Rpc3Bs YXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAg ZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4sCiAJCQkgICAgIGludGVsX3dh a2VyZWZfdCB3YWtlcmVmKQpAQCAtNDU3OSwxOSArNDYyMSw4IEBAIHN0YXRpYyB2b2lkIGludGVs X3Bvd2VyX2RvbWFpbnNfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQogCiAjZW5kaWYKIAotLyoqCi0gKiBpbnRlbF9ydW50aW1lX3BtX2dldCAtIGdyYWIgYSBydW50 aW1lIHBtIHJlZmVyZW5jZQotICogQGk5MTU6IGk5MTUgZGV2aWNlIGluc3RhbmNlCi0gKgotICog VGhpcyBmdW5jdGlvbiBncmFicyBhIGRldmljZS1sZXZlbCBydW50aW1lIHBtIHJlZmVyZW5jZSAo bW9zdGx5IHVzZWQgZm9yIEdFTQotICogY29kZSB0byBlbnN1cmUgdGhlIEdUVCBvciBHVCBpcyBv bikgYW5kIGVuc3VyZXMgdGhhdCBpdCBpcyBwb3dlcmVkIHVwLgotICoKLSAqIEFueSBydW50aW1l IHBtIHJlZmVyZW5jZSBvYnRhaW5lZCBieSB0aGlzIGZ1bmN0aW9uIG11c3QgaGF2ZSBhIHN5bW1l dHJpYwotICogY2FsbCB0byBpbnRlbF9ydW50aW1lX3BtX3B1dCgpIHRvIHJlbGVhc2UgdGhlIHJl ZmVyZW5jZSBhZ2Fpbi4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgd2FrZXJlZiBjb29raWUgdG8gcGFz cyB0byBpbnRlbF9ydW50aW1lX3BtX3B1dCgpCi0gKi8KLWludGVsX3dha2VyZWZfdCBpbnRlbF9y dW50aW1lX3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3N0YXRpYyBpbnRl bF93YWtlcmVmX3QgX19pbnRlbF9ydW50aW1lX3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwKKwkJCQkJICAgICAgYm9vbCB3YWtlbG9jaykKIHsKIAlzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IGk5MTUtPmRybS5wZGV2OwogCXN0cnVjdCBkZXZpY2UgKmtkZXYgPSAmcGRldi0+ZGV2 OwpAQCAtNDYwMCw5ICs0NjMxLDI4IEBAIGludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3Bt X2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlyZXQgPSBwbV9ydW50aW1lX2dl dF9zeW5jKGtkZXYpOwogCVdBUk5fT05DRShyZXQgPCAwLCAicG1fcnVudGltZV9nZXRfc3luYygp IGZhaWxlZDogJWRcbiIsIHJldCk7CiAKKwlpbnRlbF9ydW50aW1lX3BtX2FjcXVpcmUoaTkxNSwg d2FrZWxvY2spOworCiAJcmV0dXJuIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihpOTE1 KTsKIH0KIAorLyoqCisgKiBpbnRlbF9ydW50aW1lX3BtX2dldCAtIGdyYWIgYSBydW50aW1lIHBt IHJlZmVyZW5jZQorICogQGk5MTU6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKgorICogVGhpcyBm dW5jdGlvbiBncmFicyBhIGRldmljZS1sZXZlbCBydW50aW1lIHBtIHJlZmVyZW5jZSAobW9zdGx5 IHVzZWQgZm9yIEdFTQorICogY29kZSB0byBlbnN1cmUgdGhlIEdUVCBvciBHVCBpcyBvbikgYW5k IGVuc3VyZXMgdGhhdCBpdCBpcyBwb3dlcmVkIHVwLgorICoKKyAqIEFueSBydW50aW1lIHBtIHJl ZmVyZW5jZSBvYnRhaW5lZCBieSB0aGlzIGZ1bmN0aW9uIG11c3QgaGF2ZSBhIHN5bW1ldHJpYwor ICogY2FsbCB0byBpbnRlbF9ydW50aW1lX3BtX3B1dCgpIHRvIHJlbGVhc2UgdGhlIHJlZmVyZW5j ZSBhZ2Fpbi4KKyAqCisgKiBSZXR1cm5zOiB0aGUgd2FrZXJlZiBjb29raWUgdG8gcGFzcyB0byBp bnRlbF9ydW50aW1lX3BtX3B1dCgpCisgKi8KK2ludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1l X3BtX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlyZXR1cm4gX19pbnRl bF9ydW50aW1lX3BtX2dldChpOTE1LCB0cnVlKTsKK30KKwogLyoqCiAgKiBpbnRlbF9ydW50aW1l X3BtX2dldF9pZl9pbl91c2UgLSBncmFiIGEgcnVudGltZSBwbSByZWZlcmVuY2UgaWYgZGV2aWNl IGluIHVzZQogICogQGk5MTU6IGk5MTUgZGV2aWNlIGluc3RhbmNlCkBAIC00NjMzLDYgKzQ2ODMs OCBAQCBpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQkJcmV0dXJuIDA7CiAJfQogCisJaW50ZWxfcnVu dGltZV9wbV9hY3F1aXJlKGk5MTUsIHRydWUpOworCiAJcmV0dXJuIHRyYWNrX2ludGVsX3J1bnRp bWVfcG1fd2FrZXJlZihpOTE1KTsKIH0KIApAQCAtNDY2MywzMyArNDcxNSw1NiBAQCBpbnRlbF93 YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKGk5MTUpOwogCXBtX3J1bnRp bWVfZ2V0X25vcmVzdW1lKGtkZXYpOwogCisJaW50ZWxfcnVudGltZV9wbV9hY3F1aXJlKGk5MTUs IHRydWUpOworCiAJcmV0dXJuIHRyYWNrX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihpOTE1KTsK IH0KIAorc3RhdGljIHZvaWQgX19pbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKKwkJCQkgICBpbnRlbF93YWtlcmVmX3Qgd3JlZiwKKwkJCQkgICBib29s IHdha2Vsb2NrKQoreworCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gaTkxNS0+ZHJtLnBkZXY7CisJ c3RydWN0IGRldmljZSAqa2RldiA9ICZwZGV2LT5kZXY7CisKKwl1bnRyYWNrX2ludGVsX3J1bnRp bWVfcG1fd2FrZXJlZihpOTE1LCB3cmVmKTsKKworCWludGVsX3J1bnRpbWVfcG1fcmVsZWFzZShp OTE1LCB3YWtlbG9jayk7CisKKwlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGtkZXYpOworCXBt X3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGtkZXYpOworfQorCiAvKioKLSAqIGludGVsX3J1bnRp bWVfcG1fcHV0IC0gcmVsZWFzZSBhIHJ1bnRpbWUgcG0gcmVmZXJlbmNlCisgKiBpbnRlbF9ydW50 aW1lX3BtX3B1dF91bmNoZWNrZWQgLSByZWxlYXNlIGFuIHVuY2hlY2tlZCBydW50aW1lIHBtIHJl ZmVyZW5jZQogICogQGk5MTU6IGk5MTUgZGV2aWNlIGluc3RhbmNlCiAgKgogICogVGhpcyBmdW5j dGlvbiBkcm9wcyB0aGUgZGV2aWNlLWxldmVsIHJ1bnRpbWUgcG0gcmVmZXJlbmNlIG9idGFpbmVk IGJ5CiAgKiBpbnRlbF9ydW50aW1lX3BtX2dldCgpIGFuZCBtaWdodCBwb3dlciBkb3duIHRoZSBj b3JyZXNwb25kaW5nCiAgKiBoYXJkd2FyZSBibG9jayByaWdodCBhd2F5IGlmIHRoaXMgaXMgdGhl IGxhc3QgcmVmZXJlbmNlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgZm9yIGhp c3RvcmljYWwgcmVhc29ucyBhbmQgc2hvdWxkIGJlIGF2b2lkZWQgaW4KKyAqIG5ldyBjb2RlLCBh cyB0aGUgY29ycmVjdG5lc3Mgb2YgaXRzIHVzZSBjYW5ub3QgYmUgY2hlY2tlZC4gQWx3YXlzIHVz ZQorICogaW50ZWxfcnVudGltZV9wbV9wdXQoKSBpbnN0ZWFkLgogICovCiB2b2lkIGludGVsX3J1 bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsK LQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGk5MTUtPmRybS5wZGV2OwotCXN0cnVjdCBkZXZpY2Ug KmtkZXYgPSAmcGRldi0+ZGV2OwotCi0JdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2VyZWYo aTkxNSk7Ci0KLQlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGtkZXYpOwotCXBtX3J1bnRpbWVf cHV0X2F1dG9zdXNwZW5kKGtkZXYpOworCV9faW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgLTEs IHRydWUpOwogfQogCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVOVElN RV9QTSkKKy8qKgorICogaW50ZWxfcnVudGltZV9wbV9wdXQgLSByZWxlYXNlIGEgcnVudGltZSBw bSByZWZlcmVuY2UKKyAqIEBpOTE1OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICogQHdyZWY6IHdh a2VyZWYgYWNxdWlyZWQgZm9yIHRoZSByZWZlcmVuY2UgdGhhdCBpcyBiZWluZyByZWxlYXNlZAor ICoKKyAqIFRoaXMgZnVuY3Rpb24gZHJvcHMgdGhlIGRldmljZS1sZXZlbCBydW50aW1lIHBtIHJl ZmVyZW5jZSBvYnRhaW5lZCBieQorICogaW50ZWxfcnVudGltZV9wbV9nZXQoKSBhbmQgbWlnaHQg cG93ZXIgZG93biB0aGUgY29ycmVzcG9uZGluZworICogaGFyZHdhcmUgYmxvY2sgcmlnaHQgYXdh eSBpZiB0aGlzIGlzIHRoZSBsYXN0IHJlZmVyZW5jZS4KKyAqLwogdm9pZCBpbnRlbF9ydW50aW1l X3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50ZWxfd2FrZXJlZl90IHdy ZWYpCiB7Ci0JY2FuY2VsX2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihpOTE1LCB3cmVmKTsKLQlp bnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoaTkxNSk7CisJX19pbnRlbF9ydW50aW1lX3Bt X3B1dChpOTE1LCB3cmVmLCB0cnVlKTsKIH0KICNlbmRpZgogCkBAIC00NzY3LDEwICs0ODQyLDEx IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KQogCiAJY291bnQgPSBhdG9taWNfZmV0Y2hfaW5jKCZycG0tPndha2VyZWZfY291bnQp OyAvKiBiYWxhbmNlIHVudHJhY2sgKi8KIAlXQVJOKGNvdW50LAotCSAgICAgImk5MTUtPnJ1bnRp bWVfcG0ud2FrZXJlZl9jb3VudD0lZCBvbiBjbGVhbnVwXG4iLAotCSAgICAgY291bnQpOworCSAg ICAgImk5MTUgcmF3LXdha2VyZWZzPSVkIHdha2Vsb2Nrcz0lZCBvbiBjbGVhbnVwXG4iLAorCSAg ICAgaW50ZWxfcnBtX3Jhd193YWtlcmVmX2NvdW50KGNvdW50KSwKKwkgICAgIGludGVsX3JwbV93 YWtlbG9ja19jb3VudChjb3VudCkpOwogCi0JdW50cmFja19pbnRlbF9ydW50aW1lX3BtX3dha2Vy ZWYoaTkxNSk7CisJaW50ZWxfcnVudGltZV9wbV9yZWxlYXNlKGk5MTUsIGZhbHNlKTsKIH0KIAog dm9pZCBpbnRlbF9ydW50aW1lX3BtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==