From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 04/11] drm/msm: move fence code to it's own file Date: Fri, 18 Mar 2016 19:14:57 -0400 Message-ID: <1458342904-23326-5-git-send-email-robdclark@gmail.com> References: <1458342904-23326-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458342904-23326-1-git-send-email-robdclark@gmail.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: maarten.lankhorst@canonical.com, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org U2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9tc20vTWFrZWZpbGUgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2F0b21pYy5jIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgIHwg MTA4ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9kcnYuaCAgICB8ICAyNyArLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVu Y2UuYyAgfCAxMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oICB8ICA0MyArKysrKysrKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9nZW0uYyAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9ncHUuYyAgICB8ICAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDE3OCBpbnNlcnRpb25zKCspLCAx MzMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZmVuY2UuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Zl bmNlLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9NYWtlZmlsZQppbmRleCBjZmVjNGJiLi5kMmQ5ZGU4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v TWFrZWZpbGUKQEAgLTI2LDYgKzI2LDcgQEAgbXNtLXkgOj0gXAogCW1zbV9kZWJ1Z2ZzLm8gXAog CW1zbV9kcnYubyBcCiAJbXNtX2ZiLm8gXAorCW1zbV9mZW5jZS5vIFwKIAltc21fZ2VtLm8gXAog CW1zbV9nZW1fcHJpbWUubyBcCiAJbXNtX2dlbV9zdWJtaXQubyBcCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0 b21pYy5jCmluZGV4IDdlYjI1M2IuLjNjMGY3YTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5j CkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9r bXMuaCIKICNpbmNsdWRlICJtc21fZ2VtLmgiCisjaW5jbHVkZSAibXNtX2ZlbmNlLmgiCiAKIHN0 cnVjdCBtc21fY29tbWl0IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9k cnYuYwppbmRleCA1ZTA4ZWE5Li42OTg4Mjg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwpAQCAtMTcs NiArMTcsNyBAQAogCiAjaW5jbHVkZSAibXNtX2Rydi5oIgogI2luY2x1ZGUgIm1zbV9kZWJ1Z2Zz LmgiCisjaW5jbHVkZSAibXNtX2ZlbmNlLmgiCiAjaW5jbHVkZSAibXNtX2dwdS5oIgogI2luY2x1 ZGUgIm1zbV9rbXMuaCIKIApAQCAtNTQwLDExMyArNTQxLDYgQEAgc3RhdGljIHZvaWQgbXNtX2Rp c2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQog fQogCiAvKgotICogRmVuY2VzOgotICovCi0KLWludCBtc21fd2FpdF9mZW5jZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1aW50MzJfdCBmZW5jZSwKLQkJa3RpbWVfdCAqdGltZW91dCAsIGJvb2wg aW50ZXJydXB0aWJsZSkKLXsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKLQlpbnQgcmV0OwotCi0JaWYgKCFwcml2LT5ncHUpCi0JCXJldHVybiAwOwot Ci0JaWYgKGZlbmNlID4gcHJpdi0+Z3B1LT5zdWJtaXR0ZWRfZmVuY2UpIHsKLQkJRFJNX0VSUk9S KCJ3YWl0aW5nIG9uIGludmFsaWQgZmVuY2U6ICV1IChvZiAldSlcbiIsCi0JCQkJZmVuY2UsIHBy aXYtPmdwdS0+c3VibWl0dGVkX2ZlbmNlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYg KCF0aW1lb3V0KSB7Ci0JCS8qIG5vLXdhaXQ6ICovCi0JCXJldCA9IGZlbmNlX2NvbXBsZXRlZChk ZXYsIGZlbmNlKSA/IDAgOiAtRUJVU1k7Ci0JfSBlbHNlIHsKLQkJa3RpbWVfdCBub3cgPSBrdGlt ZV9nZXQoKTsKLQkJdW5zaWduZWQgbG9uZyByZW1haW5pbmdfamlmZmllczsKLQotCQlpZiAoa3Rp bWVfY29tcGFyZSgqdGltZW91dCwgbm93KSA8IDApIHsKLQkJCXJlbWFpbmluZ19qaWZmaWVzID0g MDsKLQkJfSBlbHNlIHsKLQkJCWt0aW1lX3QgcmVtID0ga3RpbWVfc3ViKCp0aW1lb3V0LCBub3cp OwotCQkJc3RydWN0IHRpbWVzcGVjIHRzID0ga3RpbWVfdG9fdGltZXNwZWMocmVtKTsKLQkJCXJl bWFpbmluZ19qaWZmaWVzID0gdGltZXNwZWNfdG9famlmZmllcygmdHMpOwotCQl9Ci0KLQkJaWYg KGludGVycnVwdGlibGUpCi0JCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91 dChwcml2LT5mZW5jZV9ldmVudCwKLQkJCQlmZW5jZV9jb21wbGV0ZWQoZGV2LCBmZW5jZSksCi0J CQkJcmVtYWluaW5nX2ppZmZpZXMpOwotCQllbHNlCi0JCQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVv dXQocHJpdi0+ZmVuY2VfZXZlbnQsCi0JCQkJZmVuY2VfY29tcGxldGVkKGRldiwgZmVuY2UpLAot CQkJCXJlbWFpbmluZ19qaWZmaWVzKTsKLQotCQlpZiAocmV0ID09IDApIHsKLQkJCURCRygidGlt ZW91dCB3YWl0aW5nIGZvciBmZW5jZTogJXUgKGNvbXBsZXRlZDogJXUpIiwKLQkJCQkJZmVuY2Us IHByaXYtPmNvbXBsZXRlZF9mZW5jZSk7Ci0JCQlyZXQgPSAtRVRJTUVET1VUOwotCQl9IGVsc2Ug aWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpIHsKLQkJCXJldCA9IDA7Ci0JCX0KLQl9Ci0KLQlyZXR1 cm4gcmV0OwotfQotCi1pbnQgbXNtX3F1ZXVlX2ZlbmNlX2NiKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCi0JCXN0cnVjdCBtc21fZmVuY2VfY2IgKmNiLCB1aW50MzJfdCBmZW5jZSkKLXsKLQlzdHJ1 Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgcmV0ID0g MDsKLQotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAoIWxpc3RfZW1wdHko JmNiLT53b3JrLmVudHJ5KSkgewotCQlyZXQgPSAtRUlOVkFMOwotCX0gZWxzZSBpZiAoZmVuY2Ug PiBwcml2LT5jb21wbGV0ZWRfZmVuY2UpIHsKLQkJY2ItPmZlbmNlID0gZmVuY2U7Ci0JCWxpc3Rf YWRkX3RhaWwoJmNiLT53b3JrLmVudHJ5LCAmcHJpdi0+ZmVuY2VfY2JzKTsKLQl9IGVsc2Ugewot CQlxdWV1ZV93b3JrKHByaXYtPndxLCAmY2ItPndvcmspOwotCX0KLQltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLS8qIGNhbGxlZCBmcm9tIHdv cmtxdWV1ZSAqLwotdm9pZCBtc21fdXBkYXRlX2ZlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVpbnQzMl90IGZlbmNlKQotewotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCXByaXYt PmNvbXBsZXRlZF9mZW5jZSA9IG1heChmZW5jZSwgcHJpdi0+Y29tcGxldGVkX2ZlbmNlKTsKLQot CXdoaWxlICghbGlzdF9lbXB0eSgmcHJpdi0+ZmVuY2VfY2JzKSkgewotCQlzdHJ1Y3QgbXNtX2Zl bmNlX2NiICpjYjsKLQotCQljYiA9IGxpc3RfZmlyc3RfZW50cnkoJnByaXYtPmZlbmNlX2NicywK LQkJCQlzdHJ1Y3QgbXNtX2ZlbmNlX2NiLCB3b3JrLmVudHJ5KTsKLQotCQlpZiAoY2ItPmZlbmNl ID4gcHJpdi0+Y29tcGxldGVkX2ZlbmNlKQotCQkJYnJlYWs7Ci0KLQkJbGlzdF9kZWxfaW5pdCgm Y2ItPndvcmsuZW50cnkpOwotCQlxdWV1ZV93b3JrKHByaXYtPndxLCAmY2ItPndvcmspOwotCX0K LQotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0Jd2FrZV91cF9hbGwoJnBy aXYtPmZlbmNlX2V2ZW50KTsKLX0KLQotdm9pZCBfX21zbV9mZW5jZV93b3JrZXIoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQotewotCXN0cnVjdCBtc21fZmVuY2VfY2IgKmNiID0gY29udGFpbmVy X29mKHdvcmssIHN0cnVjdCBtc21fZmVuY2VfY2IsIHdvcmspOwotCWNiLT5mdW5jKGNiKTsKLX0K LQotLyoKICAqIERSTSBpb2N0bHM6CiAgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAppbmRleCA2OTgw YWE0Li5kZmQ4YzhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaApAQCAtNDksNiArNDksNyBAQCBzdHJ1 Y3QgbXNtX21tdTsKIHN0cnVjdCBtc21fcmRfc3RhdGU7CiBzdHJ1Y3QgbXNtX3BlcmZfc3RhdGU7 CiBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQ7CitzdHJ1Y3QgbXNtX2ZlbmNlX2NiOwogCiAjZGVmaW5l IE5VTV9ET01BSU5TIDIgICAgLyogb25lIGZvciBLTVMsIHRoZW4gb25lIHBlciBncHUgY29yZSAo PykgKi8KIApAQCAtMTU3LDIwICsxNTgsNiBAQCBzdHJ1Y3QgbXNtX2Zvcm1hdCB7CiAJdWludDMy X3QgcGl4ZWxfZm9ybWF0OwogfTsKIAotLyogY2FsbGJhY2sgZnJvbSB3cSBvbmNlIGZlbmNlIGhh cyBwYXNzZWQ6ICovCi1zdHJ1Y3QgbXNtX2ZlbmNlX2NiIHsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3Qg d29yazsKLQl1aW50MzJfdCBmZW5jZTsKLQl2b2lkICgqZnVuYykoc3RydWN0IG1zbV9mZW5jZV9j YiAqY2IpOwotfTsKLQotdm9pZCBfX21zbV9mZW5jZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKTsKLQotI2RlZmluZSBJTklUX0ZFTkNFX0NCKF9jYiwgX2Z1bmMpICBkbyB7ICAgICAg ICAgICAgICAgICAgICAgXAotCQlJTklUX1dPUksoJihfY2IpLT53b3JrLCBfX21zbV9mZW5jZV93 b3JrZXIpOyBcCi0JCShfY2IpLT5mdW5jID0gX2Z1bmM7ICAgICAgICAgICAgICAgICAgICAgICAg IFwKLQl9IHdoaWxlICgwKQotCiBpbnQgbXNtX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiBpbnQgbXNt X2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTE3OCwxMiArMTY1LDYg QEAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIGludCBt c21fcmVnaXN0ZXJfbW11KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBtc21fbW11ICpt bXUpOwogCi1pbnQgbXNtX3dhaXRfZmVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMy X3QgZmVuY2UsCi0JCWt0aW1lX3QgKnRpbWVvdXQsIGJvb2wgaW50ZXJydXB0aWJsZSk7Ci1pbnQg bXNtX3F1ZXVlX2ZlbmNlX2NiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCXN0cnVjdCBtc21f ZmVuY2VfY2IgKmNiLCB1aW50MzJfdCBmZW5jZSk7Ci12b2lkIG1zbV91cGRhdGVfZmVuY2Uoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgZmVuY2UpOwotCiBpbnQgbXNtX2lvY3RsX2dl bV9zdWJtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJc3RydWN0IGRy bV9maWxlICpmaWxlKTsKIApAQCAtMzM2LDEyICszMTcsNiBAQCB1MzIgbXNtX3JlYWRsKGNvbnN0 IHZvaWQgX19pb21lbSAqYWRkcik7CiAjZGVmaW5lIERCRyhmbXQsIC4uLikgRFJNX0RFQlVHKGZt dCJcbiIsICMjX19WQV9BUkdTX18pCiAjZGVmaW5lIFZFUkIoZm10LCAuLi4pIGlmICgwKSBEUk1f REVCVUcoZm10IlxuIiwgIyNfX1ZBX0FSR1NfXykKIAotc3RhdGljIGlubGluZSBib29sIGZlbmNl X2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBmZW5jZSkKLXsKLQlz dHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlyZXR1cm4g cHJpdi0+Y29tcGxldGVkX2ZlbmNlID49IGZlbmNlOwotfQotCiBzdGF0aWMgaW5saW5lIGludCBh bGlnbl9waXRjaChpbnQgd2lkdGgsIGludCBicHApCiB7CiAJaW50IGJ5dGVzcHAgPSAoYnBwICsg NykgLyA4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNTVhNWY5MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2ZlbmNlLmMKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt MjAxNiBSZWQgSGF0CisgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4K KyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAorICogQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCisgKgorICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYWxvbmcgd2l0aAorICogdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlICJtc21fZHJ2LmgiCisj aW5jbHVkZSAibXNtX2ZlbmNlLmgiCisjaW5jbHVkZSAibXNtX2dwdS5oIgorCitzdGF0aWMgaW5s aW5lIGJvb2wgZmVuY2VfY29tcGxldGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQzMl90 IGZlbmNlKQoreworCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2 YXRlOworCXJldHVybiAoaW50MzJfdCkocHJpdi0+Y29tcGxldGVkX2ZlbmNlIC0gZmVuY2UpID49 IDA7Cit9CisKK2ludCBtc21fd2FpdF9mZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50 MzJfdCBmZW5jZSwKKwkJa3RpbWVfdCAqdGltZW91dCAsIGJvb2wgaW50ZXJydXB0aWJsZSkKK3sK KwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQg cmV0OworCisJaWYgKCFwcml2LT5ncHUpCisJCXJldHVybiAwOworCisJaWYgKGZlbmNlID4gcHJp di0+Z3B1LT5zdWJtaXR0ZWRfZmVuY2UpIHsKKwkJRFJNX0VSUk9SKCJ3YWl0aW5nIG9uIGludmFs aWQgZmVuY2U6ICV1IChvZiAldSlcbiIsCisJCQkJZmVuY2UsIHByaXYtPmdwdS0+c3VibWl0dGVk X2ZlbmNlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKCF0aW1lb3V0KSB7CisJCS8q IG5vLXdhaXQ6ICovCisJCXJldCA9IGZlbmNlX2NvbXBsZXRlZChkZXYsIGZlbmNlKSA/IDAgOiAt RUJVU1k7CisJfSBlbHNlIHsKKwkJa3RpbWVfdCBub3cgPSBrdGltZV9nZXQoKTsKKwkJdW5zaWdu ZWQgbG9uZyByZW1haW5pbmdfamlmZmllczsKKworCQlpZiAoa3RpbWVfY29tcGFyZSgqdGltZW91 dCwgbm93KSA8IDApIHsKKwkJCXJlbWFpbmluZ19qaWZmaWVzID0gMDsKKwkJfSBlbHNlIHsKKwkJ CWt0aW1lX3QgcmVtID0ga3RpbWVfc3ViKCp0aW1lb3V0LCBub3cpOworCQkJc3RydWN0IHRpbWVz cGVjIHRzID0ga3RpbWVfdG9fdGltZXNwZWMocmVtKTsKKwkJCXJlbWFpbmluZ19qaWZmaWVzID0g dGltZXNwZWNfdG9famlmZmllcygmdHMpOworCQl9CisKKwkJaWYgKGludGVycnVwdGlibGUpCisJ CQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChwcml2LT5mZW5jZV9ldmVu dCwKKwkJCQlmZW5jZV9jb21wbGV0ZWQoZGV2LCBmZW5jZSksCisJCQkJcmVtYWluaW5nX2ppZmZp ZXMpOworCQllbHNlCisJCQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQocHJpdi0+ZmVuY2VfZXZl bnQsCisJCQkJZmVuY2VfY29tcGxldGVkKGRldiwgZmVuY2UpLAorCQkJCXJlbWFpbmluZ19qaWZm aWVzKTsKKworCQlpZiAocmV0ID09IDApIHsKKwkJCURCRygidGltZW91dCB3YWl0aW5nIGZvciBm ZW5jZTogJXUgKGNvbXBsZXRlZDogJXUpIiwKKwkJCQkJZmVuY2UsIHByaXYtPmNvbXBsZXRlZF9m ZW5jZSk7CisJCQlyZXQgPSAtRVRJTUVET1VUOworCQl9IGVsc2UgaWYgKHJldCAhPSAtRVJFU1RB UlRTWVMpIHsKKwkJCXJldCA9IDA7CisJCX0KKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQg bXNtX3F1ZXVlX2ZlbmNlX2NiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCXN0cnVjdCBtc21f ZmVuY2VfY2IgKmNiLCB1aW50MzJfdCBmZW5jZSkKK3sKKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRl ICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsKKworCW11dGV4X2xvY2so JmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAoIWxpc3RfZW1wdHkoJmNiLT53b3JrLmVudHJ5KSkg eworCQlyZXQgPSAtRUlOVkFMOworCX0gZWxzZSBpZiAoZmVuY2UgPiBwcml2LT5jb21wbGV0ZWRf ZmVuY2UpIHsKKwkJY2ItPmZlbmNlID0gZmVuY2U7CisJCWxpc3RfYWRkX3RhaWwoJmNiLT53b3Jr LmVudHJ5LCAmcHJpdi0+ZmVuY2VfY2JzKTsKKwl9IGVsc2UgeworCQlxdWV1ZV93b3JrKHByaXYt PndxLCAmY2ItPndvcmspOworCX0KKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsK KworCXJldHVybiByZXQ7Cit9CisKKy8qIGNhbGxlZCBmcm9tIHdvcmtxdWV1ZSAqLwordm9pZCBt c21fdXBkYXRlX2ZlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQzMl90IGZlbmNlKQor eworCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJ bXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCXByaXYtPmNvbXBsZXRlZF9mZW5jZSA9 IG1heChmZW5jZSwgcHJpdi0+Y29tcGxldGVkX2ZlbmNlKTsKKworCXdoaWxlICghbGlzdF9lbXB0 eSgmcHJpdi0+ZmVuY2VfY2JzKSkgeworCQlzdHJ1Y3QgbXNtX2ZlbmNlX2NiICpjYjsKKworCQlj YiA9IGxpc3RfZmlyc3RfZW50cnkoJnByaXYtPmZlbmNlX2NicywKKwkJCQlzdHJ1Y3QgbXNtX2Zl bmNlX2NiLCB3b3JrLmVudHJ5KTsKKworCQlpZiAoY2ItPmZlbmNlID4gcHJpdi0+Y29tcGxldGVk X2ZlbmNlKQorCQkJYnJlYWs7CisKKwkJbGlzdF9kZWxfaW5pdCgmY2ItPndvcmsuZW50cnkpOwor CQlxdWV1ZV93b3JrKHByaXYtPndxLCAmY2ItPndvcmspOworCX0KKworCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJd2FrZV91cF9hbGwoJnByaXYtPmZlbmNlX2V2ZW50KTsK K30KKwordm9pZCBfX21zbV9mZW5jZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQor eworCXN0cnVjdCBtc21fZmVuY2VfY2IgKmNiID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBt c21fZmVuY2VfY2IsIHdvcmspOworCWNiLT5mdW5jKGNiKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5j ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZGI4MWMKLS0tIC9kZXYv bnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oCkBAIC0wLDAgKzEsNDMg QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBSZWQgSGF0CisgKiBBdXRob3I6IFJv YiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICog dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9u IDIgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoK KyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLCBidXQgV0lUSE9VVAorICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yCisgKiBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcgd2l0aAorICogdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgor ICovCisKKyNpZm5kZWYgX19NU01fRkVOQ0VfSF9fCisjZGVmaW5lIF9fTVNNX0ZFTkNFX0hfXwor CisjaW5jbHVkZSAibXNtX2Rydi5oIgorCisvKiBjYWxsYmFjayBmcm9tIHdxIG9uY2UgZmVuY2Ug aGFzIHBhc3NlZDogKi8KK3N0cnVjdCBtc21fZmVuY2VfY2IgeworCXN0cnVjdCB3b3JrX3N0cnVj dCB3b3JrOworCXVpbnQzMl90IGZlbmNlOworCXZvaWQgKCpmdW5jKShzdHJ1Y3QgbXNtX2ZlbmNl X2NiICpjYik7Cit9OworCit2b2lkIF9fbXNtX2ZlbmNlX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspOworCisjZGVmaW5lIElOSVRfRkVOQ0VfQ0IoX2NiLCBfZnVuYykgIGRvIHsgICAg ICAgICAgICAgICAgICAgICBcCisJCUlOSVRfV09SSygmKF9jYiktPndvcmssIF9fbXNtX2ZlbmNl X3dvcmtlcik7IFwKKwkJKF9jYiktPmZ1bmMgPSBfZnVuYzsgICAgICAgICAgICAgICAgICAgICAg ICAgXAorCX0gd2hpbGUgKDApCisKK2ludCBtc21fd2FpdF9mZW5jZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1aW50MzJfdCBmZW5jZSwKKwkJa3RpbWVfdCAqdGltZW91dCwgYm9vbCBpbnRlcnJ1 cHRpYmxlKTsKK2ludCBtc21fcXVldWVfZmVuY2VfY2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwK KwkJc3RydWN0IG1zbV9mZW5jZV9jYiAqY2IsIHVpbnQzMl90IGZlbmNlKTsKK3ZvaWQgbXNtX3Vw ZGF0ZV9mZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBmZW5jZSk7CisKKyNl bmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9nZW0uYwppbmRleCAzY2VkYjhkLi5lZjAzZWU3IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW0uYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Bmbl90Lmg+CiAK ICNpbmNsdWRlICJtc21fZHJ2LmgiCisjaW5jbHVkZSAibXNtX2ZlbmNlLmgiCiAjaW5jbHVkZSAi bXNtX2dlbS5oIgogI2luY2x1ZGUgIm1zbV9ncHUuaCIKICNpbmNsdWRlICJtc21fbW11LmgiCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2dwdS5jCmluZGV4IDQyZTIyODQuLjVmNjcwNGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dw dS5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSAibXNtX2dwdS5oIgogI2luY2x1ZGUgIm1z bV9nZW0uaCIKICNpbmNsdWRlICJtc21fbW11LmgiCisjaW5jbHVkZSAibXNtX2ZlbmNlLmgiCiAK IAogLyoKLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK