From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pixel Ding Subject: [PATCH 3/3] drm/amdgpu: busywait KIQ register accessing v2 Date: Tue, 17 Oct 2017 14:37:47 +0800 Message-ID: <1508222267-18627-4-git-send-email-Pixel.Ding@amd.com> References: <1508222267-18627-1-git-send-email-Pixel.Ding@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1508222267-18627-1-git-send-email-Pixel.Ding-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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Monk.Liu-5C7GfCeVMHo@public.gmane.org, Christian.Koenig-5C7GfCeVMHo@public.gmane.org Cc: Gary.Sun-5C7GfCeVMHo@public.gmane.org, pding , Bingley.Li-5C7GfCeVMHo@public.gmane.org RnJvbTogcGRpbmcgPFBpeGVsLkRpbmdAYW1kLmNvbT4KClJlZ2lzdGVyIGFjY2Vzc2luZyBpcyBw ZXJmb3JtZWQgd2hlbiBJUlEgaXMgZGlzYWJsZWQuIE5ldmVyIHNsZWVwIGluCnRoaXMgZnVuY3Rp b24uCgpLbm93biBpc3N1ZTogZGVhZCBzbGVlcCBpbiBtYW55IHVzZSBjYXNlcyBvZiBpbmRleC9k YXRhIHJlZ2lzdGVycy4KCnYyOiB3cmFwIHBvbGxpbmcgZmVuY2UgZnVuY3Rpb25zLiBkb24ndCB0 cmlnZ2VyIElSUSBmb3IgcG9sbGluZyBpbgpjYXNlIG9mIHdyb25nbHkgZmVuY2Ugc2lnbmFsLgoK U2lnbmVkLW9mZi1ieTogcGRpbmcgPFBpeGVsLkRpbmdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMgfCAgNCArLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyB8ICA0ICstCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAgICAgIHwgIDggKy0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZlbmNlLmMgICAgICAgICB8IDUzICsr KysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Z2Z4LmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9yaW5nLmggICAgICAgICAgfCAgNCArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZpcnQuYyAgICAgICAgICB8IDMwICsrKysrKy0tLS0tLS0KIDggZmlsZXMgY2hhbmdlZCwg NzggaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHUuaAppbmRleCBjYTIxMmVmLi5jYzA2ZTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHUuaApAQCAtODg1LDcgKzg4NSw3IEBAIHN0cnVjdCBhbWRncHVfbWVjIHsKIHN0cnVjdCBh bWRncHVfa2lxIHsKIAl1NjQJCQllb3BfZ3B1X2FkZHI7CiAJc3RydWN0IGFtZGdwdV9ibwkqZW9w X29iajsKLQlzdHJ1Y3QgbXV0ZXgJCXJpbmdfbXV0ZXg7CisJc3BpbmxvY2tfdCAgICAgICAgICAg ICAgcmluZ19sb2NrOwogCXN0cnVjdCBhbWRncHVfcmluZwlyaW5nOwogCXN0cnVjdCBhbWRncHVf aXJxX3NyYwlpcnE7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2FtZGtmZF9nZnhfdjguYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hbWRrZmRfZ2Z4X3Y4LmMKaW5kZXggOWQ5OTY1ZC4uNmQ4MzU3MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjguYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jCkBAIC03ODgsNyAr Nzg4LDcgQEAgc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnNfd2l0aF9raXEoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHVpbnQxNl90IHBhc2lkKQogCXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJ c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPmdmeC5raXEucmluZzsKIAotCW11dGV4 X2xvY2soJmFkZXYtPmdmeC5raXEucmluZ19tdXRleCk7CisJc3Bpbl9sb2NrKCZhZGV2LT5nZngu a2lxLnJpbmdfbG9jayk7CiAJYW1kZ3B1X3JpbmdfYWxsb2MocmluZywgMTIpOyAvKiBmZW5jZSAr IGludmFsaWRhdGVfdGxicyBwYWNrYWdlKi8KIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNL RVQzKFBBQ0tFVDNfSU5WQUxJREFURV9UTEJTLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmlu ZywKQEAgLTc5Niw3ICs3OTYsNyBAQCBzdGF0aWMgaW50IGludmFsaWRhdGVfdGxic193aXRoX2tp cShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDE2X3QgcGFzaWQpCiAJCQlQQUNLRVQz X0lOVkFMSURBVEVfVExCU19QQVNJRChwYXNpZCkpOwogCWFtZGdwdV9mZW5jZV9lbWl0KHJpbmcs ICZmKTsKIAlhbWRncHVfcmluZ19jb21taXQocmluZyk7Ci0JbXV0ZXhfdW5sb2NrKCZhZGV2LT5n Zngua2lxLnJpbmdfbXV0ZXgpOworCXNwaW5fdW5sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbG9j ayk7CiAKIAlyID0gZG1hX2ZlbmNlX3dhaXQoZiwgZmFsc2UpOwogCWlmIChyKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMKaW5kZXggZWRi YWUxOS4uYzkyMjE3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2FtZGtmZF9nZnhfdjkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkX2dmeF92OS5jCkBAIC05NzMsNyArOTczLDcgQEAgc3RhdGljIGludCBpbnZhbGlk YXRlX3RsYnNfd2l0aF9raXEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQxNl90IHBh c2lkKQogCXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0g JmFkZXYtPmdmeC5raXEucmluZzsKIAotCW11dGV4X2xvY2soJmFkZXYtPmdmeC5raXEucmluZ19t dXRleCk7CisJc3Bpbl9sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbG9jayk7CiAJYW1kZ3B1X3Jp bmdfYWxsb2MocmluZywgMTIpOyAvKiBmZW5jZSArIGludmFsaWRhdGVfdGxicyBwYWNrYWdlKi8K IAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfSU5WQUxJREFURV9UTEJT LCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywKQEAgLTk4Myw3ICs5ODMsNyBAQCBzdGF0 aWMgaW50IGludmFsaWRhdGVfdGxic193aXRoX2tpcShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwgdWludDE2X3QgcGFzaWQpCiAJCQlQQUNLRVQzX0lOVkFMSURBVEVfVExCU19GTFVTSF9UWVBF KDIpKTsKIAlhbWRncHVfZmVuY2VfZW1pdChyaW5nLCAmZik7CiAJYW1kZ3B1X3JpbmdfY29tbWl0 KHJpbmcpOwotCW11dGV4X3VubG9jaygmYWRldi0+Z2Z4LmtpcS5yaW5nX211dGV4KTsKKwlzcGlu X3VubG9jaygmYWRldi0+Z2Z4LmtpcS5yaW5nX2xvY2spOwogCiAJciA9IGRtYV9mZW5jZV93YWl0 KGYsIGZhbHNlKTsKIAlpZiAocikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k ZXZpY2UuYwppbmRleCBhYjhmMGQ2Li4xMTk3Mjc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RldmljZS5jCkBAIC0xMDksMTAgKzEwOSw4IEBAIHVpbnQzMl90IGFtZGdw dV9tbV9ycmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcsCiB7CiAJ dWludDMyX3QgcmV0OwogCi0JaWYgKCEoYWNjX2ZsYWdzICYgQU1ER1BVX1JFR1NfTk9fS0lRKSAm JiBhbWRncHVfc3Jpb3ZfcnVudGltZShhZGV2KSkgewotCQlCVUdfT04oaW5faW50ZXJydXB0KCkp OworCWlmICghKGFjY19mbGFncyAmIEFNREdQVV9SRUdTX05PX0tJUSkgJiYgYW1kZ3B1X3NyaW92 X3J1bnRpbWUoYWRldikpCiAJCXJldHVybiBhbWRncHVfdmlydF9raXFfcnJlZyhhZGV2LCByZWcp OwotCX0KIAogCWlmICgocmVnICogNCkgPCBhZGV2LT5ybW1pb19zaXplICYmICEoYWNjX2ZsYWdz ICYgQU1ER1BVX1JFR1NfSURYKSkKIAkJcmV0ID0gcmVhZGwoKCh2b2lkIF9faW9tZW0gKilhZGV2 LT5ybW1pbykgKyAocmVnICogNCkpOwpAQCAtMTM3LDEwICsxMzUsOCBAQCB2b2lkIGFtZGdwdV9t bV93cmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcsIHVpbnQzMl90 IHYsCiAJCWFkZXYtPmxhc3RfbW1faW5kZXggPSB2OwogCX0KIAotCWlmICghKGFjY19mbGFncyAm IEFNREdQVV9SRUdTX05PX0tJUSkgJiYgYW1kZ3B1X3NyaW92X3J1bnRpbWUoYWRldikpIHsKLQkJ QlVHX09OKGluX2ludGVycnVwdCgpKTsKKwlpZiAoIShhY2NfZmxhZ3MgJiBBTURHUFVfUkVHU19O T19LSVEpICYmIGFtZGdwdV9zcmlvdl9ydW50aW1lKGFkZXYpKQogCQlyZXR1cm4gYW1kZ3B1X3Zp cnRfa2lxX3dyZWcoYWRldiwgcmVnLCB2KTsKLQl9CiAKIAlpZiAoKHJlZyAqIDQpIDwgYWRldi0+ cm1taW9fc2l6ZSAmJiAhKGFjY19mbGFncyAmIEFNREdQVV9SRUdTX0lEWCkpCiAJCXdyaXRlbCh2 LCAoKHZvaWQgX19pb21lbSAqKWFkZXYtPnJtbWlvKSArIChyZWcgKiA0KSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCmluZGV4IDY4ODc0MGUuLjY4YTVlOTAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCkBAIC0xNjksNiArMTY5 LDMyIEBAIGludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0 cnVjdCBkbWFfZmVuY2UgKipmKQogfQogCiAvKioKKyAqIGFtZGdwdV9mZW5jZV9lbWl0X3BvbGxp bmcgLSBlbWl0IGEgZmVuY2Ugb24gdGhlIHJlcXVlc3RlIHJpbmcKKyAqCisgKiBAcmluZzogcmlu ZyB0aGUgZmVuY2UgaXMgYXNzb2NpYXRlZCB3aXRoCisgKiBAczogcmVzdWx0aW5nIHNlcXVlbmNl IG51bWJlcgorICoKKyAqIEVtaXRzIGEgZmVuY2UgY29tbWFuZCBvbiB0aGUgcmVxdWVzdGVkIHJp bmcgKGFsbCBhc2ljcykuCisgKiBVc2VkIEZvciBwb2xsaW5nIGZlbmNlLgorICogUmV0dXJucyAw IG9uIHN1Y2Nlc3MsIC1FTk9NRU0gb24gZmFpbHVyZS4KKyAqLworaW50IGFtZGdwdV9mZW5jZV9l bWl0X3BvbGxpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCAqcykKK3sKKwl1 aW50MzJfdCBzZXE7CisKKwlpZiAoIXMpCisJCXJldHVybiAtRUlOVkFMOworCisJc2VxID0gKyty aW5nLT5mZW5jZV9kcnYuc3luY19zZXE7CisJYW1kZ3B1X3JpbmdfZW1pdF9mZW5jZShyaW5nLCBy aW5nLT5mZW5jZV9kcnYuZ3B1X2FkZHIsCisJCQkgICAgICAgc2VxLCBBTURHUFVfRkVOQ0VfRkxB R19JTlQpOworCisJKnMgPSBzZXE7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCiAgKiBhbWRncHVf ZmVuY2Vfc2NoZWR1bGVfZmFsbGJhY2sgLSBzY2hlZHVsZSBmYWxsYmFjayBjaGVjawogICoKICAq IEByaW5nOiBwb2ludGVyIHRvIHN0cnVjdCBhbWRncHVfcmluZwpAQCAtMjgxLDYgKzMwNywzMyBA QCBpbnQgYW1kZ3B1X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQog CXJldHVybiByOwogfQogCitzaWduZWQgbG9uZyBhbWRncHVfZmVuY2Vfd2FpdF9wb2xsaW5nKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywKKwkJCQkgICAgICB1aW50MzJfdCB3YWl0X3NlcSwKKwkJ CQkgICAgICBzaWduZWQgbG9uZyB0aW1lb3V0KQoreworCXVpbnQzMl90IHNlcSwgbGFzdF9zZXE7 CisJc3RydWN0IGFtZGdwdV9mZW5jZV9kcml2ZXIgKmRydiA9ICZyaW5nLT5mZW5jZV9kcnY7CisK KwlsYXN0X3NlcSA9IGF0b21pY19yZWFkKCZyaW5nLT5mZW5jZV9kcnYubGFzdF9zZXEpOworCisJ ZG8geworCQlzZXEgPSBhbWRncHVfZmVuY2VfcmVhZChyaW5nKTsKKworCQlpZiAodW5saWtlbHko c2VxID09IGxhc3Rfc2VxKSkKKwkJCWJyZWFrOworCQlpZiAoc2VxID49IHdhaXRfc2VxICYmIHdh aXRfc2VxID49IGxhc3Rfc2VxKQorCQkJYnJlYWs7CisJCWlmIChzZXEgPD0gbGFzdF9zZXEgJiYK KwkJICAgICh3YWl0X3NlcSA8PSBzZXEgfHwgd2FpdF9zZXEgPj0gbGFzdF9zZXEpKQorCQkJYnJl YWs7CisJCXVkZWxheSg1KTsKKwkJdGltZW91dCAtPSA1OworCX0gd2hpbGUgKHRpbWVvdXQgPiAw KTsKKworCWF0b21pY19jbXB4Y2hnKCZkcnYtPmxhc3Rfc2VxLCBsYXN0X3NlcSwgd2FpdF9zZXEp OworCisJcmV0dXJuIHRpbWVvdXQ7Cit9CiAvKioKICAqIGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0 dGVkIC0gZ2V0IHRoZSBjb3VudCBvZiBlbWl0dGVkIGZlbmNlcwogICoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9nZnguYwppbmRleCA0ZjZjNjhmLi5lNWE5MDc3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dmeC5jCkBAIC0xODUsNyArMTg1LDcgQEAgaW50IGFt ZGdwdV9nZnhfa2lxX2luaXRfcmluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlzdHJ1 Y3QgYW1kZ3B1X2tpcSAqa2lxID0gJmFkZXYtPmdmeC5raXE7CiAJaW50IHIgPSAwOwogCi0JbXV0 ZXhfaW5pdCgma2lxLT5yaW5nX211dGV4KTsKKwlzcGluX2xvY2tfaW5pdCgma2lxLT5yaW5nX2xv Y2spOwogCiAJciA9IGFtZGdwdV93Yl9nZXQoYWRldiwgJmFkZXYtPnZpcnQucmVnX3ZhbF9vZmZz KTsKIAlpZiAocikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9yaW5nLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5oCmluZGV4 IGFmOGU1NDQuLjlkZTg5ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9yaW5nLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jp bmcuaApAQCAtODksOCArODksMTIgQEAgaW50IGFtZGdwdV9mZW5jZV9kcml2ZXJfc3RhcnRfcmlu ZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiB2b2lkIGFtZGdwdV9mZW5jZV9kcml2ZXJfc3Vz cGVuZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiB2b2lkIGFtZGdwdV9mZW5jZV9kcml2 ZXJfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIGludCBhbWRncHVfZmVuY2Vf ZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7 CitpbnQgYW1kZ3B1X2ZlbmNlX2VtaXRfcG9sbGluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcs IHVpbnQzMl90ICpzKTsKIHZvaWQgYW1kZ3B1X2ZlbmNlX3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nKTsKIGludCBhbWRncHVfZmVuY2Vfd2FpdF9lbXB0eShzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcpOworc2lnbmVkIGxvbmcgYW1kZ3B1X2ZlbmNlX3dhaXRfcG9sbGluZyhzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcsCisJCQkJICAgICAgdWludDMyX3Qgd2FpdF9zZXEsCisJCQkJICAg ICAgc2lnbmVkIGxvbmcgdGltZW91dCk7CiB1bnNpZ25lZCBhbWRncHVfZmVuY2VfY291bnRfZW1p dHRlZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92aXJ0LmMKaW5kZXggYWIwNTEyMS4uMTc3ZmUxMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jCkBAIC0yMiw3ICsyMiw3IEBACiAgKi8KIAog I2luY2x1ZGUgImFtZGdwdS5oIgotI2RlZmluZSBNQVhfS0lRX1JFR19XQUlUCTEwMDAwMAorI2Rl ZmluZSBNQVhfS0lRX1JFR19XQUlUCTEwMDAwMDAwMCAvKiBpbiB1c2VjcyAqLwogCiBpbnQgYW1k Z3B1X2FsbG9jYXRlX3N0YXRpY19jc2Eoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CkBA IC0xMTQsMjcgKzExNCwyNCBAQCB2b2lkIGFtZGdwdV92aXJ0X2luaXRfc2V0dGluZyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIHVpbnQzMl90IGFtZGdwdV92aXJ0X2tpcV9ycmVnKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcpCiB7CiAJc2lnbmVkIGxvbmcgcjsK LQl1aW50MzJfdCB2YWw7Ci0Jc3RydWN0IGRtYV9mZW5jZSAqZjsKKwl1aW50MzJfdCB2YWwsIHNl cTsKIAlzdHJ1Y3QgYW1kZ3B1X2tpcSAqa2lxID0gJmFkZXYtPmdmeC5raXE7CiAJc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nID0gJmtpcS0+cmluZzsKIAogCUJVR19PTighcmluZy0+ZnVuY3MtPmVt aXRfcnJlZyk7CiAKLQltdXRleF9sb2NrKCZraXEtPnJpbmdfbXV0ZXgpOworCXNwaW5fbG9jaygm a2lxLT5yaW5nX2xvY2spOwogCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsKIAlhbWRncHVf cmluZ19lbWl0X3JyZWcocmluZywgcmVnKTsKLQlhbWRncHVfZmVuY2VfZW1pdChyaW5nLCAmZik7 CisJYW1kZ3B1X2ZlbmNlX2VtaXRfcG9sbGluZyhyaW5nLCAmc2VxKTsKIAlhbWRncHVfcmluZ19j b21taXQocmluZyk7Ci0JbXV0ZXhfdW5sb2NrKCZraXEtPnJpbmdfbXV0ZXgpOworCXNwaW5fdW5s b2NrKCZraXEtPnJpbmdfbG9jayk7CiAKLQlyID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmLCBm YWxzZSwgbXNlY3NfdG9famlmZmllcyhNQVhfS0lRX1JFR19XQUlUKSk7Ci0JZG1hX2ZlbmNlX3B1 dChmKTsKKwlyID0gYW1kZ3B1X2ZlbmNlX3dhaXRfcG9sbGluZyhyaW5nLCBzZXEsIE1BWF9LSVFf UkVHX1dBSVQpOwogCWlmIChyIDwgMSkgewotCQlEUk1fRVJST1IoIndhaXQgZm9yIGtpcSBmZW5j ZSBlcnJvcjogJWxkLlxuIiwgcik7CisJCURSTV9FUlJPUigid2FpdCBmb3Iga2lxIGZlbmNlIGVy cm9yOiAlbGRcbiIsIHIpOwogCQlyZXR1cm4gfjA7CiAJfQotCiAJdmFsID0gYWRldi0+d2Iud2Jb YWRldi0+dmlydC5yZWdfdmFsX29mZnNdOwogCiAJcmV0dXJuIHZhbDsKQEAgLTE0MywyMyArMTQw LDIyIEBAIHVpbnQzMl90IGFtZGdwdV92aXJ0X2tpcV9ycmVnKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCB1aW50MzJfdCByZWcpCiB2b2lkIGFtZGdwdV92aXJ0X2tpcV93cmVnKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHYpCiB7CiAJc2lnbmVk IGxvbmcgcjsKLQlzdHJ1Y3QgZG1hX2ZlbmNlICpmOworCXVpbnQzMl90IHNlcTsKIAlzdHJ1Y3Qg YW1kZ3B1X2tpcSAqa2lxID0gJmFkZXYtPmdmeC5raXE7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nID0gJmtpcS0+cmluZzsKIAogCUJVR19PTighcmluZy0+ZnVuY3MtPmVtaXRfd3JlZyk7CiAK LQltdXRleF9sb2NrKCZraXEtPnJpbmdfbXV0ZXgpOworCXNwaW5fbG9jaygma2lxLT5yaW5nX2xv Y2spOwogCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsKIAlhbWRncHVfcmluZ19lbWl0X3dy ZWcocmluZywgcmVnLCB2KTsKLQlhbWRncHVfZmVuY2VfZW1pdChyaW5nLCAmZik7CisJYW1kZ3B1 X2ZlbmNlX2VtaXRfcG9sbGluZyhyaW5nLCAmc2VxKTsKIAlhbWRncHVfcmluZ19jb21taXQocmlu Zyk7Ci0JbXV0ZXhfdW5sb2NrKCZraXEtPnJpbmdfbXV0ZXgpOworCXNwaW5fdW5sb2NrKCZraXEt PnJpbmdfbG9jayk7CiAKLQlyID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmLCBmYWxzZSwgbXNl Y3NfdG9famlmZmllcyhNQVhfS0lRX1JFR19XQUlUKSk7CisJciA9IGFtZGdwdV9mZW5jZV93YWl0 X3BvbGxpbmcocmluZywgc2VxLCBNQVhfS0lRX1JFR19XQUlUKTsKIAlpZiAociA8IDEpCi0JCURS TV9FUlJPUigid2FpdCBmb3Iga2lxIGZlbmNlIGVycm9yOiAlbGQuXG4iLCByKTsKLQlkbWFfZmVu Y2VfcHV0KGYpOworCQlEUk1fRVJST1IoIndhaXQgZm9yIGtpcSBmZW5jZSBlcnJvcjogJWxkXG4i LCByKTsKIH0KIAogLyoqCi0tIAoyLjkuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4Cg==