From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 5/8] drm/i915: Prepare for atomic plane helpers (v2) Date: Thu, 13 Nov 2014 14:51:32 -0800 Message-ID: <1415919092-10553-1-git-send-email-matthew.d.roper@intel.com> References: <1415904206-22548-6-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: In-Reply-To: <1415904206-22548-6-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 Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWRkIHRoZSBuZXcgZHJpdmVyIGVudHJ5cG9pbnRzIHRoYXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhl IGF0b21pYyBwbGFuZQpoZWxwZXJzLgoKVGhpcyBwYXRjaCBkb2VzIG5vdCBhY3R1YWxseSBzd2l0 Y2ggb3ZlciB0byB0aGUgbmV3IHBsYW5lIGhlbHBlcnMgeWV0LApzbyB0aGVyZSBzaG91bGQgYmUg bm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gIEFsc28gbm90ZSB0aGF0IGFsdGhvdWdoCnBsYW5l IHByb2dyYW1taW5nIHdhcyBhbHJlYWR5IHNwbGl0IGludG8gY2hlY2svcHJlcGFyZS9jb21taXQg c3RlcHMsCnNvbWUgb2YgdGhlIHNlbWFudGljcyBvZiB0aG9zZSBpbmRpdmlkdWFsIGZ1bmN0aW9u cyB3aWxsIG5lZWQgdG8gY2hhbmdlCnNsaWdodGx5IHdoZW4gd2UgZG8gbWFrZSB0aGUganVtcCBz byB0aGF0IHRoZXkgbWF0Y2ggdGhlIGJlaGF2aW9yIHRoZQpwbGFuZSBoZWxwZXJzIGV4cGVjdC4K CnYyOgogLSBSZW5hbWVkIGZpbGUgZnJvbSBpbnRlbF9hdG9taWMuYyB0byBpbnRlbF9hdG9taWNf cGxhbmUuYyAoRGFuaWVsKQogLSBGaXggYSBjb3B5L3Bhc3RlIGNvbW1lbnQgbWlzdGFrZSAoQm9i KQoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8IDIyMCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyAgICAgIHwgIDIwICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAg ICAgfCAgMTUgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgIHwg IDEwICsrCiA1IGZpbGVzIGNoYW5nZWQsIDI2NSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3Bs YW5lLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IDg5MWU1ODQuLjlmNWM1N2QgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L01ha2VmaWxlCkBAIC02Myw2ICs2Myw3IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8gXAog CSAgZHZvX25zMjUwMS5vIFwKIAkgIGR2b19zaWwxNjQubyBcCiAJICBkdm9fdGZwNDEwLm8gXAor CSAgaW50ZWxfYXRvbWljX3BsYW5lLm8gXAogCSAgaW50ZWxfY3J0Lm8gXAogCSAgaW50ZWxfZGRp Lm8gXAogCSAgaW50ZWxfZHAubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19w bGFuZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMDM5YmYKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwpA QCAtMCwwICsxLDIyMCBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0 aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBv ZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt aXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisg KiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVE SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks CisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U LiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisK KyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5o PgorI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CisjaW5jbHVkZSAiaW50ZWxfZHJ2 LmgiCisKKy8qKgorICogaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlIC0gZHVwbGljYXRlIHBs YW5lIHN0YXRlCisgKiBAcGxhbmU6IGRybSBwbGFuZQorICoKKyAqIEFsbG9jYXRlcyBhbmQgcmV0 dXJucyBhIGNvcHkgb2YgdGhlIHBsYW5lIHN0YXRlIChib3RoIGNvbW1vbiBhbmQKKyAqIEludGVs LXNwZWNpZmljKSBmb3IgdGhlIHNwZWNpZmllZCBwbGFuZS4KKyAqLworc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqCitpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUpCit7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZTsKKworCWlmIChwbGFu ZS0+c3RhdGUpCisJCXN0YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqc3RhdGUp LCBHRlBfS0VSTkVMKTsKKwllbHNlCisJCXN0YXRlID0ga3phbGxvYyhzaXplb2YoKnN0YXRlKSwg R0ZQX0tFUk5FTCk7CisKKwlpZiAoc3RhdGUgJiYgc3RhdGUtPmJhc2UuZmIpCisJCWRybV9mcmFt ZWJ1ZmZlcl9yZWZlcmVuY2Uoc3RhdGUtPmJhc2UuZmIpOworCisJcmV0dXJuICZzdGF0ZS0+YmFz ZTsKK30KKworLyoqCisgKiBpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRlIC0gZGVzdHJveSBwbGFu ZSBzdGF0ZQorICogQHBsYW5lOiBkcm0gcGxhbmUKKyAqCisgKiBEZXN0cm95cyB0aGUgcGxhbmUg c3RhdGUgKGJvdGggY29tbW9uIGFuZCBJbnRlbC1zcGVjaWZpYykgZm9yIHRoZQorICogc3BlY2lm aWVkIHBsYW5lLgorICovCit2b2lkCitpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAorCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sK Kwlkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBzdGF0ZSk7Cit9 CisKKworLyoqCisgKiBpbnRlbF9jcnRjX2F0b21pY19iZWdpbiAtIEJlZ2lucyBhbiBhdG9taWMg Y29tbWl0IG9uIGEgQ1JUQworICogQGNydGM6IGRybSBjcnRjCisgKgorICogUHJlcGFyZXMgdG8g d3JpdGUgcmVnaXN0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXRvbWljIGNvbW1pdCBvZiBhIENS VEMKKyAqIGJ5IHVzaW5nIHZibGFuayBldmFzaW9uIHRvIGVuc3VyZSB0aGF0IGFsbCByZWdpc3Rl ciB3cml0ZXMgaGFwcGVuIHdpdGhpbgorICogdGhlIHNhbWUgdmJsYW5rIHBlcmlvZC4KKyAqLwor dm9pZCBpbnRlbF9jcnRjX2F0b21pY19iZWdpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCisJ aW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0YywgJmludGVsX2NydGMtPmF0b21pY192 YmxfY291bnQpOworfQorCisvKioKKyAqIGludGVsX2NydGNfYXRvbWljX2ZsdXNoIC0gRmluaXNo ZXMgYW4gYXRvbWljIGNvbW1pdCBvbiBhIENSVEMKKyAqIEBjcnRjOiBkcm0gY3J0YworICoKKyAq IENvbmNsdWRlcyB0aGUgd3JpdGluZyBvZiByZWdpc3RlcnMgZm9yIGFuIGF0b21pYyBjb21taXQg b2YgYSBDUlRDLgorICovCit2b2lkIGludGVsX2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7CisKKwlpbnRlbF9waXBlX3VwZGF0ZV9lbmQoaW50ZWxfY3J0YywgaW50ZWxf Y3J0Yy0+YXRvbWljX3ZibF9jb3VudCk7Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfcHJlcGFyZV9m YihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCSAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOworCXN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvbGRfb2JqID0gaW50ZWxfcGxhbmUtPm9iajsKKwllbnVtIHBp cGUgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOworCXVuc2lnbmVkIGZyb250X2JpdHMgPSAwOwor CWludCByZXQgPSAwOworCisJc3dpdGNoIChwbGFuZS0+dHlwZSkgeworCWNhc2UgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWToKKwkJZnJvbnRfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlko cGlwZSk7CisKKwkJaWYgKHBsYW5lLT5jcnRjKSB7CisJCQlpbnRlbF9jcnRjX3dhaXRfZm9yX3Bl bmRpbmdfZmxpcHMocGxhbmUtPmNydGMpOworCQkJaWYgKGludGVsX2NydGNfaGFzX3BlbmRpbmdf ZmxpcChwbGFuZS0+Y3J0YykpIHsKKwkJCQlEUk1fRVJST1IoInBpcGUgaXMgc3RpbGwgYnVzeSB3 aXRoIGFuIG9sZCBwYWdlZmxpcFxuIik7CisJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCX0KKwkJfQor CisJCWJyZWFrOworCWNhc2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKKwkJZnJvbnRfYml0cyA9 IElOVEVMX0ZST05UQlVGRkVSX1NQUklURShwaXBlKTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fUExB TkVfVFlQRV9DVVJTT1I6CisJCWZyb250X2JpdHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1Io cGlwZSk7CisJCWJyZWFrOworCX0KKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsK KworCS8qIE5vdGUgdGhhdCB0aGlzIHdpbGwgYXBwbHkgdGhlIFZULWQgd29ya2Fyb3VuZCBmb3Ig c2Nhbm91dHMsCisJICogd2hpY2ggaXMgbW9yZSByZXN0cmljdGl2ZSB0aGFuIHJlcXVpcmVkIGZv ciBzcHJpdGVzLiAoVGhlCisJICogcHJpbWFyeSBwbGFuZSByZXF1aXJlcyAyNTZLaUIgYWxpZ25t ZW50IHdpdGggNjQgUFRFIHBhZGRpbmcsCisJICogdGhlIHNwcml0ZSBwbGFuZXMgb25seSByZXF1 aXJlIDEyOEtpQiBhbGlnbm1lbnQgYW5kIDMyIFBURQorCSAqIHBhZGRpbmcuCisJICovCisJcmV0 ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoocGxhbmUsIGZiLCBOVUxMKTsKKwlpZiAocmV0 ID09IDApCisJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwgZnJvbnRfYml0cyk7CisK KwlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SICYmCisJICAgIElOVEVM X0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7CisJCWludCBhbGlnbiA9IElTX0k4 MzAoZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsKKworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0 YWNoX3BoeXMob2JqLCBhbGlnbik7CisJCWlmIChyZXQpCisJCQlEUk1fREVCVUdfS01TKCJmYWls ZWQgdG8gYXR0YWNoIHBoeXMgb2JqZWN0XG4iKTsKKwl9CisKKwltdXRleF91bmxvY2soJmRldi0+ c3RydWN0X211dGV4KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2Ns ZWFudXBfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICAgIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owor CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCisJ bXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWludGVsX3VucGluX2ZiX29iaihvYmop OworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworfQorCitzdGF0aWMgaW50IGlu dGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoc3RhdGUtPmNydGMpOworCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZSk7CisK KwkvKiBEaXNhYmxpbmcgYSBwbGFuZSBpcyBhbHdheXMgb2theSAqLworCWlmIChzdGF0ZS0+ZmIg PT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwkvKgorCSAqIFRoZSBvcmlnaW5hbCBzcmMvZGVzdCBj b29yZGluYXRlcyBhcmUgc3RvcmVkIGluIHN0YXRlLT5iYXNlLCBidXQKKwkgKiB3ZSB3YW50IHRv IGtlZXAgYW5vdGhlciBjb3B5IGludGVybmFsIHRvIG91ciBkcml2ZXIgdGhhdCB3ZSBjYW4KKwkg KiBjbGlwL21vZGlmeSBvdXJzZWx2ZXMuCisJICovCisJaW50ZWxfc3RhdGUtPnNyYy54MSA9IHN0 YXRlLT5zcmNfeDsKKwlpbnRlbF9zdGF0ZS0+c3JjLnkxID0gc3RhdGUtPnNyY195OworCWludGVs X3N0YXRlLT5zcmMueDIgPSBzdGF0ZS0+c3JjX3ggKyBzdGF0ZS0+c3JjX3c7CisJaW50ZWxfc3Rh dGUtPnNyYy55MiA9IHN0YXRlLT5zcmNfeSArIHN0YXRlLT5zcmNfaDsKKwlpbnRlbF9zdGF0ZS0+ ZHN0LngxID0gc3RhdGUtPmNydGNfeDsKKwlpbnRlbF9zdGF0ZS0+ZHN0LnkxID0gc3RhdGUtPmNy dGNfeTsKKwlpbnRlbF9zdGF0ZS0+ZHN0LngyID0gc3RhdGUtPmNydGNfeCArIHN0YXRlLT5jcnRj X3c7CisJaW50ZWxfc3RhdGUtPmRzdC55MiA9IHN0YXRlLT5jcnRjX3kgKyBzdGF0ZS0+Y3J0Y19o OworCisJLyogQ2xpcCBhbGwgcGxhbmVzIHRvIENSVEMgc2l6ZSwgb3IgMHgwIGlmIENSVEMgaXMg ZGlzYWJsZWQgKi8KKwlpZiAoaW50ZWxfY3J0YykgeworCQlpbnRlbF9zdGF0ZS0+Y2xpcC54MSA9 IDA7CisJCWludGVsX3N0YXRlLT5jbGlwLnkxID0gMDsKKwkJaW50ZWxfc3RhdGUtPmNsaXAueDIg PQorCQkJaW50ZWxfY3J0Yy0+YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX3cg OiAwOworCQlpbnRlbF9zdGF0ZS0+Y2xpcC55MiA9CisJCQlpbnRlbF9jcnRjLT5hY3RpdmUgPyBp bnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfaCA6IDA7CisJfQorCisJcmV0dXJuIGludGVsX3Bs YW5lLT5jaGVja19wbGFuZShwbGFuZSwgaW50ZWxfc3RhdGUpOworfQorCitzdGF0aWMgdm9pZCBp bnRlbF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQoreworCXN0 cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJ c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9zdGF0ZSA9CisJCXRvX2ludGVsX3BsYW5l X3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisKKwlpZiAoIXBsYW5lLT5zdGF0ZS0+ZmIpCisJCWludGVs X3BsYW5lX2Rpc2FibGUocGxhbmUpOworCWVsc2UKKwkJaW50ZWxfcGxhbmUtPmNvbW1pdF9wbGFu ZShwbGFuZSwgaW50ZWxfc3RhdGUpOworfQorCitjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBl cl9mdW5jcyBpbnRlbF9wbGFuZV9oZWxwZXJfZnVuY3MgPSB7CisJLnByZXBhcmVfZmIgPSBpbnRl bF9wcmVwYXJlX2ZiLAorCS5jbGVhbnVwX2ZiID0gaW50ZWxfY2xlYW51cF9mYiwKKwkuYXRvbWlj X2NoZWNrID0gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrLAorCS5hdG9taWNfdXBkYXRlID0gaW50 ZWxfcGxhbmVfYXRvbWljX3VwZGF0ZSwKK307CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCAyZDRlZjA0Li4zMmEyYjEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC05NzA1LDYgKzk3MDUsOCBAQCBvdXRfaGFuZzoKIHN0YXRpYyBzdHJ1Y3QgZHJt X2NydGNfaGVscGVyX2Z1bmNzIGludGVsX2hlbHBlcl9mdW5jcyA9IHsKIAkubW9kZV9zZXRfYmFz ZV9hdG9taWMgPSBpbnRlbF9waXBlX3NldF9iYXNlX2F0b21pYywKIAkubG9hZF9sdXQgPSBpbnRl bF9jcnRjX2xvYWRfbHV0LAorCS5hdG9taWNfYmVnaW4gPSBpbnRlbF9jcnRjX2F0b21pY19iZWdp biwKKwkuYXRvbWljX2ZsdXNoID0gaW50ZWxfY3J0Y19hdG9taWNfZmx1c2gsCiB9OwogCiAvKioK QEAgLTExNzQ3LDYgKzExNzQ5LDcgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogdm9pZCBpbnRlbF9w bGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogewogCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50ZWxfcGxhbmVf ZGVzdHJveV9zdGF0ZShwbGFuZSwgcGxhbmUtPnN0YXRlKTsKIAlkcm1fcGxhbmVfY2xlYW51cChw bGFuZSk7CiAJa2ZyZWUoaW50ZWxfcGxhbmUpOwogfQpAQCAtMTE3NTUsNyArMTE3NTgsMTAgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcHJpbWFyeV9wbGFuZV9m dW5jcyA9IHsKIAkudXBkYXRlX3BsYW5lID0gaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZSwK IAkuZGlzYWJsZV9wbGFuZSA9IGludGVsX3ByaW1hcnlfcGxhbmVfZGlzYWJsZSwKIAkuZGVzdHJv eSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCi0JLnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX3Nl dF9wcm9wZXJ0eQorCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9zZXRfcHJvcGVydHksCisJ LmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUsCisJ LmF0b21pY19kZXN0cm95X3N0YXRlID0gaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSwKKwogfTsK IAogc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCkBAIC0xMTc2OSwxMSArMTE3NzUsMTQgQEAgc3RhdGljIHN0 cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJaWYgKHByaW1hcnkgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKKwlwcmlt YXJ5LT5iYXNlLnN0YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlKCZwcmltYXJ5LT5i YXNlKTsKIAlwcmltYXJ5LT5jYW5fc2NhbGUgPSBmYWxzZTsKIAlwcmltYXJ5LT5tYXhfZG93bnNj YWxlID0gMTsKIAlwcmltYXJ5LT5waXBlID0gcGlwZTsKIAlwcmltYXJ5LT5wbGFuZSA9IHBpcGU7 CiAJcHJpbWFyeS0+cm90YXRpb24gPSBCSVQoRFJNX1JPVEFURV8wKTsKKwlwcmltYXJ5LT5jaGVj a19wbGFuZSA9IGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmU7CisJcHJpbWFyeS0+Y29tbWl0X3Bs YW5lID0gaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmU7CiAJaWYgKEhBU19GQkMoZGV2KSAmJiBJ TlRFTF9JTkZPKGRldiktPmdlbiA8IDQpCiAJCXByaW1hcnktPnBsYW5lID0gIXBpcGU7CiAKQEAg LTExODAyLDYgKzExODExLDggQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1h cnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJcHJpbWFyeS0+cm90 YXRpb24pOwogCX0KIAorCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZwcmltYXJ5LT5iYXNlLCAmaW50 ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsKKwogCXJldHVybiAmcHJpbWFyeS0+YmFzZTsKIH0KIApA QCAtMTE5NTcsNiArMTE5NjgsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5j cyBpbnRlbF9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7CiAJLmRpc2FibGVfcGxhbmUgPSBpbnRlbF9j dXJzb3JfcGxhbmVfZGlzYWJsZSwKIAkuZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCiAJ LnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eSwKKwkuYXRvbWljX2R1cGxp Y2F0ZV9zdGF0ZSA9IGludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ry b3lfc3RhdGUgPSBpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRlLAogfTsKIAogc3RhdGljIHN0cnVj dCBkcm1fcGxhbmUgKmludGVsX2N1cnNvcl9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKQEAgLTExOTY4LDExICsxMTk4MSwxNCBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAq aW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChj dXJzb3IgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKKwljdXJzb3ItPmJhc2Uuc3RhdGUgPSBp bnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoJmN1cnNvci0+YmFzZSk7CiAJY3Vyc29yLT5jYW5f c2NhbGUgPSBmYWxzZTsKIAljdXJzb3ItPm1heF9kb3duc2NhbGUgPSAxOwogCWN1cnNvci0+cGlw ZSA9IHBpcGU7CiAJY3Vyc29yLT5wbGFuZSA9IHBpcGU7CiAJY3Vyc29yLT5yb3RhdGlvbiA9IEJJ VChEUk1fUk9UQVRFXzApOworCWN1cnNvci0+Y2hlY2tfcGxhbmUgPSBpbnRlbF9jaGVja19jdXJz b3JfcGxhbmU7CisJY3Vyc29yLT5jb21taXRfcGxhbmUgPSBpbnRlbF9jb21taXRfY3Vyc29yX3Bs YW5lOwogCiAJZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgJmN1cnNvci0+YmFzZSwgMCwK IAkJCQkgJmludGVsX2N1cnNvcl9wbGFuZV9mdW5jcywKQEAgLTExOTkyLDYgKzEyMDA4LDggQEAg c3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX2N1cnNvcl9wbGFuZV9jcmVhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCQljdXJzb3ItPnJvdGF0aW9uKTsKIAl9CiAKKwlkcm1fcGxh bmVfaGVscGVyX2FkZCgmY3Vyc29yLT5iYXNlLCAmaW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsK KwogCXJldHVybiAmY3Vyc29yLT5iYXNlOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmlu ZGV4IDQ5MzU4YzguLjE4ODJkZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC00NjYs NiArNDY2LDggQEAgc3RydWN0IGludGVsX2NydGMgewogCiAJaW50IHNjYW5saW5lX29mZnNldDsK IAlzdHJ1Y3QgaW50ZWxfbW1pb19mbGlwIG1taW9fZmxpcDsKKworCXVpbnQzMl90IGF0b21pY192 YmxfY291bnQ7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyB7CkBAIC01 MDYsNiArNTA4LDEwIEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7CiAJCQkgICAgIHVpbnQzMl90IHNy Y193LCB1aW50MzJfdCBzcmNfaCk7CiAJdm9pZCAoKmRpc2FibGVfcGxhbmUpKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCQkJICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKKwlpbnQgKCpj aGVja19wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnN0YXRlKTsKKwl2b2lkICgqY29tbWl0X3BsYW5lKShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKKwkJCSAgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSk7CiAJ aW50ICgqdXBkYXRlX2NvbG9ya2V5KShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgICAg ICBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5KTsKIAl2b2lkICgqZ2V0X2Nv bG9ya2V5KShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKQEAgLTUzNiw2ICs1NDIsNyBAQCBzdHJ1 Y3QgY3hzcl9sYXRlbmN5IHsKICNkZWZpbmUgdG9faW50ZWxfZW5jb2Rlcih4KSBjb250YWluZXJf b2YoeCwgc3RydWN0IGludGVsX2VuY29kZXIsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2ZyYW1l YnVmZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2Up CiAjZGVmaW5lIHRvX2ludGVsX3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxf cGxhbmUsIGJhc2UpCisjZGVmaW5lIHRvX2ludGVsX3BsYW5lX3N0YXRlKHgpIGNvbnRhaW5lcl9v Zih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUsIGJhc2UpCiAjZGVmaW5lIGludGVsX2ZiX29i aih4KSAoeCA/IHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpLT5vYmogOiBOVUxMKQogCiBzdHJ1Y3Qg aW50ZWxfaGRtaSB7CkBAIC0xMTk1LDQgKzEyMDIsMTIgQEAgaW50IGludGVsX3Nwcml0ZV9wbGFu ZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKIC8qIGludGVsX3R2LmMgKi8KIHZv aWQgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAorLyogaW50ZWxfYXRv bWljLmMgKi8KK3N0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmludGVsX3BsYW5lX2R1cGxpY2F0ZV9z dGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cit2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3lf c3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICAgICAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqc3RhdGUpOwordm9pZCBpbnRlbF9jcnRjX2F0b21pY19iZWdpbihzdHJ1Y3QgZHJt X2NydGMgKmNydGMpOwordm9pZCBpbnRlbF9jcnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIGlu dGVsX3BsYW5lX2hlbHBlcl9mdW5jczsKKwogI2VuZGlmIC8qIF9fSU5URUxfRFJWX0hfXyAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwppbmRleCA5ZTZhNzJhLi5kMzY3N2MzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg PGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8 ZHJtL2RybV9yZWN0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNs dWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KICNpbmNsdWRlICJp OTE1X2Rydi5oIgpAQCAtMTU3Myw2ICsxNTc0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f cGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3MgPSB7CiAJLmRpc2FibGVfcGxhbmUgPSBpbnRl bF9zcHJpdGVfcGxhbmVfZGlzYWJsZSwKIAkuZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ks CiAJLnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eSwKKwkuYXRvbWljX2R1 cGxpY2F0ZV9zdGF0ZSA9IGludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rl c3Ryb3lfc3RhdGUgPSBpbnRlbF9wbGFuZV9kZXN0cm95X3N0YXRlLAogfTsKIAogc3RhdGljIHVp bnQzMl90IGlsa19wbGFuZV9mb3JtYXRzW10gPSB7CkBAIC0xNjM0LDYgKzE2MzcsOSBAQCBpbnRl bF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQg cGxhbmUpCiAJaWYgKCFpbnRlbF9wbGFuZSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlpbnRlbF9w bGFuZS0+YmFzZS5zdGF0ZSA9CisJCWludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSgmaW50ZWxf cGxhbmUtPmJhc2UpOworCiAJc3dpdGNoIChJTlRFTF9JTkZPKGRldiktPmdlbikgewogCWNhc2Ug NToKIAljYXNlIDY6CkBAIC0xNzA0LDYgKzE3MTAsOCBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCiAJaW50ZWxfcGxh bmUtPnBpcGUgPSBwaXBlOwogCWludGVsX3BsYW5lLT5wbGFuZSA9IHBsYW5lOwogCWludGVsX3Bs YW5lLT5yb3RhdGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOworCWludGVsX3BsYW5lLT5jaGVja19w bGFuZSA9IGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZTsKKwlpbnRlbF9wbGFuZS0+Y29tbWl0X3Bs YW5lID0gaW50ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZTsKIAlwb3NzaWJsZV9jcnRjcyA9ICgxIDw8 IHBpcGUpOwogCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsICZpbnRlbF9wbGFu ZS0+YmFzZSwgcG9zc2libGVfY3J0Y3MsCiAJCQkJICAgICAgICZpbnRlbF9wbGFuZV9mdW5jcywK QEAgLTE3MjUsNiArMTczMyw4IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIAkJCQkJICAgZGV2LT5tb2RlX2NvbmZp Zy5yb3RhdGlvbl9wcm9wZXJ0eSwKIAkJCQkJICAgaW50ZWxfcGxhbmUtPnJvdGF0aW9uKTsKIAor CWRybV9wbGFuZV9oZWxwZXJfYWRkKCZpbnRlbF9wbGFuZS0+YmFzZSwgJmludGVsX3BsYW5lX2hl bHBlcl9mdW5jcyk7CisKICBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KLS0gCjEuOC41LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==