From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 06/10] drm/i915: Consolidate plane 'prepare' functions (v2) Date: Mon, 1 Dec 2014 15:40:14 -0800 Message-ID: <1417477218-9519-6-git-send-email-matthew.d.roper@intel.com> References: <1417477218-9519-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A65CD6E38B for ; Mon, 1 Dec 2014 15:40:37 -0800 (PST) In-Reply-To: <1417477218-9519-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 cyBjb2RlIHdpbGwgYmUgaW4KdGhlICdhdG9taWMgYmVnaW4nIHN0ZXAuCgp2MjogVXBkYXRlIEdF TSBmYiB0cmFja2luZyBmb3IgcGh5c2ljYWwgY3Vyc29ycyBhbHNvIChBbmRlcikKClNpZ25lZC1v ZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTY4ICsrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAg IDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDQ0ICsrLS0tLS0t LQogMyBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxMTYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGJiYzBmY2QuLmY0OGZhYWEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExNjQyLDYgKzExNjQyLDY1IEBA IGludGVsX3ByaW1hcnlfcGxhbmVfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAly ZXR1cm4gMDsKIH0KIAorLyoqCisgKiBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiIC0gUHJlcGFyZSBm YiBmb3IgdXNhZ2Ugb24gcGxhbmUKKyAqIEBwbGFuZTogZHJtIHBsYW5lIHRvIHByZXBhcmUgZm9y CisgKiBAZmI6IGZyYW1lYnVmZmVyIHRvIHByZXBhcmUgZm9yIHByZXNlbnRhdGlvbgorICoKKyAq IFByZXBhcmVzIGEgZnJhbWVidWZmZXIgZm9yIHVzYWdlIG9uIGEgZGlzcGxheSBwbGFuZS4gIEdl bmVyYWxseSB0aGlzCisgKiBpbnZvbHZlcyBwaW5uaW5nIHRoZSB1bmRlcmx5aW5nIG9iamVjdCBh bmQgdXBkYXRpbmcgdGhlIGZyb250YnVmZmVyIHRyYWNraW5nCisgKiBiaXRzLiAgU29tZSBvbGRl ciBwbGF0Zm9ybXMgbmVlZCBzcGVjaWFsIHBoeXNpY2FsIGFkZHJlc3MgaGFuZGxpbmcgZm9yCisg KiBjdXJzb3IgcGxhbmVzLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBl cnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludAoraW50ZWxfcHJlcGFyZV9wbGFuZV9mYihz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVjdCBp bnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJZW51bSBw aXBlIHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+ZmIpOworCXVuc2lnbmVkIGZyb250YnVmZmVy X2JpdHMgPSAwOworCWludCByZXQgPSAwOworCisJaWYgKFdBUk5fT04oZmIgPT0gcGxhbmUtPmZi IHx8ICFvYmopKQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAocGxhbmUtPnR5cGUpIHsKKwljYXNl IERSTV9QTEFORV9UWVBFX1BSSU1BUlk6CisJCWZyb250YnVmZmVyX2JpdHMgPSBJTlRFTF9GUk9O VEJVRkZFUl9QUklNQVJZKHBpcGUpOworCQlicmVhazsKKwljYXNlIERSTV9QTEFORV9UWVBFX0NV UlNPUjoKKwkJZnJvbnRidWZmZXJfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX0NVUlNPUihwaXBl KTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOgorCQlmcm9udGJ1ZmZl cl9iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfU1BSSVRFKHBpcGUpOworCQlicmVhazsKKwl9CisK KwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpZiAocGxhbmUtPnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfQ1VSU09SICYmCisJICAgIElOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25l ZWRzX3BoeXNpY2FsKSB7CisJCWludCBhbGlnbiA9IElTX0k4MzAoZGV2KSA/IDE2ICogMTAyNCA6 IDI1NjsKKwkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2F0dGFjaF9waHlzKG9iaiwgYWxpZ24pOwor CQlpZiAocmV0KQorCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGF0dGFjaCBwaHlzIG9iamVj dFxuIik7CisJfSBlbHNlIHsKKwkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoocGxh bmUsIGZiLCBOVUxMKTsKKwl9CisKKwlpZiAocmV0ID09IDApCisJCWk5MTVfZ2VtX3RyYWNrX2Zi KG9sZF9vYmosIG9iaiwgZnJvbnRidWZmZXJfYml0cyk7CisKKwltdXRleF91bmxvY2soJmRldi0+ c3RydWN0X211dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQKIGludGVsX2No ZWNrX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCkBAIC0xMTY1OSw0MiArMTE3MTgsNiBAQCBpbnRlbF9j aGVja19wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCQkgICAgIGZh bHNlLCB0cnVlLCAmc3RhdGUtPnZpc2libGUpOwogfQogCi1zdGF0aWMgaW50Ci1pbnRlbF9wcmVw YXJlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkgICAgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBz dGF0ZS0+YmFzZS5jcnRjOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmJh c2UuZmI7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0JZW51bSBwaXBlIHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSBpbnRlbF9mYl9vYmooZmIpOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGRfb2Jq ID0gaW50ZWxfZmJfb2JqKHBsYW5lLT5mYik7Ci0JaW50IHJldDsKLQotCWludGVsX2NydGNfd2Fp dF9mb3JfcGVuZGluZ19mbGlwcyhjcnRjKTsKLQotCWlmIChpbnRlbF9jcnRjX2hhc19wZW5kaW5n X2ZsaXAoY3J0YykpIHsKLQkJRFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1c3kgd2l0aCBhbiBv bGQgcGFnZWZsaXBcbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCWlmIChvbGRfb2JqICE9 IG9iaikgewotCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCXJldCA9IGludGVs X3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHBsYW5lLCBmYiwgTlVMTCk7Ci0JCWlmIChyZXQgPT0gMCkK LQkJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwKLQkJCQkJICBJTlRFTF9GUk9OVEJV RkZFUl9QUklNQVJZKHBpcGUpKTsKLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 Ci0JCWlmIChyZXQgIT0gMCkgewotCQkJRFJNX0RFQlVHX0tNUygicGluICYgZmVuY2UgZmFpbGVk XG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGlj IHZvaWQKIGludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCQkJICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKQEAgLTExNzk2LDYgKzEx ODE5LDcgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJICAgICB1aW50MzJfdCBzcmNfeCwgdWlu dDMyX3Qgc3JjX3ksCiAJCQkgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKIHsK KwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBwbGFuZS0+ZmI7CiAJc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlIHN0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjKTsKIAlpbnQgcmV0OwpAQCAtMTE4MjcsOSArMTE4NTEsMTggQEAg aW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXQgPSBp bnRlbF9wcmVwYXJlX3ByaW1hcnlfcGxhbmUocGxhbmUsICZzdGF0ZSk7Ci0JaWYgKHJldCkKLQkJ cmV0dXJuIHJldDsKKwlpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7CisK KwlpZiAoaW50ZWxfY3J0Y19oYXNfcGVuZGluZ19mbGlwKGNydGMpKSB7CisJCURSTV9FUlJPUigi cGlwZSBpcyBzdGlsbCBidXN5IHdpdGggYW4gb2xkIHBhZ2VmbGlwXG4iKTsKKwkJcmV0dXJuIC1F QlVTWTsKKwl9CisKKwlpZiAoZmIgIT0gb2xkX2ZiICYmIGZiKSB7CisJCXJldCA9IGludGVsX3By ZXBhcmVfcGxhbmVfZmIocGxhbmUsIGZiKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJ fQogCiAJaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmUocGxhbmUsICZzdGF0ZSk7CiAKQEAgLTEx OTY2LDQyICsxMTk5OSw2IEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50Ci1pbnRlbF9wcmVwYXJl X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCSAgIHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5l LT5kZXY7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoc3RhdGUtPmJhc2Uu Y3J0Yyk7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihm Yik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoo cGxhbmUtPmZiKTsKLQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Ci0JaW50IHJl dCA9IDA7Ci0KLQlpZiAob2xkX29iaiAhPSBvYmopIHsKLQkJLyogd2Ugb25seSBuZWVkIHRvIHBp biBpbnNpZGUgR1RUIGlmIGN1cnNvciBpcyBub24tcGh5ICovCi0JCW11dGV4X2xvY2soJmRldi0+ c3RydWN0X211dGV4KTsKLQkJaWYgKCFJTlRFTF9JTkZPKGRldiktPmN1cnNvcl9uZWVkc19waHlz aWNhbCkgewotCQkJaWYgKG9iaikKLQkJCQlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29i aihwbGFuZSwgZmIsIE5VTEwpOwotCQl9IGVsc2UgewotCQkJaW50IGFsaWduID0gSVNfSTgzMChk ZXYpID8gMTYgKiAxMDI0IDogMjU2OwotCQkJaWYgKG9iaikKLQkJCQlyZXQgPSBpOTE1X2dlbV9v YmplY3RfYXR0YWNoX3BoeXMob2JqLCBhbGlnbik7Ci0JCQlpZiAocmV0KQotCQkJCURSTV9ERUJV R19LTVMoImZhaWxlZCB0byBhdHRhY2ggcGh5cyBvYmplY3RcbiIpOwotCQl9Ci0KLQkJaWYgKHJl dCA9PSAwKQotCQkJaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvLCBvYmos Ci0JCQkJCSAgSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09SKHBpcGUpKTsKLQotCQltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCiBzdGF0aWMg dm9pZAogaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKQEAgLTEyMDExLDYgKzEyMDA4 LDcgQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJ c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHN0YXRlLT5i YXNlLmZiKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkX29iaiA9IGludGVsX2Zi X29iaihwbGFuZS0+ZmIpOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAl1 bnNpZ25lZCBvbGRfd2lkdGg7CiAJdWludDMyX3QgYWRkcjsKQEAgLTEyMDMyLDYgKzEyMDMwLDE3 IEBAIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ aWYgKGludGVsX2NydGMtPmN1cnNvcl9ibyA9PSBvYmopCiAJCWdvdG8gdXBkYXRlOwogCisJLyoK KwkgKiAncHJlcGFyZScgaXMgb25seSBjYWxsZWQgd2hlbiBmYiAhPSBOVUxMOyB3ZSBzdGlsbCBu ZWVkIHRvIHVwZGF0ZQorCSAqIGZyb250YnVmZmVyIHRyYWNraW5nIGZvciB0aGUgJ2Rpc2FibGUn IGNhc2UgaGVyZS4KKwkgKi8KKwlpZiAoIW9iaikgeworCQltdXRleF9sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CisJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIE5VTEwsCisJCQkJICBJTlRF TF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSkpOworCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKKwl9CisKIAlpZiAoIW9iaikKIAkJYWRkciA9IDA7CiAJZWxzZSBpZiAoIUlOVEVM X0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQpAQCAtMTIwNzEsNiArMTIwODAsNyBA QCBpbnRlbF9jdXJzb3JfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwK IAkJCSAgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKQogeworCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKm9sZF9mYiA9IHBsYW5lLT5mYjsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHN0 YXRlOwogCWludCByZXQ7CkBAIC0xMjEwMiw5ICsxMjExMiwxMSBAQCBpbnRlbF9jdXJzb3JfcGxh bmVfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGludGVsX3ByZXBhcmVfY3Vyc29y X3BsYW5lKHBsYW5lLCAmc3RhdGUpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJaWYgKGZi ICE9IG9sZF9mYiAmJiBmYikgeworCQlyZXQgPSBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiKHBsYW5l LCBmYik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KIAogCWludGVsX2NvbW1pdF9j dXJzb3JfcGxhbmUocGxhbmUsICZzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5k ZXggYjRkMTgxZi4uYTM2ZjY5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTkyMiw2 ICs5MjIsOCBAQCB2b2lkIGludGVsX3ByZXBhcmVfcGFnZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGludCBwbGFuZSk7CiB2b2lkIGludGVsX2ZpbmlzaF9wYWdlX2ZsaXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHBpcGUpOwogdm9pZCBpbnRlbF9maW5pc2hfcGFnZV9mbGlwX3Bs YW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwbGFuZSk7CiB2b2lkIGludGVsX2NoZWNr X3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSk7CitpbnQgaW50ZWxf cHJlcGFyZV9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCSAgIHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiKTsKIAogLyogc2hhcmVkIGRwbGwgZnVuY3Rpb25zICovCiBzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2NydGNfdG9fc2hhcmVkX2RwbGwoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCBmYzk2 ZDEzLi41ZDhjMmUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJp dGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtMTI1Nyw0 MSArMTI1Nyw2IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAotaW50ZWxfcHJlcGFyZV9zcHJpdGVf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkgICBzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKnN0YXRlKQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owot CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7Ci0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Ci0JZW51bSBwaXBlIHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3Rh dGUtPmJhc2UuZmI7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2Zi X29iaihmYik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9w bGFuZS0+b2JqOwotCWludCByZXQ7Ci0KLQlpZiAob2xkX29iaiAhPSBvYmopIHsKLQkJbXV0ZXhf bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JCS8qIE5vdGUgdGhhdCB0aGlzIHdpbGwgYXBw bHkgdGhlIFZULWQgd29ya2Fyb3VuZCBmb3Igc2Nhbm91dHMsCi0JCSAqIHdoaWNoIGlzIG1vcmUg cmVzdHJpY3RpdmUgdGhhbiByZXF1aXJlZCBmb3Igc3ByaXRlcy4gKFRoZQotCQkgKiBwcmltYXJ5 IHBsYW5lIHJlcXVpcmVzIDI1NktpQiBhbGlnbm1lbnQgd2l0aCA2NCBQVEUgcGFkZGluZywKLQkJ ICogdGhlIHNwcml0ZSBwbGFuZXMgb25seSByZXF1aXJlIDEyOEtpQiBhbGlnbm1lbnQgYW5kIDMy IFBURQotCQkgKiBwYWRkaW5nLgotCQkgKi8KLQkJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9m Yl9vYmoocGxhbmUsIGZiLCBOVUxMKTsKLQkJaWYgKHJldCA9PSAwKQotCQkJaTkxNV9nZW1fdHJh Y2tfZmIob2xkX29iaiwgb2JqLAotCQkJCQkgIElOVEVMX0ZST05UQlVGRkVSX1NQUklURShwaXBl KSk7Ci0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlpZiAocmV0KQotCQkJ cmV0dXJuIHJldDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQKIGludGVsX2Nv bW1pdF9zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCkBAIC0xMzg3LDYgKzEzNTIsNyBAQCBpbnRlbF91cGRh dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAkJICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAogCQkgICB1aW50MzJfdCBzcmNf dywgdWludDMyX3Qgc3JjX2gpCiB7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiID0g cGxhbmUtPmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSBzdGF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJaW50IHJldDsKQEAg LTE0MTcsOSArMTM4MywxMSBAQCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog Ci0JcmV0ID0gaW50ZWxfcHJlcGFyZV9zcHJpdGVfcGxhbmUocGxhbmUsICZzdGF0ZSk7Ci0JaWYg KHJldCkKLQkJcmV0dXJuIHJldDsKKwlpZiAoZmIgIT0gb2xkX2ZiICYmIGZiKSB7CisJCXJldCA9 IGludGVsX3ByZXBhcmVfcGxhbmVfZmIocGxhbmUsIGZiKTsKKwkJaWYgKHJldCkKKwkJCXJldHVy biByZXQ7CisJfQogCiAJaW50ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZShwbGFuZSwgJnN0YXRlKTsK IAlyZXR1cm4gMDsKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==