From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 6/9] drm/i915: Consolidate plane 'prepare' functions Date: Mon, 24 Nov 2014 11:53:03 -0800 Message-ID: <1416858786-25376-7-git-send-email-matthew.d.roper@intel.com> References: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 56E316F0AA for ; Mon, 24 Nov 2014 11:55:13 -0800 (PST) In-Reply-To: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.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 VGhlICdwcmVwYXJlJyBzdGVwIGZvciBhbGwgdHlwZXMgb2YgcGxhbmVzIGFyZSBwcmV0dHkgc2lt aWxhcjsKY29uc29saWRhdGUgdGhlIHRocmVlICdwcmVwYXJlJyBmdW5jdGlvbnMgaW50byBhIHNp bmdsZSBmdW5jdGlvbi4gIFRoaXMKcGF2ZXMgdGhlIHdheSBmb3IgZnV0dXJlIGludGVncmF0aW9u IHdpdGggdGhlIGF0b21pYyBwbGFuZSBoYW5kbGVycy4KCk5vdGUgdGhhdCB3ZSBwdWxsIHRoZSAn d2FpdCBmb3IgcGVuZGluZyBmbGlwcycgZnVuY3Rpb25hbGl0eSBvdXQgb2YgdGhlCnByaW1hcnkg cGxhbmUncyBwcmVwYXJlIHN0ZXAgYW5kIHBsYWNlIGl0IGRpcmVjdGx5IGluIHRoZSAnc2V0cGxh bmUnCmNvZGUuICBXaGVuIHdlIG1vdmUgdG8gdGhlIGF0b21pYyBwbGFuZSBoYW5kbGVycywgdGhp cyBjb2RlIHdpbGwgYmUgaW4KdGhlICdhdG9taWMgYmVnaW4nIHN0ZXAuCgpTaWduZWQtb2ZmLWJ5 OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE2NyArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICsK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICA0NCArKy0tLS0tLS0KIDMg ZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgMTE0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAyMTdkMWUzLi41MGQ0Mjk5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMTU3NCw2ICsxMTU3NCw2NiBAQCBkaXNh YmxlX3VucGluOgogCXJldHVybiAwOwogfQogCisvKioKKyAqIGludGVsX3ByZXBhcmVfcGxhbmVf ZmIgLSBQcmVwYXJlIGZiIGZvciB1c2FnZSBvbiBwbGFuZQorICogQHBsYW5lOiBkcm0gcGxhbmUg dG8gcHJlcGFyZSBmb3IKKyAqIEBmYjogZnJhbWVidWZmZXIgdG8gcHJlcGFyZSBmb3IgcHJlc2Vu dGF0aW9uCisgKgorICogUHJlcGFyZXMgYSBmcmFtZWJ1ZmZlciBmb3IgdXNhZ2Ugb24gYSBkaXNw bGF5IHBsYW5lLiAgR2VuZXJhbGx5IHRoaXMKKyAqIGludm9sdmVzIHBpbm5pbmcgdGhlIHVuZGVy bHlpbmcgb2JqZWN0IGFuZCB1cGRhdGluZyB0aGUgZnJvbnRidWZmZXIgdHJhY2tpbmcKKyAqIGJp dHMuICBTb21lIG9sZGVyIHBsYXRmb3JtcyBuZWVkIHNwZWNpYWwgcGh5c2ljYWwgYWRkcmVzcyBo YW5kbGluZyBmb3IKKyAqIGN1cnNvciBwbGFuZXMuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nl c3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50CitpbnRlbF9wcmVw YXJlX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkgICAgICAgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5k ZXY7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBs YW5lKTsKKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOworCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvbGRfb2JqID0gaW50ZWxfZmJfb2JqKHBsYW5lLT5mYik7CisJdW5zaWdu ZWQgZnJvbnRidWZmZXJfYml0cyA9IDA7CisJaW50IHJldDsKKworCWlmIChXQVJOX09OKGZiID09 IHBsYW5lLT5mYiB8fCAhb2JqKSkKKwkJcmV0dXJuIDA7CisKKwlzd2l0Y2ggKHBsYW5lLT50eXBl KSB7CisJY2FzZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgorCQlmcm9udGJ1ZmZlcl9iaXRzID0g SU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShwaXBlKTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fUExB TkVfVFlQRV9DVVJTT1I6CisJCWZyb250YnVmZmVyX2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9D VVJTT1IocGlwZSk7CisJCWJyZWFrOworCWNhc2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKKwkJ ZnJvbnRidWZmZXJfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1NQUklURShwaXBlKTsKKwkJYnJl YWs7CisJfQorCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJaWYgKHBsYW5l LT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUiAmJgorCSAgICBJTlRFTF9JTkZPKGRldikt PmN1cnNvcl9uZWVkc19waHlzaWNhbCkgeworCQlpbnQgYWxpZ24gPSBJU19JODMwKGRldikgPyAx NiAqIDEwMjQgOiAyNTY7CisJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhvYmos IGFsaWduKTsKKwkJaWYgKHJldCkKKwkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhdHRhY2gg cGh5cyBvYmplY3RcbiIpOworCX0gZWxzZSB7CisJCXJldCA9IGludGVsX3Bpbl9hbmRfZmVuY2Vf ZmJfb2JqKHBsYW5lLCBmYiwgTlVMTCk7CisJCWlmIChyZXQgPT0gMCkKKwkJCWk5MTVfZ2VtX3Ry YWNrX2ZiKG9sZF9vYmosIG9iaiwgZnJvbnRidWZmZXJfYml0cyk7CisJCWVsc2UKKwkJCURSTV9E RUJVR19LTVMoInBpbiAmIGZlbmNlIGZhaWxlZFxuIik7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgaW50CiBpbnRl bF9jaGVja19wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQpAQCAtMTE1OTEsNDIgKzExNjUxLDYgQEAgaW50 ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCQkJICAg ICBmYWxzZSwgdHJ1ZSwgJnN0YXRlLT52aXNpYmxlKTsKIH0KIAotc3RhdGljIGludAotaW50ZWxf cHJlcGFyZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJICAgIHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRj ID0gc3RhdGUtPmJhc2UuY3J0YzsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRl LT5iYXNlLmZiOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCWVudW0gcGlw ZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xk X29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+ZmIpOwotCWludCByZXQ7Ci0KLQlpbnRlbF9jcnRj X3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7Ci0KLQlpZiAoaW50ZWxfY3J0Y19oYXNfcGVu ZGluZ19mbGlwKGNydGMpKSB7Ci0JCURSTV9FUlJPUigicGlwZSBpcyBzdGlsbCBidXN5IHdpdGgg YW4gb2xkIHBhZ2VmbGlwXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0KLQlpZiAob2xkX29i aiAhPSBvYmopIHsKLQkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlyZXQgPSBp bnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihwbGFuZSwgZmIsIE5VTEwpOwotCQlpZiAocmV0ID09 IDApCi0JCQlpOTE1X2dlbV90cmFja19mYihvbGRfb2JqLCBvYmosCi0JCQkJCSAgSU5URUxfRlJP TlRCVUZGRVJfUFJJTUFSWShwaXBlKSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwotCQlpZiAocmV0ICE9IDApIHsKLQkJCURSTV9ERUJVR19LTVMoInBpbiAmIGZlbmNlIGZh aWxlZFxuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0 YXRpYyB2b2lkCiBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIAkJCSAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCkBAIC0xMTcyOCw2 ICsxMTc1Miw3IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfc2V0cGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCSAgICAgdWludDMyX3Qgc3JjX3gs IHVpbnQzMl90IHNyY195LAogCQkJICAgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gp CiB7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiID0gcGxhbmUtPmZiOwogCXN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSBzdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJaW50IHJldDsKQEAgLTExNzU5LDkgKzExNzg0LDE4 IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfc2V0cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs IHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmV0 ID0gaW50ZWxfcHJlcGFyZV9wcmltYXJ5X3BsYW5lKHBsYW5lLCAmc3RhdGUpOwotCWlmIChyZXQp Ci0JCXJldHVybiByZXQ7CisJaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBzKGNydGMp OworCisJaWYgKGludGVsX2NydGNfaGFzX3BlbmRpbmdfZmxpcChjcnRjKSkgeworCQlEUk1fRVJS T1IoInBpcGUgaXMgc3RpbGwgYnVzeSB3aXRoIGFuIG9sZCBwYWdlZmxpcFxuIik7CisJCXJldHVy biAtRUJVU1k7CisJfQorCisJaWYgKGZiICE9IG9sZF9mYiAmJiBmYikgeworCQlyZXQgPSBpbnRl bF9wcmVwYXJlX3BsYW5lX2ZiKHBsYW5lLCBmYik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0 OworCX0KIAogCWludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lKHBsYW5lLCAmc3RhdGUpOwogCkBA IC0xMTg5OCw0MCArMTE5MzIsNiBAQCBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludAotaW50ZWxfcHJl cGFyZV9jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkgICBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBw bGFuZS0+ZGV2OwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJhc2UuZmI7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHN0YXRlLT5i YXNlLmNydGMpOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9v YmooZmIpOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGRfb2JqID0gaW50ZWxfZmJf b2JqKHBsYW5lLT5mYik7Ci0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCWlu dCByZXQgPSAwOwotCi0JaWYgKG9sZF9vYmogIT0gb2JqKSB7Ci0JCS8qIHdlIG9ubHkgbmVlZCB0 byBwaW4gaW5zaWRlIEdUVCBpZiBjdXJzb3IgaXMgbm9uLXBoeSAqLwotCQltdXRleF9sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7Ci0JCWlmICghSU5URUxfSU5GTyhkZXYpLT5jdXJzb3JfbmVlZHNf cGh5c2ljYWwpIHsKLQkJCWlmIChvYmopCi0JCQkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9m Yl9vYmoocGxhbmUsIGZiLCBOVUxMKTsKLQkJCWlmIChyZXQgPT0gMCkKLQkJCQlpOTE1X2dlbV90 cmFja19mYihpbnRlbF9jcnRjLT5jdXJzb3JfYm8sIG9iaiwKLQkJCQkJCSAgSU5URUxfRlJPTlRC VUZGRVJfQ1VSU09SKHBpcGUpKTsKLQkJfSBlbHNlIHsKLQkJCWludCBhbGlnbiA9IElTX0k4MzAo ZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsKLQkJCWlmIChvYmopCi0JCQkJcmV0ID0gaTkxNV9nZW1f b2JqZWN0X2F0dGFjaF9waHlzKG9iaiwgYWxpZ24pOwotCQkJaWYgKHJldCkKLQkJCQlEUk1fREVC VUdfS01TKCJmYWlsZWQgdG8gYXR0YWNoIHBoeXMgb2JqZWN0XG4iKTsKLQkJfQotCQltdXRleF91 bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCiBzdGF0 aWMgdm9pZAogaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKQEAgLTExOTQxLDYgKzEx OTQxLDcgQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5l KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHN0YXRl LT5iYXNlLmZiKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkX29iaiA9IGludGVs X2ZiX29iaihwbGFuZS0+ZmIpOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsK IAl1bnNpZ25lZCBvbGRfd2lkdGg7CiAJdWludDMyX3QgYWRkcjsKQEAgLTExOTYxLDYgKzExOTYy LDE3IEBAIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJaWYgKGludGVsX2NydGMtPmN1cnNvcl9ibyA9PSBvYmopCiAJCWdvdG8gdXBkYXRlOwogCisJ LyoKKwkgKiAncHJlcGFyZScgaXMgb25seSBjYWxsZWQgd2hlbiBmYiAhPSBOVUxMOyB3ZSBzdGls bCBuZWVkIHRvIHVwZGF0ZQorCSAqIGZyb250YnVmZmVyIHRyYWNraW5nIGZvciB0aGUgJ2Rpc2Fi bGUnIGNhc2UgaGVyZS4KKwkgKi8KKwlpZiAoIW9iaikgeworCQltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIE5VTEwsCisJCQkJICBJ TlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSkpOworCQltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKKwl9CisKIAlpZiAoIW9iaikKIAkJYWRkciA9IDA7CiAJZWxzZSBpZiAoIUlO VEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQpAQCAtMTE5OTcsNiArMTIwMDks NyBAQCBpbnRlbF9jdXJzb3JfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNf eSwKIAkJCSAgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKQogeworCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKm9sZF9mYiA9IHBsYW5lLT5mYjsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRl IHN0YXRlOwogCWludCByZXQ7CkBAIC0xMjAyOCw5ICsxMjA0MSwxMSBAQCBpbnRlbF9jdXJzb3Jf cGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGludGVsX3ByZXBhcmVfY3Vy c29yX3BsYW5lKHBsYW5lLCAmc3RhdGUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJaWYg KGZiICE9IG9sZF9mYiAmJiBmYikgeworCQlyZXQgPSBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHBs YW5lLCBmYik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KIAogCWludGVsX2NvbW1p dF9jdXJzb3JfcGxhbmUocGxhbmUsICZzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggYTZlYWZiNC4uZTlmNGRjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTky NCw2ICs5MjQsOCBAQCB2b2lkIGludGVsX3ByZXBhcmVfcGFnZV9mbGlwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBwbGFuZSk7CiB2b2lkIGludGVsX2ZpbmlzaF9wYWdlX2ZsaXAoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpOwogdm9pZCBpbnRlbF9maW5pc2hfcGFnZV9mbGlw X3BsYW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwbGFuZSk7CiB2b2lkIGludGVsX2No ZWNrX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSk7CitpbnQgaW50 ZWxfcHJlcGFyZV9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCSAgIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKIAogLyogc2hhcmVkIGRwbGwgZnVuY3Rpb25zICovCiBz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2NydGNfdG9fc2hhcmVkX2RwbGwoc3RydWN0 IGludGVsX2NydGMgKmNydGMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCBm Yzk2ZDEzLi41ZDhjMmUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtMTI1 Nyw0MSArMTI1Nyw2IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAotaW50ZWxfcHJlcGFyZV9zcHJp dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkgICBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2 OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRl bF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Ci0JZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g c3RhdGUtPmJhc2UuZmI7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVs X2ZiX29iaihmYik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRl bF9wbGFuZS0+b2JqOwotCWludCByZXQ7Ci0KLQlpZiAob2xkX29iaiAhPSBvYmopIHsKLQkJbXV0 ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JCS8qIE5vdGUgdGhhdCB0aGlzIHdpbGwg YXBwbHkgdGhlIFZULWQgd29ya2Fyb3VuZCBmb3Igc2Nhbm91dHMsCi0JCSAqIHdoaWNoIGlzIG1v cmUgcmVzdHJpY3RpdmUgdGhhbiByZXF1aXJlZCBmb3Igc3ByaXRlcy4gKFRoZQotCQkgKiBwcmlt YXJ5IHBsYW5lIHJlcXVpcmVzIDI1NktpQiBhbGlnbm1lbnQgd2l0aCA2NCBQVEUgcGFkZGluZywK LQkJICogdGhlIHNwcml0ZSBwbGFuZXMgb25seSByZXF1aXJlIDEyOEtpQiBhbGlnbm1lbnQgYW5k IDMyIFBURQotCQkgKiBwYWRkaW5nLgotCQkgKi8KLQkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5j ZV9mYl9vYmoocGxhbmUsIGZiLCBOVUxMKTsKLQkJaWYgKHJldCA9PSAwKQotCQkJaTkxNV9nZW1f dHJhY2tfZmIob2xkX29iaiwgb2JqLAotCQkJCQkgIElOVEVMX0ZST05UQlVGRkVSX1NQUklURShw aXBlKSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlpZiAocmV0KQot CQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQKIGludGVs X2NvbW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCkBAIC0xMzg3LDYgKzEzNTIsNyBAQCBpbnRlbF91 cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAogCQkgICB1aW50MzJfdCBz cmNfdywgdWludDMyX3Qgc3JjX2gpCiB7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2Zi ID0gcGxhbmUtPmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSBzdGF0ZTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJaW50IHJldDsK QEAgLTE0MTcsOSArMTM4MywxMSBAQCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwogCi0JcmV0ID0gaW50ZWxfcHJlcGFyZV9zcHJpdGVfcGxhbmUocGxhbmUsICZzdGF0ZSk7Ci0J aWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwlpZiAoZmIgIT0gb2xkX2ZiICYmIGZiKSB7CisJCXJl dCA9IGludGVsX3ByZXBhcmVfcGxhbmVfZmIocGxhbmUsIGZiKTsKKwkJaWYgKHJldCkKKwkJCXJl dHVybiByZXQ7CisJfQogCiAJaW50ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZShwbGFuZSwgJnN0YXRl KTsKIAlyZXR1cm4gMDsKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==