From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 4/8] drm/i915: add the FBC mutex Date: Thu, 2 Jul 2015 19:25:10 -0300 Message-ID: <1435875914-11516-5-git-send-email-przanoni@gmail.com> References: <1435875914-11516-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f41.google.com (mail-qg0-f41.google.com [209.85.192.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A0746ECFB for ; Thu, 2 Jul 2015 15:26:00 -0700 (PDT) Received: by qgeg89 with SMTP id g89so39617956qge.3 for ; Thu, 02 Jul 2015 15:25:59 -0700 (PDT) In-Reply-To: <1435875914-11516-1-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpNYWtlIHN1cmUg d2UncmUgbm90IGdvaW5nIHRvIGhhdmUgd2VpcmQgcmFjZXMgaW4gcmVhbGx5IHdlaXJkIGNhc2Vz CndoZXJlIGEgbG90IG9mIGRpZmZlcmVudCBDUlRDcyBhcmUgZG9pbmcgcmVuZGVyaW5nIGFuZCBt b2Rlc2V0cyBhdCB0aGUKc2FtZSB0aW1lLgoKV2l0aCB0aGlzIGNoYW5nZSBhbmQgdGhlIHN0b2xl bl9sb2NrIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoLCB3ZSBjYW4Kc3RhcnQgcmVtb3ZpbmcgdGhl IHN0cnVjdF9tdXRleCBsb2NraW5nIHdlIGhhdmUgYXJvdW5kIEZCQyBpbiB0aGUgbmV4dApwYXRj aGVzLgoKdjI6CiAtIFJlYmFzZSAoNiBtb250aHMgbGF0ZXIpCiAtIEFsc28gbG9jayBkZWJ1Z2Zz IGFuZCBzdG9sZW4uCnYzOgogLSBEb24ndCBsb2NrIGEgc2luZ2xlIHZhbHVlIHJlYWQgKENocmlz KS4KIC0gUmVwbGFjZSBsb2NrZGVwIGFzc2VydGlvbnMgd2l0aCBXQVJOcyAoRGFuaWVsKS4KIC0g SW1wcm92ZSBjb21taXQgbWVzc2FnZS4KIC0gRG9uJ3QgZm9yZ2V0IGludGVsX3ByZV9wbGFuZV91 cGRhdGUoKSBsb2NraW5nLgp2NDoKIC0gRG9uJ3QgcmVtb3ZlIHN0cnVjdF9tdXRleCBhdCBpbnRl bF9wcmVfcGxhbmVfdXBkYXRlKCkgKENocmlzKS4KIC0gQWRkIGNvbW1lbnQgcmVnYXJkaW5nIGxv Y2tpbmcgZGVwZW5kZW5jaWVzIChDaHJpcykuCiAtIFJlYmFzZSBhZnRlciB0aGUgc3RvbGVuIGNv ZGUgcmV3b3JrLgogLSBSZWJhc2UgYWdhaW4gYWZ0ZXIgZHJtLWludGVsLW5pZ2h0bHkgY2hhbmdl cy4KdjU6CiAtIFJlYmFzZSBhZnRlciB0aGUgbmV3IHN0b2xlbl9sb2NrIHBhdGNoLgoKUmV2aWV3 ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPiAodjQpClNpZ25l ZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICAgNCArKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAzICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgIHwgMTAx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDk2 IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKaW5kZXggNzFiYTUxOS4uYjJmMzkxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKQEAgLTE2MzMsNiArMTYzMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mYmNfc3RhdHVzKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCX0KIAogCWludGVsX3J1bnRpbWVfcG1f Z2V0KGRldl9wcml2KTsKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogCiAJaWYg KGludGVsX2ZiY19lbmFibGVkKGRldikpCiAJCXNlcV9wdXRzKG0sICJGQkMgZW5hYmxlZFxuIik7 CkBAIC0xNjQ1LDYgKzE2NDYsNyBAQCBzdGF0aWMgaW50IGk5MTVfZmJjX3N0YXR1cyhzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJCSAgIHllc25vKEk5MTVfUkVBRChGQkNfU1RB VFVTMikgJgogCQkJCSBGQkNfQ09NUFJFU1NJT05fTUFTSykpOwogCisJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+ZmJjLmxvY2spOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKIAog CXJldHVybiAwOwpAQCAtMTY3NSw2ICsxNjc3LDcgQEAgc3RhdGljIGludCBpOTE1X2ZiY19mY19z ZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlkcm1fbW9kZXNl dF9sb2NrX2FsbChkZXYpOworCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7CiAKIAly ZWcgPSBJOTE1X1JFQUQoSUxLX0RQRkNfQ09OVFJPTCk7CiAJZGV2X3ByaXYtPmZiYy5mYWxzZV9j b2xvciA9IHZhbDsKQEAgLTE2ODMsNiArMTY4Niw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mYmNfZmNf c2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAJCSAgIChyZWcgfCBGQkNfQ1RMX0ZBTFNFX0NPTE9S KSA6CiAJCSAgIChyZWcgJiB+RkJDX0NUTF9GQUxTRV9DT0xPUikpOwogCisJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAly ZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDBiOTA4YjEuLjRkM2Q0MTAz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTg5OSw2ICs4OTksOSBAQCBlbnVtIGZiX29w X29yaWdpbiB7CiB9OwogCiBzdHJ1Y3QgaTkxNV9mYmMgeworCS8qIFRoaXMgaXMgYWx3YXlzIHRo ZSBpbm5lciBsb2NrIHdoZW4gb3ZlcmxhcHBpbmcgd2l0aCBzdHJ1Y3RfbXV0ZXggYW5kCisJICog aXQncyB0aGUgb3V0ZXIgbG9jayB3aGVuIG92ZXJsYXBwaW5nIHdpdGggc3RvbGVuX2xvY2suICov CisJc3RydWN0IG11dGV4IGxvY2s7CiAJdW5zaWduZWQgbG9uZyB1bmNvbXByZXNzZWRfc2l6ZTsK IAl1bnNpZ25lZCB0aHJlc2hvbGQ7CiAJdW5zaWduZWQgaW50IGZiX2lkOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDVkZTFkZWQuLmUxMmVkNGYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTQ3ODMsMTEgKzQ3ODMsOSBAQCBzdGF0aWMgdm9pZCBp bnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWlmIChhdG9t aWMtPndhaXRfZm9yX2ZsaXBzKQogCQlpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMo JmNydGMtPmJhc2UpOwogCi0JaWYgKGF0b21pYy0+ZGlzYWJsZV9mYmMgJiYKLQkgICAgZGV2X3By aXYtPmZiYy5jcnRjID09IGNydGMpIHsKKwlpZiAoYXRvbWljLT5kaXNhYmxlX2ZiYykgewogCQlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCWlmIChkZXZfcHJpdi0+ZmJjLmNydGMg PT0gY3J0YykKLQkJCWludGVsX2ZiY19kaXNhYmxlKGRldik7CisJCWludGVsX2ZiY19kaXNhYmxl X2NydGMoY3J0Yyk7CiAJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCX0KIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA4MmFiYmZhLi42M2Q3ZDMyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaApAQCAtMTI1Miw2ICsxMjUyLDcgQEAgYm9vbCBpbnRlbF9mYmNfZW5h YmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cit2b2lkIGludGVsX2ZiY19kaXNhYmxlX2NydGMoc3RydWN0IGludGVsX2Ny dGMgKmNydGMpOwogdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLAogCQkJ ICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwppbmRl eCA1NTcxMWI0Li5hMDc2YzdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpAQCAtMzM2LDYg KzMzNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVj dCAqX193b3JrKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIAlpZiAod29yayA9PSBkZXZfcHJpdi0+ZmJjLmZiY193 b3JrKSB7CiAJCS8qIERvdWJsZSBjaGVjayB0aGF0IHdlIGhhdmVuJ3Qgc3dpdGNoZWQgZmIgd2l0 aG91dCBjYW5jZWxsaW5nCiAJCSAqIHRoZSBwcmlvciB3b3JrLgpAQCAtMzUwLDYgKzM1MSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3Jr KQogCiAJCWRldl9wcml2LT5mYmMuZmJjX3dvcmsgPSBOVUxMOwogCX0KKwltdXRleF91bmxvY2so JmRldl9wcml2LT5mYmMubG9jayk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CiAKIAlrZnJlZSh3b3JrKTsKQEAgLTM1Nyw2ICszNTksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9m YmNfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAogc3RhdGljIHZvaWQgaW50 ZWxfZmJjX2NhbmNlbF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK KwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5mYmMubG9jaykpOworCiAJaWYg KGRldl9wcml2LT5mYmMuZmJjX3dvcmsgPT0gTlVMTCkKIAkJcmV0dXJuOwogCkBAIC0zODQsNiAr Mzg4LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCisJV0FSTl9PTighbXV0 ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZmJjLmxvY2spKTsKKwogCWlmICghZGV2X3ByaXYtPmRp c3BsYXkuZW5hYmxlX2ZiYykKIAkJcmV0dXJuOwogCkBAIC00MTgsNiArNDI0LDIxIEBAIHN0YXRp YyB2b2lkIGludGVsX2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXNjaGVkdWxl X2RlbGF5ZWRfd29yaygmd29yay0+d29yaywgbXNlY3NfdG9famlmZmllcyg1MCkpOwogfQogCitz dGF0aWMgdm9pZCBfX2ludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK KworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPmZiYy5sb2NrKSk7CisKKwlp bnRlbF9mYmNfY2FuY2VsX3dvcmsoZGV2X3ByaXYpOworCisJaWYgKCFkZXZfcHJpdi0+ZGlzcGxh eS5kaXNhYmxlX2ZiYykKKwkJcmV0dXJuOworCisJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9m YmMoZGV2KTsKKwlkZXZfcHJpdi0+ZmJjLmNydGMgPSBOVUxMOworfQorCiAvKioKICAqIGludGVs X2ZiY19kaXNhYmxlIC0gZGlzYWJsZSBGQkMKICAqIEBkZXY6IHRoZSBkcm1fZGV2aWNlCkBAIC00 MjgsMTMgKzQ0OSwyNiBAQCB2b2lkIGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKIAotCWludGVsX2ZiY19jYW5jZWxfd29yayhkZXZfcHJpdik7CisJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKKwlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CisJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOworfQogCi0JaWYgKCFkZXZfcHJpdi0+ZGlz cGxheS5kaXNhYmxlX2ZiYykKLQkJcmV0dXJuOworLyoKKyAqIGludGVsX2ZiY19kaXNhYmxlX2Ny dGMgLSBkaXNhYmxlIEZCQyBpZiBpdCdzIGFzc29jaWF0ZWQgd2l0aCBjcnRjCisgKiBAY3J0Yzog dGhlIENSVEMKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGRpc2FibGVzIEZCQyBpZiBpdCdzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHJvdmlkZWQgQ1JUQy4KKyAqLwordm9pZCBpbnRlbF9mYmNfZGlzYWJs ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwogCi0JZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9mYmMoZGV2 KTsKLQlkZXZfcHJpdi0+ZmJjLmNydGMgPSBOVUxMOworCW11dGV4X2xvY2soJmRldl9wcml2LT5m YmMubG9jayk7CisJaWYgKGRldl9wcml2LT5mYmMuY3J0YyA9PSBjcnRjKQorCQlfX2ludGVsX2Zi Y19kaXNhYmxlKGRldik7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQog CiBjb25zdCBjaGFyICppbnRlbF9ub19mYmNfcmVhc29uX3N0cihlbnVtIG5vX2ZiY19yZWFzb24g cmVhc29uKQpAQCAtNjA3LDcgKzY0MSw3IEBAIGVycl9sbGI6CiAJcmV0dXJuIC1FTk9TUEM7CiB9 CiAKLXZvaWQgaW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitz dGF0aWMgdm9pZCBfX2ludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CiAKQEAgLTYyNSw2ICs2NTksMTUgQEAgdm9pZCBpbnRlbF9mYmNfY2xlYW51cF9jZmIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlkZXZfcHJpdi0+ZmJjLnVuY29tcHJlc3NlZF9zaXplID0g MDsKIH0KIAordm9pZCBpbnRlbF9mYmNfY2xlYW51cF9jZmIoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKKwlfX2ludGVsX2ZiY19j bGVhbnVwX2NmYihkZXYpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKK30K Kwogc3RhdGljIGludCBpbnRlbF9mYmNfc2V0dXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBzaXplLCBpbnQgZmJfY3BwKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CkBAIC02MzMsMTMgKzY3NiwxMyBAQCBzdGF0aWMgaW50 IGludGVsX2ZiY19zZXR1cF9jZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUsIGlu dCBmYl9jcHApCiAJCXJldHVybiAwOwogCiAJLyogUmVsZWFzZSBhbnkgY3VycmVudCBibG9jayAq LwotCWludGVsX2ZiY19jbGVhbnVwX2NmYihkZXYpOworCV9faW50ZWxfZmJjX2NsZWFudXBfY2Zi KGRldik7CiAKIAlyZXR1cm4gaW50ZWxfZmJjX2FsbG9jX2NmYihkZXYsIHNpemUsIGZiX2NwcCk7 CiB9CiAKIC8qKgotICogaW50ZWxfZmJjX3VwZGF0ZSAtIGVuYWJsZS9kaXNhYmxlIEZCQyBhcyBu ZWVkZWQKKyAqIF9faW50ZWxfZmJjX3VwZGF0ZSAtIGVuYWJsZS9kaXNhYmxlIEZCQyBhcyBuZWVk ZWQsIHVubG9ja2VkCiAgKiBAZGV2OiB0aGUgZHJtX2RldmljZQogICoKICAqIFNldCB1cCB0aGUg ZnJhbWVidWZmZXIgY29tcHJlc3Npb24gaGFyZHdhcmUgYXQgbW9kZSBzZXQgdGltZS4gIFdlCkBA IC02NTcsNyArNzAwLDcgQEAgc3RhdGljIGludCBpbnRlbF9mYmNfc2V0dXBfY2ZiKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBzaXplLCBpbnQgZmJfY3BwKQogICoKICAqIFdlIG5lZWQgdG8g ZW5hYmxlL2Rpc2FibGUgRkJDIG9uIGEgZ2xvYmFsIGJhc2lzLgogICovCi12b2lkIGludGVsX2Zi Y191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIF9faW50ZWxfZmJj X3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gTlVMTDsKQEAgLTY3MCw2ICs3MTMsOCBAQCB2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAlpZiAoIUhBU19GQkMoZGV2KSkKIAkJcmV0dXJuOwogCisJV0FS Tl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZmJjLmxvY2spKTsKKwogCS8qIGRpc2Fi bGUgZnJhbWVidWZmZXIgY29tcHJlc3Npb24gaW4gdkdQVSAqLwogCWlmIChpbnRlbF92Z3B1X2Fj dGl2ZShkZXYpKQogCQlpOTE1LmVuYWJsZV9mYmMgPSAwOwpAQCAtNzg4LDcgKzgzMyw3IEBAIHZv aWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgKiBzb21lIHBv aW50LiBBbmQgd2Ugd2FpdCBiZWZvcmUgZW5hYmxpbmcgRkJDIGFueXdheS4KIAkJICovCiAJCURS TV9ERUJVR19LTVMoImRpc2FibGluZyBhY3RpdmUgRkJDIGZvciB1cGRhdGVcbiIpOwotCQlpbnRl bF9mYmNfZGlzYWJsZShkZXYpOworCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CiAJfQogCiAJ aW50ZWxfZmJjX2VuYWJsZShjcnRjKTsKQEAgLTc5OSw5ICs4NDQsMjQgQEAgb3V0X2Rpc2FibGU6 CiAJLyogTXVsdGlwbGUgZGlzYWJsZXMgc2hvdWxkIGJlIGhhcm1sZXNzICovCiAJaWYgKGludGVs X2ZiY19lbmFibGVkKGRldikpIHsKIAkJRFJNX0RFQlVHX0tNUygidW5zdXBwb3J0ZWQgY29uZmln LCBkaXNhYmxpbmcgRkJDXG4iKTsKLQkJaW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwkJX19pbnRl bF9mYmNfZGlzYWJsZShkZXYpOwogCX0KLQlpbnRlbF9mYmNfY2xlYW51cF9jZmIoZGV2KTsKKwlf X2ludGVsX2ZiY19jbGVhbnVwX2NmYihkZXYpOworfQorCisvKgorICogaW50ZWxfZmJjX3VwZGF0 ZSAtIGVuYWJsZS9kaXNhYmxlIEZCQyBhcyBuZWVkZWQKKyAqIEBkZXY6IHRoZSBkcm1fZGV2aWNl CisgKgorICogVGhpcyBmdW5jdGlvbiByZWV2YWx1YXRlcyB0aGUgb3ZlcmFsbCBzdGF0ZSBhbmQg ZW5hYmxlcyBvciBkaXNhYmxlcyBGQkMuCisgKi8KK3ZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2sp OworCV9faW50ZWxfZmJjX3VwZGF0ZShkZXYpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZi Yy5sb2NrKTsKIH0KIAogdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC04MTQsNiArODc0LDggQEAgdm9pZCBpbnRlbF9mYmNfaW52 YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKG9yaWdpbiA9 PSBPUklHSU5fR1RUKQogCQlyZXR1cm47CiAKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxv Y2spOworCiAJaWYgKGRldl9wcml2LT5mYmMuZW5hYmxlZCkKIAkJZmJjX2JpdHMgPSBJTlRFTF9G Uk9OVEJVRkZFUl9QUklNQVJZKGRldl9wcml2LT5mYmMuY3J0Yy0+cGlwZSk7CiAJZWxzZSBpZiAo ZGV2X3ByaXYtPmZiYy5mYmNfd29yaykKQEAgLTgyNSw3ICs4ODcsOSBAQCB2b2lkIGludGVsX2Zi Y19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlkZXZfcHJp di0+ZmJjLmJ1c3lfYml0cyB8PSAoZmJjX2JpdHMgJiBmcm9udGJ1ZmZlcl9iaXRzKTsKIAogCWlm IChkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykKLQkJaW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwkJ X19pbnRlbF9mYmNfZGlzYWJsZShkZXYpOworCisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJj LmxvY2spOwogfQogCiB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCkBAIC04MzMsMTMgKzg5NywxOCBAQCB2b2lkIGludGVsX2ZiY19mbHVzaChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGRldl9wcml2LT5kZXY7CiAKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2sp OworCiAJaWYgKCFkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykKLQkJcmV0dXJuOworCQlnb3RvIG91 dDsKIAogCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOwogCiAJ aWYgKCFkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykKLQkJaW50ZWxfZmJjX3VwZGF0ZShkZXYpOwor CQlfX2ludGVsX2ZiY191cGRhdGUoZGV2KTsKKworb3V0OgorCW11dGV4X3VubG9jaygmZGV2X3By aXYtPmZiYy5sb2NrKTsKIH0KIAogLyoqCkBAIC04NTIsNiArOTIxLDggQEAgdm9pZCBpbnRlbF9m YmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJZW51bSBwaXBl IHBpcGU7CiAKKwltdXRleF9pbml0KCZkZXZfcHJpdi0+ZmJjLmxvY2spOworCiAJaWYgKCFIQVNf RkJDKGRldl9wcml2KSkgewogCQlkZXZfcHJpdi0+ZmJjLmVuYWJsZWQgPSBmYWxzZTsKIAkJZGV2 X3ByaXYtPmZiYy5ub19mYmNfcmVhc29uID0gRkJDX1VOU1VQUE9SVEVEOwotLSAKMi4xLjQKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==