From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Ekstrand Subject: [PATCH 4/9] i915: Add support for drm syncobjs Date: Tue, 8 Aug 2017 15:46:04 -0700 Message-ID: <1502232369-19753-5-git-send-email-jason.ekstrand@intel.com> References: <1502232369-19753-1-git-send-email-jason.ekstrand@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x243.google.com (mail-pg0-x243.google.com [IPv6:2607:f8b0:400e:c05::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id E086E6E257 for ; Tue, 8 Aug 2017 22:46:35 +0000 (UTC) Received: by mail-pg0-x243.google.com with SMTP id u185so4287944pgb.0 for ; Tue, 08 Aug 2017 15:46:35 -0700 (PDT) In-Reply-To: <1502232369-19753-1-git-send-email-jason.ekstrand@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Jason Ekstrand , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org VGhpcyBjb21taXQgYWRkcyBzdXBwb3J0IGZvciB3YWl0aW5nIG9uIG9yIHNpZ25hbGluZyBEUk0g c3luY29ianMgYXMKcGFydCBvZiBleGVjYnVmLiAgSXQgZG9lcyBzbyBieSBoaWphY2tpbmcgdGhl IGN1cnJlbnRseSB1bnVzZWQgY2xpcHJlY3RzCnBvaW50ZXIgdG8gaW5zdGVhZCBwb2ludCB0byBh biBhcnJheSBvZiBpOTE1X2dlbV9leGVjX2ZlbmNlIHN0cnVjdHMKd2hpY2ggY29udGFpbmUgYSBE Uk0gc3luY29iaiBhbmQgYSBmbGFncyBwYXJhbWV0ZXIgd2hpY2ggc3BlY2lmaWVzCndoZXRoZXIg dG8gd2FpdCBvbiBpdCBvciB0byBzaWduYWwgaXQuICBUaGlzIGltcGxlbWVudGF0aW9uCnRoZW9y ZXRpY2FsbHkgYWxsb3dzIGZvciBib3RoIGZsYWdzIHRvIGJlIHNldCBpbiB3aGljaCBjYXNlIGl0 IHdhaXRzIG9uCnRoZSBkbWFfZmVuY2UgdGhhdCB3YXMgaW4gdGhlIHN5bmNvYmogYW5kIHRoZW4g aW1tZWRpYXRlbHkgcmVwbGFjZXMgaXQKd2l0aCB0aGUgZG1hX2ZlbmNlIGZyb20gdGhlIGN1cnJl bnQgZXhlY2J1Zi4KCnYyOgogLSBSZWJhc2Ugb24gbmV3IHN5bmNvYmogQVBJCnYzOgogLSBQdWxs IGV2ZXJ5dGhpbmcgb3V0IGludG8gaGVscGVycwogLSBEbyBhbGwgYWxsb2NhdGlvbiBpbiBnZW1f ZXhlY2J1ZmZlcjIKIC0gUGFjayB0aGUgZmxhZ3MgaW4gdGhlIGJvdHRvbSAyIGJpdHMgb2YgdGhl IGRybV9zeW5jb2JqKgp2NDoKIC0gUHJldmVudCBhIHBvdGVudGlhbCByYWNlIG9uIHN5bmNvYmot PmZlbmNlCgpUZXN0Y2FzZTogaWd0L2dlbV9leGVjX2ZlbmNlL3N5bmNvYmoqClNpZ25lZC1vZmYt Ynk6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4KUmV2aWV3ZWQtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDE0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgIHwgIDMwICsrKysr LQogMyBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCA2YTIyZjBlLi5mOGYzZDQ1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKQEAgLTM4NCw2ICszODQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0o c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAljYXNlIEk5MTVfUEFSQU1fSEFT X0VYRUNfRkVOQ0U6CiAJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0NBUFRVUkU6CiAJY2FzZSBJ OTE1X1BBUkFNX0hBU19FWEVDX0JBVENIX0ZJUlNUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhF Q19GRU5DRV9BUlJBWToKIAkJLyogRm9yIHRoZSB0aW1lIGJlaW5nIGFsbCBvZiB0aGVzZSBhcmUg YWx3YXlzIHRydWU7CiAJCSAqIGlmIHNvbWUgc3VwcG9ydGVkIGhhcmR3YXJlIGRvZXMgbm90IGhh dmUgb25lIG9mIHRoZXNlCiAJCSAqIGZlYXR1cmVzIHRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgcHJv dmlkZWQgZnJvbQpAQCAtMjczMyw3ICsyNzM0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVy IGRyaXZlciA9IHsKIAkgKi8KIAkuZHJpdmVyX2ZlYXR1cmVzID0KIAkgICAgRFJJVkVSX0hBVkVf SVJRIHwgRFJJVkVSX0lSUV9TSEFSRUQgfCBEUklWRVJfR0VNIHwgRFJJVkVSX1BSSU1FIHwKLQkg ICAgRFJJVkVSX1JFTkRFUiB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKKwkgICAg RFJJVkVSX1JFTkRFUiB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQyB8IERSSVZFUl9T WU5DT0JKLAogCS5yZWxlYXNlID0gaTkxNV9kcml2ZXJfcmVsZWFzZSwKIAkub3BlbiA9IGk5MTVf ZHJpdmVyX29wZW4sCiAJLmxhc3RjbG9zZSA9IGk5MTVfZHJpdmVyX2xhc3RjbG9zZSwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCAyNmVlZGIxLi45MzZm YjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0z Myw2ICszMyw3IEBACiAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9pOTE1 X2RybS5oPgorI2luY2x1ZGUgPGRybS9kcm1fc3luY29iai5oPgogCiAjaW5jbHVkZSAiaTkxNV9k cnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCkBAIC0xODAwLDggKzE4MDEsMTAg QEAgc3RhdGljIGJvb2wgaTkxNV9nZW1fY2hlY2tfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVf Z2VtX2V4ZWNidWZmZXIyICpleGVjKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBLZXJuZWwgY2xp cHBpbmcgd2FzIGEgRFJJMSBtaXNmZWF0dXJlICovCi0JaWYgKGV4ZWMtPm51bV9jbGlwcmVjdHMg fHwgZXhlYy0+Y2xpcHJlY3RzX3B0cikKLQkJcmV0dXJuIGZhbHNlOworCWlmICghKGV4ZWMtPmZs YWdzICYgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZKSkgeworCQlpZiAoZXhlYy0+bnVtX2NsaXByZWN0 cyB8fCBleGVjLT5jbGlwcmVjdHNfcHRyKQorCQkJcmV0dXJuIGZhbHNlOworCX0KIAogCWlmIChl eGVjLT5EUjQgPT0gMHhmZmZmZmZmZikgewogCQlEUk1fREVCVUcoIlVYQSBzdWJtaXR0aW5nIGdh cmJhZ2UgRFI0LCBmaXhpbmcgdXBcbiIpOwpAQCAtMjAyOSwxMSArMjAzMiwxMjUgQEAgZWJfc2Vs ZWN0X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIGVu Z2luZTsKIH0KIAorc3RhdGljIHZvaWQgX19mcmVlX2ZlbmNlX2FycmF5KHN0cnVjdCBkcm1fc3lu Y29iaiAqKmZlbmNlcywgdW5zaWduZWQgaW50IG4pCit7CisJd2hpbGUgKG4tLSkKKwkJZHJtX3N5 bmNvYmpfcHV0KHB0cl9tYXNrX2JpdHMoZmVuY2VzW25dLCAyKSk7CisJa3ZmcmVlKGZlbmNlcyk7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX3N5bmNvYmogKipnZXRfZmVuY2VfYXJyYXkoc3RydWN0 IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKKwkJCQkJICAgIHN0cnVjdCBkcm1fZmls ZSAqZmlsZSkKK3sKKwljb25zdCB1bnNpZ25lZCBpbnQgbmZlbmNlcyA9IGFyZ3MtPm51bV9jbGlw cmVjdHM7CisJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX2ZlbmNlIF9fdXNlciAqdXNlcjsKKwlz dHJ1Y3QgZHJtX3N5bmNvYmogKipmZW5jZXM7CisJdW5zaWduZWQgaW50IG47CisJaW50IGVycjsK KworCWlmICghKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZKSkKKwkJcmV0dXJu IE5VTEw7CisKKwlpZiAobmZlbmNlcyA+IFNJWkVfTUFYIC8gc2l6ZW9mKCpmZW5jZXMpKQorCQly ZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCXVzZXIgPSB1NjRfdG9fdXNlcl9wdHIoYXJncy0+ Y2xpcHJlY3RzX3B0cik7CisJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1JFQUQsIHVzZXIsIG5mZW5j ZXMgKiAyICogc2l6ZW9mKHUzMikpKQorCQlyZXR1cm4gRVJSX1BUUigtRUZBVUxUKTsKKworCWZl bmNlcyA9IGt2bWFsbG9jX2FycmF5KGFyZ3MtPm51bV9jbGlwcmVjdHMsIHNpemVvZigqZmVuY2Vz KSwKKwkJCQlfX0dGUF9OT1dBUk4gfCBHRlBfVEVNUE9SQVJZKTsKKwlpZiAoIWZlbmNlcykKKwkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlmb3IgKG4gPSAwOyBuIDwgbmZlbmNlczsgbisr KSB7CisJCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19mZW5jZSBmZW5jZTsKKwkJc3RydWN0IGRy bV9zeW5jb2JqICpzeW5jb2JqOworCisJCWlmIChfX2NvcHlfZnJvbV91c2VyKCZmZW5jZSwgdXNl cisrLCBzaXplb2YoZmVuY2UpKSkgeworCQkJZXJyID0gLUVGQVVMVDsKKwkJCWdvdG8gZXJyOwor CQl9CisKKwkJc3luY29iaiA9IGRybV9zeW5jb2JqX2ZpbmQoZmlsZSwgZmVuY2UuaGFuZGxlKTsK KwkJaWYgKCFzeW5jb2JqKSB7CisJCQlEUk1fREVCVUcoIkludmFsaWQgc3luY29iaiBoYW5kbGUg cHJvdmlkZWRcbiIpOworCQkJZXJyID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyOworCQl9CisKKwkJ ZmVuY2VzW25dID0gcHRyX3BhY2tfYml0cyhzeW5jb2JqLCBmZW5jZS5mbGFncywgMik7CisJfQor CisJcmV0dXJuIGZlbmNlczsKKworZXJyOgorCV9fZnJlZV9mZW5jZV9hcnJheShmZW5jZXMsIG4p OworCXJldHVybiBFUlJfUFRSKGVycik7Cit9CisKK3N0YXRpYyB2b2lkIHB1dF9mZW5jZV9hcnJh eShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAorCQkJICAgIHN0cnVjdCBk cm1fc3luY29iaiAqKmZlbmNlcykKK3sKKwlpZiAoIWZlbmNlcykKKwkJcmV0dXJuOworCV9fZnJl ZV9mZW5jZV9hcnJheShmZW5jZXMsIGFyZ3MtPm51bV9jbGlwcmVjdHMpOworfQorCitzdGF0aWMg aW50IGF3YWl0X2ZlbmNlX2FycmF5KHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAorCQkJICAg ICBzdHJ1Y3QgZHJtX3N5bmNvYmogKipmZW5jZXMpCit7CisJY29uc3QgdW5zaWduZWQgaW50IG5m ZW5jZXMgPSBlYi0+YXJncy0+bnVtX2NsaXByZWN0czsKKwl1bnNpZ25lZCBpbnQgbjsKKwlpbnQg ZXJyOworCisJZm9yIChuID0gMDsgbiA8IG5mZW5jZXM7IG4rKykgeworCQlzdHJ1Y3QgZHJtX3N5 bmNvYmogKnN5bmNvYmo7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCQl1bnNpZ25lZCBp bnQgZmxhZ3M7CisKKwkJc3luY29iaiA9IHB0cl91bnBhY2tfYml0cyhmZW5jZXNbbl0sICZmbGFn cywgMik7CisJCWlmICghKGZsYWdzICYgSTkxNV9FWEVDX0ZFTkNFX1dBSVQpKQorCQkJY29udGlu dWU7CisKKwkJZmVuY2UgPSBkcm1fc3luY29ial9mZW5jZV9nZXQoc3luY29iaik7CisJCWlmICgh ZmVuY2UpCisJCSAgICByZXR1cm4gLUVJTlZBTDsKKworCQllcnIgPSBpOTE1X2dlbV9yZXF1ZXN0 X2F3YWl0X2RtYV9mZW5jZShlYi0+cmVxdWVzdCwgZmVuY2UpOworCQlkbWFfZmVuY2VfcHV0KGZl bmNlKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOwor fQorCitzdGF0aWMgdm9pZCBzaWduYWxfZmVuY2VfYXJyYXkoc3RydWN0IGk5MTVfZXhlY2J1ZmZl ciAqZWIsCisJCQkgICAgICAgc3RydWN0IGRybV9zeW5jb2JqICoqZmVuY2VzKQoreworCWNvbnN0 IHVuc2lnbmVkIGludCBuZmVuY2VzID0gZWItPmFyZ3MtPm51bV9jbGlwcmVjdHM7CisJc3RydWN0 IGRtYV9mZW5jZSAqIGNvbnN0IGZlbmNlID0gJmViLT5yZXF1ZXN0LT5mZW5jZTsKKwl1bnNpZ25l ZCBpbnQgbjsKKworCWZvciAobiA9IDA7IG4gPCBuZmVuY2VzOyBuKyspIHsKKwkJc3RydWN0IGRy bV9zeW5jb2JqICpzeW5jb2JqOworCQl1bnNpZ25lZCBpbnQgZmxhZ3M7CisKKwkJc3luY29iaiA9 IHB0cl91bnBhY2tfYml0cyhmZW5jZXNbbl0sICZmbGFncywgMik7CisJCWlmICghKGZsYWdzICYg STkxNV9FWEVDX0ZFTkNFX1NJR05BTCkpCisJCQljb250aW51ZTsKKworCQlkcm1fc3luY29ial9y ZXBsYWNlX2ZlbmNlKHN5bmNvYmosIGZlbmNlKTsKKwl9Cit9CisKIHN0YXRpYyBpbnQKIGk5MTVf Z2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZSwKIAkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZl cjIgKmFyZ3MsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqZXhl YykKKwkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpleGVjLAorCQkg ICAgICAgc3RydWN0IGRybV9zeW5jb2JqICoqZmVuY2VzKQogewogCXN0cnVjdCBpOTE1X2V4ZWNi dWZmZXIgZWI7CiAJc3RydWN0IGRtYV9mZW5jZSAqaW5fZmVuY2UgPSBOVUxMOwpAQCAtMjIyMSw2 ICsyMzM4LDEyIEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAkJCWdvdG8gZXJyX3JlcXVlc3Q7CiAJfQogCisJaWYgKGZlbmNlcykgeworCQllcnIgPSBh d2FpdF9mZW5jZV9hcnJheSgmZWIsIGZlbmNlcyk7CisJCWlmIChlcnIgPCAwKQorCQkJZ290byBl cnJfcmVxdWVzdDsKKwl9CisKIAlpZiAob3V0X2ZlbmNlX2ZkICE9IC0xKSB7CiAJCW91dF9mZW5j ZSA9IHN5bmNfZmlsZV9jcmVhdGUoJmViLnJlcXVlc3QtPmZlbmNlKTsKIAkJaWYgKCFvdXRfZmVu Y2UpIHsKQEAgLTIyNDQsNiArMjM2Nyw5IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAlfX2k5MTVfYWRkX3JlcXVlc3QoZWIucmVxdWVzdCwgZXJyID09 IDApOwogCWFkZF90b19jbGllbnQoZWIucmVxdWVzdCwgZmlsZSk7CiAKKwlpZiAoZmVuY2VzKQor CQlzaWduYWxfZmVuY2VfYXJyYXkoJmViLCBmZW5jZXMpOworCiAJaWYgKG91dF9mZW5jZSkgewog CQlpZiAoZXJyID09IDApIHsKIAkJCWZkX2luc3RhbGwob3V0X2ZlbmNlX2ZkLCBvdXRfZmVuY2Ut PmZpbGUpOwpAQCAtMjM0Nyw3ICsyNDczLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJZXhlYzJfbGlzdFtpXS5mbGFncyA9IDA7 CiAJfQogCi0JZXJyID0gaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihkZXYsIGZpbGUsICZleGVjMiwg ZXhlYzJfbGlzdCk7CisJZXJyID0gaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihkZXYsIGZpbGUsICZl eGVjMiwgZXhlYzJfbGlzdCwgTlVMTCk7CiAJaWYgKGV4ZWMyLmZsYWdzICYgX19FWEVDX0hBU19S RUxPQykgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0IF9fdXNlciAqdXNlcl9l eGVjX2xpc3QgPQogCQkJdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmJ1ZmZlcnNfcHRyKTsKQEAgLTIz ODEsNiArMjUwNyw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCQkgICBzaXplb2YodW5zaWduZWQgaW50KSk7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncyA9IGRhdGE7CiAJc3RydWN0IGRybV9pOTE1X2dl bV9leGVjX29iamVjdDIgKmV4ZWMyX2xpc3Q7CisJc3RydWN0IGRybV9zeW5jb2JqICoqZmVuY2Vz ID0gTlVMTDsKIAlpbnQgZXJyOwogCiAJaWYgKGFyZ3MtPmJ1ZmZlcl9jb3VudCA8IDEgfHwgYXJn cy0+YnVmZmVyX2NvdW50ID4gU0laRV9NQVggLyBzeiAtIDEpIHsKQEAgLTI0MDcsNyArMjUzNCwx NSBAQCBpOTE1X2dlbV9leGVjYnVmZmVyMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKLQllcnIgPSBpOTE1X2dlbV9kb19leGVjYnVm ZmVyKGRldiwgZmlsZSwgYXJncywgZXhlYzJfbGlzdCk7CisJaWYgKGFyZ3MtPmZsYWdzICYgSTkx NV9FWEVDX0ZFTkNFX0FSUkFZKSB7CisJCWZlbmNlcyA9IGdldF9mZW5jZV9hcnJheShhcmdzLCBm aWxlKTsKKwkJaWYgKElTX0VSUihmZW5jZXMpKSB7CisJCQlrdmZyZWUoZXhlYzJfbGlzdCk7CisJ CQlyZXR1cm4gUFRSX0VSUihmZW5jZXMpOworCQl9CisJfQorCisJZXJyID0gaTkxNV9nZW1fZG9f ZXhlY2J1ZmZlcihkZXYsIGZpbGUsIGFyZ3MsIGV4ZWMyX2xpc3QsIGZlbmNlcyk7CiAKIAkvKgog CSAqIE5vdyB0aGF0IHdlIGhhdmUgYmVndW4gZXhlY3V0aW9uIG9mIHRoZSBiYXRjaGJ1ZmZlciwg d2UgaWdub3JlCkBAIC0yNDM4LDUgKzI1NzMsNiBAQCBpOTE1X2dlbV9leGVjYnVmZmVyMihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCiAJYXJncy0+ZmxhZ3MgJj0gfl9fSTkx NV9FWEVDX1VOS05PV05fRkxBR1M7CiAJa3ZmcmVlKGV4ZWMyX2xpc3QpOworCXB1dF9mZW5jZV9h cnJheShhcmdzLCBmZW5jZXMpOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXgg NzY1MGUxZC4uM2EwYjYxYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o CisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtNDc1LDYgKzQ3NSwxMSBAQCB0 eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7CiAgKi8KICNkZWZpbmUgSTkxNV9QQVJB TV9IQVNfRVhFQ19CQVRDSF9GSVJTVAkgNDgKIAorLyogUXVlcnkgd2hldGhlciBEUk1fSTkxNV9H RU1fRVhFQ0JVRkZFUjIgc3VwcG9ydHMgc3VwcGx5aW5nIGFuIGFycmF5IG9mCisgKiBkcm1faTkx NV9nZW1fZXhlY19mZW5jZSBzdHJ1Y3R1cmVzLiAgU2VlIEk5MTVfRVhFQ19GRU5DRV9BUlJBWS4K KyAqLworI2RlZmluZSBJOTE1X1BBUkFNX0hBU19FWEVDX0ZFTkNFX0FSUkFZICA0OQorCiB0eXBl ZGVmIHN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSB7CiAJX19zMzIgcGFyYW07CiAJLyoKQEAgLTg1 Niw2ICs4NjEsMTcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgewogCV9fdTY0 IHJzdmQyOwogfTsKIAorc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX2ZlbmNlIHsKKwkvKioKKwkg KiBVc2VyJ3MgaGFuZGxlIGZvciBhIGRtYS1mZW5jZSB0byB3YWl0IG9uIG9yIHNpZ25hbC4KKwkg Ki8KKwlfX3UzMiBoYW5kbGU7CisKKyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNFX1dBSVQgICAgICAg ICAgICAoMTw8MCkKKyNkZWZpbmUgSTkxNV9FWEVDX0ZFTkNFX1NJR05BTCAgICAgICAgICAoMTw8 MSkKKwlfX3UzMiBmbGFnczsKK307CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIg ewogCS8qKgogCSAqIExpc3Qgb2YgZ2VtX2V4ZWNfb2JqZWN0MiBzdHJ1Y3RzCkBAIC04NzAsNyAr ODg2LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewogCV9fdTMyIERSMTsK IAlfX3UzMiBEUjQ7CiAJX191MzIgbnVtX2NsaXByZWN0czsKLQkvKiogVGhpcyBpcyBhIHN0cnVj dCBkcm1fY2xpcF9yZWN0ICpjbGlwcmVjdHMgKi8KKwkvKiogVGhpcyBpcyBhIHN0cnVjdCBkcm1f Y2xpcF9yZWN0ICpjbGlwcmVjdHMgaWYgSTkxNV9FWEVDX0ZFTkNFX0FSUkFZCisgICAgICogaXMg bm90IHNldC4gIElmIEk5MTVfRVhFQ19GRU5DRV9BUlJBWSBpcyBzZXQsIHRoZW4gdGhpcyBpcyBh CisgICAgICogc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX2ZlbmNlICpmZW5jZXMuCisgICAgICov CiAJX191NjQgY2xpcHJlY3RzX3B0cjsKICNkZWZpbmUgSTkxNV9FWEVDX1JJTkdfTUFTSyAgICAg ICAgICAgICAgKDc8PDApCiAjZGVmaW5lIEk5MTVfRVhFQ19ERUZBVUxUICAgICAgICAgICAgICAg ICgwPDwwKQpAQCAtOTcxLDcgKzk5MCwxNCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZm ZXIyIHsKICAqIGVsZW1lbnQpLgogICovCiAjZGVmaW5lIEk5MTVfRVhFQ19CQVRDSF9GSVJTVAkJ KDE8PDE4KQotI2RlZmluZSBfX0k5MTVfRVhFQ19VTktOT1dOX0ZMQUdTICgtKEk5MTVfRVhFQ19C QVRDSF9GSVJTVDw8MSkpCisKKy8qIFNldHRpbmcgSTkxNV9GRU5DRV9BUlJBWSBpbXBsaWVzIHRo YXQgbnVtX2NsaXByZWN0cyBhbmQgY2xpcHJlY3RzX3B0cgorICogZGVmaW5lIGFuIGFycmF5IG9m IGk5MTVfZ2VtX2V4ZWNfZmVuY2Ugc3RydWN0dXJlcyB3aGljaCBzcGVjaWZ5IGEgc2V0IG9mCisg KiBkbWEgZmVuY2VzIHRvIHdhaXQgdXBvbiBvciBzaWduYWwuCisgKi8KKyNkZWZpbmUgSTkxNV9F WEVDX0ZFTkNFX0FSUkFZICAgKDE8PDE5KQorCisjZGVmaW5lIF9fSTkxNV9FWEVDX1VOS05PV05f RkxBR1MgKC0oSTkxNV9FWEVDX0ZFTkNFX0FSUkFZPDwxKSkKIAogI2RlZmluZSBJOTE1X0VYRUNf Q09OVEVYVF9JRF9NQVNLCSgweGZmZmZmZmZmKQogI2RlZmluZSBpOTE1X2V4ZWNidWZmZXIyX3Nl dF9jb250ZXh0X2lkKGViMiwgY29udGV4dCkgXAotLSAKMi41LjAuNDAwLmdmZjg2ZmFmCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK