From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 3/6] drm: add support of syncobj timeline point wait v2 Date: Tue, 9 Oct 2018 16:45:25 +0800 Message-ID: <20181009084528.19184-3-david1.zhou@amd.com> References: <20181009084528.19184-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: <20181009084528.19184-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 Cc: amd-gfx@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org cG9pbnRzIGFycmF5IGlzIG9uZS10by1vbmUgbWF0Y2ggd2l0aCBzeW5jb2JqcyBhcnJheS4KdjI6 CmFkZCBzZXBlcmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJy ZWFrIHVhcGkuCnYzOgp1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKYS4g V2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCmIuIGFuZCB3YWl0IGZvciB0aW1l IHBvaW50IHRvIGJlY29tZSBhdmFpbGFibGUKClNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3Ug PGRhdmlkMS56aG91QGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o IHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCiBkcml2ZXJz L2dwdS9kcm0vZHJtX3N5bmNvYmouYyAgfCAxMTggKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tCiBpbmNsdWRlL3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAgMTggKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW50ZXJuYWwuaAppbmRleCAwYzRlYjRhOWFiMzEuLjU2NmQ0NGUzYzc4MiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW50ZXJuYWwuaApAQCAtMTgzLDYgKzE4Myw4IEBAIGludCBkcm1fc3luY29ial9mZF90b19oYW5k bGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQkgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7CiBpbnQgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXZhdGUpOworaW50IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXZhdGUpOwogaW50IGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUpOwogaW50IGRybV9zeW5jb2JqX3NpZ25hbF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCmluZGV4IDZiNGE2MzNiNDI0MC4uYzA4OTE2 MTRmNTE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCkBAIC02NjksNiArNjY5LDggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7CiAJCSAgICAgIERSTV9VTkxP Q0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JK X1dBSVQsIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwsCiAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1f UkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5F X1dBSVQsIGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwsCisJCSAgICAgIERSTV9VTkxP Q0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JK X1JFU0VULCBkcm1fc3luY29ial9yZXNldF9pb2N0bCwKIAkJICAgICAgRFJNX1VOTE9DS0VEfERS TV9SRU5ERVJfQUxMT1cpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfU0lHTkFM LCBkcm1fc3luY29ial9zaWduYWxfaW9jdGwsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX3N5bmNvYmouYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCmluZGV4IDY3NDcy YmQ3N2M4My4uZjNmMTFhYzJlZjI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5 bmNvYmouYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwpAQCAtMTI2LDEzICsx MjYsMTQgQEAgc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpfYWRkX2NhbGxiYWNrX2xvY2tlZChzdHJ1 Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCiB9CiAKIHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZmVu Y2VfZ2V0X29yX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCisJCQkJ CQkgdTY0IHBvaW50LAogCQkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwKIAkJCQkJCSBz dHJ1Y3QgZHJtX3N5bmNvYmpfY2IgKmNiLAogCQkJCQkJIGRybV9zeW5jb2JqX2Z1bmNfdCBmdW5j KQogewogCWludCByZXQ7CiAKLQlyZXQgPSBkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29i aiwgMCwgMCwgZmVuY2UpOworCXJldCA9IGRybV9zeW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2Jq LCBwb2ludCwgMCwgZmVuY2UpOwogCWlmICghcmV0KQogCQlyZXR1cm4gMTsKIApAQCAtMTQzLDcg KzE0NCw3IEBAIHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZmVuY2VfZ2V0X29yX2FkZF9jYWxsYmFj ayhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCiAJICovCiAJaWYgKCFsaXN0X2VtcHR5KCZz eW5jb2JqLT5zaWduYWxfcHRfbGlzdCkpIHsKIAkJc3Bpbl91bmxvY2soJnN5bmNvYmotPmxvY2sp OwotCQlkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgMCwgMCwgZmVuY2UpOworCQlk cm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgcG9pbnQsIDAsIGZlbmNlKTsKIAkJaWYg KCpmZW5jZSkKIAkJCXJldHVybiAxOwogCQlzcGluX2xvY2soJnN5bmNvYmotPmxvY2spOwpAQCAt MzU0LDEzICszNTUsMTcgQEAgdm9pZCBkcm1fc3luY29ial9yZXBsYWNlX2ZlbmNlKHN0cnVjdCBk cm1fc3luY29iaiAqc3luY29iaiwKIAlkcm1fc3luY29ial9jcmVhdGVfc2lnbmFsX3B0KHN5bmNv YmosIGZlbmNlLCBwdF92YWx1ZSk7CiAJaWYgKGZlbmNlKSB7CiAJCXN0cnVjdCBkcm1fc3luY29i al9jYiAqY3VyLCAqdG1wOworCQlzdHJ1Y3QgbGlzdF9oZWFkIGNiX2xpc3Q7CisKKwkJSU5JVF9M SVNUX0hFQUQoJmNiX2xpc3QpOwogCiAJCXNwaW5fbG9jaygmc3luY29iai0+bG9jayk7Ci0JCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5vZGUp IHsKKwkJbGlzdF9zcGxpY2VfaW5pdCgmc3luY29iai0+Y2JfbGlzdCwgJmNiX2xpc3QpOworCQlz cGluX3VubG9jaygmc3luY29iai0+bG9jayk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShj dXIsIHRtcCwgJmNiX2xpc3QsIG5vZGUpIHsKIAkJCWxpc3RfZGVsX2luaXQoJmN1ci0+bm9kZSk7 CiAJCQljdXItPmZ1bmMoc3luY29iaiwgY3VyKTsKIAkJfQotCQlzcGluX3VubG9jaygmc3luY29i ai0+bG9jayk7CiAJfQogfQogRVhQT1JUX1NZTUJPTChkcm1fc3luY29ial9yZXBsYWNlX2ZlbmNl KTsKQEAgLTg1Niw2ICs4NjEsNyBAQCBzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5IHsKIAlzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGZlbmNlX2NiOwogCXN0 cnVjdCBkcm1fc3luY29ial9jYiBzeW5jb2JqX2NiOworCXU2NCAgICBwb2ludDsKIH07CiAKIHN0 YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9mZW5jZV9mdW5jKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl LApAQCAtODczLDEyICs4NzksMTMgQEAgc3RhdGljIHZvaWQgc3luY29ial93YWl0X3N5bmNvYmpf ZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCiAJc3RydWN0IHN5bmNvYmpfd2FpdF9l bnRyeSAqd2FpdCA9CiAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRy eSwgc3luY29ial9jYik7CiAKLQlkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgMCwg MCwgJndhaXQtPmZlbmNlKTsKKwlkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgd2Fp dC0+cG9pbnQsIDAsICZ3YWl0LT5mZW5jZSk7CiAKIAl3YWtlX3VwX3Byb2Nlc3Mod2FpdC0+dGFz ayk7CiB9CiAKIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVv dXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCisJCQkJCQkgIHZvaWQgX191c2VyICp1 c2VyX3BvaW50cywKIAkJCQkJCSAgdWludDMyX3QgY291bnQsCiAJCQkJCQkgIHVpbnQzMl90IGZs YWdzLAogCQkJCQkJICBzaWduZWQgbG9uZyB0aW1lb3V0LApAQCAtODg2LDEzICs4OTMsMzggQEAg c3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3Qg ZHJtX3N5bmNvYmogKipzeW5jb2JqcywKIHsKIAlzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5ICpl bnRyaWVzOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOworCXVpbnQ2NF90ICpwb2ludHM7CiAJ c2lnbmVkIGxvbmcgcmV0OwogCXVpbnQzMl90IHNpZ25hbGVkX2NvdW50LCBpOwogCi0JZW50cmll cyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJORUwpOwotCWlmICgh ZW50cmllcykKKwlwb2ludHMgPSBrbWFsbG9jX2FycmF5KGNvdW50LCBzaXplb2YoKnBvaW50cyks IEdGUF9LRVJORUwpOworCWlmIChwb2ludHMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAK KwlpZiAoIXVzZXJfcG9pbnRzKSB7CisJCW1lbXNldChwb2ludHMsIDAsIGNvdW50ICogc2l6ZW9m KHVpbnQ2NF90KSk7CisJfSBlbHNlIGlmIChjb3B5X2Zyb21fdXNlcihwb2ludHMsIHVzZXJfcG9p bnRzLCBzaXplb2YodWludDY0X3QpICogY291bnQpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdv dG8gZXJyX2ZyZWVfcG9pbnRzOworCX0KKworCisJaWYgKGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJ VF9GTEFHU19XQUlUX0FWQUlMQUJMRSkgeworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKwkJ Zm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKwkJCXJldCA9IGRybV9zeW5jb2JqX3NlYXJj aF9mZW5jZShzeW5jb2Jqc1tpXSwgcG9pbnRzW2ldLAorCQkJCQkJICAgICAgIERSTV9TWU5DT0JK X1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlULAorCQkJCQkJICAgICAgICZmZW5jZSk7CisJCQlp ZiAocmV0KQorCQkJCWdvdG8gZXJyX2ZyZWVfcG9pbnRzOworCQl9CisJCWdvdG8gZXJyX2ZyZWVf cG9pbnRzOworCX0KKwllbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwg R0ZQX0tFUk5FTCk7CisJaWYgKCFlbnRyaWVzKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8g ZXJyX2ZyZWVfcG9pbnRzOworCX0KIAkvKiBXYWxrIHRoZSBsaXN0IG9mIHN5bmMgb2JqZWN0cyBh bmQgaW5pdGlhbGl6ZSBlbnRyaWVzLiAgV2UgZG8KIAkgKiB0aGlzIHVwLWZyb250IHNvIHRoYXQg d2UgY2FuIHByb3Blcmx5IHJldHVybiAtRUlOVkFMIGlmIHRoZXJlIGlzCiAJICogYSBzeW5jb2Jq IHdpdGggYSBtaXNzaW5nIGZlbmNlIGFuZCB0aGVuIG5ldmVyIGhhdmUgdGhlIGNoYW5jZSBvZgpA QCAtOTAxLDcgKzkzMyw4IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93 YWl0X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJc2lnbmFsZWRfY291 bnQgPSAwOwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAJCWVudHJpZXNbaV0udGFz ayA9IGN1cnJlbnQ7Ci0JCXJldCA9IGRybV9zeW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2Jqc1tp XSwgMCwgMCwKKwkJZW50cmllc1tpXS5wb2ludCA9IHBvaW50c1tpXTsKKwkJcmV0ID0gZHJtX3N5 bmNvYmpfc2VhcmNoX2ZlbmNlKHN5bmNvYmpzW2ldLCBwb2ludHNbaV0sIDAsCiAJCQkJCSAgICAg ICAmZW50cmllc1tpXS5mZW5jZSk7CiAJCWlmICghZW50cmllc1tpXS5mZW5jZSkgewogCQkJaWYg KGZsYWdzICYgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQpIHsKQEAgLTk0 MCw2ICs5NzMsNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90 aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAogCWlmIChmbGFncyAmIERSTV9T WU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBj b3VudDsgKytpKSB7CiAJCQlkcm1fc3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN5 bmNvYmpzW2ldLAorCQkJCQkJCSAgICAgIGVudHJpZXNbaV0ucG9pbnQsCiAJCQkJCQkJICAgICAg JmVudHJpZXNbaV0uZmVuY2UsCiAJCQkJCQkJICAgICAgJmVudHJpZXNbaV0uc3luY29ial9jYiwK IAkJCQkJCQkgICAgICBzeW5jb2JqX3dhaXRfc3luY29ial9mdW5jKTsKQEAgLTEwMDMsNiArMTAz Nyw5IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQo c3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCiAJfQogCWtmcmVlKGVudHJpZXMpOwogCitl cnJfZnJlZV9wb2ludHM6CisJa2ZyZWUocG9pbnRzKTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAg LTEwNDEsMjAgKzEwNzgsMzMgQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV90aW1lb3V0X2Fic190 b19qaWZmaWVzKGludDY0X3QgdGltZW91dF9uc2VjKQogc3RhdGljIGludCBkcm1fc3luY29ial9h cnJheV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSwKIAkJCQkgIHN0cnVjdCBkcm1fc3luY29ial93YWl0ICp3YWl0LAotCQkJ CSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMpCisJCQkJICBzdHJ1Y3QgZHJtX3N5bmNv YmpfdGltZWxpbmVfd2FpdCAqdGltZWxpbmVfd2FpdCwKKwkJCQkgIHN0cnVjdCBkcm1fc3luY29i aiAqKnN5bmNvYmpzLCBib29sIHRpbWVsaW5lKQogewotCXNpZ25lZCBsb25nIHRpbWVvdXQgPSBk cm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOworCXNpZ25lZCBs b25nIHRpbWVvdXQgPSAwOwogCXNpZ25lZCBsb25nIHJldCA9IDA7CiAJdWludDMyX3QgZmlyc3Qg PSB+MDsKIAotCXJldCA9IGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzeW5jb2JqcywK LQkJCQkJICAgICB3YWl0LT5jb3VudF9oYW5kbGVzLAotCQkJCQkgICAgIHdhaXQtPmZsYWdzLAot CQkJCQkgICAgIHRpbWVvdXQsICZmaXJzdCk7CisJaWYgKCF0aW1lbGluZSkgeworCQl0aW1lb3V0 ID0gZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMod2FpdC0+dGltZW91dF9uc2VjKTsKKwkJcmV0 ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJCQkJICAgICBO VUxMLAorCQkJCQkJICAgICB3YWl0LT5jb3VudF9oYW5kbGVzLAorCQkJCQkJICAgICB3YWl0LT5m bGFncywKKwkJCQkJCSAgICAgdGltZW91dCwgJmZpcnN0KTsKKwkJd2FpdC0+Zmlyc3Rfc2lnbmFs ZWQgPSBmaXJzdDsKKwl9IGVsc2UgeworCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJzX3RvX2pp ZmZpZXModGltZWxpbmVfd2FpdC0+dGltZW91dF9uc2VjKTsKKwkJcmV0ID0gZHJtX3N5bmNvYmpf YXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAorCQkJCQkJICAgICB1NjRfdG9fdXNlcl9wdHIo dGltZWxpbmVfd2FpdC0+cG9pbnRzKSwKKwkJCQkJCSAgICAgdGltZWxpbmVfd2FpdC0+Y291bnRf aGFuZGxlcywKKwkJCQkJCSAgICAgdGltZWxpbmVfd2FpdC0+ZmxhZ3MsCisJCQkJCQkgICAgIHRp bWVvdXQsICZmaXJzdCk7CisJCXRpbWVsaW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7 CisJfQogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCi0Jd2FpdC0+Zmlyc3Rfc2lnbmFs ZWQgPSBmaXJzdDsKIAlpZiAocmV0ID09IDApCiAJCXJldHVybiAtRVRJTUU7CiAJcmV0dXJuIDA7 CkBAIC0xMTQyLDEzICsxMTkyLDQ5IEBAIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IGRybV9z eW5jb2JqX2FycmF5X3dhaXQoZGV2LCBmaWxlX3ByaXZhdGUsCi0JCQkJICAgICBhcmdzLCBzeW5j b2Jqcyk7CisJCQkJICAgICBhcmdzLCBOVUxMLCBzeW5jb2JqcywgZmFsc2UpOworCisJZHJtX3N5 bmNvYmpfYXJyYXlfZnJlZShzeW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxlcyk7CisKKwlyZXR1 cm4gcmV0OworfQorCitpbnQKK2RybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdmF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCAqYXJncyA9IGRh dGE7CisJc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianM7CisJaW50IHJldCA9IDA7CisKKwlp ZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCisJCXJldHVy biAtRU5PREVWOworCisJaWYgKGFyZ3MtPmZsYWdzICYgfihEUk1fU1lOQ09CSl9XQUlUX0ZMQUdT X1dBSVRfQUxMIHwKKwkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1J VCB8CisJCQkgICAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0NPTVBMRVRFRCB8CisJCQkg ICAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSkpCisJCXJldHVybiAtRUlO VkFMOworCisJaWYgKGFyZ3MtPmNvdW50X2hhbmRsZXMgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7 CisKKwlyZXQgPSBkcm1fc3luY29ial9hcnJheV9maW5kKGZpbGVfcHJpdmF0ZSwKKwkJCQkgICAg IHU2NF90b191c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwKKwkJCQkgICAgIGFyZ3MtPmNvdW50X2hh bmRsZXMsCisJCQkJICAgICAmc3luY29ianMpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0 OworCisJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJpdmF0ZSwKKwkJ CQkgICAgIE5VTEwsIGFyZ3MsIHN5bmNvYmpzLCB0cnVlKTsKIAogCWRybV9zeW5jb2JqX2FycmF5 X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOwogCiAJcmV0dXJuIHJldDsKIH0K IAorCiBpbnQKIGRybV9zeW5jb2JqX3Jlc2V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCmluZGV4 IGNlYmRiMjU0MWViNy4uYzhiYzE0MTQ3NTNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKQEAgLTczOCw2ICs3MzgsMTAgQEAg c3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7CiAKICNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9G TEFHU19XQUlUX0FMTCAoMSA8PCAwKQogI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dB SVRfRk9SX1NVQk1JVCAoMSA8PCAxKQorLyogd2FpdCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21w bGV0ZWQgKi8KKyNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0NPTVBMRVRFRCAo MSA8PCAyKQorLyogd2FpdCBmb3IgdGltZSBwb2ludCB0byBiZWNvbWUgYXZhaWxhYmxlICovCisj ZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFCTEUgKDEgPDwgMykKIHN0 cnVjdCBkcm1fc3luY29ial93YWl0IHsKIAlfX3U2NCBoYW5kbGVzOwogCS8qIGFic29sdXRlIHRp bWVvdXQgKi8KQEAgLTc0OCw2ICs3NTIsMTkgQEAgc3RydWN0IGRybV9zeW5jb2JqX3dhaXQgewog CV9fdTMyIHBhZDsKIH07CiAKK3N0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV93YWl0IHsKKwlf X3U2NCBoYW5kbGVzOworCS8qIHdhaXQgb24gc3BlY2lmaWMgdGltZWxpbmUgcG9pbnQgZm9yIGV2 ZXJ5IGhhbmRsZXMqLworCV9fdTY0IHBvaW50czsKKwkvKiBhYnNvbHV0ZSB0aW1lb3V0ICovCisJ X19zNjQgdGltZW91dF9uc2VjOworCV9fdTMyIGNvdW50X2hhbmRsZXM7CisJX191MzIgZmxhZ3M7 CisJX191MzIgZmlyc3Rfc2lnbmFsZWQ7IC8qIG9ubHkgdmFsaWQgd2hlbiBub3Qgd2FpdGluZyBh bGwgKi8KKwlfX3UzMiBwYWQ7Cit9OworCisKIHN0cnVjdCBkcm1fc3luY29ial9hcnJheSB7CiAJ X191NjQgaGFuZGxlczsKIAlfX3UzMiBjb3VudF9oYW5kbGVzOwpAQCAtOTEwLDYgKzkyNyw3IEBA IGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fSU9DVExfTU9ERV9HRVRfTEVBU0UJRFJNX0lPV1Io MHhDOCwgc3RydWN0IGRybV9tb2RlX2dldF9sZWFzZSkKICNkZWZpbmUgRFJNX0lPQ1RMX01PREVf UkVWT0tFX0xFQVNFCURSTV9JT1dSKDB4QzksIHN0cnVjdCBkcm1fbW9kZV9yZXZva2VfbGVhc2Up CiAKKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVfV0FJVAlEUk1fSU9XUigweENB LCBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCkKIC8qKgogICogRGV2aWNlIHNwZWNp ZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKICAq IFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgZnJvbSAweDQwIHRvIDB4OWYuCi0t IAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=