From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 10/10] drm/i915: Make all plane disables use 'update_plane' (v3) Date: Tue, 2 Dec 2014 07:59:22 -0800 Message-ID: <1417535962-20744-1-git-send-email-matthew.d.roper@intel.com> References: <547DD73B.50802@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id F34BA6F195 for ; Tue, 2 Dec 2014 07:59:29 -0800 (PST) In-Reply-To: <547DD73B.50802@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 List-Id: intel-gfx@lists.freedesktop.org SWYgd2UgZXh0ZW5kIHRoZSBjb21taXRfcGxhbmUgaGFuZGxlcnMgZm9yIGVhY2ggcGxhbmUgdHlw ZSB0byBiZSBhYmxlIHRvCmhhbmRsZSBmYj0wLCB0aGVuIHdlIGNhbiBlYXNpbHkgaW1wbGVtZW50 IHBsYW5lIGRpc2FibGUgdmlhIHRoZQp1cGRhdGVfcGxhbmUgaGFuZGxlci4gIFRoZSBjdXJzb3Ig cGxhbmUgYWxyZWFkeSB3b3JrcyB0aGlzIHdheSwgYW5kIHRoaXMKaXMgdGhlIGRpcmVjdGlvbiB3 ZSBuZWVkIHRvIGdvIHRvIGludGVncmF0ZSB3aXRoIHRoZSBhdG9taWMgcGxhbmUKaGFuZGxlci4g IFdlIGNhbiBub3cga2lsbCBvZmYgdGhlIHR5cGUtc3BlY2lmaWMgZGlzYWJsZSBmdW5jdGlvbnMs IGFzCndlbGwgYXMgdGhlIHJlZHVuZGFudCBpbnRlbF9wbGFuZV9kaXNhYmxlKCkgKG5vdCB0byBi ZSBjb25mdXNlZCB3aXRoCmludGVsX2Rpc2FibGVfcGxhbmUoKSkuCgpOb3RlIHRoYXQgcHJlcGFy ZV9wbGFuZV9mYigpIG9ubHkgZ2V0cyBjYWxsZWQgYXMgcGFydCBvZiB1cGRhdGVfcGxhbmUKd2hl biBmYiE9TlVMTCAoYnkgZGVzaWduLCB0byBtYXRjaCB0aGUgc2VtYW50aWNzIG9mIHRoZSBhdG9t aWMgcGxhbmUKaGVscGVycyk7IHRoaXMgbWVhbnMgdGhhdCBvdXIgY29tbWl0X3BsYW5lIGhhbmRs ZXJzIG5lZWQgdG8gaGFuZGxlIHRoZQpmcm9udGJ1ZmZlciB0cmFja2luZyBmb3IgdGhlIGRpc2Fi bGUgY2FzZSwgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBoYW5kbGUKaXQgZm9yIG5vcm1hbCB1cGRh dGVzLgoKdjI6CiAtIENoYW5nZSBCVUdfT04gdG8gV0FSTl9PTiAoQW5kZXIvRGFuaWVsKQoKdjM6 CiAtIERyb3AgdW5uZWNlc3NhcnkgcGxhbmUtPmNydGMgY2hlY2sgc2luY2UgYSBwcmV2aW91cyBw YXRjaCB0byBwbGFuZQogICB1cGRhdGUgZW5zdXJlcyB0aGF0IHBsYW5lLT5jcnRjIHdpbGwgYWx3 YXlzIGJlIG5vbi1OVUxMLCBldmVuIGZvcgogICBkaXNhYmxlIGNhbGxzIHRoYXQgbWlnaHQgcGFz cyBOVUxMIGZyb20gdXNlcnNwYWNlLiAgKEFuZGVyKQogLSBEcm9wIGEgcy9jcnRjL3BsYW5lLT5j cnRjLyBodW5rIHRoYXQgd2FzIHVubmVjZXNzYXJ5LiAgKEFuZGVyKQoKU2lnbmVkLW9mZi1ieTog TWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZGVy IENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA5MyArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu YyAgfCA3MSArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTYg aW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwppbmRleCBkMTMwMTVjLi4wZTgwZWQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCkBAIC00MDYwLDcgKzQwNjAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJZHJtX2Zvcl9lYWNoX2xlZ2FjeV9wbGFu ZShwbGFuZSwgJmRldi0+bW9kZV9jb25maWcucGxhbmVfbGlzdCkgewogCQlpbnRlbF9wbGFuZSA9 IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKIAkJaWYgKGludGVsX3BsYW5lLT5waXBlID09IHBpcGUp Ci0JCQlpbnRlbF9wbGFuZV9kaXNhYmxlKCZpbnRlbF9wbGFuZS0+YmFzZSk7CisJCQlwbGFuZS0+ ZnVuY3MtPmRpc2FibGVfcGxhbmUocGxhbmUpOwogCX0KIH0KIApAQCAtMTE2MDUsNDMgKzExNjA1 LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2hhcmVkX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCUJVR19PTihkZXZfcHJpdi0+bnVtX3NoYXJlZF9kcGxsID4gSTkxNV9OVU1fUExM Uyk7CiB9CiAKLXN0YXRpYyBpbnQKLWludGVsX3ByaW1hcnlfcGxhbmVfZGlzYWJsZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRl djsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKLQotCWlmICghcGxhbmUtPmZiKQot CQlyZXR1cm4gMDsKLQotCUJVR19PTighcGxhbmUtPmNydGMpOwotCi0JaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMocGxhbmUtPmNydGMpOwotCi0JLyoKLQkgKiBFdmVuIHRob3VnaCB3ZSBjaGVj a2VkIHBsYW5lLT5mYiBhYm92ZSwgaXQncyBzdGlsbCBwb3NzaWJsZSB0aGF0Ci0JICogdGhlIHBy aW1hcnkgcGxhbmUgaGFzIGJlZW4gaW1wbGljaXRseSBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjcnRj Ci0JICogY29vcmRpbmF0ZXMgZ2l2ZW4gd2VyZW4ndCB2aXNpYmxlLCBvciBiZWNhdXNlIHdlIGRl dGVjdGVkCi0JICogdGhhdCBpdCB3YXMgMTAwJSBjb3ZlcmVkIGJ5IGEgc3ByaXRlIHBsYW5lLiAg T3IsIHRoZSBDUlRDIG1heSBiZQotCSAqIG9mZiBhbmQgd2UndmUgc2V0IGEgZmIsIGJ1dCBoYXZl bid0IGFjdHVhbGx5IHR1cm5lZCBvbiB0aGUgQ1JUQyB5ZXQuCi0JICogSW4gZWl0aGVyIGNhc2Us IHdlIG5lZWQgdG8gdW5waW4gdGhlIEZCIGFuZCBsZXQgdGhlIGZiIHBvaW50ZXIgZ2V0Ci0JICog dXBkYXRlZCwgYnV0IG90aGVyd2lzZSB3ZSBkb24ndCBuZWVkIHRvIHRvdWNoIHRoZSBoYXJkd2Fy ZS4KLQkgKi8KLQlpZiAoaW50ZWxfY3J0Yy0+cHJpbWFyeV9lbmFibGVkKSB7Ci0JCWludGVsX2Ny dGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhwbGFuZS0+Y3J0Yyk7Ci0JCWludGVsX2Rpc2FibGVf cHJpbWFyeV9od19wbGFuZShwbGFuZSwgcGxhbmUtPmNydGMpOwotCX0KLQotCW11dGV4X2xvY2so JmRldi0+c3RydWN0X211dGV4KTsKLQlpOTE1X2dlbV90cmFja19mYihpbnRlbF9mYl9vYmoocGxh bmUtPmZiKSwgTlVMTCwKLQkJCSAgSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShpbnRlbF9jcnRj LT5waXBlKSk7Ci0JaW50ZWxfdW5waW5fZmJfb2JqKGludGVsX2ZiX29iaihwbGFuZS0+ZmIpKTsK LQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlwbGFuZS0+ZmIgPSBOVUxMOwot Ci0JcmV0dXJuIDA7Ci19Ci0KIC8qKgogICogaW50ZWxfcHJlcGFyZV9wbGFuZV9mYiAtIFByZXBh cmUgZmIgZm9yIHVzYWdlIG9uIHBsYW5lCiAgKiBAcGxhbmU6IGRybSBwbGFuZSB0byBwcmVwYXJl IGZvcgpAQCAtMTE3NDUsOCArMTE3MDgsOCBAQCBpbnRlbF9jaGVja19wcmltYXJ5X3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRl bF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7Ci0JaWYgKGludGVsX2NydGNfaGFz X3BlbmRpbmdfZmxpcChjcnRjKSkgeworCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlw cyhwbGFuZS0+Y3J0Yyk7CisJaWYgKGludGVsX2NydGNfaGFzX3BlbmRpbmdfZmxpcChwbGFuZS0+ Y3J0YykpIHsKIAkJRFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1c3kgd2l0aCBhbiBvbGQgcGFn ZWZsaXBcbiIpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KQEAgLTExNzYzLDEyICsxMTcyNiwyMyBA QCBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQllbnVtIHBpcGUgcGlwZSA9IGludGVs X2NydGMtPnBpcGU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2Zi X29iaihmYik7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lKTsKIAlzdHJ1Y3QgZHJtX3JlY3QgKnNyYyA9ICZzdGF0ZS0+c3JjOworCWVudW0g cGlwZSBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAKLQljcnRjLT5wcmltYXJ5LT5mYiA9IGZi OworCWlmICghZmIpIHsKKwkJLyoKKwkJICogJ3ByZXBhcmUnIGlzIG5ldmVyIGNhbGxlZCB3aGVu IHBsYW5lIGlzIGJlaW5nIGRpc2FibGVkLCBzbworCQkgKiB3ZSBuZWVkIHRvIGhhbmRsZSBmcm9u dGJ1ZmZlciB0cmFja2luZyBoZXJlCisJCSAqLworCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9t dXRleCk7CisJCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2ZiX29iaihwbGFuZS0+ZmIpLCBOVUxM LAorCQkJCSAgSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShwaXBlKSk7CisJCW11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCX0KKworCXBsYW5lLT5mYiA9IGZiOwogCWNydGMtPngg PSBzcmMtPngxID4+IDE2OwogCWNydGMtPnkgPSBzcmMtPnkxID4+IDE2OwogCkBAIC0xMTg5Nyw2 ICsxMTg3MSwyNSBAQCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs IHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlyZXR1cm4gMDsKIH0KIAorLyoqCisgKiBpbnRlbF9k aXNhYmxlX3BsYW5lIC0gZGlzYWJsZSBhIHBsYW5lCisgKiBAcGxhbmU6IHBsYW5lIHRvIGRpc2Fi bGUKKyAqCisgKiBHZW5lcmFsIGRpc2FibGUgaGFuZGxlciBmb3IgYWxsIHBsYW5lIHR5cGVzLgor ICovCitpbnQKK2ludGVsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCit7 CisJaWYgKCFwbGFuZS0+ZmIpCisJCXJldHVybiAwOworCisJaWYoV0FSTl9PTighcGxhbmUtPmNy dGMpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBwbGFuZS0+ZnVuY3MtPnVwZGF0ZV9w bGFuZShwbGFuZSwgcGxhbmUtPmNydGMsIE5VTEwsCisJCQkJCSAgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCk7Cit9CisKIC8qIENvbW1vbiBkZXN0cnVjdGlvbiBmdW5jdGlvbiBmb3IgYm90aCBwcmlt YXJ5IGFuZCBjdXJzb3IgcGxhbmVzICovCiBzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95 KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewpAQCAtMTE5MDcsNyArMTE5MDAsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCiBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wcmltYXJ5X3BsYW5lX2Z1 bmNzID0gewogCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCi0JLmRpc2FibGVf cGxhbmUgPSBpbnRlbF9wcmltYXJ5X3BsYW5lX2Rpc2FibGUsCisJLmRpc2FibGVfcGxhbmUgPSBp bnRlbF9kaXNhYmxlX3BsYW5lLAogCS5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVzdHJveSwKIAku c2V0X3Byb3BlcnR5ID0gaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5CiB9OwpAQCAtMTE5NjIsMTgg KzExOTU1LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVf Y3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB9CiAKIHN0YXRpYyBpbnQKLWludGVsX2N1 cnNvcl9wbGFuZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQotewotCWlmICghcGxh bmUtPmZiKQotCQlyZXR1cm4gMDsKLQotCUJVR19PTighcGxhbmUtPmNydGMpOwotCi0JcmV0dXJu IHBsYW5lLT5mdW5jcy0+dXBkYXRlX3BsYW5lKHBsYW5lLCBwbGFuZS0+Y3J0YywgTlVMTCwKLQkJ CQkJICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKLX0KLQotc3RhdGljIGludAogaW50ZWxfY2hl Y2tfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJIHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CkBAIC0xMjA5Nyw3ICsxMjA3OCw3IEBAIHVwZGF0ZToK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfY3Vyc29yX3BsYW5l X2Z1bmNzID0gewogCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCi0JLmRpc2Fi bGVfcGxhbmUgPSBpbnRlbF9jdXJzb3JfcGxhbmVfZGlzYWJsZSwKKwkuZGlzYWJsZV9wbGFuZSA9 IGludGVsX2Rpc2FibGVfcGxhbmUsCiAJLmRlc3Ryb3kgPSBpbnRlbF9wbGFuZV9kZXN0cm95LAog CS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9zZXRfcHJvcGVydHksCiB9OwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCBmN2I2NjE5Li41M2I2OTZlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaApAQCAtMTAyMCw2ICsxMDIwLDcgQEAgaW50IGludGVsX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkgICAgICAgdW5z aWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKIAkJICAgICAgIHVpbnQzMl90 IHNyY194LCB1aW50MzJfdCBzcmNfeSwKIAkJICAgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJf dCBzcmNfaCk7CitpbnQgaW50ZWxfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSk7CiAKIC8qIGludGVsX2RwX21zdC5jICovCiBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5p dChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5faWQp OwpAQCAtMTIwMSw3ICsxMjAyLDYgQEAgaW50IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcCwK IAkJCSAgICAgdWludDY0X3QgdmFsKTsKIGludCBpbnRlbF9wbGFuZV9yZXN0b3JlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lKTsKLXZvaWQgaW50ZWxfcGxhbmVfZGlzYWJsZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSk7CiBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwogaW50IGludGVsX3Nwcml0ZV9nZXRfY29sb3JrZXkoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggYmZkNTI3 MC4uYmM1ODM0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTExMDksNyAr MTEwOSwxMiBAQCBpbnRlbF9jaGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5jbGlwOwogCWludCBo c2NhbGUsIHZzY2FsZTsKIAlpbnQgbWF4X3NjYWxlLCBtaW5fc2NhbGU7Ci0JaW50IHBpeGVsX3Np emUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKKwlpbnQgcGl4 ZWxfc2l6ZTsKKworCWlmICghZmIpIHsKKwkJc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKKwkJcmV0 dXJuIDA7CisJfQogCiAJLyogRG9uJ3QgbW9kaWZ5IGFub3RoZXIgcGlwZSdzIHBsYW5lICovCiAJ aWYgKGludGVsX3BsYW5lLT5waXBlICE9IGludGVsX2NydGMtPnBpcGUpIHsKQEAgLTEyMzIsNiAr MTIzNyw3IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAkJaWYgKHNyY193IDwgMyB8fCBzcmNfaCA8IDMpCiAJCQlzdGF0ZS0+dmlzaWJsZSA9IGZh bHNlOwogCisJCXBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9y bWF0LCAwKTsKIAkJd2lkdGhfYnl0ZXMgPSAoKHNyY194ICogcGl4ZWxfc2l6ZSkgJiA2MykgKwog CQkJCQlzcmNfdyAqIHBpeGVsX3NpemU7CiAKQEAgLTEyNzYsNiArMTI4MiwxNyBAQCBpbnRlbF9j b21taXRfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWJvb2wgcHJpbWFy eV9lbmFibGVkOwogCiAJLyoKKwkgKiAncHJlcGFyZScgaXMgbmV2ZXIgY2FsbGVkIHdoZW4gcGxh bmUgaXMgYmVpbmcgZGlzYWJsZWQsIHNvIHdlIG5lZWQKKwkgKiB0byBoYW5kbGUgZnJvbnRidWZm ZXIgdHJhY2tpbmcgaGVyZQorCSAqLworCWlmICghZmIpIHsKKwkJbXV0ZXhfbG9jaygmZGV2LT5z dHJ1Y3RfbXV0ZXgpOworCQlpOTE1X2dlbV90cmFja19mYihpbnRlbF9mYl9vYmoocGxhbmUtPmZi KSwgTlVMTCwKKwkJCQkgIElOVEVMX0ZST05UQlVGRkVSX1NQUklURShwaXBlKSk7CisJCW11dGV4 X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCX0KKworCS8qCiAJICogSWYgdGhlIHNwcml0 ZSBpcyBjb21wbGV0ZWx5IGNvdmVyaW5nIHRoZSBwcmltYXJ5IHBsYW5lLAogCSAqIHdlIGNhbiBk aXNhYmxlIHRoZSBwcmltYXJ5IGFuZCBzYXZlIHBvd2VyLgogCSAqLwpAQCAtMTMyNyw1MCArMTM0 NCw2IEBAIGludGVsX2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJfQogfQogCi1zdGF0aWMgaW50Ci1pbnRlbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OwotCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Ci0J c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Ci0JZW51bSBwaXBlIHBpcGU7Ci0KLQlpZiAo IXBsYW5lLT5mYikKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoV0FSTl9PTighcGxhbmUtPmNydGMpKQot CQlyZXR1cm4gLUVJTlZBTDsKLQotCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBsYW5lLT5j cnRjKTsKLQlwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKLQotCWlmIChpbnRlbF9jcnRjLT5hY3Rp dmUpIHsKLQkJYm9vbCBwcmltYXJ5X3dhc19lbmFibGVkID0gaW50ZWxfY3J0Yy0+cHJpbWFyeV9l bmFibGVkOwotCi0JCWludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCA9IHRydWU7Ci0KLQkJaW50 ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocGxhbmUsIHBsYW5lLT5jcnRjKTsKLQotCQlpZiAoIXBy aW1hcnlfd2FzX2VuYWJsZWQgJiYgaW50ZWxfY3J0Yy0+cHJpbWFyeV9lbmFibGVkKQotCQkJaW50 ZWxfcG9zdF9lbmFibGVfcHJpbWFyeShwbGFuZS0+Y3J0Yyk7Ci0JfQotCi0JaWYgKGludGVsX3Bs YW5lLT5vYmopIHsKLQkJaWYgKGludGVsX2NydGMtPmFjdGl2ZSkKLQkJCWludGVsX3dhaXRfZm9y X3ZibGFuayhkZXYsIGludGVsX3BsYW5lLT5waXBlKTsKLQotCQltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7Ci0JCWludGVsX3VucGluX2ZiX29iaihpbnRlbF9wbGFuZS0+b2JqKTsKLQkJ aTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfcGxhbmUtPm9iaiwgTlVMTCwKLQkJCQkgIElOVEVMX0ZS T05UQlVGRkVSX1NQUklURShwaXBlKSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwotCi0JCWludGVsX3BsYW5lLT5vYmogPSBOVUxMOwotCX0KLQotCXJldHVybiAwOwotfQot CiBzdGF0aWMgdm9pZCBpbnRlbF9kZXN0cm95X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l KQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShw bGFuZSk7CkBAIC0xNDc4LDE0ICsxNDUxLDYgQEAgaW50IGludGVsX3BsYW5lX3Jlc3RvcmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJCQkJICBpbnRlbF9wbGFuZS0+c3JjX3csIGludGVsX3Bs YW5lLT5zcmNfaCk7CiB9CiAKLXZvaWQgaW50ZWxfcGxhbmVfZGlzYWJsZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSkKLXsKLQlpZiAoIXBsYW5lLT5jcnRjIHx8ICFwbGFuZS0+ZmIpCi0JCXJldHVy bjsKLQotCWludGVsX2Rpc2FibGVfcGxhbmUocGxhbmUpOwotfQotCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5jcyA9IHsKIAkudXBkYXRlX3BsYW5l ID0gaW50ZWxfdXBkYXRlX3BsYW5lLAogCS5kaXNhYmxlX3BsYW5lID0gaW50ZWxfZGlzYWJsZV9w bGFuZSwKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==