From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 2/8] drm/i915: add the FBC mutex Date: Tue, 30 Jun 2015 10:53:06 -0300 Message-ID: <1435672392-7329-3-git-send-email-przanoni@gmail.com> References: <1435672392-7329-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-f171.google.com (mail-qk0-f171.google.com [209.85.220.171]) by gabe.freedesktop.org (Postfix) with ESMTPS id 562326E6FF for ; Tue, 30 Jun 2015 06:54:05 -0700 (PDT) Received: by qkeo142 with SMTP id o142so6566291qke.1 for ; Tue, 30 Jun 2015 06:54:04 -0700 (PDT) In-Reply-To: <1435672392-7329-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 b2Rlc2V0cyBhdCB0aGUKc2FtZSB0aW1lLgoKV2l0aCB0aGlzIGNoYW5nZSwgd2UgY2FuIHN0YXJ0 IHJlbW92aW5nIHRoZSBzdHJ1Y3RfbXV0ZXggbG9ja2luZyB3ZQpoYXZlIGFyb3VuZCBGQkMgaW4g dGhlIG5leHQgcGF0Y2hlcy4gVGhlIG9ubHkgc3RydWN0X211dGV4IHJlcXVpcmVtZW50CndpbGwg YmUgYXJvdW5kIGludGVsX2ZiY191cGRhdGUoKSwgc2luY2UgaXQncyB0aGUgcGxhY2UgdGhhdCBk b2VzIHRoZQpDRkIgc3RvbGVuIG1lbW9yeSBhbGxvY2F0aW9ucy4KCnYyOgogLSBSZWJhc2UgKDYg bW9udGhzIGxhdGVyKQogLSBBbHNvIGxvY2sgZGVidWdmcyBhbmQgc3RvbGVuLgp2MzoKIC0gRG9u J3QgbG9jayBhIHNpbmdsZSB2YWx1ZSByZWFkIChDaHJpcykuCiAtIFJlcGxhY2UgbG9ja2RlcCBh c3NlcnRpb25zIHdpdGggV0FSTnMgKERhbmllbCkuCiAtIEltcHJvdmUgY29tbWl0IG1lc3NhZ2Uu CiAtIERvbid0IGZvcmdldCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKCkgbG9ja2luZy4KClNpZ25l ZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgIHwgIDQgKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fc3RvbGVuLmMgfCAgNyArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyAgIHwgMTAgKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg ICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgICB8IDg2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgODkgaW5z ZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwppbmRleCAzMWQ4NzY4Li41MjQ4ZWQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwpAQCAtMTYxOSw2ICsxNjE5LDcgQEAgc3RhdGljIGludCBpOTE1X2ZiY19zdGF0dXMoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJfQogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQo ZGV2X3ByaXYpOworCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7CiAKIAlpZiAoaW50 ZWxfZmJjX2VuYWJsZWQoZGV2KSkKIAkJc2VxX3B1dHMobSwgIkZCQyBlbmFibGVkXG4iKTsKQEAg LTE2MzEsNiArMTYzMiw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mYmNfc3RhdHVzKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJICAgeWVzbm8oSTkxNV9SRUFEKEZCQ19TVEFUVVMy KSAmCiAJCQkJIEZCQ19DT01QUkVTU0lPTl9NQVNLKSk7CiAKKwltdXRleF91bmxvY2soJmRldl9w cml2LT5mYmMubG9jayk7CiAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwogCiAJcmV0 dXJuIDA7CkBAIC0xNjYxLDYgKzE2NjMsNyBAQCBzdGF0aWMgaW50IGk5MTVfZmJjX2ZjX3NldCh2 b2lkICpkYXRhLCB1NjQgdmFsKQogCQlyZXR1cm4gLUVOT0RFVjsKIAogCWRybV9tb2Rlc2V0X2xv Y2tfYWxsKGRldik7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIAogCXJlZyA9 IEk5MTVfUkVBRChJTEtfRFBGQ19DT05UUk9MKTsKIAlkZXZfcHJpdi0+ZmJjLmZhbHNlX2NvbG9y ID0gdmFsOwpAQCAtMTY2OSw2ICsxNjcyLDcgQEAgc3RhdGljIGludCBpOTE1X2ZiY19mY19zZXQo dm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJICAgKHJlZyB8IEZCQ19DVExfRkFMU0VfQ09MT1IpIDoK IAkJICAgKHJlZyAmIH5GQkNfQ1RMX0ZBTFNFX0NPTE9SKSk7CiAKKwltdXRleF91bmxvY2soJmRl dl9wcml2LT5mYmMubG9jayk7CiAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwogCXJldHVy biAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZWE5Y2FmMi4uMWUxNzcyMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC04OTIsNiArODkyLDcgQEAgZW51bSBmYl9vcF9vcmln aW4gewogfTsKIAogc3RydWN0IGk5MTVfZmJjIHsKKwlzdHJ1Y3QgbXV0ZXggbG9jazsKIAl1bnNp Z25lZCBsb25nIHVuY29tcHJlc3NlZF9zaXplOwogCXVuc2lnbmVkIHRocmVzaG9sZDsKIAl1bnNp Z25lZCBpbnQgZmJfaWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCmluZGV4 IDM0OGVkNWEuLjc5M2JjYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5j CkBAIC0yNTAsNiArMjUwLDggQEAgaW50IGk5MTVfZ2VtX3N0b2xlbl9zZXR1cF9jb21wcmVzc2lv bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2l6ZSwgaW50IGZiX2MKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCisJV0FSTl9P TighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZmJjLmxvY2spKTsKKwogCWlmICghZHJtX21t X2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAK QEAgLTI2Niw2ICsyNjgsOCBAQCB2b2lkIGk5MTVfZ2VtX3N0b2xlbl9jbGVhbnVwX2NvbXByZXNz aW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAorCVdBUk5fT04oIW11dGV4X2lzX2xvY2tl ZCgmZGV2X3ByaXYtPmZiYy5sb2NrKSk7CisKIAlpZiAoZGV2X3ByaXYtPmZiYy51bmNvbXByZXNz ZWRfc2l6ZSA9PSAwKQogCQlyZXR1cm47CiAKQEAgLTI4Niw3ICsyOTAsMTAgQEAgdm9pZCBpOTE1 X2dlbV9jbGVhbnVwX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmICghZHJtX21t X2luaXRpYWxpemVkKCZkZXZfcHJpdi0+bW0uc3RvbGVuKSkKIAkJcmV0dXJuOwogCisJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIAlpOTE1X2dlbV9zdG9sZW5fY2xlYW51cF9jb21w cmVzc2lvbihkZXYpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKKwogCWRy bV9tbV90YWtlZG93bigmZGV2X3ByaXYtPm1tLnN0b2xlbik7CiB9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwppbmRleCBlYjY2NWQ3Li5lYWI1YWExIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC00NzQxLDcgKzQ3NDEsNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHN0YXRpYyB2b2lk IGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGNf YXRvbWljX2NvbW1pdCAqYXRvbWljID0gJmNydGMtPmF0b21pYzsKIAlzdHJ1Y3QgZHJtX3BsYW5l ICpwOwogCkBAIC00NzU4LDEzICs0NzU3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX3BsYW5l X3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAlpZiAoYXRvbWljLT53YWl0X2Zvcl9m bGlwcykKIAkJaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBzKCZjcnRjLT5iYXNlKTsK IAotCWlmIChhdG9taWMtPmRpc2FibGVfZmJjICYmCi0JICAgIGRldl9wcml2LT5mYmMuY3J0YyA9 PSBjcnRjKSB7Ci0JCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJaWYgKGRldl9w cml2LT5mYmMuY3J0YyA9PSBjcnRjKQotCQkJaW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKLQkJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JfQorCWlmIChhdG9taWMtPmRpc2FibGVf ZmJjKQorCQlpbnRlbF9mYmNfZGlzYWJsZV9jcnRjKGNydGMpOwogCiAJaWYgKGNydGMtPmF0b21p Yy5kaXNhYmxlX2lwcykKIAkJaHN3X2Rpc2FibGVfaXBzKGNydGMpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAppbmRleCAzM2NmZjlkLi4wMGVlYTkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aApAQCAtMTIzNiw2ICsxMjM2LDcgQEAgYm9vbCBpbnRlbF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIHZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cit2 b2lkIGludGVsX2ZiY19kaXNhYmxlX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwogdm9p ZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLAogCQkJICBlbnVtIGZiX29wX29y aWdpbiBvcmlnaW4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwppbmRleCA5ZTU1YjliLi41NDNi N2EyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpAQCAtMzM2LDYgKzMzNiw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZi Yy5sb2NrKTsKIAlpZiAod29yayA9PSBkZXZfcHJpdi0+ZmJjLmZiY193b3JrKSB7CiAJCS8qIERv dWJsZSBjaGVjayB0aGF0IHdlIGhhdmVuJ3Qgc3dpdGNoZWQgZmIgd2l0aG91dCBjYW5jZWxsaW5n CiAJCSAqIHRoZSBwcmlvciB3b3JrLgpAQCAtMzUwLDYgKzM1MSw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2ZiY193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQogCiAJCWRldl9wcml2 LT5mYmMuZmJjX3dvcmsgPSBOVUxMOwogCX0KKwltdXRleF91bmxvY2soJmRldl9wcml2LT5mYmMu bG9jayk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAlrZnJlZSh3b3Jr KTsKQEAgLTM1Nyw2ICszNTksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfd29ya19mbihzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAogc3RhdGljIHZvaWQgaW50ZWxfZmJjX2NhbmNlbF93 b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKKwlXQVJOX09OKCFtdXRl eF9pc19sb2NrZWQoJmRldl9wcml2LT5mYmMubG9jaykpOworCiAJaWYgKGRldl9wcml2LT5mYmMu ZmJjX3dvcmsgPT0gTlVMTCkKIAkJcmV0dXJuOwogCkBAIC0zODQsNiArMzg4LDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCisJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZk ZXZfcHJpdi0+ZmJjLmxvY2spKTsKKwogCWlmICghZGV2X3ByaXYtPmRpc3BsYXkuZW5hYmxlX2Zi YykKIAkJcmV0dXJuOwogCkBAIC00MTgsNiArNDI0LDIxIEBAIHN0YXRpYyB2b2lkIGludGVsX2Zi Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygm d29yay0+d29yaywgbXNlY3NfdG9famlmZmllcyg1MCkpOwogfQogCitzdGF0aWMgdm9pZCBfX2lu dGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCVdBUk5fT04oIW11 dGV4X2lzX2xvY2tlZCgmZGV2X3ByaXYtPmZiYy5sb2NrKSk7CisKKwlpbnRlbF9mYmNfY2FuY2Vs X3dvcmsoZGV2X3ByaXYpOworCisJaWYgKCFkZXZfcHJpdi0+ZGlzcGxheS5kaXNhYmxlX2ZiYykK KwkJcmV0dXJuOworCisJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9mYmMoZGV2KTsKKwlkZXZf cHJpdi0+ZmJjLmNydGMgPSBOVUxMOworfQorCiAvKioKICAqIGludGVsX2ZiY19kaXNhYmxlIC0g ZGlzYWJsZSBGQkMKICAqIEBkZXY6IHRoZSBkcm1fZGV2aWNlCkBAIC00MjgsMTMgKzQ0OSwyNiBA QCB2b2lkIGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWlu dGVsX2ZiY19jYW5jZWxfd29yayhkZXZfcHJpdik7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZi Yy5sb2NrKTsKKwlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CisJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+ZmJjLmxvY2spOworfQogCi0JaWYgKCFkZXZfcHJpdi0+ZGlzcGxheS5kaXNhYmxlX2Zi YykKLQkJcmV0dXJuOworLyoKKyAqIGludGVsX2ZiY19kaXNhYmxlX2NydGMgLSBkaXNhYmxlIEZC QyBpZiBpdCdzIGFzc29jaWF0ZWQgd2l0aCBjcnRjCisgKiBAY3J0YzogdGhlIENSVEMKKyAqCisg KiBUaGlzIGZ1bmN0aW9uIGRpc2FibGVzIEZCQyBpZiBpdCdzIGFzc29jaWF0ZWQgd2l0aCB0aGUg cHJvdmlkZWQgQ1JUQy4KKyAqLwordm9pZCBpbnRlbF9mYmNfZGlzYWJsZV9jcnRjKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNl LmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCi0JZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9mYmMoZGV2KTsKLQlkZXZfcHJpdi0+ ZmJjLmNydGMgPSBOVUxMOworCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMubG9jayk7CisJaWYg KGRldl9wcml2LT5mYmMuY3J0YyA9PSBjcnRjKQorCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7 CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQogCiBjb25zdCBjaGFyICpp bnRlbF9ub19mYmNfcmVhc29uX3N0cihlbnVtIG5vX2ZiY19yZWFzb24gcmVhc29uKQpAQCAtNTE2 LDcgKzU1MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGMgKmludGVsX2ZiY19maW5kX2NydGMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogfQogCiAvKioKLSAqIGludGVsX2Zi Y191cGRhdGUgLSBlbmFibGUvZGlzYWJsZSBGQkMgYXMgbmVlZGVkCisgKiBfX2ludGVsX2ZiY191 cGRhdGUgLSBlbmFibGUvZGlzYWJsZSBGQkMgYXMgbmVlZGVkLCB1bmxvY2tlZAogICogQGRldjog dGhlIGRybV9kZXZpY2UKICAqCiAgKiBTZXQgdXAgdGhlIGZyYW1lYnVmZmVyIGNvbXByZXNzaW9u IGhhcmR3YXJlIGF0IG1vZGUgc2V0IHRpbWUuICBXZQpAQCAtNTM0LDcgKzU2OCw3IEBAIHN0YXRp YyBzdHJ1Y3QgZHJtX2NydGMgKmludGVsX2ZiY19maW5kX2NydGMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogICoKICAqIFdlIG5lZWQgdG8gZW5hYmxlL2Rpc2FibGUgRkJDIG9u IGEgZ2xvYmFsIGJhc2lzLgogICovCi12b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIF9faW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTDsKQEAgLTU0NCw2ICs1 NzgsOCBAQCB2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZTsKIAl1bnNpZ25lZCBp bnQgbWF4X3dpZHRoLCBtYXhfaGVpZ2h0OwogCisJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZk ZXZfcHJpdi0+ZmJjLmxvY2spKTsKKwogCWlmICghSEFTX0ZCQyhkZXYpKQogCQlyZXR1cm47CiAK QEAgLTY2NSw3ICs3MDEsNyBAQCB2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJICogc29tZSBwb2ludC4gQW5kIHdlIHdhaXQgYmVmb3JlIGVuYWJsaW5nIEZC QyBhbnl3YXkuCiAJCSAqLwogCQlEUk1fREVCVUdfS01TKCJkaXNhYmxpbmcgYWN0aXZlIEZCQyBm b3IgdXBkYXRlXG4iKTsKLQkJaW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwkJX19pbnRlbF9mYmNf ZGlzYWJsZShkZXYpOwogCX0KIAogCWludGVsX2ZiY19lbmFibGUoY3J0Yyk7CkBAIC02NzYsMTEg KzcxMiwyNiBAQCBvdXRfZGlzYWJsZToKIAkvKiBNdWx0aXBsZSBkaXNhYmxlcyBzaG91bGQgYmUg aGFybWxlc3MgKi8KIAlpZiAoaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkgewogCQlEUk1fREVCVUdf S01TKCJ1bnN1cHBvcnRlZCBjb25maWcsIGRpc2FibGluZyBGQkNcbiIpOwotCQlpbnRlbF9mYmNf ZGlzYWJsZShkZXYpOworCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CiAJfQogCWk5MTVfZ2Vt X3N0b2xlbl9jbGVhbnVwX2NvbXByZXNzaW9uKGRldik7CiB9CiAKKy8qCisgKiBpbnRlbF9mYmNf dXBkYXRlIC0gZW5hYmxlL2Rpc2FibGUgRkJDIGFzIG5lZWRlZAorICogQGRldjogdGhlIGRybV9k ZXZpY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJlZXZhbHVhdGVzIHRoZSBvdmVyYWxsIHN0YXRl IGFuZCBlbmFibGVzIG9yIGRpc2FibGVzIEZCQy4KKyAqLwordm9pZCBpbnRlbF9mYmNfdXBkYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5mYmMu bG9jayk7CisJX19pbnRlbF9mYmNfdXBkYXRlKGRldik7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+ZmJjLmxvY2spOworfQorCiB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgdW5zaWduZWQgaW50IGZyb250YnVmZmVyX2Jp dHMsCiAJCQkgIGVudW0gZmJfb3Bfb3JpZ2luIG9yaWdpbikKQEAgLTY5MSw2ICs3NDIsOCBAQCB2 b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlpZiAob3JpZ2luID09IE9SSUdJTl9HVFQpCiAJCXJldHVybjsKIAorCW11dGV4X2xvY2so JmRldl9wcml2LT5mYmMubG9jayk7CisKIAlpZiAoZGV2X3ByaXYtPmZiYy5lbmFibGVkKQogCQlm YmNfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoZGV2X3ByaXYtPmZiYy5jcnRjLT5w aXBlKTsKIAllbHNlIGlmIChkZXZfcHJpdi0+ZmJjLmZiY193b3JrKQpAQCAtNzAyLDcgKzc1NSw5 IEBAIHZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzIHw9IChmYmNfYml0cyAmIGZyb250YnVm ZmVyX2JpdHMpOwogCiAJaWYgKGRldl9wcml2LT5mYmMuYnVzeV9iaXRzKQotCQlpbnRlbF9mYmNf ZGlzYWJsZShkZXYpOworCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CisKKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5mYmMubG9jayk7CiB9CiAKIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTcxMCwxMyArNzY1LDE4IEBAIHZvaWQg aW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKIAorCW11dGV4X2xvY2soJmRl dl9wcml2LT5mYmMubG9jayk7CisKIAlpZiAoIWRldl9wcml2LT5mYmMuYnVzeV9iaXRzKQotCQly ZXR1cm47CisJCWdvdG8gb3V0OwogCiAJZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMgJj0gfmZyb250 YnVmZmVyX2JpdHM7CiAKIAlpZiAoIWRldl9wcml2LT5mYmMuYnVzeV9iaXRzKQotCQlpbnRlbF9m YmNfdXBkYXRlKGRldik7CisJCV9faW50ZWxfZmJjX3VwZGF0ZShkZXYpOworCitvdXQ6CisJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQogCiAvKioKQEAgLTcyOSw2ICs3ODks OCBAQCB2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKIAllbnVtIHBpcGUgcGlwZTsKIAorCW11dGV4X2luaXQoJmRldl9wcml2LT5mYmMubG9j ayk7CisKIAlpZiAoIUhBU19GQkMoZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5mYmMuZW5hYmxl ZCA9IGZhbHNlOwogCQlkZXZfcHJpdi0+ZmJjLm5vX2ZiY19yZWFzb24gPSBGQkNfVU5TVVBQT1JU RUQ7Ci0tIAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK