From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 4/7] drm/i915: add the FBC mutex Date: Wed, 1 Jul 2015 17:15:23 -0300 Message-ID: <1435781726-7282-5-git-send-email-przanoni@gmail.com> References: <1435781726-7282-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-qk0-f179.google.com (mail-qk0-f179.google.com [209.85.220.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4D41289852 for ; Wed, 1 Jul 2015 13:16:10 -0700 (PDT) Received: by qkeo142 with SMTP id o142so38021429qke.1 for ; Wed, 01 Jul 2015 13:16:09 -0700 (PDT) In-Reply-To: <1435781726-7282-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 bl9sb2NrIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoLCB3ZSBjYW4gc3RhcnQKcmVtb3ZpbmcgdGhl IHN0cnVjdF9tdXRleCBsb2NraW5nIHdlIGhhdmUgYXJvdW5kIEZCQyBpbiB0aGUgbmV4dCBwYXRj aGVzLgoKdjI6CiAtIFJlYmFzZSAoNiBtb250aHMgbGF0ZXIpCiAtIEFsc28gbG9jayBkZWJ1Z2Zz IGFuZCBzdG9sZW4uCnYzOgogLSBEb24ndCBsb2NrIGEgc2luZ2xlIHZhbHVlIHJlYWQgKENocmlz KS4KIC0gUmVwbGFjZSBsb2NrZGVwIGFzc2VydGlvbnMgd2l0aCBXQVJOcyAoRGFuaWVsKS4KIC0g SW1wcm92ZSBjb21taXQgbWVzc2FnZS4KIC0gRG9uJ3QgZm9yZ2V0IGludGVsX3ByZV9wbGFuZV91 cGRhdGUoKSBsb2NraW5nLgp2NDoKIC0gRG9uJ3QgcmVtb3ZlIHN0cnVjdF9tdXRleCBhdCBpbnRl bF9wcmVfcGxhbmVfdXBkYXRlKCkgKENocmlzKS4KIC0gQWRkIGNvbW1lbnQgcmVnYXJkaW5nIGxv Y2tpbmcgZGVwZW5kZW5jaWVzIChDaHJpcykuCiAtIFJlYmFzZSBhZnRlciB0aGUgc3RvbGVuIGNv ZGUgcmV3b3JrLgogLSBSZWJhc2UgYWdhaW4gYWZ0ZXIgZHJtLWludGVsLW5pZ2h0bHkgY2hhbmdl cy4KClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29t PgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICA0ICsrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAg fCA5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDUgZmlsZXMgY2hhbmdl ZCwgOTEgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwppbmRleCA3MWJhNTE5Li5iMmYzOTE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwpAQCAtMTYzMyw2ICsxNjMzLDcgQEAgc3RhdGljIGludCBpOTE1X2ZiY19zdGF0 dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJfQogCiAJaW50ZWxfcnVudGlt ZV9wbV9nZXQoZGV2X3ByaXYpOworCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7CiAK IAlpZiAoaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkKIAkJc2VxX3B1dHMobSwgIkZCQyBlbmFibGVk XG4iKTsKQEAgLTE2NDUsNiArMTY0Niw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mYmNfc3RhdHVzKHN0 cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJICAgeWVzbm8oSTkxNV9SRUFEKEZC Q19TVEFUVVMyKSAmCiAJCQkJIEZCQ19DT01QUkVTU0lPTl9NQVNLKSk7CiAKKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5mYmMubG9jayk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYp OwogCiAJcmV0dXJuIDA7CkBAIC0xNjc1LDYgKzE2NzcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZmJj X2ZjX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWRybV9t b2Rlc2V0X2xvY2tfYWxsKGRldik7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsK IAogCXJlZyA9IEk5MTVfUkVBRChJTEtfRFBGQ19DT05UUk9MKTsKIAlkZXZfcHJpdi0+ZmJjLmZh bHNlX2NvbG9yID0gdmFsOwpAQCAtMTY4Myw2ICsxNjg2LDcgQEAgc3RhdGljIGludCBpOTE1X2Zi Y19mY19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJICAgKHJlZyB8IEZCQ19DVExfRkFMU0Vf Q09MT1IpIDoKIAkJICAgKHJlZyAmIH5GQkNfQ1RMX0ZBTFNFX0NPTE9SKSk7CiAKKwltdXRleF91 bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7CiAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYp OwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMGI5MDhiMS4uNGQz ZDQxMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODk5LDYgKzg5OSw5IEBAIGVudW0g ZmJfb3Bfb3JpZ2luIHsKIH07CiAKIHN0cnVjdCBpOTE1X2ZiYyB7CisJLyogVGhpcyBpcyBhbHdh eXMgdGhlIGlubmVyIGxvY2sgd2hlbiBvdmVybGFwcGluZyB3aXRoIHN0cnVjdF9tdXRleCBhbmQK KwkgKiBpdCdzIHRoZSBvdXRlciBsb2NrIHdoZW4gb3ZlcmxhcHBpbmcgd2l0aCBzdG9sZW5fbG9j ay4gKi8KKwlzdHJ1Y3QgbXV0ZXggbG9jazsKIAl1bnNpZ25lZCBsb25nIHVuY29tcHJlc3NlZF9z aXplOwogCXVuc2lnbmVkIHRocmVzaG9sZDsKIAl1bnNpZ25lZCBpbnQgZmJfaWQ7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNWRlMWRlZC4uZTEyZWQ0ZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtNDc4MywxMSArNDc4Myw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJaWYg KGF0b21pYy0+d2FpdF9mb3JfZmxpcHMpCiAJCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19m bGlwcygmY3J0Yy0+YmFzZSk7CiAKLQlpZiAoYXRvbWljLT5kaXNhYmxlX2ZiYyAmJgotCSAgICBk ZXZfcHJpdi0+ZmJjLmNydGMgPT0gY3J0YykgeworCWlmIChhdG9taWMtPmRpc2FibGVfZmJjKSB7 CiAJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJaWYgKGRldl9wcml2LT5mYmMu Y3J0YyA9PSBjcnRjKQotCQkJaW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwkJaW50ZWxfZmJjX2Rp c2FibGVfY3J0YyhjcnRjKTsKIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJ fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDgyYWJiZmEuLjYzZDdkMzIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMjUyLDYgKzEyNTIsNyBAQCBib29sIGludGVsX2Zi Y19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9mYmNfdXBkYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9mYmNfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9mYmNfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfZmJjX2Rpc2FibGVfY3J0YyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0Yyk7CiB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2JpdHMs CiAJCQkgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5j CmluZGV4IGRjZDgzYWIuLjNhOThiYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCkBAIC0z MzYsNiArMzM2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtf c3RydWN0ICpfX3dvcmspCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwltdXRl eF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogCWlmICh3b3JrID09IGRldl9wcml2LT5mYmMu ZmJjX3dvcmspIHsKIAkJLyogRG91YmxlIGNoZWNrIHRoYXQgd2UgaGF2ZW4ndCBzd2l0Y2hlZCBm YiB3aXRob3V0IGNhbmNlbGxpbmcKIAkJICogdGhlIHByaW9yIHdvcmsuCkBAIC0zNTAsNiArMzUx LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICpf X3dvcmspCiAKIAkJZGV2X3ByaXYtPmZiYy5mYmNfd29yayA9IE5VTEw7CiAJfQorCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKIAogCWtmcmVlKHdvcmspOwpAQCAtMzU3LDYgKzM1OSw4IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCiBzdGF0aWMgdm9p ZCBpbnRlbF9mYmNfY2FuY2VsX3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogeworCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPmZiYy5sb2NrKSk7CisK IAlpZiAoZGV2X3ByaXYtPmZiYy5mYmNfd29yayA9PSBOVUxMKQogCQlyZXR1cm47CiAKQEAgLTM4 NCw2ICszODgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKKwlXQVJOX09O KCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5mYmMubG9jaykpOworCiAJaWYgKCFkZXZfcHJp di0+ZGlzcGxheS5lbmFibGVfZmJjKQogCQlyZXR1cm47CiAKQEAgLTQxOCw2ICs0MjQsMjEgQEAg c3RhdGljIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc2No ZWR1bGVfZGVsYXllZF93b3JrKCZ3b3JrLT53b3JrLCBtc2Vjc190b19qaWZmaWVzKDUwKSk7CiB9 CiAKK3N0YXRpYyB2b2lkIF9faW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOworCisJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZmJjLmxvY2spKTsK KworCWludGVsX2ZiY19jYW5jZWxfd29yayhkZXZfcHJpdik7CisKKwlpZiAoIWRldl9wcml2LT5k aXNwbGF5LmRpc2FibGVfZmJjKQorCQlyZXR1cm47CisKKwlkZXZfcHJpdi0+ZGlzcGxheS5kaXNh YmxlX2ZiYyhkZXYpOworCWRldl9wcml2LT5mYmMuY3J0YyA9IE5VTEw7Cit9CisKIC8qKgogICog aW50ZWxfZmJjX2Rpc2FibGUgLSBkaXNhYmxlIEZCQwogICogQGRldjogdGhlIGRybV9kZXZpY2UK QEAgLTQyOCwxMyArNDQ5LDI2IEBAIHZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCi0JaW50ZWxfZmJjX2NhbmNlbF93b3JrKGRldl9wcml2KTsKKwltdXRl eF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOworCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsK KwltdXRleF91bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7Cit9CiAKLQlpZiAoIWRldl9wcml2 LT5kaXNwbGF5LmRpc2FibGVfZmJjKQotCQlyZXR1cm47CisvKgorICogaW50ZWxfZmJjX2Rpc2Fi bGVfY3J0YyAtIGRpc2FibGUgRkJDIGlmIGl0J3MgYXNzb2NpYXRlZCB3aXRoIGNydGMKKyAqIEBj cnRjOiB0aGUgQ1JUQworICoKKyAqIFRoaXMgZnVuY3Rpb24gZGlzYWJsZXMgRkJDIGlmIGl0J3Mg YXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBDUlRDLgorICovCit2b2lkIGludGVsX2ZiY19k aXNhYmxlX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCit7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKLQlkZXZfcHJpdi0+ZGlzcGxheS5kaXNhYmxlX2Zi YyhkZXYpOwotCWRldl9wcml2LT5mYmMuY3J0YyA9IE5VTEw7CisJbXV0ZXhfbG9jaygmZGV2X3By aXYtPmZiYy5sb2NrKTsKKwlpZiAoZGV2X3ByaXYtPmZiYy5jcnRjID09IGNydGMpCisJCV9faW50 ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5mYmMubG9jayk7 CiB9CiAKIGNvbnN0IGNoYXIgKmludGVsX25vX2ZiY19yZWFzb25fc3RyKGVudW0gbm9fZmJjX3Jl YXNvbiByZWFzb24pCkBAIC02MjksOSArNjYzLDEzIEBAIHZvaWQgaW50ZWxfZmJjX2NsZWFudXBf Y2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5m YmMubG9jayk7CiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPm1tLnN0b2xlbl9sb2NrKTsKKwogCV9f aW50ZWxfZmJjX2NsZWFudXBfY2ZiKGRldik7CisKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5t bS5zdG9sZW5fbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQog CiBzdGF0aWMgaW50IGludGVsX2ZiY19zZXR1cF9jZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IHNpemUsIGludCBmYl9jcHApCkBAIC02NTUsNyArNjkzLDcgQEAgc3RhdGljIGludCBpbnRl bF9mYmNfc2V0dXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzaXplLCBpbnQgZmJf Y3BwKQogfQogCiAvKioKLSAqIGludGVsX2ZiY191cGRhdGUgLSBlbmFibGUvZGlzYWJsZSBGQkMg YXMgbmVlZGVkCisgKiBfX2ludGVsX2ZiY191cGRhdGUgLSBlbmFibGUvZGlzYWJsZSBGQkMgYXMg bmVlZGVkLCB1bmxvY2tlZAogICogQGRldjogdGhlIGRybV9kZXZpY2UKICAqCiAgKiBTZXQgdXAg dGhlIGZyYW1lYnVmZmVyIGNvbXByZXNzaW9uIGhhcmR3YXJlIGF0IG1vZGUgc2V0IHRpbWUuICBX ZQpAQCAtNjczLDcgKzcxMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZmJjX3NldHVwX2NmYihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2l6ZSwgaW50IGZiX2NwcCkKICAqCiAgKiBXZSBuZWVk IHRvIGVuYWJsZS9kaXNhYmxlIEZCQyBvbiBhIGdsb2JhbCBiYXNpcy4KICAqLwotdm9pZCBpbnRl bF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBfX2ludGVs X2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IE5VTEw7CkBAIC02ODMsNiArNzIxLDggQEAgdm9pZCBpbnRlbF9mYmNfdXBkYXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGU7CiAJdW5zaWduZWQgaW50IG1heF93aWR0aCwgbWF4X2hlaWdodDsKIAorCVdB Uk5fT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPmZiYy5sb2NrKSk7CisKIAlpZiAoIUhB U19GQkMoZGV2KSkKIAkJcmV0dXJuOwogCkBAIC04MDQsNyArODQ0LDcgQEAgdm9pZCBpbnRlbF9m YmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIHNvbWUgcG9pbnQuIEFuZCB3 ZSB3YWl0IGJlZm9yZSBlbmFibGluZyBGQkMgYW55d2F5LgogCQkgKi8KIAkJRFJNX0RFQlVHX0tN UygiZGlzYWJsaW5nIGFjdGl2ZSBGQkMgZm9yIHVwZGF0ZVxuIik7Ci0JCWludGVsX2ZiY19kaXNh YmxlKGRldik7CisJCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKIAl9CiAKIAlpbnRlbF9mYmNf ZW5hYmxlKGNydGMpOwpAQCAtODE1LDkgKzg1NSwyNiBAQCBvdXRfZGlzYWJsZToKIAkvKiBNdWx0 aXBsZSBkaXNhYmxlcyBzaG91bGQgYmUgaGFybWxlc3MgKi8KIAlpZiAoaW50ZWxfZmJjX2VuYWJs ZWQoZGV2KSkgewogCQlEUk1fREVCVUdfS01TKCJ1bnN1cHBvcnRlZCBjb25maWcsIGRpc2FibGlu ZyBGQkNcbiIpOwotCQlpbnRlbF9mYmNfZGlzYWJsZShkZXYpOworCQlfX2ludGVsX2ZiY19kaXNh YmxlKGRldik7CiAJfQotCWludGVsX2ZiY19jbGVhbnVwX2NmYihkZXYpOworCW11dGV4X2xvY2so JmRldl9wcml2LT5tbS5zdG9sZW5fbG9jayk7CisJX19pbnRlbF9mYmNfY2xlYW51cF9jZmIoZGV2 KTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5tbS5zdG9sZW5fbG9jayk7Cit9CisKKy8qCisg KiBpbnRlbF9mYmNfdXBkYXRlIC0gZW5hYmxlL2Rpc2FibGUgRkJDIGFzIG5lZWRlZAorICogQGRl djogdGhlIGRybV9kZXZpY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlZXZhbHVhdGVzIHRoZSBv dmVyYWxsIHN0YXRlIGFuZCBlbmFibGVzIG9yIGRpc2FibGVzIEZCQy4KKyAqLwordm9pZCBpbnRl bF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCW11dGV4X2xvY2soJmRl dl9wcml2LT5mYmMubG9jayk7CisJX19pbnRlbF9mYmNfdXBkYXRlKGRldik7CisJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQogCiB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTgzMCw2ICs4ODcsOCBAQCB2 b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlpZiAob3JpZ2luID09IE9SSUdJTl9HVFQpCiAJCXJldHVybjsKIAorCW11dGV4X2xvY2so JmRldl9wcml2LT5mYmMubG9jayk7CisKIAlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVkKQogCQlm YmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYtPmZiYy5jcnRjLT5w aXBlKTsKIAllbHNlIGlmIChkZXZfcHJpdi0+ZmJjLmZiY193b3JrKQpAQCAtODQxLDcgKzkwMCw5 IEBAIHZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzIHw9IChmYmNfYml0cyAmIGZyb250YnVm ZmVyX2JpdHMpOwogCiAJaWYgKGRldl9wcml2LT5mYmMuYnVzeV9iaXRzKQotCQlpbnRlbF9mYmNf ZGlzYWJsZShkZXYpOworCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CisKKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5mYmMubG9jayk7CiB9CiAKIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTg0OSwxMyArOTEwLDE4IEBAIHZvaWQg aW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAorCW11dGV4X2xvY2soJmRl dl9wcml2LT5mYmMubG9jayk7CisKIAlpZiAoIWRldl9wcml2LT5mYmMuYnVzeV9iaXRzKQotCQly ZXR1cm47CisJCWdvdG8gb3V0OwogCiAJZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMgJj0gfmZyb250 YnVmZmVyX2JpdHM7CiAKIAlpZiAoIWRldl9wcml2LT5mYmMuYnVzeV9iaXRzKQotCQlpbnRlbF9m YmNfdXBkYXRlKGRldik7CisJCV9faW50ZWxfZmJjX3VwZGF0ZShkZXYpOworCitvdXQ6CisJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQogCiAvKioKQEAgLTg2OCw2ICs5MzQs OCBAQCB2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKIAllbnVtIHBpcGUgcGlwZTsKIAorCW11dGV4X2luaXQoJmRldl9wcml2LT5mYmMubG9j ayk7CisKIAlpZiAoIUhBU19GQkMoZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5mYmMuZW5hYmxl ZCA9IGZhbHNlOwogCQlkZXZfcHJpdi0+ZmJjLm5vX2ZiY19yZWFzb24gPSBGQkNfVU5TVVBQT1JU RUQ7Ci0tIAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK