From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH] Revert "drm/i915: Add two-stage ILK-style watermark programming (v10)" Date: Tue, 19 Jan 2016 11:43:04 -0800 Message-ID: <1453232584-8543-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D2866E0DA for ; Tue, 19 Jan 2016 11:43:38 -0800 (PST) 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 VGhpcyByZXZlcnRzIGNvbW1pdCAzOTZlMzNhZTIwNGY1MmFiZWJlYzllNTc4ZjQ0Yzc0OTMwNTUw MGY0LgoKVGhpcyBjb21taXQgd2FzIHRyaWdnZXJpbmcgc29tZSBGSUZPIHVuZGVycnVuIHdhcm5p bmdzIG9uIElMSy1JVkIKcGxhdGZvcm1zIChidXQgc3VycHJpc2luZ2x5IG5vdCBvbiBIU1cvQkRX IHRoYXQgc2hhcmUgbW9yZSBvciBsZXNzIHRoZQpzYW1lIGNvZGVwYXRocykuICBUaGVzZSB1bmRl cnJ1bnMgd2VyZSBjYXVnaHQgYnkgdGhlIGNvbnRpbnVvdXMKaW50ZWdyYXRpb24gKENJKSBzeXN0 ZW0gYW5kIGNvdWxkIGJlIHJlcHJvZHVjZWQgY29uc2lzdGVudGx5IHdoZW4KcnVubmluZyB0aGUg YmFzaWMgYWNjZXB0YW5jZSB0ZXN0cyAoQkFUKSBvbiB0aGUgYWZmZWN0ZWQgcGxhdGZvcm1zLgoK Tm90ZSB0aGF0IHRoaXMgcmV2ZXJ0IHdpbGwgY2F1c2UgYSB2aXNpYmxlIHJlZ3Jlc3Npb24gZm9y IHNvbWUKZW5kLXVzZXJzOyB0aGUgImZsaWNrZXIgd2hlbiBtb3VzZSBtb3ZlcyBiZXR3ZWVuIG1v bml0b3JzIGluIFgiIGlzc3VlCnRoYXQgd2FzIHJlcG9ydGVkIGJlZm9yZSB0aGlzIHBhdGNoIHdh cyBtZXJnZWQgd2lsbCBub3cgcmV0dXJuLiAgSG93ZXZlcgpyZWdyZXNzaW9ucyB0aGF0IGFyZSB2 aXNpYmxlIHRvIENJIGhhdmUgaGlnaGVyIHByaW9yaXR5IHNpbmNlIHRoZXkKcHJldmVudCBwcm9w ZXIgdGVzdGluZyBvZiBmdXR1cmUgcGF0Y2hlcyBvbiB0aG9zZSBwbGF0Zm9ybXMuICBIb3BlZnVs bHkKd2UnbGwgYmUgYWJsZSB0byBmaWd1cmUgb3V0IHRoZSBjYXVzZSBvZiB0aGUgdW5kZXJydW5z IHF1aWNrbHkgYW5kCnJlbWVyZ2UgYW4gaW1wcm92ZWQgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIHRv IGZpeCB0aGUgcmVncmVzc2lvbi4KCkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+ CkJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05 MzY0MApTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29t PgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMTMgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdG9taWMuYyAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgIDkyICstLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAgMjggKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAg ICAgfCAxNjIgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDYgZmlsZXMgY2hh bmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgMjQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RtYS5jCmluZGV4IGEwZjU2NTkuLmQ3MGQ5NmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwpA QCAtODk2LDcgKzg5Niw2IEBAIGludCBpOTE1X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnNiX2xv Y2spOwogCW11dGV4X2luaXQoJmRldl9wcml2LT5tb2Rlc2V0X3Jlc3RvcmVfbG9jayk7CiAJbXV0 ZXhfaW5pdCgmZGV2X3ByaXYtPmF2X211dGV4KTsKLQltdXRleF9pbml0KCZkZXZfcHJpdi0+d20u d21fbXV0ZXgpOwogCiAJaW50ZWxfcG1fc2V0dXAoZGV2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKaW5kZXggYWYzMDE0OC4uZDNiOThjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC02 MjgsMTEgKzYyOCw3IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKIAkJCSAgc3Ry dWN0IGRwbGwgKmJlc3RfY2xvY2spOwogCWludCAoKmNvbXB1dGVfcGlwZV93bSkoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiAJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KTsKLQlpbnQgKCpjb21wdXRlX2ludGVybWVkaWF0ZV93bSkoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKLQkJCQkgICAgICAgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCi0JCQkJICAgICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0ZSk7Ci0Jdm9pZCAoKmluaXRpYWxfd2F0 ZXJtYXJrcykoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7Ci0Jdm9pZCAoKm9wdGlt aXplX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOworCXZvaWQg KCpwcm9ncmFtX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwog CXZvaWQgKCp1cGRhdGVfd20pKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAJaW50ICgqbW9kZXNl dF9jYWxjX2NkY2xrKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogCXZvaWQgKCpt b2Rlc2V0X2NvbW1pdF9jZGNsaykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKQEAg LTE5MzgsMTMgKzE5MzQsNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJCX07CiAKIAkJ dWludDhfdCBtYXhfbGV2ZWw7Ci0KLQkJLyoKLQkJICogU2hvdWxkIGJlIGhlbGQgYXJvdW5kIGF0 b21pYyBXTSByZWdpc3RlciB3cml0aW5nOyBhbHNvCi0JCSAqIHByb3RlY3RzICogaW50ZWxfY3J0 Yy0+d20uYWN0aXZlIGFuZAotCQkgKiBjc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUuCi0J CSAqLwotCQlzdHJ1Y3QgbXV0ZXggd21fbXV0ZXg7CiAJfSB3bTsKIAogCXN0cnVjdCBpOTE1X3J1 bnRpbWVfcG0gcG07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCmluZGV4IDk2ODJkOTQu LjQ2MjVmOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCkBAIC05Nyw3ICs5Nyw2 IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlj cnRjX3N0YXRlLT5kaXNhYmxlX2xwX3dtID0gZmFsc2U7CiAJY3J0Y19zdGF0ZS0+ZGlzYWJsZV9j eHNyID0gZmFsc2U7CiAJY3J0Y19zdGF0ZS0+d21fY2hhbmdlZCA9IGZhbHNlOwotCWNydGNfc3Rh dGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUgPSBmYWxzZTsKIAogCXJldHVybiAmY3J0Y19zdGF0 ZS0+YmFzZTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhODUxY2I3 Li4zMjYwZmM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC00ODMzLDQy ICs0ODMzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKIAkJaW50ZWxfc2V0X21lbW9yeV9jeHNyKGRldl9wcml2LCBmYWxzZSk7 CiAJfQogCi0JLyoKLQkgKiBJVkIgd29ya2Fyb3VuZDogbXVzdCBkaXNhYmxlIGxvdyBwb3dlciB3 YXRlcm1hcmtzIGZvciBhdCBsZWFzdAotCSAqIG9uZSBmcmFtZSBiZWZvcmUgZW5hYmxpbmcgc2Nh bGluZy4gIExQIHdhdGVybWFya3MgY2FuIGJlIHJlLWVuYWJsZWQKLQkgKiB3aGVuIHNjYWxpbmcg aXMgZGlzYWJsZWQuCi0JICoKLQkgKiBXYUN4U1JEaXNhYmxlZEZvclNwcml0ZVNjYWxpbmc6aXZi Ci0JICovCi0JaWYgKHBpcGVfY29uZmlnLT5kaXNhYmxlX2xwX3dtKSB7Ci0JCWlsa19kaXNhYmxl X2xwX3dtKGRldik7Ci0JCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGNydGMtPnBpcGUpOwot CX0KLQotCS8qCi0JICogSWYgd2UncmUgZG9pbmcgYSBtb2Rlc2V0LCB3ZSdyZSBkb25lLiAgTm8g bmVlZCB0byBkbyBhbnkgcHJlLXZibGFuawotCSAqIHdhdGVybWFyayBwcm9ncmFtbWluZyBoZXJl LgotCSAqLwotCWlmIChuZWVkc19tb2Rlc2V0KCZwaXBlX2NvbmZpZy0+YmFzZSkpCi0JCXJldHVy bjsKLQotCS8qCi0JICogRm9yIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgYXRvbWljIHdhdGVybWFy a3MsIHByb2dyYW0gdGhlCi0JICogJ2ludGVybWVkaWF0ZScgd2F0ZXJtYXJrcyBpbW1lZGlhdGVs eS4gIE9uIHByZS1nZW45IHBsYXRmb3JtcywgdGhlc2UKLQkgKiB3aWxsIGJlIHRoZSBpbnRlcm1l ZGlhdGUgdmFsdWVzIHRoYXQgYXJlIHNhZmUgZm9yIGJvdGggcHJlLSBhbmQKLQkgKiBwb3N0LSB2 Ymxhbms7IHdoZW4gdmJsYW5rIGhhcHBlbnMsIHRoZSAnYWN0aXZlJyB2YWx1ZXMgd2lsbCBiZSBz ZXQKLQkgKiB0byB0aGUgZmluYWwgJ3RhcmdldCcgdmFsdWVzIGFuZCB3ZSdsbCBkbyB0aGlzIGFn YWluIHRvIGdldCB0aGUKLQkgKiBvcHRpbWFsIHdhdGVybWFya3MuICBGb3IgZ2VuOSsgcGxhdGZv cm1zLCB0aGUgdmFsdWVzIHdlIHByb2dyYW0gaGVyZQotCSAqIHdpbGwgYmUgdGhlIGZpbmFsIHRh cmdldCB2YWx1ZXMgd2hpY2ggd2lsbCBnZXQgYXV0b21hdGljYWxseSBsYXRjaGVkCi0JICogYXQg dmJsYW5rIHRpbWU7IG5vIGZ1cnRoZXIgcHJvZ3JhbW1pbmcgd2lsbCBiZSBuZWNlc3NhcnkuCi0J ICoKLQkgKiBJZiBhIHBsYXRmb3JtIGhhc24ndCBiZWVuIHRyYW5zaXRpb25lZCB0byBhdG9taWMg d2F0ZXJtYXJrcyB5ZXQsCi0JICogd2UnbGwgY29udGludWUgdG8gdXBkYXRlIHdhdGVybWFya3Mg dGhlIG9sZCB3YXksIGlmIGZsYWdzIHRlbGwKLQkgKiB1cyB0by4KLQkgKi8KLQlpZiAoZGV2X3By aXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzICE9IE5VTEwpCi0JCWRldl9wcml2LT5kaXNw bGF5LmluaXRpYWxfd2F0ZXJtYXJrcyhwaXBlX2NvbmZpZyk7Ci0JZWxzZSBpZiAocGlwZV9jb25m aWctPndtX2NoYW5nZWQpCisJaWYgKCFuZWVkc19tb2Rlc2V0KCZwaXBlX2NvbmZpZy0+YmFzZSkg JiYgcGlwZV9jb25maWctPndtX2NoYW5nZWQpCiAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKCZj cnRjLT5iYXNlKTsKIH0KIApAQCAtMTE5MTQsMTEgKzExODc5LDYgQEAgaW50IGludGVsX3BsYW5l X2F0b21pY19jYWxjX2NoYW5nZXMoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQlwaXBlX2NvbmZpZy0+d21fY2hhbmdlZCA9IHRydWU7CiAJfQogCi0JLyogUHJlLWdlbjkgcGxh dGZvcm1zIG5lZWQgdHdvLXN0ZXAgd2F0ZXJtYXJrIHVwZGF0ZXMgKi8KLQlpZiAocGlwZV9jb25m aWctPndtX2NoYW5nZWQgJiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5ICYmCi0JICAgIGRldl9w cml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MpCi0JCXRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Y19zdGF0ZSktPndtLm5lZWRfcG9zdHZibF91cGRhdGUgPSB0cnVlOwotCiAJaWYgKHZpc2li bGUgfHwgd2FzX3Zpc2libGUpCiAJCWludGVsX2NydGMtPmF0b21pYy5mYl9iaXRzIHw9CiAJCQl0 b19pbnRlbF9wbGFuZShwbGFuZSktPmZyb250YnVmZmVyX2JpdDsKQEAgLTEyMDc1LDI5ICsxMjAz NSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCXJldCA9IDA7CiAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93 bSkgewogCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20oaW50ZWxfY3J0 Yywgc3RhdGUpOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fREVCVUdfS01TKCJUYXJnZXQgcGlwZSB3 YXRlcm1hcmtzIGFyZSBpbnZhbGlkXG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KLQl9Ci0KLQlp ZiAoZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20gJiYKLQkgICAgIXRv X2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPnNraXBfaW50ZXJtZWRpYXRlX3dtKSB7Ci0JCWlm IChXQVJOX09OKCFkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20pKQotCQkJcmV0dXJu IDA7Ci0KLQkJLyoKLQkJICogQ2FsY3VsYXRlICdpbnRlcm1lZGlhdGUnIHdhdGVybWFya3MgdGhh dCBzYXRpc2Z5IGJvdGggdGhlCi0JCSAqIG9sZCBzdGF0ZSBhbmQgdGhlIG5ldyBzdGF0ZS4gIFdl IGNhbiBwcm9ncmFtIHRoZXNlCi0JCSAqIGltbWVkaWF0ZWx5LgotCQkgKi8KLQkJcmV0ID0gZGV2 X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oY3J0Yy0+ZGV2LAotCQkJCQkJ CQlpbnRlbF9jcnRjLAotCQkJCQkJCQlwaXBlX2NvbmZpZyk7Ci0JCWlmIChyZXQpIHsKLQkJCURS TV9ERUJVR19LTVMoIk5vIHZhbGlkIGludGVybWVkaWF0ZSBwaXBlIHdhdGVybWFya3MgYXJlIHBv c3NpYmxlXG4iKTsKKwkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7Ci0JCX0KIAl9CiAKIAlpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewpAQCAtMTM1NjIsNyArMTM1MDEsNiBAQCBzdGF0 aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Ci0J c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZTsKIAlpbnQgcmV0ID0gMCwgaTsK IAlib29sIGh3X2NoZWNrID0gaW50ZWxfc3RhdGUtPm1vZGVzZXQ7CiAKQEAgLTEzNjYyLDIwICsx MzYwMCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCiAJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJsYW5rcyhkZXYsIHN0YXRl KTsKIAotCS8qCi0JICogTm93IHRoYXQgdGhlIHZibGFuayBoYXMgcGFzc2VkLCB3ZSBjYW4gZ28g YWhlYWQgYW5kIHByb2dyYW0gdGhlCi0JICogb3B0aW1hbCB3YXRlcm1hcmtzIG9uIHBsYXRmb3Jt cyB0aGF0IG5lZWQgdHdvLXN0ZXAgd2F0ZXJtYXJrCi0JICogcHJvZ3JhbW1pbmcuCi0JICoKLQkg KiBUT0RPOiBNb3ZlIHRoaXMgKGFuZCBvdGhlciBjbGVhbnVwKSB0byBhbiBhc3luYyB3b3JrZXIg ZXZlbnR1YWxseS4KLQkgKi8KLQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBj cnRjX3N0YXRlLCBpKSB7Ci0JCWludGVsX2NzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+c3RhdGUpOwotCi0JCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtz KQotCQkJZGV2X3ByaXYtPmRpc3BsYXkub3B0aW1pemVfd2F0ZXJtYXJrcyhpbnRlbF9jc3RhdGUp OwotCX0KLQogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAlkcm1fYXRvbWljX2hl bHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKIAltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKQEAgLTE1MzQyLDcgKzE1MjY2LDcgQEAgc3RhdGljIHZvaWQgc2FuaXRpemVf d2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludCBpOwogCiAJLyogT25seSBz dXBwb3J0ZWQgb24gcGxhdGZvcm1zIHRoYXQgdXNlIGF0b21pYyB3YXRlcm1hcmsgZGVzaWduICov Ci0JaWYgKCFkZXZfcHJpdi0+ZGlzcGxheS5vcHRpbWl6ZV93YXRlcm1hcmtzKQorCWlmICghZGV2 X3ByaXYtPmRpc3BsYXkucHJvZ3JhbV93YXRlcm1hcmtzKQogCQlyZXR1cm47CiAKIAkvKgpAQCAt MTUzNjMsMTMgKzE1Mjg3LDYgQEAgcmV0cnk6CiAJaWYgKFdBUk5fT04oSVNfRVJSKHN0YXRlKSkp CiAJCWdvdG8gZmFpbDsKIAotCS8qCi0JICogSGFyZHdhcmUgcmVhZG91dCBpcyB0aGUgb25seSB0 aW1lIHdlIGRvbid0IHdhbnQgdG8gY2FsY3VsYXRlCi0JICogaW50ZXJtZWRpYXRlIHdhdGVybWFy a3MgKHNpbmNlIHdlIGRvbid0IHRydXN0IHRoZSBjdXJyZW50Ci0JICogd2F0ZXJtYXJrcykuCi0J ICovCi0JdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+c2tpcF9pbnRlcm1lZGlhdGVfd20g PSB0cnVlOwotCiAJcmV0ID0gaW50ZWxfYXRvbWljX2NoZWNrKGRldiwgc3RhdGUpOwogCWlmIChy ZXQpIHsKIAkJLyoKQEAgLTE1MzkyLDggKzE1MzA5LDcgQEAgcmV0cnk6CiAJZm9yX2VhY2hfY3J0 Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3N0YXRlLCBpKSB7CiAJCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcyA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3N0YXRlKTsKIAotCQljcy0+d20ubmVl ZF9wb3N0dmJsX3VwZGF0ZSA9IHRydWU7Ci0JCWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dh dGVybWFya3MoY3MpOworCQlkZXZfcHJpdi0+ZGlzcGxheS5wcm9ncmFtX3dhdGVybWFya3MoY3Mp OwogCX0KIAogCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCmluZGV4IDA1OWI0NmUuLjE1OTE3ZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CkBAIC0yNjAsMTIgKzI2MCw2IEBAIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgewogCiAJc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBzaGFyZWRfZHBsbFtJOTE1X05VTV9QTExTXTsK IAlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIHdtX2NvbmZpZzsKLQotCS8qCi0JICogQ3VycmVudCB3 YXRlcm1hcmtzIGNhbid0IGJlIHRydXN0ZWQgZHVyaW5nIGhhcmR3YXJlIHJlYWRvdXQsIHNvCi0J ICogZG9uJ3QgYm90aGVyIGNhbGN1bGF0aW5nIGludGVybWVkaWF0ZSB3YXRlcm1hcmtzLgotCSAq LwotCWJvb2wgc2tpcF9pbnRlcm1lZGlhdGVfd207CiB9OwogCiBzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgewpAQCAtNTEzLDI5ICs1MDcsMTMgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewog CiAJc3RydWN0IHsKIAkJLyoKLQkJICogT3B0aW1hbCB3YXRlcm1hcmtzLCBwcm9ncmFtbWVkIHBv c3QtdmJsYW5rIHdoZW4gdGhpcyBzdGF0ZQotCQkgKiBpcyBjb21taXR0ZWQuCisJCSAqIG9wdGlt YWwgd2F0ZXJtYXJrcywgcHJvZ3JhbW1lZCBwb3N0LXZibGFuayB3aGVuIHRoaXMgc3RhdGUKKwkJ ICogaXMgY29tbWl0dGVkCiAJCSAqLwogCQl1bmlvbiB7CiAJCQlzdHJ1Y3QgaW50ZWxfcGlwZV93 bSBpbGs7CiAJCQlzdHJ1Y3Qgc2tsX3BpcGVfd20gc2tsOwogCQl9IG9wdGltYWw7Ci0KLQkJLyoK LQkJICogSW50ZXJtZWRpYXRlIHdhdGVybWFya3M7IHRoZXNlIGNhbiBiZSBwcm9ncmFtbWVkIGlt bWVkaWF0ZWx5Ci0JCSAqIHNpbmNlIHRoZXkgc2F0aXNmeSBib3RoIHRoZSBjdXJyZW50IGNvbmZp Z3VyYXRpb24gd2UncmUKLQkJICogc3dpdGNoaW5nIGF3YXkgZnJvbSBhbmQgdGhlIG5ldyBjb25m aWd1cmF0aW9uIHdlJ3JlIHN3aXRjaGluZwotCQkgKiB0by4KLQkJICovCi0JCXN0cnVjdCBpbnRl bF9waXBlX3dtIGludGVybWVkaWF0ZTsKLQotCQkvKgotCQkgKiBQbGF0Zm9ybXMgd2l0aCB0d28t c3RlcCB3YXRlcm1hcmsgcHJvZ3JhbW1pbmcgd2lsbCBuZWVkIHRvCi0JCSAqIHVwZGF0ZSB3YXRl cm1hcmsgcHJvZ3JhbW1pbmcgcG9zdC12YmxhbmsgdG8gc3dpdGNoIGZyb20gdGhlCi0JCSAqIHNh ZmUgaW50ZXJtZWRpYXRlIHdhdGVybWFya3MgdG8gdGhlIG9wdGltYWwgZmluYWwKLQkJICogd2F0 ZXJtYXJrcy4KLQkJICovCi0JCWJvb2wgbmVlZF9wb3N0dmJsX3VwZGF0ZTsKIAl9IHdtOwogfTsK IApAQCAtNjIyLDcgKzYwMCw2IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKIAkJCXN0cnVjdCBpbnRl bF9waXBlX3dtIGlsazsKIAkJCXN0cnVjdCBza2xfcGlwZV93bSBza2w7CiAJCX0gYWN0aXZlOwot CiAJCS8qIGFsbG93IEN4U1Igb24gdGhpcyBwaXBlICovCiAJCWJvb2wgY3hzcl9hbGxvd2VkOwog CX0gd207CkBAIC0xNTgzLDcgKzE1NjAsNiBAQCB2b2lkIHNrbF93bV9nZXRfaHdfc3RhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlv biAqZGRiIC8qIG91dCAqLyk7CiB1aW50MzJfdCBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Ci1ib29sIGlsa19kaXNhYmxlX2xw X3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiAvKiBpbnRlbF9zZHZvLmMgKi8KIGJvb2wg aW50ZWxfc2R2b19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwppbmRleCA2YjJiM2UzLi5hZDM5M2E3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAg LTIyNzMsMjkgKzIyNzMsNiBAQCBzdGF0aWMgdm9pZCBza2xfc2V0dXBfd21fbGF0ZW5jeShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2LCAiR2VuOSBQ bGFuZSIsIGRldl9wcml2LT53bS5za2xfbGF0ZW5jeSk7CiB9CiAKLXN0YXRpYyBib29sIGlsa192 YWxpZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJIHN0cnVjdCBpbnRl bF9waXBlX3dtICpwaXBlX3dtKQotewotCS8qIExQMCB3YXRlcm1hcmsgbWF4aW11bXMgZGVwZW5k IG9uIHRoaXMgcGlwZSBhbG9uZSAqLwotCWNvbnN0IHN0cnVjdCBpbnRlbF93bV9jb25maWcgY29u ZmlnID0gewotCQkubnVtX3BpcGVzX2FjdGl2ZSA9IDEsCi0JCS5zcHJpdGVzX2VuYWJsZWQgPSBw aXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQsCi0JCS5zcHJpdGVzX3NjYWxlZCA9IHBpcGVfd20tPnNw cml0ZXNfc2NhbGVkLAotCX07Ci0Jc3RydWN0IGlsa193bV9tYXhpbXVtcyBtYXg7Ci0KLQkvKiBM UDAgd2F0ZXJtYXJrcyBhbHdheXMgdXNlIDEvMiBEREIgcGFydGl0aW9uaW5nICovCi0JaWxrX2Nv bXB1dGVfd21fbWF4aW11bXMoZGV2LCAwLCAmY29uZmlnLCBJTlRFTF9EREJfUEFSVF8xXzIsICZt YXgpOwotCi0JLyogQXQgbGVhc3QgTFAwIG11c3QgYmUgdmFsaWQgKi8KLQlpZiAoIWlsa192YWxp ZGF0ZV93bV9sZXZlbCgwLCAmbWF4LCAmcGlwZV93bS0+d21bMF0pKSB7Ci0JCURSTV9ERUJVR19L TVMoIkxQMCB3YXRlcm1hcmsgaW52YWxpZFxuIik7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0KLQly ZXR1cm4gdHJ1ZTsKLX0KLQogLyogQ29tcHV0ZSBuZXcgd2F0ZXJtYXJrcyBmb3IgdGhlIHBpcGUg Ki8KIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCkBAIC0y MzEwLDYgKzIyODcsMTAgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Byc3Rh dGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3Vyc3RhdGUgPSBOVUxMOwog CWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCS8qIExQMCB3 YXRlcm1hcmsgbWF4aW11bXMgZGVwZW5kIG9uIHRoaXMgcGlwZSBhbG9uZSAqLworCXN0cnVjdCBp bnRlbF93bV9jb25maWcgY29uZmlnID0geworCQkubnVtX3BpcGVzX2FjdGl2ZSA9IDEsCisJfTsK IAlzdHJ1Y3QgaWxrX3dtX21heGltdW1zIG1heDsKIAogCWNzdGF0ZSA9IGludGVsX2F0b21pY19n ZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7CkBAIC0yMzMzLDE4ICsyMzE0LDIxIEBA IHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YywKIAkJCWN1cnN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocHMpOwogCX0KIAotCXBp cGVfd20tPnBpcGVfZW5hYmxlZCA9IGNzdGF0ZS0+YmFzZS5hY3RpdmU7Ci0JcGlwZV93bS0+c3By aXRlc19lbmFibGVkID0gc3Byc3RhdGUtPnZpc2libGU7Ci0JcGlwZV93bS0+c3ByaXRlc19zY2Fs ZWQgPSBzcHJzdGF0ZS0+dmlzaWJsZSAmJgorCWNvbmZpZy5zcHJpdGVzX2VuYWJsZWQgPSBzcHJz dGF0ZS0+dmlzaWJsZTsKKwljb25maWcuc3ByaXRlc19zY2FsZWQgPSBzcHJzdGF0ZS0+dmlzaWJs ZSAmJgogCQkoZHJtX3JlY3Rfd2lkdGgoJnNwcnN0YXRlLT5kc3QpICE9IGRybV9yZWN0X3dpZHRo KCZzcHJzdGF0ZS0+c3JjKSA+PiAxNiB8fAogCQlkcm1fcmVjdF9oZWlnaHQoJnNwcnN0YXRlLT5k c3QpICE9IGRybV9yZWN0X2hlaWdodCgmc3Byc3RhdGUtPnNyYykgPj4gMTYpOwogCisJcGlwZV93 bS0+cGlwZV9lbmFibGVkID0gY3N0YXRlLT5iYXNlLmFjdGl2ZTsKKwlwaXBlX3dtLT5zcHJpdGVz X2VuYWJsZWQgPSBjb25maWcuc3ByaXRlc19lbmFibGVkOworCXBpcGVfd20tPnNwcml0ZXNfc2Nh bGVkID0gY29uZmlnLnNwcml0ZXNfc2NhbGVkOworCiAJLyogSUxLL1NOQjogTFAyKyB3YXRlcm1h cmtzIG9ubHkgdy9vIHNwcml0ZXMgKi8KIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNiAm JiBzcHJzdGF0ZS0+dmlzaWJsZSkKIAkJbWF4X2xldmVsID0gMTsKIAogCS8qIElMSy9TTkIvSVZC OiBMUDErIHdhdGVybWFya3Mgb25seSB3L28gc2NhbGluZyAqLwotCWlmIChwaXBlX3dtLT5zcHJp dGVzX3NjYWxlZCkKKwlpZiAoY29uZmlnLnNwcml0ZXNfc2NhbGVkKQogCQltYXhfbGV2ZWwgPSAw OwogCiAJaWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGludGVsX2NydGMsIDAsIGNzdGF0 ZSwKQEAgLTIzNTMsOCArMjMzNywxMiBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20o c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJ U19CUk9BRFdFTEwoZGV2KSkKIAkJcGlwZV93bS0+bGluZXRpbWUgPSBoc3dfY29tcHV0ZV9saW5l dGltZV93bShkZXYsIGNzdGF0ZSk7CiAKLQlpZiAoIWlsa192YWxpZGF0ZV9waXBlX3dtKGRldiwg cGlwZV93bSkpCi0JCXJldHVybiBmYWxzZTsKKwkvKiBMUDAgd2F0ZXJtYXJrcyBhbHdheXMgdXNl IDEvMiBEREIgcGFydGl0aW9uaW5nICovCisJaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAw LCAmY29uZmlnLCBJTlRFTF9EREJfUEFSVF8xXzIsICZtYXgpOworCisJLyogQXQgbGVhc3QgTFAw IG11c3QgYmUgdmFsaWQgKi8KKwlpZiAoIWlsa192YWxpZGF0ZV93bV9sZXZlbCgwLCAmbWF4LCAm cGlwZV93bS0+d21bMF0pKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlsa19jb21wdXRlX3dtX3Jl Z19tYXhpbXVtcyhkZXYsIDEsICZtYXgpOwogCkBAIC0yMzc5LDU5ICsyMzY3LDYgQEAgc3RhdGlj IGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAog fQogCiAvKgotICogQnVpbGQgYSBzZXQgb2YgJ2ludGVybWVkaWF0ZScgd2F0ZXJtYXJrIHZhbHVl cyB0aGF0IHNhdGlzZnkgYm90aCB0aGUgb2xkCi0gKiBzdGF0ZSBhbmQgdGhlIG5ldyBzdGF0ZS4g IFRoZXNlIGNhbiBiZSBwcm9ncmFtbWVkIHRvIHRoZSBoYXJkd2FyZQotICogaW1tZWRpYXRlbHku Ci0gKi8KLXN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCi0JCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAot CQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpCi17Ci0Jc3RydWN0 IGludGVsX3BpcGVfd20gKmEgPSAmbmV3c3RhdGUtPndtLmludGVybWVkaWF0ZTsKLQlzdHJ1Y3Qg aW50ZWxfcGlwZV93bSAqYiA9ICZpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrOwotCWludCBsZXZl bCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwotCi0JLyoKLQkgKiBTdGFydCB3 aXRoIHRoZSBmaW5hbCwgdGFyZ2V0IHdhdGVybWFya3MsIHRoZW4gY29tYmluZSB3aXRoIHRoZQot CSAqIGN1cnJlbnRseSBhY3RpdmUgd2F0ZXJtYXJrcyB0byBnZXQgdmFsdWVzIHRoYXQgYXJlIHNh ZmUgYm90aCBiZWZvcmUKLQkgKiBhbmQgYWZ0ZXIgdGhlIHZibGFuay4KLQkgKi8KLQkqYSA9IG5l d3N0YXRlLT53bS5vcHRpbWFsLmlsazsKLQlhLT5waXBlX2VuYWJsZWQgfD0gYi0+cGlwZV9lbmFi bGVkOwotCWEtPnNwcml0ZXNfZW5hYmxlZCB8PSBiLT5zcHJpdGVzX2VuYWJsZWQ7Ci0JYS0+c3By aXRlc19zY2FsZWQgfD0gYi0+c3ByaXRlc19zY2FsZWQ7Ci0KLQlmb3IgKGxldmVsID0gMDsgbGV2 ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7Ci0JCXN0cnVjdCBpbnRlbF93bV9sZXZlbCAqYV93 bSA9ICZhLT53bVtsZXZlbF07Ci0JCWNvbnN0IHN0cnVjdCBpbnRlbF93bV9sZXZlbCAqYl93bSA9 ICZiLT53bVtsZXZlbF07Ci0KLQkJYV93bS0+ZW5hYmxlICY9IGJfd20tPmVuYWJsZTsKLQkJYV93 bS0+cHJpX3ZhbCA9IG1heChhX3dtLT5wcmlfdmFsLCBiX3dtLT5wcmlfdmFsKTsKLQkJYV93bS0+ c3ByX3ZhbCA9IG1heChhX3dtLT5zcHJfdmFsLCBiX3dtLT5zcHJfdmFsKTsKLQkJYV93bS0+Y3Vy X3ZhbCA9IG1heChhX3dtLT5jdXJfdmFsLCBiX3dtLT5jdXJfdmFsKTsKLQkJYV93bS0+ZmJjX3Zh bCA9IG1heChhX3dtLT5mYmNfdmFsLCBiX3dtLT5mYmNfdmFsKTsKLQl9Ci0KLQkvKgotCSAqIFdl IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlc2UgbWVyZ2VkIHdhdGVybWFyayB2YWx1ZXMgYXJl Ci0JICogYWN0dWFsbHkgYSB2YWxpZCBjb25maWd1cmF0aW9uIHRoZW1zZWx2ZXMuICBJZiB0aGV5 J3JlIG5vdCwKLQkgKiB0aGVyZSdzIG5vIHNhZmUgd2F5IHRvIHRyYW5zaXRpb24gZnJvbSB0aGUg b2xkIHN0YXRlIHRvCi0JICogdGhlIG5ldyBzdGF0ZSwgc28gd2UgbmVlZCB0byBmYWlsIHRoZSBh dG9taWMgdHJhbnNhY3Rpb24uCi0JICovCi0JaWYgKCFpbGtfdmFsaWRhdGVfcGlwZV93bShkZXYs IGEpKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8qCi0JICogSWYgb3VyIGludGVybWVkaWF0ZSBX TSBhcmUgaWRlbnRpY2FsIHRvIHRoZSBmaW5hbCBXTSwgdGhlbiB3ZSBjYW4KLQkgKiBvbWl0IHRo ZSBwb3N0LXZibGFuayBwcm9ncmFtbWluZzsgb25seSB1cGRhdGUgaWYgaXQncyBkaWZmZXJlbnQu Ci0JICovCi0JaWYgKG1lbWNtcChhLCAmbmV3c3RhdGUtPndtLm9wdGltYWwuaWxrLCBzaXplb2Yo KmEpKSAhPSAwKQotCQluZXdzdGF0ZS0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSA9IGZhbHNlOwot Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCiAgKiBNZXJnZSB0aGUgd2F0ZXJtYXJrcyBmcm9tIGFsbCBh Y3RpdmUgcGlwZXMgZm9yIGEgc3BlY2lmaWMgbGV2ZWwuCiAgKi8KIHN0YXRpYyB2b2lkIGlsa19t ZXJnZV93bV9sZXZlbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LApAQCAtMjQ0Myw3ICsyMzc4LDkg QEAgc3RhdGljIHZvaWQgaWxrX21lcmdlX3dtX2xldmVsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJcmV0X3dtLT5lbmFibGUgPSB0cnVlOwogCiAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGlu dGVsX2NydGMpIHsKLQkJY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKmFjdGl2ZSA9ICZpbnRl bF9jcnRjLT53bS5hY3RpdmUuaWxrOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3N0YXRlID0KKwkJCXRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSk7 CisJCWNvbnN0IHN0cnVjdCBpbnRlbF9waXBlX3dtICphY3RpdmUgPSAmY3N0YXRlLT53bS5vcHRp bWFsLmlsazsKIAkJY29uc3Qgc3RydWN0IGludGVsX3dtX2xldmVsICp3bSA9ICZhY3RpdmUtPndt W2xldmVsXTsKIAogCQlpZiAoIWFjdGl2ZS0+cGlwZV9lbmFibGVkKQpAQCAtMjU5MSwxNCArMjUy OCwxNSBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9yZXN1bHRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAKIAkvKiBMUDAgcmVnaXN0ZXIgdmFsdWVzICovCiAJZm9yX2VhY2hfaW50ZWxf Y3J0YyhkZXYsIGludGVsX2NydGMpIHsKKwkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSA9CisJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUp OwogCQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Ci0JCWNvbnN0IHN0cnVjdCBp bnRlbF93bV9sZXZlbCAqciA9Ci0JCQkmaW50ZWxfY3J0Yy0+d20uYWN0aXZlLmlsay53bVswXTsK KwkJY29uc3Qgc3RydWN0IGludGVsX3dtX2xldmVsICpyID0gJmNzdGF0ZS0+d20ub3B0aW1hbC5p bGsud21bMF07CiAKIAkJaWYgKFdBUk5fT04oIXItPmVuYWJsZSkpCiAJCQljb250aW51ZTsKIAot CQlyZXN1bHRzLT53bV9saW5ldGltZVtwaXBlXSA9IGludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsu bGluZXRpbWU7CisJCXJlc3VsdHMtPndtX2xpbmV0aW1lW3BpcGVdID0gY3N0YXRlLT53bS5vcHRp bWFsLmlsay5saW5ldGltZTsKIAogCQlyZXN1bHRzLT53bV9waXBlW3BpcGVdID0KIAkJCShyLT5w cmlfdmFsIDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8CkBAIC0yODA1LDcgKzI3NDMsNyBAQCBz dGF0aWMgdm9pZCBpbGtfd3JpdGVfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAlkZXZfcHJpdi0+d20uaHcgPSAqcmVzdWx0czsKIH0KIAotYm9vbCBpbGtfZGlz YWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIGJvb2wgaWxrX2Rpc2Fi bGVfbHBfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCkBAIC0zNjk4LDkgKzM2MzYsMTEg QEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fY29uZmlnKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGlsa19wcm9ncmFtX3dhdGVy bWFya3Moc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjc3Rh dGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfcGlwZV93bSBscF93bV8xXzIgPSB7fSwgbHBfd21fNV82ID0ge30sICpiZXN0X2xwX3dt OwogCXN0cnVjdCBpbGtfd21fbWF4aW11bXMgbWF4OwogCXN0cnVjdCBpbnRlbF93bV9jb25maWcg Y29uZmlnID0ge307CkBAIC0zNzMxLDI4ICszNjcxLDI4IEBAIHN0YXRpYyB2b2lkIGlsa19wcm9n cmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlsa193 cml0ZV93bV92YWx1ZXMoZGV2X3ByaXYsICZyZXN1bHRzKTsKIH0KIAotc3RhdGljIHZvaWQgaWxr X2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQorc3Rh dGljIHZvaWQgaWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0 YXRlLT5iYXNlLmNydGMpOwotCi0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsK LQlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0gY3N0YXRlLT53bS5pbnRlcm1lZGlhdGU7Ci0J aWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhkZXZfcHJpdik7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+d20ud21fbXV0ZXgpOwotfQorCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9f aW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKLXN0YXRpYyB2b2lkIGlsa19vcHRpbWl6 ZV93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCi17Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0 YXRlLT5iYXNlLmNydGMpOworCVdBUk5fT04oY3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBpbnRlbF9j cnRjLT5hY3RpdmUpOwogCi0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKLQlp ZiAoY3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKSB7Ci0JCWludGVsX2NydGMtPndtLmFj dGl2ZS5pbGsgPSBjc3RhdGUtPndtLm9wdGltYWwuaWxrOwotCQlpbGtfcHJvZ3JhbV93YXRlcm1h cmtzKGRldl9wcml2KTsKKwkvKgorCSAqIElWQiB3b3JrYXJvdW5kOiBtdXN0IGRpc2FibGUgbG93 IHBvd2VyIHdhdGVybWFya3MgZm9yIGF0IGxlYXN0CisJICogb25lIGZyYW1lIGJlZm9yZSBlbmFi bGluZyBzY2FsaW5nLiAgTFAgd2F0ZXJtYXJrcyBjYW4gYmUgcmUtZW5hYmxlZAorCSAqIHdoZW4g c2NhbGluZyBpcyBkaXNhYmxlZC4KKwkgKgorCSAqIFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2Nh bGluZzppdmIKKwkgKi8KKwlpZiAoY3N0YXRlLT5kaXNhYmxlX2xwX3dtKSB7CisJCWlsa19kaXNh YmxlX2xwX3dtKGNydGMtPmRldik7CisJCWludGVsX3dhaXRfZm9yX3ZibGFuayhjcnRjLT5kZXYs IGludGVsX2NydGMtPnBpcGUpOwogCX0KLQltdXRleF91bmxvY2soJmRldl9wcml2LT53bS53bV9t dXRleCk7CisKKwlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0gY3N0YXRlLT53bS5vcHRpbWFs LmlsazsKKworCWlsa19wcm9ncmFtX3dhdGVybWFya3MoY3N0YXRlKTsKIH0KIAogc3RhdGljIHZv aWQgc2tsX3BpcGVfd21fYWN0aXZlX3N0YXRlKHVpbnQzMl90IHZhbCwKQEAgLTcwNzksMTMgKzcw MTksOSBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJICAg ICBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lbMV0gJiYgZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5 WzFdKSB8fAogCQkgICAgKCFJU19HRU41KGRldikgJiYgZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5 WzBdICYmCiAJCSAgICAgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5WzBdICYmIGRldl9wcml2LT53 bS5jdXJfbGF0ZW5jeVswXSkpIHsKKwkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGls a191cGRhdGVfd207CiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20gPSBpbGtf Y29tcHV0ZV9waXBlX3dtOwotCQkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9pbnRlcm1lZGlh dGVfd20gPQotCQkJCWlsa19jb21wdXRlX2ludGVybWVkaWF0ZV93bTsKLQkJCWRldl9wcml2LT5k aXNwbGF5LmluaXRpYWxfd2F0ZXJtYXJrcyA9Ci0JCQkJaWxrX2luaXRpYWxfd2F0ZXJtYXJrczsK LQkJCWRldl9wcml2LT5kaXNwbGF5Lm9wdGltaXplX3dhdGVybWFya3MgPQotCQkJCWlsa19vcHRp bWl6ZV93YXRlcm1hcmtzOworCQkJZGV2X3ByaXYtPmRpc3BsYXkucHJvZ3JhbV93YXRlcm1hcmtz ID0gaWxrX3Byb2dyYW1fd2F0ZXJtYXJrczsKIAkJfSBlbHNlIHsKIAkJCURSTV9ERUJVR19LTVMo IkZhaWxlZCB0byByZWFkIGRpc3BsYXkgcGxhbmUgbGF0ZW5jeS4gIgogCQkJCSAgICAgICJEaXNh YmxlIEN4U1JcbiIpOwotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==