From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Subject: [PATCH v8 1/3] drm/i915/psr: Make PSR registers relative to transcoders Date: Tue, 20 Aug 2019 15:33:23 -0700 Message-ID: <20190820223325.27490-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0193A6E89A for ; Tue, 20 Aug 2019 22:33:28 +0000 (UTC) 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: Lucas De Marchi , Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org UFNSIHJlZ2lzdGVycyBhcmUgYSBtZXNzLCBzb21lIGhhdmUgdGhlIGZ1bGwgYWRkcmVzcyB3aGls ZSBvdGhlcnMganVzdApoYXZlIHRoZSBhZGRpdGlvbmFsIG9mZnNldCBmcm9tIHBzcl9tbWlvX2Jh c2UuCgpGb3IgQkRXKyBwc3JfbW1pb19iYXNlIGlzIG5vdGhpbmcgbW9yZSB0aGFuIFRSQU5TQ09E RVJfRURQX09GRlNFVCArCjB4ODAwIGFuZCB1c2luZyBpdCBtYWtlcyBtb3JlIGRpZmZpY3VsdCBm b3IgcGVvcGxlIHdpdGggYW4gUFNSCnJlZ2lzdGVyIGFkZHJlc3Mgb3IgUFNSIHJlZ2lzdGVyIG5h bWUgZnJvbSBmcm9tIEJTcGVjIGFzIGk5MTUgYWxzbwpkb24ndCBtYXRjaCB0aGUgQlNwZWMgbmFt ZXMuCkZvciBIU1cgcHNyX21taW9fYmFzZSBpcyBfRERJX0JVRl9DVExfQSArIDB4ODAwIGFuZCBQ U1IgcmVnaXN0ZXJzIGFyZQpvbmx5IGF2YWlsYWJsZSBpbiBERElBLgoKT3RoZXIgcmVhc29uIHRv IG1ha2UgcmVsYXRpdmUgdG8gdHJhbnNjb2RlciBpcyB0aGF0IHNpbmNlIEJEVyBldmVyeQp0cmFu c2NvZGVyIGhhdmUgUFNSIHJlZ2lzdGVycywgc28gaW4gdGhlb3J5IGl0IHNob3VsZCBiZSBwb3Nz aWJsZSB0bwpoYXZlIFBTUiBlbmFibGVkIGluIGEgbm9uLWVEUCB0cmFuc2NvZGVyLgoKU28gZm9y IEJEVysgd2UgY2FuIHVzZSBfVFJBTlMyKCkgdG8gZ2V0IHRoZSByZWdpc3RlciBvZmZzZXQgb2Yg YW55ClBTUiByZWdpc3RlciBpbiBhbnkgdHJhbnNjb2RlciB3aGlsZSBmb3IgSFNXIHdlIGhhdmUg X0hTV19QU1JfQURKCnRoYXQgd2lsbCBjYWxjdWxhdGUgdGhlIHJlZ2lzdGVyIG9mZnNldCBmb3Ig dGhlIHNpbmdsZSBQU1IgaW5zdGFuY2UsCm5vdGluZyB0aGF0IHdlIGFyZSBhbHJlYWR5IGd1YXJk ZWQgYWJvdXQgdHJ5aW5nIHRvIGVuYWJsZSBQU1IgaW4gb3RoZXIKcG9ydCB0aGFuIERESUEgb24g SFNXIGJ5IHRoZSAnaWYgKGRpZ19wb3J0LT5iYXNlLnBvcnQgIT0gUE9SVF9BKScgaW4KaW50ZWxf cHNyX2NvbXB1dGVfY29uZmlnKCksIHRoaXMgY2hlY2sgc2hvdWxkIG9ubHkgYmUgdmFsaWQgZm9y IEhTVwphbmQgd2lsbCBiZSBjaGFuZ2VkIGluIGZ1dHVyZS4KUFNSMiByZWdpc3RlcnMgYW5kIFBT Ul9FVkVOVCB3YXMgYWRkZWQgYWZ0ZXIgSGFzd2VsbCBzbyB0aGF0IGlzIHdoeQpfUFNSX0FESigp IGlzIG5vdCB1c2VkIGluIHNvbWUgbWFjcm9zLgoKVGhlIG9ubHkgcmVnaXN0ZXJzIHRoYXQgY2Fu IG5vdCBiZSByZWxhdGl2ZSB0byB0cmFuc2NvZGVyIGFyZQpQU1JfSU1SIGFuZCBQU1JfSUlSIHRo YXQgYXJlIG5vdCByZWxhdGl2ZSB0byBhbnl0aGluZywgc28ga2VlcGluZyBpdApoYXJkY29kZWQu IFRoYXQgY2hhbmdlZCBmb3IgVEdMIGJ1dCBpdCB3aWxsIGJlIGhhbmRsZWQgaW4gYW5vdGhlcgpw YXRjaC4KCkFsc28gcmVtb3ZpbmcgQkRXX0VEUF9QU1JfQkFTRSBmcm9tIEdWVCBiZWNhdXNlIGl0 IGlzIG5vdCB1c2VkIGFzIGl0CmlzIHRoZSBvbmx5IFBTUiByZWdpc3RlciB0aGF0IEdWVCBoYXZl LgoKdjU6Ci0gTWFjcm9zIGNoYW5nZWQgdG8gYmUgbW9yZSBleHBsaWNpdCBhYm91dCBIU1cgKERo aW5ha2FyYW4pCi0gU3F1YXNoZWQgd2l0aCB0aGUgcGF0Y2ggdGhhdCBhZGRlZCB0aGUgdHJhbiBw YXJhbWV0ZXIgdG8gdGhlCm1hY3JvcyAoRGhpbmFrYXJhbikKCnY2OgotIENoZWNraW5nIGZvciBp bnRlcnJ1cHRpb24gZXJyb3JzIGFmdGVyIG1vZHVsZSByZWxvYWQgaW4gdGhlCnRyYW5zY29kZXIg dGhhdCB3aWxsIGJlIHVzZWQgKERoaW5ha2FyYW4pCi0gVXNpbmcgbG93ZXJjYXNlIHRvIHRoZSBy ZWdpc3RlcnMgb2Zmc2V0cwoKdjc6Ci0gUmVtb3ZpbmcgSVNfSEFTV0VMTCgpIGZyb20gcmVnaXN0 ZXJzIG1hY3JvcyhKYW5pKQoKQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFu ZGl5YW5AaW50ZWwuY29tPgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PgpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBaaGkgV2FuZyA8 emhpLmEud2FuZ0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2Fz LmRlbWFyY2hpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6 YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8 bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfcHNyLmMgfCAxMDQgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jICAgICAgfCAgMTggKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICB8ICAgNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCAgICAgICAgICB8ICA1NyArKysrKysrKystLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDExMyBp bnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9wc3IuYwppbmRleCAzYmZiNzIwNTYwYzIuLjc3MjMyZjZiY2ExNyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCkBAIC0zOTAsNyArMzkwLDcgQEAgc3Rh dGljIHZvaWQgaHN3X3Bzcl9zZXR1cF9hdXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAog CUJVSUxEX0JVR19PTihzaXplb2YoYXV4X21zZykgPiAyMCk7CiAJZm9yIChpID0gMDsgaSA8IHNp emVvZihhdXhfbXNnKTsgaSArPSA0KQotCQlJOTE1X1dSSVRFKEVEUF9QU1JfQVVYX0RBVEEoaSA+ PiAyKSwKKwkJSTkxNV9XUklURShFRFBfUFNSX0FVWF9EQVRBKGRldl9wcml2LT5wc3IudHJhbnNj b2RlciwgaSA+PiAyKSwKIAkJCSAgIGludGVsX2RwX3BhY2tfYXV4KCZhdXhfbXNnW2ldLCBzaXpl b2YoYXV4X21zZykgLSBpKSk7CiAKIAlhdXhfY2xvY2tfZGl2aWRlciA9IGludGVsX2RwLT5nZXRf YXV4X2Nsb2NrX2RpdmlkZXIoaW50ZWxfZHAsIDApOwpAQCAtNDAxLDcgKzQwMSw3IEBAIHN0YXRp YyB2b2lkIGhzd19wc3Jfc2V0dXBfYXV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAKIAkv KiBTZWxlY3Qgb25seSB2YWxpZCBiaXRzIGZvciBTUkRfQVVYX0NUTCAqLwogCWF1eF9jdGwgJj0g cHNyX2F1eF9tYXNrOwotCUk5MTVfV1JJVEUoRURQX1BTUl9BVVhfQ1RMLCBhdXhfY3RsKTsKKwlJ OTE1X1dSSVRFKEVEUF9QU1JfQVVYX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCBhdXhf Y3RsKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9zaW5rKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCkBAIC00OTEsOCArNDkxLDkgQEAgc3RhdGljIHZvaWQgaHN3X2FjdGl2 YXRlX3BzcjEoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA4KQogCQl2YWwgfD0gRURQX1BTUl9DUkNfRU5BQkxFOwogCi0JdmFsIHw9IEk5MTVf UkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX1JFU1RPUkVfUFNSX0FDVElWRV9DVFhfTUFTSzsK LQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwpOworCXZhbCB8PSAoSTkxNV9SRUFEKEVEUF9Q U1JfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpICYKKwkJRURQX1BTUl9SRVNUT1JFX1BT Ul9BQ1RJVkVfQ1RYX01BU0spOworCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBz ci50cmFuc2NvZGVyKSwgdmFsKTsKIH0KIAogc3RhdGljIHZvaWQgaHN3X2FjdGl2YXRlX3BzcjIo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKQEAgLTUyOCw5ICs1MjksOSBAQCBzdGF0aWMgdm9p ZCBoc3dfYWN0aXZhdGVfcHNyMihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCSAqIFBTUjIg SFcgaXMgaW5jb3JyZWN0bHkgdXNpbmcgRURQX1BTUl9UUDFfVFAzX1NFTCBhbmQgQlNwZWMgaXMK IAkgKiByZWNvbW1lbmRpbmcga2VlcCB0aGlzIGJpdCB1bnNldCB3aGlsZSBQU1IyIGlzIGVuYWJs ZWQuCiAJICovCi0JSTkxNV9XUklURShFRFBfUFNSX0NUTCwgMCk7CisJSTkxNV9XUklURShFRFBf UFNSX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCAwKTsKIAotCUk5MTVfV1JJVEUoRURQ X1BTUjJfQ1RMLCB2YWwpOworCUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMKGRldl9wcml2LT5wc3Iu dHJhbnNjb2RlciksIHZhbCk7CiB9CiAKIHN0YXRpYyBib29sIGludGVsX3BzcjJfY29uZmlnX3Zh bGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCkBAIC02MDYsMTAgKzYwNyw5IEBAIHZvaWQg aW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAKIAkv KgogCSAqIEhTVyBzcGVjIGV4cGxpY2l0bHkgc2F5cyBQU1IgaXMgdGllZCB0byBwb3J0IEEuCi0J ICogQkRXKyBwbGF0Zm9ybXMgd2l0aCBEREkgaW1wbGVtZW50YXRpb24gb2YgUFNSIGhhdmUgZGlm ZmVyZW50Ci0JICogUFNSIHJlZ2lzdGVycyBwZXIgdHJhbnNjb2RlciBhbmQgd2Ugb25seSBpbXBs ZW1lbnQgdHJhbnNjb2RlciBFRFAKLQkgKiBvbmVzLiBTaW5jZSBieSBEaXNwbGF5IGRlc2lnbiB0 cmFuc2NvZGVyIEVEUCBpcyB0aWVkIHRvIHBvcnQgQQotCSAqIHdlIGNhbiBzYWZlbHkgZXNjYXBl IGJhc2VkIG9uIHRoZSBwb3J0IEEuCisJICogQkRXKyBwbGF0Zm9ybXMgaGF2ZSBhIGluc3RhbmNl IG9mIFBTUiByZWdpc3RlcnMgcGVyIHRyYW5zY29kZXIgYnV0CisJICogZm9yIG5vdyBpdCBvbmx5 IHN1cHBvcnRzIG9uZSBpbnN0YW5jZSBvZiBQU1IsIHNvIGxldHMga2VlcCBpdAorCSAqIGhhcmRj b2RlZCB0byBQT1JUX0EKIAkgKi8KIAlpZiAoZGlnX3BvcnQtPmJhc2UucG9ydCAhPSBQT1JUX0Ep IHsKIAkJRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6IFBvcnQgbm90IHN1cHBv cnRlZFxuIik7CkBAIC02NDksOCArNjQ5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2FjdGl2 YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA5KQotCQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSMl9DVEwpICYgRURQX1BTUjJf RU5BQkxFKTsKLQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJM RSk7CisJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5z Y29kZXIpKSAmIEVEUF9QU1IyX0VOQUJMRSk7CisJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9D VEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkgJiBFRFBfUFNSX0VOQUJMRSk7CiAJV0FSTl9P TihkZXZfcHJpdi0+cHNyLmFjdGl2ZSk7CiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYt PnBzci5sb2NrKTsKIApAQCAtNzIwLDE5ICs3MjAsMzcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNy X2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA8IDExKQogCQltYXNrIHw9IEVEUF9QU1JfREVCVUdfTUFTS19ESVNQX1JFR19X UklURTsKIAotCUk5MTVfV1JJVEUoRURQX1BTUl9ERUJVRywgbWFzayk7CisJSTkxNV9XUklURShF RFBfUFNSX0RFQlVHKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIG1hc2spOwogfQogCiBzdGF0 aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+cHNyLmRwOwor CXUzMiB2YWw7CiAKIAlXQVJOX09OKGRldl9wcml2LT5wc3IuZW5hYmxlZCk7CiAKIAlkZXZfcHJp di0+cHNyLnBzcjJfZW5hYmxlZCA9IGludGVsX3BzcjJfZW5hYmxlZChkZXZfcHJpdiwgY3J0Y19z dGF0ZSk7CiAJZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwogCWRldl9w cml2LT5wc3IucGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlw ZTsKKwlkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rl cjsKKworCS8qCisJICogSWYgYSBQU1IgZXJyb3IgaGFwcGVuZWQgYW5kIHRoZSBkcml2ZXIgaXMg cmVsb2FkZWQsIHRoZSBFRFBfUFNSX0lJUgorCSAqIHdpbGwgc3RpbGwga2VlcCB0aGUgZXJyb3Ig c2V0IGV2ZW4gYWZ0ZXIgdGhlIHJlc2V0IGRvbmUgaW4gdGhlCisJICogaXJxX3ByZWluc3RhbGwg YW5kIGlycV91bmluc3RhbGwgaG9va3MuCisJICogQW5kIGVuYWJsaW5nIGluIHRoaXMgc2l0dWF0 aW9uIGNhdXNlIHRoZSBzY3JlZW4gdG8gZnJlZXplIGluIHRoZQorCSAqIGZpcnN0IHRpbWUgdGhh dCBQU1IgSFcgdHJpZXMgdG8gYWN0aXZhdGUgc28gbGV0cyBrZWVwIFBTUiBkaXNhYmxlZAorCSAq IHRvIGF2b2lkIGFueSByZW5kZXJpbmcgcHJvYmxlbXMuCisJICovCisJdmFsID0gSTkxNV9SRUFE KEVEUF9QU1JfSUlSKTsKKwl2YWwgJj0gRURQX1BTUl9FUlJPUihlZHBfcHNyX3NoaWZ0KGRldl9w cml2LT5wc3IudHJhbnNjb2RlcikpOworCWlmICh2YWwpIHsKKwkJZGV2X3ByaXYtPnBzci5zaW5r X25vdF9yZWxpYWJsZSA9IHRydWU7CisJCURSTV9ERUJVR19LTVMoIlBTUiBpbnRlcnJ1cHRpb24g ZXJyb3Igc2V0LCBub3QgZW5hYmxpbmcgUFNSXG4iKTsKKwkJcmV0dXJuOworCX0KIAogCURSTV9E RUJVR19LTVMoIkVuYWJsaW5nIFBTUiVzXG4iLAogCQkgICAgICBkZXZfcHJpdi0+cHNyLnBzcjJf ZW5hYmxlZCA/ICIyIiA6ICIxIik7CkBAIC03ODIsMjAgKzgwMCwyNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9wc3JfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJdTMyIHZh bDsKIAogCWlmICghZGV2X3ByaXYtPnBzci5hY3RpdmUpIHsKLQkJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gOSkKLQkJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCkgJiBFRFBfUFNS Ml9FTkFCTEUpOwotCQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VO QUJMRSk7CisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKKwkJCXZhbCA9IEk5MTVf UkVBRChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7CisJCQlXQVJOX09O KHZhbCAmIEVEUF9QU1IyX0VOQUJMRSk7CisJCX0KKworCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BT Ul9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7CisJCVdBUk5fT04odmFsICYgRURQX1BT Ul9FTkFCTEUpOworCiAJCXJldHVybjsKIAl9CiAKIAlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2Vu YWJsZWQpIHsKLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCk7CisJCXZhbCA9IEk5MTVf UkVBRChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7CiAJCVdBUk5fT04o ISh2YWwgJiBFRFBfUFNSMl9FTkFCTEUpKTsKLQkJSTkxNV9XUklURShFRFBfUFNSMl9DVEwsIHZh bCAmIH5FRFBfUFNSMl9FTkFCTEUpOworCQl2YWwgJj0gfkVEUF9QU1IyX0VOQUJMRTsKKwkJSTkx NV9XUklURShFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgdmFsKTsKIAl9 IGVsc2UgewotCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpOworCQl2YWwgPSBJOTE1X1JF QUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7CiAJCVdBUk5fT04oISh2 YWwgJiBFRFBfUFNSX0VOQUJMRSkpOwotCQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwgJiB+ RURQX1BTUl9FTkFCTEUpOworCQl2YWwgJj0gfkVEUF9QU1JfRU5BQkxFOworCQlJOTE1X1dSSVRF KEVEUF9QU1JfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIHZhbCk7CiAJfQogCWRldl9w cml2LT5wc3IuYWN0aXZlID0gZmFsc2U7CiB9CkBAIC04MTcsMTAgKzg0MiwxMCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK IAlpbnRlbF9wc3JfZXhpdChkZXZfcHJpdik7CiAKIAlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2Vu YWJsZWQpIHsKLQkJcHNyX3N0YXR1cyA9IEVEUF9QU1IyX1NUQVRVUzsKKwkJcHNyX3N0YXR1cyA9 IEVEUF9QU1IyX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwogCQlwc3Jfc3RhdHVz X21hc2sgPSBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFTSzsKIAl9IGVsc2UgewotCQlwc3Jfc3Rh dHVzID0gRURQX1BTUl9TVEFUVVM7CisJCXBzcl9zdGF0dXMgPSBFRFBfUFNSX1NUQVRVUyhkZXZf cHJpdi0+cHNyLnRyYW5zY29kZXIpOwogCQlwc3Jfc3RhdHVzX21hc2sgPSBFRFBfUFNSX1NUQVRV U19TVEFURV9NQVNLOwogCX0KIApAQCAtOTYzLDcgKzk4OCw4IEBAIGludCBpbnRlbF9wc3Jfd2Fp dF9mb3JfaWRsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUs CiAJICogZGVmZW5zaXZlIGVub3VnaCB0byBjb3ZlciBldmVyeXRoaW5nLgogCSAqLwogCi0JcmV0 dXJuIF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsIEVEUF9QU1Jf U1RBVFVTLAorCXJldHVybiBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5j b3JlLAorCQkJCQkgRURQX1BTUl9TVEFUVVMoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwKIAkJ CQkJIEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0ssCiAJCQkJCSBFRFBfUFNSX1NUQVRVU19TVEFU RV9JRExFLCAyLCA1MCwKIAkJCQkJIG91dF92YWx1ZSk7CkBAIC05NzksMTAgKzEwMDUsMTAgQEAg c3RhdGljIGJvb2wgX19wc3Jfd2FpdF9mb3JfaWRsZV9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAoZGV2X3ByaXYtPnBzci5w c3IyX2VuYWJsZWQpIHsKLQkJcmVnID0gRURQX1BTUjJfU1RBVFVTOworCQlyZWcgPSBFRFBfUFNS Ml9TVEFUVVMoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKTsKIAkJbWFzayA9IEVEUF9QU1IyX1NU QVRVU19TVEFURV9NQVNLOwogCX0gZWxzZSB7Ci0JCXJlZyA9IEVEUF9QU1JfU1RBVFVTOworCQly ZWcgPSBFRFBfUFNSX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwogCQltYXNrID0g RURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSzsKIAl9CiAKQEAgLTEyMDgsMzYgKzEyMzQsMjQgQEAg dm9pZCBpbnRlbF9wc3JfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog ICovCiB2b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKLQl1MzIgdmFsOwotCiAJaWYgKCFIQVNfUFNSKGRldl9wcml2KSkKIAkJcmV0dXJuOwog Ci0JZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgPSBJU19IQVNXRUxMKGRldl9wcml2KSA/Ci0JCUhT V19FRFBfUFNSX0JBU0UgOiBCRFdfRURQX1BTUl9CQVNFOwotCiAJaWYgKCFkZXZfcHJpdi0+cHNy LnNpbmtfc3VwcG9ydCkKIAkJcmV0dXJuOwogCisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQor CQkvKgorCQkgKiBIU1cgZG9uJ3QgaGF2ZSBQU1IgcmVnaXN0ZXJzIG9uIHRoZSBzYW1lIHNwYWNl IGFzIHRyYW5zY29kZXIKKwkJICogc28gc2V0IHRoaXMgdG8gYSB2YWx1ZSB0aGF0IHdoZW4gc3Vi dHJhY3QgdG8gdGhlIHJlZ2lzdGVyCisJCSAqIGluIHRyYW5zY29kZXIgc3BhY2UgcmVzdWx0cyBp biB0aGUgcmlnaHQgb2Zmc2V0IGZvciBIU1cKKwkJICovCisJCWRldl9wcml2LT5oc3dfcHNyX21t aW9fYWRqdXN0ID0gX1NSRF9DVExfRURQIC0gX0hTV19FRFBfUFNSX0JBU0U7CisKIAlpZiAoaTkx NV9tb2RwYXJhbXMuZW5hYmxlX3BzciA9PSAtMSkKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PCA5IHx8ICFkZXZfcHJpdi0+dmJ0LnBzci5lbmFibGUpCiAJCQlpOTE1X21vZHBhcmFtcy5lbmFi bGVfcHNyID0gMDsKIAotCS8qCi0JICogSWYgYSBQU1IgZXJyb3IgaGFwcGVuZWQgYW5kIHRoZSBk cml2ZXIgaXMgcmVsb2FkZWQsIHRoZSBFRFBfUFNSX0lJUgotCSAqIHdpbGwgc3RpbGwga2VlcCB0 aGUgZXJyb3Igc2V0IGV2ZW4gYWZ0ZXIgdGhlIHJlc2V0IGRvbmUgaW4gdGhlCi0JICogaXJxX3By ZWluc3RhbGwgYW5kIGlycV91bmluc3RhbGwgaG9va3MuCi0JICogQW5kIGVuYWJsaW5nIGluIHRo aXMgc2l0dWF0aW9uIGNhdXNlIHRoZSBzY3JlZW4gdG8gZnJlZXplIGluIHRoZQotCSAqIGZpcnN0 IHRpbWUgdGhhdCBQU1IgSFcgdHJpZXMgdG8gYWN0aXZhdGUgc28gbGV0cyBrZWVwIFBTUiBkaXNh YmxlZAotCSAqIHRvIGF2b2lkIGFueSByZW5kZXJpbmcgcHJvYmxlbXMuCi0JICovCi0JdmFsID0g STkxNV9SRUFEKEVEUF9QU1JfSUlSKTsKLQl2YWwgJj0gRURQX1BTUl9FUlJPUihlZHBfcHNyX3No aWZ0KFRSQU5TQ09ERVJfRURQKSk7Ci0JaWYgKHZhbCkgewotCQlEUk1fREVCVUdfS01TKCJQU1Ig aW50ZXJydXB0aW9uIGVycm9yIHNldFxuIik7Ci0JCWRldl9wcml2LT5wc3Iuc2lua19ub3RfcmVs aWFibGUgPSB0cnVlOwotCX0KLQogCS8qIFNldCBsaW5rX3N0YW5kYnkgeCBsaW5rX29mZiBkZWZh dWx0cyAqLwogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3By aXYpKQogCQkvKiBIU1cgYW5kIEJEVyByZXF1aXJlIHdvcmthcm91bmRzIHRoYXQgd2UgZG9uJ3Qg aW1wbGVtZW50LiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRs ZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMuYwppbmRleCAyNWY3ODE5 NmI5NjQuLjQ1YTkxMjRlNTNiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0 L2hhbmRsZXJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMKQEAg LTI3OTYsNyArMjc5Niw3IEBAIHN0YXRpYyBpbnQgaW5pdF9icm9hZHdlbGxfbW1pb19pbmZvKHN0 cnVjdCBpbnRlbF9ndnQgKmd2dCkKIAlNTUlPX0QoQ0hJQ0tFTl9QSVBFU0xfMShQSVBFX0MpLCBE X0JEV19QTFVTKTsKIAogCU1NSU9fRChXTV9NSVNDLCBEX0JEVyk7Ci0JTU1JT19EKF9NTUlPKEJE V19FRFBfUFNSX0JBU0UpLCBEX0JEVyk7CisJTU1JT19EKF9NTUlPKF9TUkRfQ1RMX0VEUCksIERf QkRXKTsKIAogCU1NSU9fRChfTU1JTygweDY2NzFjKSwgRF9CRFdfUExVUyk7CiAJTU1JT19EKF9N TUlPKDB4NjZjMDApLCBEX0JEV19QTFVTKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK aW5kZXggYjM5MjI2ZDdmOGQyLi42ZTQ4MjRkYWFmYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCkBAIC0yMTMyLDcgKzIxMzIsNyBAQCBwc3Jfc291cmNlX3N0YXR1cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHN0cnVjdCBzZXFfZmlsZSAqbSkKIAkJCSJCVUZf T04iLAogCQkJIlRHX09OIgogCQl9OwotCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfU1RBVFVT KTsKKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5z Y29kZXIpKTsKIAkJc3RhdHVzX3ZhbCA9ICh2YWwgJiBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFT SykgPj4KIAkJCSAgICAgIEVEUF9QU1IyX1NUQVRVU19TVEFURV9TSElGVDsKIAkJaWYgKHN0YXR1 c192YWwgPCBBUlJBWV9TSVpFKGxpdmVfc3RhdHVzKSkKQEAgLTIxNDgsNyArMjE0OCw3IEBAIHBz cl9zb3VyY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgc3RydWN0 IHNlcV9maWxlICptKQogCQkJIlNSRE9GRkFDSyIsCiAJCQkiU1JERU5UX09OIiwKIAkJfTsKLQkJ dmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfU1RBVFVTKTsKKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9Q U1JfU1RBVFVTKGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpOwogCQlzdGF0dXNfdmFsID0gKHZh bCAmIEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0spID4+CiAJCQkgICAgICBFRFBfUFNSX1NUQVRV U19TVEFURV9TSElGVDsKIAkJaWYgKHN0YXR1c192YWwgPCBBUlJBWV9TSVpFKGxpdmVfc3RhdHVz KSkKQEAgLTIxOTEsMTAgKzIxOTEsMTAgQEAgc3RhdGljIGludCBpOTE1X2VkcF9wc3Jfc3RhdHVz KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAkJZ290byB1bmxvY2s7CiAKIAlpZiAo cHNyLT5wc3IyX2VuYWJsZWQpIHsKLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCk7CisJ CXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7 CiAJCWVuYWJsZWQgPSB2YWwgJiBFRFBfUFNSMl9FTkFCTEU7CiAJfSBlbHNlIHsKLQkJdmFsID0g STkxNV9SRUFEKEVEUF9QU1JfQ1RMKTsKKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKGRl dl9wcml2LT5wc3IudHJhbnNjb2RlcikpOwogCQllbmFibGVkID0gdmFsICYgRURQX1BTUl9FTkFC TEU7CiAJfQogCXNlcV9wcmludGYobSwgIlNvdXJjZSBQU1IgY3RsOiAlcyBbMHglMDh4XVxuIiwK QEAgLTIyMDcsNyArMjIwNyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJICogU0tMKyBQZXJmIGNvdW50ZXIgaXMgcmVz ZXQgdG8gMCBldmVyeXRpbWUgREMgc3RhdGUgaXMgZW50ZXJlZAogCSAqLwogCWlmIChJU19IQVNX RUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Ci0JCXZhbCA9IEk5MTVf UkVBRChFRFBfUFNSX1BFUkZfQ05UKSAmIEVEUF9QU1JfUEVSRl9DTlRfTUFTSzsKKwkJdmFsID0g STkxNV9SRUFEKEVEUF9QU1JfUEVSRl9DTlQoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7CisJ CXZhbCAmPSBFRFBfUFNSX1BFUkZfQ05UX01BU0s7CiAJCXNlcV9wcmludGYobSwgIlBlcmZvcm1h bmNlIGNvdW50ZXI6ICV1XG4iLCB2YWwpOwogCX0KIApAQCAtMjIyNSw4ICsyMjI2LDExIEBAIHN0 YXRpYyBpbnQgaTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCiAJCSAqIFJlYWRpbmcgYWxsIDMgcmVnaXN0ZXJzIGJlZm9yZSBoYW5kIHRvIG1pbmltaXpl IGNyb3NzaW5nIGEKIAkJICogZnJhbWUgYm91bmRhcnkgYmV0d2VlbiByZWdpc3RlciByZWFkcwog CQkgKi8KLQkJZm9yIChmcmFtZSA9IDA7IGZyYW1lIDwgUFNSMl9TVV9TVEFUVVNfRlJBTUVTOyBm cmFtZSArPSAzKQotCQkJc3VfZnJhbWVzX3ZhbFtmcmFtZSAvIDNdID0gSTkxNV9SRUFEKFBTUjJf U1VfU1RBVFVTKGZyYW1lKSk7CisJCWZvciAoZnJhbWUgPSAwOyBmcmFtZSA8IFBTUjJfU1VfU1RB VFVTX0ZSQU1FUzsgZnJhbWUgKz0gMykgeworCQkJdmFsID0gSTkxNV9SRUFEKFBTUjJfU1VfU1RB VFVTKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciwKKwkJCQkJCSAgICAgICBmcmFtZSkpOworCQkJ c3VfZnJhbWVzX3ZhbFtmcmFtZSAvIDNdID0gdmFsOworCQl9CiAKIAkJc2VxX3B1dHMobSwgIkZy YW1lOlx0UFNSMiBTVSBibG9ja3M6XG4iKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXgg ZWIzMWMxNjU2Y2VhLi5iZTk5OTc5MWFiY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAt NDc5LDYgKzQ3OSw3IEBAIHN0cnVjdCBpOTE1X3BzciB7CiAJYm9vbCBlbmFibGVkOwogCXN0cnVj dCBpbnRlbF9kcCAqZHA7CiAJZW51bSBwaXBlIHBpcGU7CisJZW51bSB0cmFuc2NvZGVyIHRyYW5z Y29kZXI7CiAJYm9vbCBhY3RpdmU7CiAJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJdW5zaWdu ZWQgYnVzeV9mcm9udGJ1ZmZlcl9iaXRzOwpAQCAtMTMzMCwxMSArMTMzMSwxMSBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSB7CiAJICovCiAJdTMyIGdwaW9fbW1pb19iYXNlOwogCisJdTMyIGhz d19wc3JfbW1pb19hZGp1c3Q7CisKIAkvKiBNTUlPIGJhc2UgYWRkcmVzcyBmb3IgTUlQSSByZWdz ICovCiAJdTMyIG1pcGlfbW1pb19iYXNlOwogCi0JdTMyIHBzcl9tbWlvX2Jhc2U7Ci0KIAl1MzIg cHBzX21taW9fYmFzZTsKIAogCXdhaXRfcXVldWVfaGVhZF90IGdtYnVzX3dhaXRfcXVldWU7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAyYWJkMTk5MDkzYzUuLmEwOTJiMzRjMjY5ZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC00MTg2LDEwICs0MTg2LDE3IEBAIGVudW0gewogI2Rl ZmluZSBQSVBFU1JDKHRyYW5zKQkJX01NSU9fVFJBTlMyKHRyYW5zLCBfUElQRUFTUkMpCiAjZGVm aW5lIFBJUEVfTVVMVCh0cmFucykJX01NSU9fVFJBTlMyKHRyYW5zLCBfUElQRV9NVUxUX0EpCiAK LS8qIEhTVysgZURQIFBTUiByZWdpc3RlcnMgKi8KLSNkZWZpbmUgSFNXX0VEUF9QU1JfQkFTRQkw eDY0ODAwCi0jZGVmaW5lIEJEV19FRFBfUFNSX0JBU0UJMHg2ZjgwMAotI2RlZmluZSBFRFBfUFNS X0NUTAkJCQlfTU1JTyhkZXZfcHJpdi0+cHNyX21taW9fYmFzZSArIDApCisvKgorICogSFNXKyBl RFAgUFNSIHJlZ2lzdGVycworICoKKyAqIEhTVyBQU1IgcmVnaXN0ZXJzIGFyZSByZWxhdGl2ZSB0 byBERElBKF9ERElfQlVGX0NUTF9BICsgMHg4MDApIHdpdGgganVzdCBvbmUKKyAqIGluc3RhbmNl IG9mIGl0CisgKi8KKyNkZWZpbmUgX0hTV19FRFBfUFNSX0JBU0UJCQkweDY0ODAwCisjZGVmaW5l IF9TUkRfQ1RMX0EJCQkJMHg2MDgwMAorI2RlZmluZSBfU1JEX0NUTF9FRFAJCQkJMHg2ZjgwMAor I2RlZmluZSBfUFNSX0FESih0cmFuLCByZWcpCQkJKF9UUkFOUzIodHJhbiwgcmVnKSAtIGRldl9w cml2LT5oc3dfcHNyX21taW9fYWRqdXN0KQorI2RlZmluZSBFRFBfUFNSX0NUTCh0cmFuKQkJCV9N TUlPKF9QU1JfQURKKHRyYW4sIF9TUkRfQ1RMX0EpKQogI2RlZmluZSAgIEVEUF9QU1JfRU5BQkxF CQkJKDEgPDwgMzEpCiAjZGVmaW5lICAgQkRXX1BTUl9TSU5HTEVfRlJBTUUJCQkoMSA8PCAzMCkK ICNkZWZpbmUgICBFRFBfUFNSX1JFU1RPUkVfUFNSX0FDVElWRV9DVFhfTUFTSwkoMSA8PCAyOSkg LyogU1cgY2FuJ3QgbW9kaWZ5ICovCkBAIC00MjI2LDE2ICs0MjMzLDIyIEBAIGVudW0gewogI2Rl ZmluZSAgIEVEUF9QU1JfVFJBTlNDT0RFUl9BX1NISUZUCQk4CiAjZGVmaW5lICAgRURQX1BTUl9U UkFOU0NPREVSX0VEUF9TSElGVAkJMAogCi0jZGVmaW5lIEVEUF9QU1JfQVVYX0NUTAkJCQlfTU1J TyhkZXZfcHJpdi0+cHNyX21taW9fYmFzZSArIDB4MTApCisjZGVmaW5lIF9TUkRfQVVYX0NUTF9B CQkJCTB4NjA4MTAKKyNkZWZpbmUgX1NSRF9BVVhfQ1RMX0VEUAkJCTB4NmY4MTAKKyNkZWZpbmUg RURQX1BTUl9BVVhfQ1RMKHRyYW4pCQkJX01NSU8oX1BTUl9BREoodHJhbiwgX1NSRF9BVVhfQ1RM X0EpKQogI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9USU1FX09VVF9NQVNLCQkoMyA8PCAyNikK ICNkZWZpbmUgICBFRFBfUFNSX0FVWF9DVExfTUVTU0FHRV9TSVpFX01BU0sJKDB4MWYgPDwgMjAp CiAjZGVmaW5lICAgRURQX1BTUl9BVVhfQ1RMX1BSRUNIQVJHRV8yVVNfTUFTSwkoMHhmIDw8IDE2 KQogI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9FUlJPUl9JTlRFUlJVUFQJKDEgPDwgMTEpCiAj ZGVmaW5lICAgRURQX1BTUl9BVVhfQ1RMX0JJVF9DTE9DS18yWF9NQVNLCSgweDdmZikKIAotI2Rl ZmluZSBFRFBfUFNSX0FVWF9EQVRBKGkpCQkJX01NSU8oZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2Ug KyAweDE0ICsgKGkpICogNCkgLyogNSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgX1NSRF9BVVhfREFU QV9BCQkJCTB4NjA4MTQKKyNkZWZpbmUgX1NSRF9BVVhfREFUQV9FRFAJCQkweDZmODE0CisjZGVm aW5lIEVEUF9QU1JfQVVYX0RBVEEodHJhbiwgaSkJCV9NTUlPKF9QU1JfQURKKHRyYW4sIF9TUkRf QVVYX0RBVEFfQSkgKyAoaSkgKyA0KSAvKiA1IHJlZ2lzdGVycyAqLwogCi0jZGVmaW5lIEVEUF9Q U1JfU1RBVFVTCQkJCV9NTUlPKGRldl9wcml2LT5wc3JfbW1pb19iYXNlICsgMHg0MCkKKyNkZWZp bmUgX1NSRF9TVEFUVVNfQQkJCQkweDYwODQwCisjZGVmaW5lIF9TUkRfU1RBVFVTX0VEUAkJCQkw eDZmODQwCisjZGVmaW5lIEVEUF9QU1JfU1RBVFVTKHRyYW4pCQkJX01NSU8oX1BTUl9BREoodHJh biwgX1NSRF9TVEFUVVNfQSkpCiAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSwkJ KDcgPDwgMjkpCiAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfU1RBVEVfU0hJRlQJCTI5CiAjZGVm aW5lICAgRURQX1BTUl9TVEFUVVNfU1RBVEVfSURMRQkJKDAgPDwgMjkpCkBAIC00MjYwLDEwICs0 MjczLDE1IEBAIGVudW0gewogI2RlZmluZSAgIEVEUF9QU1JfU1RBVFVTX1NFTkRJTkdfVFAxCQko MSA8PCA0KQogI2RlZmluZSAgIEVEUF9QU1JfU1RBVFVTX0lETEVfTUFTSwkJMHhmCiAKLSNkZWZp bmUgRURQX1BTUl9QRVJGX0NOVAkJX01NSU8oZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgKyAweDQ0 KQorI2RlZmluZSBfU1JEX1BFUkZfQ05UX0EJCQkweDYwODQ0CisjZGVmaW5lIF9TUkRfUEVSRl9D TlRfRURQCQkweDZmODQ0CisjZGVmaW5lIEVEUF9QU1JfUEVSRl9DTlQodHJhbikJCV9NTUlPKF9Q U1JfQURKKHRyYW4sIF9TUkRfUEVSRl9DTlRfQSkpCiAjZGVmaW5lICAgRURQX1BTUl9QRVJGX0NO VF9NQVNLCQkweGZmZmZmZgogCi0jZGVmaW5lIEVEUF9QU1JfREVCVUcJCQkJX01NSU8oZGV2X3By aXYtPnBzcl9tbWlvX2Jhc2UgKyAweDYwKSAvKiBQU1JfTUFTSyBvbiBTS0wrICovCisvKiBQU1Jf TUFTSyBvbiBTS0wrICovCisjZGVmaW5lIF9TUkRfREVCVUdfQQkJCQkweDYwODYwCisjZGVmaW5l IF9TUkRfREVCVUdfRURQCQkJCTB4NmY4NjAKKyNkZWZpbmUgRURQX1BTUl9ERUJVRyh0cmFuKQkJ CV9NTUlPKF9QU1JfQURKKHRyYW4sIF9TUkRfREVCVUdfQSkpCiAjZGVmaW5lICAgRURQX1BTUl9E RUJVR19NQVNLX01BWF9TTEVFUCAgICAgICAgICgxIDw8IDI4KQogI2RlZmluZSAgIEVEUF9QU1Jf REVCVUdfTUFTS19MUFNQICAgICAgICAgICAgICAoMSA8PCAyNykKICNkZWZpbmUgICBFRFBfUFNS X0RFQlVHX01BU0tfTUVNVVAgICAgICAgICAgICAgKDEgPDwgMjYpCkBAIC00MjcxLDcgKzQyODks OSBAQCBlbnVtIHsKICNkZWZpbmUgICBFRFBfUFNSX0RFQlVHX01BU0tfRElTUF9SRUdfV1JJVEUg ICAgKDEgPDwgMTYpIC8qIFJlc2VydmVkIGluIElDTCsgKi8KICNkZWZpbmUgICBFRFBfUFNSX0RF QlVHX0VYSVRfT05fUElYRUxfVU5ERVJSVU4gKDEgPDwgMTUpIC8qIFNLTCsgKi8KIAotI2RlZmlu ZSBFRFBfUFNSMl9DVEwJCQlfTU1JTygweDZmOTAwKQorI2RlZmluZSBfUFNSMl9DVExfQQkJCTB4 NjA5MDAKKyNkZWZpbmUgX1BTUjJfQ1RMX0VEUAkJCTB4NmY5MDAKKyNkZWZpbmUgRURQX1BTUjJf Q1RMKHRyYW4pCQlfTU1JT19UUkFOUzIodHJhbiwgX1BTUjJfQ1RMX0EpCiAjZGVmaW5lICAgRURQ X1BTUjJfRU5BQkxFCQkoMSA8PCAzMSkKICNkZWZpbmUgICBFRFBfU1VfVFJBQ0tfRU5BQkxFCQko MSA8PCAzMCkKICNkZWZpbmUgICBFRFBfWV9DT09SRElOQVRFX1ZBTElECSgxIDw8IDI2KSAvKiBH TEsgYW5kIENOTCsgKi8KQEAgLTQyOTMsOCArNDMxMyw4IEBAIGVudW0gewogI2RlZmluZSBfUFNS X0VWRU5UX1RSQU5TX0IJCQkweDYxODQ4CiAjZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfQwkJCTB4 NjI4NDgKICNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19ECQkJMHg2Mzg0OAotI2RlZmluZSBfUFNS X0VWRU5UX1RSQU5TX0VEUAkJCTB4NkY4NDgKLSNkZWZpbmUgUFNSX0VWRU5UKHRyYW5zKQkJCV9N TUlPX1RSQU5TMih0cmFucywgX1BTUl9FVkVOVF9UUkFOU19BKQorI2RlZmluZSBfUFNSX0VWRU5U X1RSQU5TX0VEUAkJCTB4NmY4NDgKKyNkZWZpbmUgUFNSX0VWRU5UKHRyYW4pCQkJCV9NTUlPX1RS QU5TMih0cmFuLCBfUFNSX0VWRU5UX1RSQU5TX0EpCiAjZGVmaW5lICBQU1JfRVZFTlRfUFNSMl9X RF9USU1FUl9FWFBJUkUJCSgxIDw8IDE3KQogI2RlZmluZSAgUFNSX0VWRU5UX1BTUjJfRElTQUJM RUQJCSgxIDw8IDE2KQogI2RlZmluZSAgUFNSX0VWRU5UX1NVX0RJUlRZX0ZJRk9fVU5ERVJSVU4J KDEgPDwgMTUpCkBAIC00MzEyLDE1ICs0MzMyLDE2IEBAIGVudW0gewogI2RlZmluZSAgUFNSX0VW RU5UX0xQU1BfTU9ERV9FWElUCQkoMSA8PCAxKQogI2RlZmluZSAgUFNSX0VWRU5UX1BTUl9ESVNB QkxFCQkJKDEgPDwgMCkKIAotI2RlZmluZSBFRFBfUFNSMl9TVEFUVVMJCQlfTU1JTygweDZmOTQw KQorI2RlZmluZSBfUFNSMl9TVEFUVVNfQQkJCTB4NjA5NDAKKyNkZWZpbmUgX1BTUjJfU1RBVFVT X0VEUAkJMHg2Zjk0MAorI2RlZmluZSBFRFBfUFNSMl9TVEFUVVModHJhbikJCV9NTUlPX1RSQU5T Mih0cmFuLCBfUFNSMl9TVEFUVVNfQSkKICNkZWZpbmUgRURQX1BTUjJfU1RBVFVTX1NUQVRFX01B U0sgICAgICgweGYgPDwgMjgpCiAjZGVmaW5lIEVEUF9QU1IyX1NUQVRVU19TVEFURV9TSElGVCAg ICAyOAogCi0jZGVmaW5lIF9QU1IyX1NVX1NUQVRVU18wCQkweDZGOTE0Ci0jZGVmaW5lIF9QU1Iy X1NVX1NUQVRVU18xCQkweDZGOTE4Ci0jZGVmaW5lIF9QU1IyX1NVX1NUQVRVU18yCQkweDZGOTFD Ci0jZGVmaW5lIF9QU1IyX1NVX1NUQVRVUyhpbmRleCkJCV9NTUlPKF9QSUNLX0VWRU4oKGluZGV4 KSwgX1BTUjJfU1VfU1RBVFVTXzAsIF9QU1IyX1NVX1NUQVRVU18xKSkKLSNkZWZpbmUgUFNSMl9T VV9TVEFUVVMoZnJhbWUpCQkoX1BTUjJfU1VfU1RBVFVTKChmcmFtZSkgLyAzKSkKKyNkZWZpbmUg X1BTUjJfU1VfU1RBVFVTX0EJCTB4NjA5MTQKKyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTX0VEUAkJ MHg2ZjkxNAorI2RlZmluZSBfUFNSMl9TVV9TVEFUVVModHJhbiwgaW5kZXgpCV9NTUlPKF9UUkFO UzIodHJhbiwgX1BTUjJfU1VfU1RBVFVTX0EpICsgKGluZGV4KSAqIDQpCisjZGVmaW5lIFBTUjJf U1VfU1RBVFVTKHRyYW4sIGZyYW1lKQkoX1BTUjJfU1VfU1RBVFVTKHRyYW4sIChmcmFtZSkgLyAz KSkKICNkZWZpbmUgUFNSMl9TVV9TVEFUVVNfU0hJRlQoZnJhbWUpCSgoKGZyYW1lKSAlIDMpICog MTApCiAjZGVmaW5lIFBTUjJfU1VfU1RBVFVTX01BU0soZnJhbWUpCSgweDNmZiA8PCBQU1IyX1NV X1NUQVRVU19TSElGVChmcmFtZSkpCiAjZGVmaW5lIFBTUjJfU1VfU1RBVFVTX0ZSQU1FUwkJOAot LSAKMi4yMi4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=