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: Mon, 25 Mar 2019 16:32:18 +0800 Message-ID: <20190325083224.2983-3-david1.zhou@amd.com> References: <20190325083224.2983-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: <20190325083224.2983-1-david1.zhou-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, lionel.g.landwerlin-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, jason-fQELhIk9awXprZlt/sZkLg@public.gmane.org, Christian.Koenig-5C7GfCeVMHo@public.gmane.org, Tobias.Hector-5C7GfCeVMHo@public.gmane.org Cc: Chunming Zhou , Chris Wilson , =?UTF-8?q?Christian=20K=C3=B6nig?= , Dave Airlie cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCnYzOgp1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKYS4g V2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCmIuIGFuZCB3YWl0IGZvciB0aW1l IHBvaW50IHRvIGJlY29tZSBhdmFpbGFibGUKdjQ6CnJlYmFzZQp2NToKYWRkIGNvbW1lbnQgZm9y IHh4eF9XQUlUX0FWQUlMQUJMRQp2NjogcmViYXNlIGFuZCByZXdvcmsgb24gbmV3IGNvbnRhaW5l cgp2NzogZHJvcCBfV0FJVF9DT01QTEVURUQsIGl0IGlzIHRoZSBkZWZhdWx0IGFueXdheQp2ODog Y29ycmVjdGx5IGhhbmRsZSBnYXJiYWdlIGNvbGxlY3RlZCBmZW5jZXMKClNpZ25lZC1vZmYtYnk6 IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IFRvYmlhcyBIZWN0b3Ig PFRvYmlhcy5IZWN0b3JAYW1kLmNvbT4KQ2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3Ry YW5kLm5ldD4KQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CkNjOiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IExpb25lbCBMYW5kd2VybGluIDxs aW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lu dGVybmFsLmggfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jICAgIHwgICAyICsK IGRyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jICB8IDE1MyArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICB8ICAxNSArKysr CiA0IGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ludGVybmFsLmgKaW5kZXggMjUxZDY3ZTA0YzJkLi4zMzFhYzYyMjViNTggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2ludGVybmFsLmgKQEAgLTE4Miw2ICsxODIsOCBAQCBpbnQgZHJtX3N5bmNvYmpfZmRf dG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkJ ICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwogaW50IGRybV9zeW5jb2JqX3dhaXRf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9yZXNldF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9zaWduYWxfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwppbmRleCA2ODc5NDNkZjU4ZTEu LmM5ODQ2NTQ2NDZmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjg4LDYgKzY4OCw4IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewogCQkgICAgICBE Uk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf U1lOQ09CSl9XQUlULCBkcm1fc3luY29ial93YWl0X2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NL RUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9U SU1FTElORV9XQUlULCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsLAorCQkgICAgICBE Uk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf U1lOQ09CSl9SRVNFVCwgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwsCiAJCSAgICAgIERSTV9VTkxP Q0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JK X1NJR05BTCwgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwppbmRl eCAxOWE5Y2U2MzgxMTkuLmVhZTUxOTc4Y2RhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKQEAgLTYx LDYgKzYxLDcgQEAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSB7CiAJc3RydWN0IHRhc2tfc3Ry dWN0ICp0YXNrOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBkbWFfZmVuY2Vf Y2IgZmVuY2VfY2I7CisJdTY0ICAgIHBvaW50OwogfTsKIAogc3RhdGljIHZvaWQgc3luY29ial93 YWl0X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCkBAIC05NSw2ICs5 Niw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX3N5bmNvYmpfZmluZCk7CiBzdGF0aWMgdm9pZCBkcm1f c3luY29ial9mZW5jZV9hZGRfd2FpdChzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCiAJCQkJ ICAgICAgIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgKndhaXQpCiB7CisJc3RydWN0IGRtYV9m ZW5jZSAqZmVuY2U7CisKIAlpZiAod2FpdC0+ZmVuY2UpCiAJCXJldHVybjsKIApAQCAtMTAzLDEx ICsxMDYsMTUgQEAgc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpfZmVuY2VfYWRkX3dhaXQoc3RydWN0 IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCSAqIGhhdmUgdGhlIGxvY2ssIHRyeSBvbmUgbW9yZSB0 aW1lIGp1c3QgdG8gYmUgc3VyZSB3ZSBkb24ndCBhZGQgYQogCSAqIGNhbGxiYWNrIHdoZW4gYSBm ZW5jZSBoYXMgYWxyZWFkeSBiZWVuIHNldC4KIAkgKi8KLQlpZiAoc3luY29iai0+ZmVuY2UpCi0J CXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNlX2dldCgKLQkJCXJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0 ZWQoc3luY29iai0+ZmVuY2UsIDEpKTsKLQllbHNlCisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KHJj dV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY29iai0+ZmVuY2UsIDEpKTsKKwlpZiAoIWZlbmNl IHx8IGRtYV9mZW5jZV9jaGFpbl9maW5kX3NlcW5vKCZmZW5jZSwgd2FpdC0+cG9pbnQpKSB7CisJ CWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQlsaXN0X2FkZF90YWlsKCZ3YWl0LT5ub2RlLCAmc3lu Y29iai0+Y2JfbGlzdCk7CisJfSBlbHNlIGlmICghZmVuY2UpIHsKKwkJd2FpdC0+ZmVuY2UgPSBk bWFfZmVuY2VfZ2V0X3N0dWIoKTsKKwl9IGVsc2UgeworCQl3YWl0LT5mZW5jZSA9IGZlbmNlOwor CX0KIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7CiB9CiAKQEAgLTE0OSwxMCArMTU2LDgg QEAgdm9pZCBkcm1fc3luY29ial9hZGRfcG9pbnQoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2Jq LAogCWRtYV9mZW5jZV9jaGFpbl9pbml0KGNoYWluLCBwcmV2LCBmZW5jZSwgcG9pbnQpOwogCXJj dV9hc3NpZ25fcG9pbnRlcihzeW5jb2JqLT5mZW5jZSwgJmNoYWluLT5iYXNlKTsKIAotCWxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpIHsK LQkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUo Y3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2RlKQogCQlzeW5jb2JqX3dhaXRfc3luY29i al9mdW5jKHN5bmNvYmosIGN1cik7Ci0JfQogCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5sb2NrKTsK IAogCS8qIFdhbGsgdGhlIGNoYWluIG9uY2UgdG8gdHJpZ2dlciBnYXJiYWdlIGNvbGxlY3Rpb24g Ki8KQEAgLTE4NCwxMCArMTg5LDggQEAgdm9pZCBkcm1fc3luY29ial9yZXBsYWNlX2ZlbmNlKHN0 cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAlyY3VfYXNzaWduX3BvaW50ZXIoc3luY29iai0+ ZmVuY2UsIGZlbmNlKTsKIAogCWlmIChmZW5jZSAhPSBvbGRfZmVuY2UpIHsKLQkJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkgewotCQkJ bGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1 ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkKIAkJCXN5bmNvYmpfd2FpdF9zeW5jb2Jq X2Z1bmMoc3luY29iaiwgY3VyKTsKLQkJfQogCX0KIAogCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5s b2NrKTsKQEAgLTY0NCwxMyArNjQ3LDI3IEBAIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9mZW5j ZV9mdW5jKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogc3RhdGljIHZvaWQgc3luY29ial93YWl0 X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCiAJCQkJICAgICAgc3Ry dWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqd2FpdCkKIHsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5j ZTsKKwogCS8qIFRoaXMgaGFwcGVucyBpbnNpZGUgdGhlIHN5bmNvYmogbG9jayAqLwotCXdhaXQt PmZlbmNlID0gZG1hX2ZlbmNlX2dldChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNvYmot PmZlbmNlLAotCQkJCQkJCSAgICAgIGxvY2tkZXBfaXNfaGVsZCgmc3luY29iai0+bG9jaykpKTsK KwlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY29iai0+ZmVuY2UsCisJCQkJ CSAgbG9ja2RlcF9pc19oZWxkKCZzeW5jb2JqLT5sb2NrKSk7CisJZG1hX2ZlbmNlX2dldChmZW5j ZSk7CisJaWYgKCFmZW5jZSB8fCBkbWFfZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVuY2UsIHdh aXQtPnBvaW50KSkgeworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKKwkJcmV0dXJuOworCX0gZWxz ZSBpZiAoIWZlbmNlKSB7CisJCXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNlX2dldF9zdHViKCk7CisJ fSBlbHNlIHsKKwkJd2FpdC0+ZmVuY2UgPSBmZW5jZTsKKwl9CisKIAl3YWtlX3VwX3Byb2Nlc3Mo d2FpdC0+dGFzayk7CisJbGlzdF9kZWxfaW5pdCgmd2FpdC0+bm9kZSk7CiB9CiAKIHN0YXRpYyBz aWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5j b2JqICoqc3luY29ianMsCisJCQkJCQkgIHZvaWQgX191c2VyICp1c2VyX3BvaW50cywKIAkJCQkJ CSAgdWludDMyX3QgY291bnQsCiAJCQkJCQkgIHVpbnQzMl90IGZsYWdzLAogCQkJCQkJICBzaWdu ZWQgbG9uZyB0aW1lb3V0LApAQCAtNjU4LDEyICs2NzUsMjcgQEAgc3RhdGljIHNpZ25lZCBsb25n IGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5j b2JqcywKIHsKIAlzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICplbnRyaWVzOwogCXN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlOworCXVpbnQ2NF90ICpwb2ludHM7CiAJdWludDMyX3Qgc2lnbmFsZWRf Y291bnQsIGk7CiAKLQllbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwg R0ZQX0tFUk5FTCk7Ci0JaWYgKCFlbnRyaWVzKQorCXBvaW50cyA9IGttYWxsb2NfYXJyYXkoY291 bnQsIHNpemVvZigqcG9pbnRzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHBvaW50cyA9PSBOVUxMKQog CQlyZXR1cm4gLUVOT01FTTsKIAorCWlmICghdXNlcl9wb2ludHMpIHsKKwkJbWVtc2V0KHBvaW50 cywgMCwgY291bnQgKiBzaXplb2YodWludDY0X3QpKTsKKworCX0gZWxzZSBpZiAoY29weV9mcm9t X3VzZXIocG9pbnRzLCB1c2VyX3BvaW50cywKKwkJCQkgIHNpemVvZih1aW50NjRfdCkgKiBjb3Vu dCkpIHsKKwkJdGltZW91dCA9IC1FRkFVTFQ7CisJCWdvdG8gZXJyX2ZyZWVfcG9pbnRzOworCX0K KworCWVudHJpZXMgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmVudHJpZXMpLCBHRlBfS0VSTkVM KTsKKwlpZiAoIWVudHJpZXMpIHsKKwkJdGltZW91dCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2Zy ZWVfcG9pbnRzOworCX0KIAkvKiBXYWxrIHRoZSBsaXN0IG9mIHN5bmMgb2JqZWN0cyBhbmQgaW5p dGlhbGl6ZSBlbnRyaWVzLiAgV2UgZG8KIAkgKiB0aGlzIHVwLWZyb250IHNvIHRoYXQgd2UgY2Fu IHByb3Blcmx5IHJldHVybiAtRUlOVkFMIGlmIHRoZXJlIGlzCiAJICogYSBzeW5jb2JqIHdpdGgg YSBtaXNzaW5nIGZlbmNlIGFuZCB0aGVuIG5ldmVyIGhhdmUgdGhlIGNoYW5jZSBvZgpAQCAtNjcx LDkgKzcwMywxMyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90 aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCSAqLwogCXNpZ25hbGVkX2Nv dW50ID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworCQlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZTsKKwogCQllbnRyaWVzW2ldLnRhc2sgPSBjdXJyZW50OwotCQllbnRyaWVzW2ld LmZlbmNlID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN5bmNvYmpzW2ldKTsKLQkJaWYgKCFlbnRy aWVzW2ldLmZlbmNlKSB7CisJCWVudHJpZXNbaV0ucG9pbnQgPSBwb2ludHNbaV07CisJCWZlbmNl ID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN5bmNvYmpzW2ldKTsKKwkJaWYgKCFmZW5jZSB8fCBk bWFfZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVuY2UsIHBvaW50c1tpXSkpIHsKKwkJCWRtYV9m ZW5jZV9wdXQoZmVuY2UpOwogCQkJaWYgKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19X QUlUX0ZPUl9TVUJNSVQpIHsKIAkJCQljb250aW51ZTsKIAkJCX0gZWxzZSB7CkBAIC02ODIsNyAr NzE4LDEzIEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVv dXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJCQl9CiAJCX0KIAotCQlpZiAoZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKGVudHJpZXNbaV0uZmVuY2UpKSB7CisJCWlmIChmZW5jZSkKKwkJ CWVudHJpZXNbaV0uZmVuY2UgPSBmZW5jZTsKKwkJZWxzZQorCQkJZW50cmllc1tpXS5mZW5jZSA9 IGRtYV9mZW5jZV9nZXRfc3R1YigpOworCisJCWlmICgoZmxhZ3MgJiBEUk1fU1lOQ09CSl9XQUlU X0ZMQUdTX1dBSVRfQVZBSUxBQkxFKSB8fAorCQkgICAgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGVu dHJpZXNbaV0uZmVuY2UpKSB7CiAJCQlpZiAoc2lnbmFsZWRfY291bnQgPT0gMCAmJiBpZHgpCiAJ CQkJKmlkeCA9IGk7CiAJCQlzaWduYWxlZF9jb3VudCsrOwpAQCAtNzE1LDcgKzc1Nyw4IEBAIHN0 YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRy bV9zeW5jb2JqICoqc3luY29ianMsCiAJCQlpZiAoIWZlbmNlKQogCQkJCWNvbnRpbnVlOwogCi0J CQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSB8fAorCQkJaWYgKChmbGFncyAmIERS TV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFCTEUpIHx8CisJCQkgICAgZG1hX2ZlbmNl X2lzX3NpZ25hbGVkKGZlbmNlKSB8fAogCQkJICAgICghZW50cmllc1tpXS5mZW5jZV9jYi5mdW5j ICYmCiAJCQkgICAgIGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsCiAJCQkJCQkgICAgJmVu dHJpZXNbaV0uZmVuY2VfY2IsCkBAIC03NjAsNiArODAzLDkgQEAgc3RhdGljIHNpZ25lZCBsb25n IGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5j b2JqcywKIAl9CiAJa2ZyZWUoZW50cmllcyk7CiAKK2Vycl9mcmVlX3BvaW50czoKKwlrZnJlZShw b2ludHMpOworCiAJcmV0dXJuIHRpbWVvdXQ7CiB9CiAKQEAgLTc5OSwxOSArODQ1LDMzIEBAIEVY UE9SVF9TWU1CT0woZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMpOwogc3RhdGljIGludCBkcm1f c3luY29ial9hcnJheV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fc3luY29ial93YWl0ICp3 YWl0LAotCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMpCisJCQkJICBzdHJ1Y3Qg ZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCAqdGltZWxpbmVfd2FpdCwKKwkJCQkgIHN0cnVjdCBk cm1fc3luY29iaiAqKnN5bmNvYmpzLCBib29sIHRpbWVsaW5lKQogewotCXNpZ25lZCBsb25nIHRp bWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOwor CXNpZ25lZCBsb25nIHRpbWVvdXQgPSAwOwogCXVpbnQzMl90IGZpcnN0ID0gfjA7CiAKLQl0aW1l b3V0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAotCQkJCQkJIHdh aXQtPmNvdW50X2hhbmRsZXMsCi0JCQkJCQkgd2FpdC0+ZmxhZ3MsCi0JCQkJCQkgdGltZW91dCwg JmZpcnN0KTsKLQlpZiAodGltZW91dCA8IDApCi0JCXJldHVybiB0aW1lb3V0OwotCi0Jd2FpdC0+ Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwlpZiAoIXRpbWVsaW5lKSB7CisJCXRpbWVvdXQgPSBk cm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOworCQl0aW1lb3V0 ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJCQkJCSBOVUxM LAorCQkJCQkJCSB3YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJCSB3YWl0LT5mbGFncywKKwkJ CQkJCQkgdGltZW91dCwgJmZpcnN0KTsKKwkJaWYgKHRpbWVvdXQgPCAwKQorCQkJcmV0dXJuIHRp bWVvdXQ7CisJCXdhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7CisJfSBlbHNlIHsKKwkJdGlt ZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKHRpbWVsaW5lX3dhaXQtPnRpbWVvdXRf bnNlYyk7CisJCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3luY29i anMsCisJCQkJCQkJIHU2NF90b191c2VyX3B0cih0aW1lbGluZV93YWl0LT5wb2ludHMpLAorCQkJ CQkJCSB0aW1lbGluZV93YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJCSB0aW1lbGluZV93YWl0 LT5mbGFncywKKwkJCQkJCQkgdGltZW91dCwgJmZpcnN0KTsKKwkJaWYgKHRpbWVvdXQgPCAwKQor CQkJcmV0dXJuIHRpbWVvdXQ7CisJCXRpbWVsaW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmly c3Q7CisJfQogCXJldHVybiAwOwogfQogCkBAIC04OTcsMTMgKzk1Nyw0OCBAQCBkcm1fc3luY29i al93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJldHVy biByZXQ7CiAKIAlyZXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0KGRldiwgZmlsZV9wcml2YXRl LAotCQkJCSAgICAgYXJncywgc3luY29ianMpOworCQkJCSAgICAgYXJncywgTlVMTCwgc3luY29i anMsIGZhbHNlKTsKIAogCWRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNv dW50X2hhbmRsZXMpOwogCiAJcmV0dXJuIHJldDsKIH0KIAoraW50Citkcm1fc3luY29ial90aW1l bGluZV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJ c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpCit7CisJc3RydWN0IGRybV9zeW5jb2JqX3Rp bWVsaW5lX3dhaXQgKmFyZ3MgPSBkYXRhOworCXN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpz OworCWludCByZXQgPSAwOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJ VkVSX1NZTkNPQkopKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChhcmdzLT5mbGFncyAmIH4o RFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCB8CisJCQkgICAgRFJNX1NZTkNPQkpfV0FJ VF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgfAorCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxBR1Nf V0FJVF9BVkFJTEFCTEUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChhcmdzLT5jb3VudF9o YW5kbGVzID09IDApCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gZHJtX3N5bmNvYmpfYXJy YXlfZmluZChmaWxlX3ByaXZhdGUsCisJCQkJICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+aGFu ZGxlcyksCisJCQkJICAgICBhcmdzLT5jb3VudF9oYW5kbGVzLAorCQkJCSAgICAgJnN5bmNvYmpz KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGRybV9zeW5jb2JqX2Fy cmF5X3dhaXQoZGV2LCBmaWxlX3ByaXZhdGUsCisJCQkJICAgICBOVUxMLCBhcmdzLCBzeW5jb2Jq cywgdHJ1ZSk7CisKKwlkcm1fc3luY29ial9hcnJheV9mcmVlKHN5bmNvYmpzLCBhcmdzLT5jb3Vu dF9oYW5kbGVzKTsKKworCXJldHVybiByZXQ7Cit9CisKKwogaW50CiBkcm1fc3luY29ial9yZXNl dF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXZhdGUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5o IGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAppbmRleCAzMDBmMzM2NjMzZjIuLjQ0ZWJjZGQ5YmQx ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCkBAIC03MzcsNiArNzM3LDcgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7 CiAKICNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAoMSA8PCAwKQogI2Rl ZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCAoMSA8PCAxKQorI2Rl ZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFICgxIDw8IDIpIC8qIHdh aXQgZm9yIHRpbWUgcG9pbnQgdG8gYmVjb21lIGF2YWlsYWJsZSAqLwogc3RydWN0IGRybV9zeW5j b2JqX3dhaXQgewogCV9fdTY0IGhhbmRsZXM7CiAJLyogYWJzb2x1dGUgdGltZW91dCAqLwpAQCAt NzQ3LDYgKzc0OCwxOSBAQCBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB7CiAJX191MzIgcGFkOwog fTsKIAorc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQgeworCV9fdTY0IGhhbmRsZXM7 CisJLyogd2FpdCBvbiBzcGVjaWZpYyB0aW1lbGluZSBwb2ludCBmb3IgZXZlcnkgaGFuZGxlcyov CisJX191NjQgcG9pbnRzOworCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KKwlfX3M2NCB0aW1lb3V0 X25zZWM7CisJX191MzIgY291bnRfaGFuZGxlczsKKwlfX3UzMiBmbGFnczsKKwlfX3UzMiBmaXJz dF9zaWduYWxlZDsgLyogb25seSB2YWxpZCB3aGVuIG5vdCB3YWl0aW5nIGFsbCAqLworCV9fdTMy IHBhZDsKK307CisKKwogc3RydWN0IGRybV9zeW5jb2JqX2FycmF5IHsKIAlfX3U2NCBoYW5kbGVz OwogCV9fdTMyIGNvdW50X2hhbmRsZXM7CkBAIC05MDksNiArOTIzLDcgQEAgZXh0ZXJuICJDIiB7 CiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRQlEUk1fSU9XUigweEM4LCBzdHJ1Y3Qg ZHJtX21vZGVfZ2V0X2xlYXNlKQogI2RlZmluZSBEUk1fSU9DVExfTU9ERV9SRVZPS0VfTEVBU0UJ RFJNX0lPV1IoMHhDOSwgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFzZSkKIAorI2RlZmluZSBE Uk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9XQUlUCURSTV9JT1dSKDB4Q0EsIHN0cnVjdCBkcm1f c3luY29ial90aW1lbGluZV93YWl0KQogLyoqCiAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9jdGxzIHNo b3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwogICogVGhlIGRldmljZSBz cGVjaWZpYyBpb2N0bCByYW5nZSBpcyBmcm9tIDB4NDAgdG8gMHg5Zi4KLS0gCjIuMTcuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4