From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 3/9] drm/syncobj: add support for timeline point wait v8 Date: Fri, 15 Mar 2019 20:09:53 +0800 Message-ID: <20190315120959.25489-3-david1.zhou@amd.com> References: <20190315120959.25489-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190315120959.25489-1-david1.zhou@amd.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, amd-gfx@lists.freedesktop.org, lionel.g.landwerlin@intel.com, jason@jlekstrand.net, Christian.Koenig@amd.com Cc: Daniel Rakos , Dave Airlie , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCnYzOgp1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKYS4g V2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCmIuIGFuZCB3YWl0IGZvciB0aW1l IHBvaW50IHRvIGJlY29tZSBhdmFpbGFibGUKdjQ6CnJlYmFzZQp2NToKYWRkIGNvbW1lbnQgZm9y IHh4eF9XQUlUX0FWQUlMQUJMRQp2NjogcmViYXNlIGFuZCByZXdvcmsgb24gbmV3IGNvbnRhaW5l cgp2NzogZHJvcCBfV0FJVF9DT01QTEVURUQsIGl0IGlzIHRoZSBkZWZhdWx0IGFueXdheQp2ODog Y29ycmVjdGx5IGhhbmRsZSBnYXJiYWdlIGNvbGxlY3RlZCBmZW5jZXMKClNpZ25lZC1vZmYtYnk6 IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IERhbmllbCBSYWtvcyA8 RGFuaWVsLlJha29zQGFtZC5jb20+CkNjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxla3N0cmFu ZC5uZXQ+CkNjOiBCYXMgTmlldXdlbmh1aXplbiA8YmFzQGJhc25pZXV3ZW5odWl6ZW4ubmw+CkNj OiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o IHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCiBkcml2ZXJz L2dwdS9kcm0vZHJtX3N5bmNvYmouYyAgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAgMTUgKysrKwogNCBmaWxl cyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oCmluZGV4IDI1MWQ2N2UwNGMyZC4uMzMxYWM2MjI1YjU4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oCkBAIC0xODIsNiArMTgyLDggQEAgaW50IGRybV9zeW5jb2JqX2ZkX3RvX2hhbmRs ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJCSAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial93YWl0X2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSk7CitpbnQgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSk7CiBpbnQgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSk7CiBpbnQgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKaW5kZXggNjg3OTQzZGY1OGUxLi5jOTg0NjU0 NjQ2ZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKQEAgLTY4OCw2ICs2ODgsOCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAkJICAgICAgRFJNX1VOTE9D S0VEfERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpf V0FJVCwgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bCwKIAkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9S RU5ERVJfQUxMT1cpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVf V0FJVCwgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bCwKKwkJICAgICAgRFJNX1VOTE9D S0VEfERSTV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpf UkVTRVQsIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJN X1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9TSUdOQUws IGRybV9zeW5jb2JqX3NpZ25hbF9pb2N0bCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fc3luY29iai5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKaW5kZXggMTlhOWNl NjM4MTE5Li5lYWU1MTk3OGNkYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lu Y29iai5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCkBAIC02MSw2ICs2MSw3 IEBAIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz azsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGZlbmNl X2NiOworCXU2NCAgICBwb2ludDsKIH07CiAKIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9zeW5j b2JqX2Z1bmMoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLApAQCAtOTUsNiArOTYsOCBAQCBF WFBPUlRfU1lNQk9MKGRybV9zeW5jb2JqX2ZpbmQpOwogc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpf ZmVuY2VfYWRkX3dhaXQoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCQkJCSAgICAgICBz dHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICp3YWl0KQogeworCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlOworCiAJaWYgKHdhaXQtPmZlbmNlKQogCQlyZXR1cm47CiAKQEAgLTEwMywxMSArMTA2LDE1 IEBAIHN0YXRpYyB2b2lkIGRybV9zeW5jb2JqX2ZlbmNlX2FkZF93YWl0KHN0cnVjdCBkcm1fc3lu Y29iaiAqc3luY29iaiwKIAkgKiBoYXZlIHRoZSBsb2NrLCB0cnkgb25lIG1vcmUgdGltZSBqdXN0 IHRvIGJlIHN1cmUgd2UgZG9uJ3QgYWRkIGEKIAkgKiBjYWxsYmFjayB3aGVuIGEgZmVuY2UgaGFz IGFscmVhZHkgYmVlbiBzZXQuCiAJICovCi0JaWYgKHN5bmNvYmotPmZlbmNlKQotCQl3YWl0LT5m ZW5jZSA9IGRtYV9mZW5jZV9nZXQoCi0JCQlyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNv YmotPmZlbmNlLCAxKSk7Ci0JZWxzZQorCWZlbmNlID0gZG1hX2ZlbmNlX2dldChyY3VfZGVyZWZl cmVuY2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLCAxKSk7CisJaWYgKCFmZW5jZSB8fCBkbWFf ZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVuY2UsIHdhaXQtPnBvaW50KSkgeworCQlkbWFfZmVu Y2VfcHV0KGZlbmNlKTsKIAkJbGlzdF9hZGRfdGFpbCgmd2FpdC0+bm9kZSwgJnN5bmNvYmotPmNi X2xpc3QpOworCX0gZWxzZSBpZiAoIWZlbmNlKSB7CisJCXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNl X2dldF9zdHViKCk7CisJfSBlbHNlIHsKKwkJd2FpdC0+ZmVuY2UgPSBmZW5jZTsKKwl9CiAJc3Bp bl91bmxvY2soJnN5bmNvYmotPmxvY2spOwogfQogCkBAIC0xNDksMTAgKzE1Niw4IEBAIHZvaWQg ZHJtX3N5bmNvYmpfYWRkX3BvaW50KHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAlkbWFf ZmVuY2VfY2hhaW5faW5pdChjaGFpbiwgcHJldiwgZmVuY2UsIHBvaW50KTsKIAlyY3VfYXNzaWdu X3BvaW50ZXIoc3luY29iai0+ZmVuY2UsICZjaGFpbi0+YmFzZSk7CiAKLQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoY3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2RlKSB7Ci0JCWxpc3Rf ZGVsX2luaXQoJmN1ci0+bm9kZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1w LCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkKIAkJc3luY29ial93YWl0X3N5bmNvYmpfZnVuYyhz eW5jb2JqLCBjdXIpOwotCX0KIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7CiAKIAkvKiBX YWxrIHRoZSBjaGFpbiBvbmNlIHRvIHRyaWdnZXIgZ2FyYmFnZSBjb2xsZWN0aW9uICovCkBAIC0x ODQsMTAgKzE4OSw4IEBAIHZvaWQgZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShzdHJ1Y3QgZHJt X3N5bmNvYmogKnN5bmNvYmosCiAJcmN1X2Fzc2lnbl9wb2ludGVyKHN5bmNvYmotPmZlbmNlLCBm ZW5jZSk7CiAKIAlpZiAoZmVuY2UgIT0gb2xkX2ZlbmNlKSB7Ci0JCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpIHsKLQkJCWxpc3RfZGVs X2luaXQoJmN1ci0+bm9kZSk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwg JnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpCiAJCQlzeW5jb2JqX3dhaXRfc3luY29ial9mdW5jKHN5 bmNvYmosIGN1cik7Ci0JCX0KIAl9CiAKIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7CkBA IC02NDQsMTMgKzY0NywyNyBAQCBzdGF0aWMgdm9pZCBzeW5jb2JqX3dhaXRfZmVuY2VfZnVuYyhz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9zeW5jb2Jq X2Z1bmMoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCQkJCSAgICAgIHN0cnVjdCBzeW5j b2JqX3dhaXRfZW50cnkgKndhaXQpCiB7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CisKIAkv KiBUaGlzIGhhcHBlbnMgaW5zaWRlIHRoZSBzeW5jb2JqIGxvY2sgKi8KLQl3YWl0LT5mZW5jZSA9 IGRtYV9mZW5jZV9nZXQocmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzeW5jb2JqLT5mZW5jZSwK LQkJCQkJCQkgICAgICBsb2NrZGVwX2lzX2hlbGQoJnN5bmNvYmotPmxvY2spKSk7CisJZmVuY2Ug PSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLAorCQkJCQkgIGxvY2tk ZXBfaXNfaGVsZCgmc3luY29iai0+bG9jaykpOworCWRtYV9mZW5jZV9nZXQoZmVuY2UpOworCWlm ICghZmVuY2UgfHwgZG1hX2ZlbmNlX2NoYWluX2ZpbmRfc2Vxbm8oJmZlbmNlLCB3YWl0LT5wb2lu dCkpIHsKKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCXJldHVybjsKKwl9IGVsc2UgaWYgKCFm ZW5jZSkgeworCQl3YWl0LT5mZW5jZSA9IGRtYV9mZW5jZV9nZXRfc3R1YigpOworCX0gZWxzZSB7 CisJCXdhaXQtPmZlbmNlID0gZmVuY2U7CisJfQorCiAJd2FrZV91cF9wcm9jZXNzKHdhaXQtPnRh c2spOworCWxpc3RfZGVsX2luaXQoJndhaXQtPm5vZGUpOwogfQogCiBzdGF0aWMgc2lnbmVkIGxv bmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5 bmNvYmpzLAorCQkJCQkJICB2b2lkIF9fdXNlciAqdXNlcl9wb2ludHMsCiAJCQkJCQkgIHVpbnQz Ml90IGNvdW50LAogCQkJCQkJICB1aW50MzJfdCBmbGFncywKIAkJCQkJCSAgc2lnbmVkIGxvbmcg dGltZW91dCwKQEAgLTY1OCwxMiArNjc1LDI3IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3lu Y29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiB7 CiAJc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqZW50cmllczsKIAlzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZTsKKwl1aW50NjRfdCAqcG9pbnRzOwogCXVpbnQzMl90IHNpZ25hbGVkX2NvdW50LCBp OwogCi0JZW50cmllcyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJO RUwpOwotCWlmICghZW50cmllcykKKwlwb2ludHMgPSBrbWFsbG9jX2FycmF5KGNvdW50LCBzaXpl b2YoKnBvaW50cyksIEdGUF9LRVJORUwpOworCWlmIChwb2ludHMgPT0gTlVMTCkKIAkJcmV0dXJu IC1FTk9NRU07CiAKKwlpZiAoIXVzZXJfcG9pbnRzKSB7CisJCW1lbXNldChwb2ludHMsIDAsIGNv dW50ICogc2l6ZW9mKHVpbnQ2NF90KSk7CisKKwl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKHBv aW50cywgdXNlcl9wb2ludHMsCisJCQkJICBzaXplb2YodWludDY0X3QpICogY291bnQpKSB7CisJ CXRpbWVvdXQgPSAtRUZBVUxUOworCQlnb3RvIGVycl9mcmVlX3BvaW50czsKKwl9CisKKwllbnRy aWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7CisJaWYg KCFlbnRyaWVzKSB7CisJCXRpbWVvdXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9mcmVlX3BvaW50 czsKKwl9CiAJLyogV2FsayB0aGUgbGlzdCBvZiBzeW5jIG9iamVjdHMgYW5kIGluaXRpYWxpemUg ZW50cmllcy4gIFdlIGRvCiAJICogdGhpcyB1cC1mcm9udCBzbyB0aGF0IHdlIGNhbiBwcm9wZXJs eSByZXR1cm4gLUVJTlZBTCBpZiB0aGVyZSBpcwogCSAqIGEgc3luY29iaiB3aXRoIGEgbWlzc2lu ZyBmZW5jZSBhbmQgdGhlbiBuZXZlciBoYXZlIHRoZSBjaGFuY2Ugb2YKQEAgLTY3MSw5ICs3MDMs MTMgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChz dHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcywKIAkgKi8KIAlzaWduYWxlZF9jb3VudCA9IDA7 CiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CisKIAkJZW50cmllc1tpXS50YXNrID0gY3VycmVudDsKLQkJZW50cmllc1tpXS5mZW5jZSA9 IGRybV9zeW5jb2JqX2ZlbmNlX2dldChzeW5jb2Jqc1tpXSk7Ci0JCWlmICghZW50cmllc1tpXS5m ZW5jZSkgeworCQllbnRyaWVzW2ldLnBvaW50ID0gcG9pbnRzW2ldOworCQlmZW5jZSA9IGRybV9z eW5jb2JqX2ZlbmNlX2dldChzeW5jb2Jqc1tpXSk7CisJCWlmICghZmVuY2UgfHwgZG1hX2ZlbmNl X2NoYWluX2ZpbmRfc2Vxbm8oJmZlbmNlLCBwb2ludHNbaV0pKSB7CisJCQlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKIAkJCWlmIChmbGFncyAmIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1Jf U1VCTUlUKSB7CiAJCQkJY29udGludWU7CiAJCQl9IGVsc2UgewpAQCAtNjgyLDcgKzcxOCwxMyBA QCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVj dCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCQkJfQogCQl9CiAKLQkJaWYgKGRtYV9mZW5jZV9p c19zaWduYWxlZChlbnRyaWVzW2ldLmZlbmNlKSkgeworCQlpZiAoZmVuY2UpCisJCQllbnRyaWVz W2ldLmZlbmNlID0gZmVuY2U7CisJCWVsc2UKKwkJCWVudHJpZXNbaV0uZmVuY2UgPSBkbWFfZmVu Y2VfZ2V0X3N0dWIoKTsKKworCQlpZiAoKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19X QUlUX0FWQUlMQUJMRSkgfHwKKwkJICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChlbnRyaWVzW2ld LmZlbmNlKSkgewogCQkJaWYgKHNpZ25hbGVkX2NvdW50ID09IDAgJiYgaWR4KQogCQkJCSppZHgg PSBpOwogCQkJc2lnbmFsZWRfY291bnQrKzsKQEAgLTcxNSw3ICs3NTcsOCBAQCBzdGF0aWMgc2ln bmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29i aiAqKnN5bmNvYmpzLAogCQkJaWYgKCFmZW5jZSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKGRt YV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkgfHwKKwkJCWlmICgoZmxhZ3MgJiBEUk1fU1lOQ09C Sl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFKSB8fAorCQkJICAgIGRtYV9mZW5jZV9pc19zaWdu YWxlZChmZW5jZSkgfHwKIAkJCSAgICAoIWVudHJpZXNbaV0uZmVuY2VfY2IuZnVuYyAmJgogCQkJ ICAgICBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLAogCQkJCQkJICAgICZlbnRyaWVzW2ld LmZlbmNlX2NiLApAQCAtNzYwLDYgKzgwMyw5IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3lu Y29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJ fQogCWtmcmVlKGVudHJpZXMpOwogCitlcnJfZnJlZV9wb2ludHM6CisJa2ZyZWUocG9pbnRzKTsK KwogCXJldHVybiB0aW1lb3V0OwogfQogCkBAIC03OTksMTkgKzg0NSwzMyBAQCBFWFBPUlRfU1lN Qk9MKGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKTsKIHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpf YXJyYXlfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXZhdGUsCiAJCQkJICBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCAqd2FpdCwKLQkJ CQkgIHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzKQorCQkJCSAgc3RydWN0IGRybV9zeW5j b2JqX3RpbWVsaW5lX3dhaXQgKnRpbWVsaW5lX3dhaXQsCisJCQkJICBzdHJ1Y3QgZHJtX3N5bmNv YmogKipzeW5jb2JqcywgYm9vbCB0aW1lbGluZSkKIHsKLQlzaWduZWQgbG9uZyB0aW1lb3V0ID0g ZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMod2FpdC0+dGltZW91dF9uc2VjKTsKKwlzaWduZWQg bG9uZyB0aW1lb3V0ID0gMDsKIAl1aW50MzJfdCBmaXJzdCA9IH4wOwogCi0JdGltZW91dCA9IGRy bV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzeW5jb2JqcywKLQkJCQkJCSB3YWl0LT5jb3Vu dF9oYW5kbGVzLAotCQkJCQkJIHdhaXQtPmZsYWdzLAotCQkJCQkJIHRpbWVvdXQsICZmaXJzdCk7 Ci0JaWYgKHRpbWVvdXQgPCAwKQotCQlyZXR1cm4gdGltZW91dDsKLQotCXdhaXQtPmZpcnN0X3Np Z25hbGVkID0gZmlyc3Q7CisJaWYgKCF0aW1lbGluZSkgeworCQl0aW1lb3V0ID0gZHJtX3RpbWVv dXRfYWJzX3RvX2ppZmZpZXMod2FpdC0+dGltZW91dF9uc2VjKTsKKwkJdGltZW91dCA9IGRybV9z eW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzeW5jb2JqcywKKwkJCQkJCQkgTlVMTCwKKwkJCQkJ CQkgd2FpdC0+Y291bnRfaGFuZGxlcywKKwkJCQkJCQkgd2FpdC0+ZmxhZ3MsCisJCQkJCQkJIHRp bWVvdXQsICZmaXJzdCk7CisJCWlmICh0aW1lb3V0IDwgMCkKKwkJCXJldHVybiB0aW1lb3V0Owor CQl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0OworCX0gZWxzZSB7CisJCXRpbWVvdXQgPSBk cm1fdGltZW91dF9hYnNfdG9famlmZmllcyh0aW1lbGluZV93YWl0LT50aW1lb3V0X25zZWMpOwor CQl0aW1lb3V0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJ CQkJCSB1NjRfdG9fdXNlcl9wdHIodGltZWxpbmVfd2FpdC0+cG9pbnRzKSwKKwkJCQkJCQkgdGlt ZWxpbmVfd2FpdC0+Y291bnRfaGFuZGxlcywKKwkJCQkJCQkgdGltZWxpbmVfd2FpdC0+ZmxhZ3Ms CisJCQkJCQkJIHRpbWVvdXQsICZmaXJzdCk7CisJCWlmICh0aW1lb3V0IDwgMCkKKwkJCXJldHVy biB0aW1lb3V0OworCQl0aW1lbGluZV93YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0OworCX0K IAlyZXR1cm4gMDsKIH0KIApAQCAtODk3LDEzICs5NTcsNDggQEAgZHJtX3N5bmNvYmpfd2FpdF9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlyZXR1cm4gcmV0Owog CiAJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJpdmF0ZSwKLQkJCQkg ICAgIGFyZ3MsIHN5bmNvYmpzKTsKKwkJCQkgICAgIGFyZ3MsIE5VTEwsIHN5bmNvYmpzLCBmYWxz ZSk7CiAKIAlkcm1fc3luY29ial9hcnJheV9mcmVlKHN5bmNvYmpzLCBhcmdzLT5jb3VudF9oYW5k bGVzKTsKIAogCXJldHVybiByZXQ7CiB9CiAKK2ludAorZHJtX3N5bmNvYmpfdGltZWxpbmVfd2Fp dF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCXN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2YXRlKQoreworCXN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV93 YWl0ICphcmdzID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqczsKKwlpbnQg cmV0ID0gMDsKKworCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5D T0JKKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZiAoYXJncy0+ZmxhZ3MgJiB+KERSTV9TWU5D T0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgfAorCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxBR1Nf V0FJVF9GT1JfU1VCTUlUIHwKKwkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQVZB SUxBQkxFKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoYXJncy0+Y291bnRfaGFuZGxlcyA9 PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRybV9zeW5jb2JqX2FycmF5X2ZpbmQo ZmlsZV9wcml2YXRlLAorCQkJCSAgICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmhhbmRsZXMpLAor CQkJCSAgICAgYXJncy0+Y291bnRfaGFuZGxlcywKKwkJCQkgICAgICZzeW5jb2Jqcyk7CisJaWYg KHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0 KGRldiwgZmlsZV9wcml2YXRlLAorCQkJCSAgICAgTlVMTCwgYXJncywgc3luY29ianMsIHRydWUp OworCisJZHJtX3N5bmNvYmpfYXJyYXlfZnJlZShzeW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxl cyk7CisKKwlyZXR1cm4gcmV0OworfQorCisKIGludAogZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCXN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2YXRlKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaCBiL2luY2x1 ZGUvdWFwaS9kcm0vZHJtLmgKaW5kZXggMzAwZjMzNjYzM2YyLi4wMDkyMTExZDAwMmMgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm0u aApAQCAtNzM3LDYgKzczNyw3IEBAIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUgewogCiAjZGVm aW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgKDEgPDwgMCkKICNkZWZpbmUgRFJN X1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgKDEgPDwgMSkKKyNkZWZpbmUgRFJN X1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSAoMSA8PCAyKQogc3RydWN0IGRybV9z eW5jb2JqX3dhaXQgewogCV9fdTY0IGhhbmRsZXM7CiAJLyogYWJzb2x1dGUgdGltZW91dCAqLwpA QCAtNzQ3LDYgKzc0OCwxOSBAQCBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB7CiAJX191MzIgcGFk OwogfTsKIAorc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQgeworCV9fdTY0IGhhbmRs ZXM7CisJLyogd2FpdCBvbiBzcGVjaWZpYyB0aW1lbGluZSBwb2ludCBmb3IgZXZlcnkgaGFuZGxl cyovCisJX191NjQgcG9pbnRzOworCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KKwlfX3M2NCB0aW1l b3V0X25zZWM7CisJX191MzIgY291bnRfaGFuZGxlczsKKwlfX3UzMiBmbGFnczsKKwlfX3UzMiBm aXJzdF9zaWduYWxlZDsgLyogb25seSB2YWxpZCB3aGVuIG5vdCB3YWl0aW5nIGFsbCAqLworCV9f dTMyIHBhZDsKK307CisKKwogc3RydWN0IGRybV9zeW5jb2JqX2FycmF5IHsKIAlfX3U2NCBoYW5k bGVzOwogCV9fdTMyIGNvdW50X2hhbmRsZXM7CkBAIC05MDksNiArOTIzLDcgQEAgZXh0ZXJuICJD IiB7CiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRQlEUk1fSU9XUigweEM4LCBzdHJ1 Y3QgZHJtX21vZGVfZ2V0X2xlYXNlKQogI2RlZmluZSBEUk1fSU9DVExfTU9ERV9SRVZPS0VfTEVB U0UJRFJNX0lPV1IoMHhDOSwgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFzZSkKIAorI2RlZmlu ZSBEUk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9XQUlUCURSTV9JT1dSKDB4Q0EsIHN0cnVjdCBk cm1fc3luY29ial90aW1lbGluZV93YWl0KQogLyoqCiAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9jdGxz IHNob3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwogICogVGhlIGRldmlj ZSBzcGVjaWZpYyBpb2N0bCByYW5nZSBpcyBmcm9tIDB4NDAgdG8gMHg5Zi4KLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs