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, 1 Apr 2019 17:50:57 +0800 Message-ID: <20190401095103.9592-4-david1.zhou@amd.com> References: <20190401095103.9592-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: <20190401095103.9592-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, Tobias.Hector@amd.com Cc: =?UTF-8?q?Christian=20K=C3=B6nig?= , Dave Airlie List-Id: amd-gfx.lists.freedesktop.org cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCnYzOgp1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKYS4g V2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCmIuIGFuZCB3YWl0IGZvciB0aW1l IHBvaW50IHRvIGJlY29tZSBhdmFpbGFibGUKdjQ6CnJlYmFzZQp2NToKYWRkIGNvbW1lbnQgZm9y IHh4eF9XQUlUX0FWQUlMQUJMRQp2NjogcmViYXNlIGFuZCByZXdvcmsgb24gbmV3IGNvbnRhaW5l cgp2NzogZHJvcCBfV0FJVF9DT01QTEVURUQsIGl0IGlzIHRoZSBkZWZhdWx0IGFueXdheQp2ODog Y29ycmVjdGx5IGhhbmRsZSBnYXJiYWdlIGNvbGxlY3RlZCBmZW5jZXMKClNpZ25lZC1vZmYtYnk6 IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQ2M6IFRvYmlhcyBIZWN0b3Ig PFRvYmlhcy5IZWN0b3JAYW1kLmNvbT4KQ2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3Ry YW5kLm5ldD4KQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+CkNjOiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IExpb25lbCBMYW5kd2VybGluIDxs aW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IExpb25lbCBMYW5kd2Vy bGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v ZHJtX2ludGVybmFsLmggfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jICAgIHwg ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jICB8IDE1MyArKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICB8ICAx NSArKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggMjUxZDY3ZTA0YzJkLi4zMzFhYzYyMjViNTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2ludGVybmFsLmgKQEAgLTE4Miw2ICsxODIsOCBAQCBpbnQgZHJtX3N5bmNv YmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CiAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwogaW50IGRybV9zeW5jb2Jq X3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKK2ludCBkcm1fc3luY29ial90aW1lbGluZV93 YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9yZXNldF9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2YXRlKTsKIGludCBkcm1fc3luY29ial9zaWduYWxfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwppbmRleCA2ODc5NDNk ZjU4ZTEuLmM5ODQ2NTQ2NDZmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0 bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjg4LDYgKzY4OCw4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rsc1tdID0gewogCQkg ICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1f SU9DVExfU1lOQ09CSl9XQUlULCBkcm1fc3luY29ial93YWl0X2lvY3RsLAogCQkgICAgICBEUk1f VU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lO Q09CSl9USU1FTElORV9XQUlULCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsLAorCQkg ICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRihEUk1f SU9DVExfU1lOQ09CSl9SRVNFVCwgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwsCiAJCSAgICAgIERS TV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9T WU5DT0JKX1NJR05BTCwgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmou YwppbmRleCBkYmU0YTFjNzVmYmMuLmIxMjYyZTkyMDExYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9zeW5jb2JqLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMK QEAgLTYxLDYgKzYxLDcgQEAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSB7CiAJc3RydWN0IHRh c2tfc3RydWN0ICp0YXNrOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwogCXN0cnVjdCBkbWFf ZmVuY2VfY2IgZmVuY2VfY2I7CisJdTY0ICAgIHBvaW50OwogfTsKIAogc3RhdGljIHZvaWQgc3lu Y29ial93YWl0X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCkBAIC05 NSw2ICs5Niw4IEBAIEVYUE9SVF9TWU1CT0woZHJtX3N5bmNvYmpfZmluZCk7CiBzdGF0aWMgdm9p ZCBkcm1fc3luY29ial9mZW5jZV9hZGRfd2FpdChzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmos CiAJCQkJICAgICAgIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgKndhaXQpCiB7CisJc3RydWN0 IGRtYV9mZW5jZSAqZmVuY2U7CisKIAlpZiAod2FpdC0+ZmVuY2UpCiAJCXJldHVybjsKIApAQCAt MTAzLDExICsxMDYsMTUgQEAgc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpfZmVuY2VfYWRkX3dhaXQo c3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAogCSAqIGhhdmUgdGhlIGxvY2ssIHRyeSBvbmUg bW9yZSB0aW1lIGp1c3QgdG8gYmUgc3VyZSB3ZSBkb24ndCBhZGQgYQogCSAqIGNhbGxiYWNrIHdo ZW4gYSBmZW5jZSBoYXMgYWxyZWFkeSBiZWVuIHNldC4KIAkgKi8KLQlpZiAoc3luY29iai0+ZmVu Y2UpCi0JCXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNlX2dldCgKLQkJCXJjdV9kZXJlZmVyZW5jZV9w cm90ZWN0ZWQoc3luY29iai0+ZmVuY2UsIDEpKTsKLQllbHNlCisJZmVuY2UgPSBkbWFfZmVuY2Vf Z2V0KHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY29iai0+ZmVuY2UsIDEpKTsKKwlpZiAo IWZlbmNlIHx8IGRtYV9mZW5jZV9jaGFpbl9maW5kX3NlcW5vKCZmZW5jZSwgd2FpdC0+cG9pbnQp KSB7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQlsaXN0X2FkZF90YWlsKCZ3YWl0LT5ub2Rl LCAmc3luY29iai0+Y2JfbGlzdCk7CisJfSBlbHNlIGlmICghZmVuY2UpIHsKKwkJd2FpdC0+ZmVu Y2UgPSBkbWFfZmVuY2VfZ2V0X3N0dWIoKTsKKwl9IGVsc2UgeworCQl3YWl0LT5mZW5jZSA9IGZl bmNlOworCX0KIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7CiB9CiAKQEAgLTE1MCwxMCAr MTU3LDggQEAgdm9pZCBkcm1fc3luY29ial9hZGRfcG9pbnQoc3RydWN0IGRybV9zeW5jb2JqICpz eW5jb2JqLAogCWRtYV9mZW5jZV9jaGFpbl9pbml0KGNoYWluLCBwcmV2LCBmZW5jZSwgcG9pbnQp OwogCXJjdV9hc3NpZ25fcG9pbnRlcihzeW5jb2JqLT5mZW5jZSwgJmNoYWluLT5iYXNlKTsKIAot CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5v ZGUpIHsKLQkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUoY3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2RlKQogCQlzeW5jb2JqX3dhaXRf c3luY29ial9mdW5jKHN5bmNvYmosIGN1cik7Ci0JfQogCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5s b2NrKTsKIAogCS8qIFdhbGsgdGhlIGNoYWluIG9uY2UgdG8gdHJpZ2dlciBnYXJiYWdlIGNvbGxl Y3Rpb24gKi8KQEAgLTE4NSwxMCArMTkwLDggQEAgdm9pZCBkcm1fc3luY29ial9yZXBsYWNlX2Zl bmNlKHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKIAlyY3VfYXNzaWduX3BvaW50ZXIoc3lu Y29iai0+ZmVuY2UsIGZlbmNlKTsKIAogCWlmIChmZW5jZSAhPSBvbGRfZmVuY2UpIHsKLQkJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkg ewotCQkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9z YWZlKGN1ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkKIAkJCXN5bmNvYmpfd2FpdF9z eW5jb2JqX2Z1bmMoc3luY29iaiwgY3VyKTsKLQkJfQogCX0KIAogCXNwaW5fdW5sb2NrKCZzeW5j b2JqLT5sb2NrKTsKQEAgLTY0NSwxMyArNjQ4LDI3IEBAIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2Fp dF9mZW5jZV9mdW5jKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAogc3RhdGljIHZvaWQgc3luY29i al93YWl0X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCiAJCQkJICAg ICAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqd2FpdCkKIHsKKwlzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZTsKKwogCS8qIFRoaXMgaGFwcGVucyBpbnNpZGUgdGhlIHN5bmNvYmogbG9jayAqLwot CXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNlX2dldChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5 bmNvYmotPmZlbmNlLAotCQkJCQkJCSAgICAgIGxvY2tkZXBfaXNfaGVsZCgmc3luY29iai0+bG9j aykpKTsKKwlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY29iai0+ZmVuY2Us CisJCQkJCSAgbG9ja2RlcF9pc19oZWxkKCZzeW5jb2JqLT5sb2NrKSk7CisJZG1hX2ZlbmNlX2dl dChmZW5jZSk7CisJaWYgKCFmZW5jZSB8fCBkbWFfZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVu Y2UsIHdhaXQtPnBvaW50KSkgeworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKKwkJcmV0dXJuOwor CX0gZWxzZSBpZiAoIWZlbmNlKSB7CisJCXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNlX2dldF9zdHVi KCk7CisJfSBlbHNlIHsKKwkJd2FpdC0+ZmVuY2UgPSBmZW5jZTsKKwl9CisKIAl3YWtlX3VwX3By b2Nlc3Mod2FpdC0+dGFzayk7CisJbGlzdF9kZWxfaW5pdCgmd2FpdC0+bm9kZSk7CiB9CiAKIHN0 YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0IGRy bV9zeW5jb2JqICoqc3luY29ianMsCisJCQkJCQkgIHZvaWQgX191c2VyICp1c2VyX3BvaW50cywK IAkJCQkJCSAgdWludDMyX3QgY291bnQsCiAJCQkJCQkgIHVpbnQzMl90IGZsYWdzLAogCQkJCQkJ ICBzaWduZWQgbG9uZyB0aW1lb3V0LApAQCAtNjU5LDEyICs2NzYsMjcgQEAgc3RhdGljIHNpZ25l ZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5bmNvYmog KipzeW5jb2JqcywKIHsKIAlzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICplbnRyaWVzOwogCXN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCXVpbnQ2NF90ICpwb2ludHM7CiAJdWludDMyX3Qgc2ln bmFsZWRfY291bnQsIGk7CiAKLQllbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRy aWVzKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFlbnRyaWVzKQorCXBvaW50cyA9IGttYWxsb2NfYXJy YXkoY291bnQsIHNpemVvZigqcG9pbnRzKSwgR0ZQX0tFUk5FTCk7CisJaWYgKHBvaW50cyA9PSBO VUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWlmICghdXNlcl9wb2ludHMpIHsKKwkJbWVtc2V0 KHBvaW50cywgMCwgY291bnQgKiBzaXplb2YodWludDY0X3QpKTsKKworCX0gZWxzZSBpZiAoY29w eV9mcm9tX3VzZXIocG9pbnRzLCB1c2VyX3BvaW50cywKKwkJCQkgIHNpemVvZih1aW50NjRfdCkg KiBjb3VudCkpIHsKKwkJdGltZW91dCA9IC1FRkFVTFQ7CisJCWdvdG8gZXJyX2ZyZWVfcG9pbnRz OworCX0KKworCWVudHJpZXMgPSBrY2FsbG9jKGNvdW50LCBzaXplb2YoKmVudHJpZXMpLCBHRlBf S0VSTkVMKTsKKwlpZiAoIWVudHJpZXMpIHsKKwkJdGltZW91dCA9IC1FTk9NRU07CisJCWdvdG8g ZXJyX2ZyZWVfcG9pbnRzOworCX0KIAkvKiBXYWxrIHRoZSBsaXN0IG9mIHN5bmMgb2JqZWN0cyBh bmQgaW5pdGlhbGl6ZSBlbnRyaWVzLiAgV2UgZG8KIAkgKiB0aGlzIHVwLWZyb250IHNvIHRoYXQg d2UgY2FuIHByb3Blcmx5IHJldHVybiAtRUlOVkFMIGlmIHRoZXJlIGlzCiAJICogYSBzeW5jb2Jq IHdpdGggYSBtaXNzaW5nIGZlbmNlIGFuZCB0aGVuIG5ldmVyIGhhdmUgdGhlIGNoYW5jZSBvZgpA QCAtNjcyLDkgKzcwNCwxMyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlf d2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCSAqLwogCXNpZ25h bGVkX2NvdW50ID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworCQlzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZTsKKwogCQllbnRyaWVzW2ldLnRhc2sgPSBjdXJyZW50OwotCQllbnRy aWVzW2ldLmZlbmNlID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN5bmNvYmpzW2ldKTsKLQkJaWYg KCFlbnRyaWVzW2ldLmZlbmNlKSB7CisJCWVudHJpZXNbaV0ucG9pbnQgPSBwb2ludHNbaV07CisJ CWZlbmNlID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN5bmNvYmpzW2ldKTsKKwkJaWYgKCFmZW5j ZSB8fCBkbWFfZmVuY2VfY2hhaW5fZmluZF9zZXFubygmZmVuY2UsIHBvaW50c1tpXSkpIHsKKwkJ CWRtYV9mZW5jZV9wdXQoZmVuY2UpOwogCQkJaWYgKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9G TEFHU19XQUlUX0ZPUl9TVUJNSVQpIHsKIAkJCQljb250aW51ZTsKIAkJCX0gZWxzZSB7CkBAIC02 ODMsNyArNzE5LDEzIEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0 X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJCQl9CiAJCX0KIAotCQlp ZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGVudHJpZXNbaV0uZmVuY2UpKSB7CisJCWlmIChmZW5j ZSkKKwkJCWVudHJpZXNbaV0uZmVuY2UgPSBmZW5jZTsKKwkJZWxzZQorCQkJZW50cmllc1tpXS5m ZW5jZSA9IGRtYV9mZW5jZV9nZXRfc3R1YigpOworCisJCWlmICgoZmxhZ3MgJiBEUk1fU1lOQ09C Sl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFKSB8fAorCQkgICAgZG1hX2ZlbmNlX2lzX3NpZ25h bGVkKGVudHJpZXNbaV0uZmVuY2UpKSB7CiAJCQlpZiAoc2lnbmFsZWRfY291bnQgPT0gMCAmJiBp ZHgpCiAJCQkJKmlkeCA9IGk7CiAJCQlzaWduYWxlZF9jb3VudCsrOwpAQCAtNzE2LDcgKzc1OCw4 IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3Ry dWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJCQlpZiAoIWZlbmNlKQogCQkJCWNvbnRpbnVl OwogCi0JCQlpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSB8fAorCQkJaWYgKChmbGFn cyAmIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFCTEUpIHx8CisJCQkgICAgZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSB8fAogCQkJICAgICghZW50cmllc1tpXS5mZW5jZV9j Yi5mdW5jICYmCiAJCQkgICAgIGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsCiAJCQkJCQkg ICAgJmVudHJpZXNbaV0uZmVuY2VfY2IsCkBAIC03NjEsNiArODA0LDkgQEAgc3RhdGljIHNpZ25l ZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5bmNvYmog KipzeW5jb2JqcywKIAl9CiAJa2ZyZWUoZW50cmllcyk7CiAKK2Vycl9mcmVlX3BvaW50czoKKwlr ZnJlZShwb2ludHMpOworCiAJcmV0dXJuIHRpbWVvdXQ7CiB9CiAKQEAgLTgwMCwxOSArODQ2LDMz IEBAIEVYUE9SVF9TWU1CT0woZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMpOwogc3RhdGljIGlu dCBkcm1fc3luY29ial9hcnJheV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fc3luY29ial93 YWl0ICp3YWl0LAotCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMpCisJCQkJICBz dHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCAqdGltZWxpbmVfd2FpdCwKKwkJCQkgIHN0 cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLCBib29sIHRpbWVsaW5lKQogewotCXNpZ25lZCBs b25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25z ZWMpOworCXNpZ25lZCBsb25nIHRpbWVvdXQgPSAwOwogCXVpbnQzMl90IGZpcnN0ID0gfjA7CiAK LQl0aW1lb3V0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAotCQkJ CQkJIHdhaXQtPmNvdW50X2hhbmRsZXMsCi0JCQkJCQkgd2FpdC0+ZmxhZ3MsCi0JCQkJCQkgdGlt ZW91dCwgJmZpcnN0KTsKLQlpZiAodGltZW91dCA8IDApCi0JCXJldHVybiB0aW1lb3V0OwotCi0J d2FpdC0+Zmlyc3Rfc2lnbmFsZWQgPSBmaXJzdDsKKwlpZiAoIXRpbWVsaW5lKSB7CisJCXRpbWVv dXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOworCQl0 aW1lb3V0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJCQkJ CSBOVUxMLAorCQkJCQkJCSB3YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJCSB3YWl0LT5mbGFn cywKKwkJCQkJCQkgdGltZW91dCwgJmZpcnN0KTsKKwkJaWYgKHRpbWVvdXQgPCAwKQorCQkJcmV0 dXJuIHRpbWVvdXQ7CisJCXdhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7CisJfSBlbHNlIHsK KwkJdGltZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKHRpbWVsaW5lX3dhaXQtPnRp bWVvdXRfbnNlYyk7CisJCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQo c3luY29ianMsCisJCQkJCQkJIHU2NF90b191c2VyX3B0cih0aW1lbGluZV93YWl0LT5wb2ludHMp LAorCQkJCQkJCSB0aW1lbGluZV93YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJCSB0aW1lbGlu ZV93YWl0LT5mbGFncywKKwkJCQkJCQkgdGltZW91dCwgJmZpcnN0KTsKKwkJaWYgKHRpbWVvdXQg PCAwKQorCQkJcmV0dXJuIHRpbWVvdXQ7CisJCXRpbWVsaW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVk ID0gZmlyc3Q7CisJfQogCXJldHVybiAwOwogfQogCkBAIC04OTgsMTMgKzk1OCw0OCBAQCBkcm1f c3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ CXJldHVybiByZXQ7CiAKIAlyZXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0KGRldiwgZmlsZV9w cml2YXRlLAotCQkJCSAgICAgYXJncywgc3luY29ianMpOworCQkJCSAgICAgYXJncywgTlVMTCwg c3luY29ianMsIGZhbHNlKTsKIAogCWRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFy Z3MtPmNvdW50X2hhbmRsZXMpOwogCiAJcmV0dXJuIHJldDsKIH0KIAoraW50Citkcm1fc3luY29i al90aW1lbGluZV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CisJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpCit7CisJc3RydWN0IGRybV9zeW5j b2JqX3RpbWVsaW5lX3dhaXQgKmFyZ3MgPSBkYXRhOworCXN0cnVjdCBkcm1fc3luY29iaiAqKnN5 bmNvYmpzOworCWludCByZXQgPSAwOworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRl diwgRFJJVkVSX1NZTkNPQkopKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmIChhcmdzLT5mbGFn cyAmIH4oRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCB8CisJCQkgICAgRFJNX1NZTkNP QkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgfAorCQkJICAgIERSTV9TWU5DT0JKX1dBSVRf RkxBR1NfV0FJVF9BVkFJTEFCTEUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChhcmdzLT5j b3VudF9oYW5kbGVzID09IDApCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gZHJtX3N5bmNv YmpfYXJyYXlfZmluZChmaWxlX3ByaXZhdGUsCisJCQkJICAgICB1NjRfdG9fdXNlcl9wdHIoYXJn cy0+aGFuZGxlcyksCisJCQkJICAgICBhcmdzLT5jb3VudF9oYW5kbGVzLAorCQkJCSAgICAgJnN5 bmNvYmpzKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IGRybV9zeW5j b2JqX2FycmF5X3dhaXQoZGV2LCBmaWxlX3ByaXZhdGUsCisJCQkJICAgICBOVUxMLCBhcmdzLCBz eW5jb2JqcywgdHJ1ZSk7CisKKwlkcm1fc3luY29ial9hcnJheV9mcmVlKHN5bmNvYmpzLCBhcmdz LT5jb3VudF9oYW5kbGVzKTsKKworCXJldHVybiByZXQ7Cit9CisKKwogaW50CiBkcm1fc3luY29i al9yZXNldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAppbmRleCAzMDBmMzM2NjMzZjIuLjQ0ZWJj ZGQ5YmQxZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAorKysgYi9pbmNsdWRl L3VhcGkvZHJtL2RybS5oCkBAIC03MzcsNiArNzM3LDcgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hh bmRsZSB7CiAKICNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAoMSA8PCAw KQogI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCAoMSA8PCAx KQorI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFICgxIDw8IDIp IC8qIHdhaXQgZm9yIHRpbWUgcG9pbnQgdG8gYmVjb21lIGF2YWlsYWJsZSAqLwogc3RydWN0IGRy bV9zeW5jb2JqX3dhaXQgewogCV9fdTY0IGhhbmRsZXM7CiAJLyogYWJzb2x1dGUgdGltZW91dCAq LwpAQCAtNzQ3LDYgKzc0OCwxOSBAQCBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB7CiAJX191MzIg cGFkOwogfTsKIAorc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQgeworCV9fdTY0IGhh bmRsZXM7CisJLyogd2FpdCBvbiBzcGVjaWZpYyB0aW1lbGluZSBwb2ludCBmb3IgZXZlcnkgaGFu ZGxlcyovCisJX191NjQgcG9pbnRzOworCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KKwlfX3M2NCB0 aW1lb3V0X25zZWM7CisJX191MzIgY291bnRfaGFuZGxlczsKKwlfX3UzMiBmbGFnczsKKwlfX3Uz MiBmaXJzdF9zaWduYWxlZDsgLyogb25seSB2YWxpZCB3aGVuIG5vdCB3YWl0aW5nIGFsbCAqLwor CV9fdTMyIHBhZDsKK307CisKKwogc3RydWN0IGRybV9zeW5jb2JqX2FycmF5IHsKIAlfX3U2NCBo YW5kbGVzOwogCV9fdTMyIGNvdW50X2hhbmRsZXM7CkBAIC05MDksNiArOTIzLDcgQEAgZXh0ZXJu ICJDIiB7CiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRQlEUk1fSU9XUigweEM4LCBz dHJ1Y3QgZHJtX21vZGVfZ2V0X2xlYXNlKQogI2RlZmluZSBEUk1fSU9DVExfTU9ERV9SRVZPS0Vf TEVBU0UJRFJNX0lPV1IoMHhDOSwgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFzZSkKIAorI2Rl ZmluZSBEUk1fSU9DVExfU1lOQ09CSl9USU1FTElORV9XQUlUCURSTV9JT1dSKDB4Q0EsIHN0cnVj dCBkcm1fc3luY29ial90aW1lbGluZV93YWl0KQogLyoqCiAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9j dGxzIHNob3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwogICogVGhlIGRl dmljZSBzcGVjaWZpYyBpb2N0bCByYW5nZSBpcyBmcm9tIDB4NDAgdG8gMHg5Zi4KLS0gCjIuMTcu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs