From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/3] drm/i915: Fix frame start delay programming Date: Fri, 15 Nov 2019 19:19:23 +0200 Message-ID: <20191115171923.GH1208@intel.com> References: <20191024122138.25065-1-ville.syrjala@linux.intel.com> <20191024122138.25065-3-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F2EA6E78E for ; Fri, 15 Nov 2019 17:19:27 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMTUsIDIwMTkgYXQgMDQ6MDg6NDVQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBJbnRlbC1n ZnggPGludGVsLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmIE9m IFZpbGxlIFN5cmphbGEKPiA+U2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjQsIDIwMTkgNTo1MiBQ TQo+ID5UbzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID5TdWJqZWN0OiBbSW50 ZWwtZ2Z4XSBbUEFUQ0ggMy8zXSBkcm0vaTkxNTogRml4IGZyYW1lIHN0YXJ0IGRlbGF5IHByb2dy YW1taW5nCj4gPgo+ID5Gcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+ID4KPiA+Q3VycmVudGx5IHdlJ3JlIGJsaW5kbHkgcG9raW5nIGF0IHRoZSBm cmFtZSBzdGFydCBkZWxheSBiaXRzIGluIFBJUEVDT05GIHdoZW4gdHJ5aW5nIHRvCj4gPnNhbml0 aXplIHRoZSBoYXJkd2FyZSBzdGF0ZS4gVGhvc2UgYml0cyBkZWNpZGVkIHRvIG1vdmUgZWxzZXdo ZXJlIG9uIEhTVywgc28gb24KPiA+bWFueSBwbGF0Zm9ybXMgd2UncmUgbm90IGRvaW5nIGFueXRo aW5nIGF0IGFsbCBoZXJlLiBBbHNvIHdlJ3JlIGZvcmdldHRpbmcgYWJvdXQgdGhlCj4gPlBDSCB0 cmFuc2NvZGVyIGVudGlyZWx5Lgo+ID4KPiA+QWRkIGFsbCB0aGUgYml0IGRlZmluaXRpb25zIGZv ciB0aGUgdmFyaW91cyBob21lcyB0aGVzZSBiaXRzIGhhdmUgaGFkIHRocm91Z2hvdXQgdGhlCj4g PnllYXJzLCBhbmQgcmVzZXQgdGhlbSBhbGwgdG8gemVyby4KPiA+Cj4gPkhvd2V2ZXIgSSdtIG5v dCBlbnRpcmVseSBzdXJlIHRoaXMgaXMgYSBzYWZlIHRoaW5nIHRvIGRvLiBJZiBub3QgSSBndWVz cyB3ZSdkIHdhbnQgZnVsbAo+ID5yZWFkb3V0K3N0YXRlY2hlY2sgZm9yIHRoaXMgc3R1ZmYuCj4g PkZvciBub3cgbGV0J3Mgc3RpY2sgdG8gdGhlIGN1cnJlbnQgbG9naWMgYW5kIGhvcGUgZm9yIHRo ZSBiZXN0Lgo+ID4KPiA+U2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+LS0tCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYyB8IDEwMSArKysrKysrKysrKysrKysrLS0tCj4gPiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICB8ICAxMiArKy0KPiA+IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgIHwgICAxIC0KPiA+IDMgZmls ZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gPgo+ID5kaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID5pbmRleCA1 Nzk2NTU2NzViMDguLjI4OTZjZjg2NGY2MSAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+QEAgLTE2NDUsMTEgKzE2NDUsMTYgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2NvZGVyKGNvbnN0IHN0cnVjdAo+ID5p bnRlbF9jcnRjX3N0YXRlICpjcnRjX3MKPiA+IAlhc3NlcnRfZmRpX3J4X2VuYWJsZWQoZGV2X3By aXYsIHBpcGUpOwo+ID4KPiA+IAlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7Cj4gPi0JCS8q IFdvcmthcm91bmQ6IFNldCB0aGUgdGltaW5nIG92ZXJyaWRlIGJpdCBiZWZvcmUgZW5hYmxpbmcg dGhlCj4gPi0JCSAqIHBjaCB0cmFuc2NvZGVyLiAqLwo+ID4gCQlyZWcgPSBUUkFOU19DSElDS0VO MihwaXBlKTsKPiA+IAkJdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gPisJCS8qCj4gPisJCSAqIFdv cmthcm91bmQ6IFNldCB0aGUgdGltaW5nIG92ZXJyaWRlIGJpdAo+ID4rCQkgKiBiZWZvcmUgZW5h YmxpbmcgdGhlIHBjaCB0cmFuc2NvZGVyLgo+ID4rCQkgKi8KPiA+IAkJdmFsIHw9IFRSQU5TX0NI SUNLRU4yX1RJTUlOR19PVkVSUklERTsKPiA+KwkJLyogQ29uZmlndXJlIGZyYW1lIHN0YXJ0IGRl bGF5IHRvIG1hdGNoIHRoZSBDUFUgKi8KPiA+KwkJdmFsICY9IH5UUkFOU19DSElDS0VOMl9GUkFN RV9TVEFSVF9ERUxBWV9NQVNLOwo+ID4rCQl2YWwgfD0gVFJBTlNfQ0hJQ0tFTjJfRlJBTUVfU1RB UlRfREVMQVkoMCk7Cj4gPiAJCUk5MTVfV1JJVEUocmVnLCB2YWwpOwo+ID4gCX0KPiA+Cj4gPkBA IC0xNjU4LDYgKzE2NjMsMTAgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFu c2NvZGVyKGNvbnN0IHN0cnVjdAo+ID5pbnRlbF9jcnRjX3N0YXRlICpjcnRjX3MKPiA+IAlwaXBl Y29uZl92YWwgPSBJOTE1X1JFQUQoUElQRUNPTkYocGlwZSkpOwo+ID4KPiA+IAlpZiAoSEFTX1BD SF9JQlgoZGV2X3ByaXYpKSB7Cj4gPisJCS8qIENvbmZpZ3VyZSBmcmFtZSBzdGFydCBkZWxheSB0 byBtYXRjaCB0aGUgQ1BVICovCj4gPisJCXZhbCAmPSB+VFJBTlNfRlJBTUVfU1RBUlRfREVMQVlf TUFTSzsKPiA+KwkJdmFsIHw9IFRSQU5TX0ZSQU1FX1NUQVJUX0RFTEFZKDApOwo+ID4rCj4gPiAJ CS8qCj4gPiAJCSAqIE1ha2UgdGhlIEJQQyBpbiB0cmFuc2NvZGVyIGJlIGNvbnNpc3RlbnQgd2l0 aAo+ID4gCQkgKiB0aGF0IGluIHBpcGVjb25mIHJlZy4gRm9yIEhETUkgd2UgbXVzdCB1c2UgOGJw YyBAQCAtMTY5NSw5Cj4gPisxNzA0LDEyIEBAIHN0YXRpYyB2b2lkIGxwdF9lbmFibGVfcGNoX3Ry YW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+KmRldl9wcml2LAo+ID4gCWFzc2Vy dF9mZGlfdHhfZW5hYmxlZChkZXZfcHJpdiwgKGVudW0gcGlwZSkgY3B1X3RyYW5zY29kZXIpOwo+ ID4gCWFzc2VydF9mZGlfcnhfZW5hYmxlZChkZXZfcHJpdiwgUElQRV9BKTsKPiA+Cj4gPisJdmFs ID0gSTkxNV9SRUFEKFRSQU5TX0NISUNLRU4yKFBJUEVfQSkpOwo+ID4gCS8qIFdvcmthcm91bmQ6 IHNldCB0aW1pbmcgb3ZlcnJpZGUgYml0LiAqLwo+ID4tCXZhbCA9IEk5MTVfUkVBRChUUkFOU19D SElDS0VOMihQSVBFX0EpKTsKPiA+IAl2YWwgfD0gVFJBTlNfQ0hJQ0tFTjJfVElNSU5HX09WRVJS SURFOwo+ID4rCS8qIENvbmZpZ3VyZSBmcmFtZSBzdGFydCBkZWxheSB0byBtYXRjaCB0aGUgQ1BV ICovCj4gPisJdmFsICY9IH5UUkFOU19DSElDS0VOMl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLOwo+ ID4rCXZhbCB8PSBUUkFOU19DSElDS0VOMl9GUkFNRV9TVEFSVF9ERUxBWSgwKTsKPiA+IAlJOTE1 X1dSSVRFKFRSQU5TX0NISUNLRU4yKFBJUEVfQSksIHZhbCk7Cj4gPgo+ID4gCXZhbCA9IFRSQU5T X0VOQUJMRTsKPiA+QEAgLTY0NTIsNiArNjQ2NCwxOSBAQCBzdGF0aWMgdm9pZCBpY2xfcGlwZV9t YnVzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+IAlJOTE1X1dSSVRFKFBJUEVf TUJVU19EQk9YX0NUTChwaXBlKSwgdmFsKTsgIH0KPiA+Cj4gPitzdGF0aWMgdm9pZCBoc3dfc2V0 X2ZyYW1lX3N0YXJ0X2RlbGF5KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPisqY3J0 Y19zdGF0ZSkgewo+ID4rCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4rCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4rCWk5MTVfcmVnX3QgcmVnID0gQ0hJ Q0tFTl9UUkFOUyhjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7Cj4gPisJdTMyIHZhbDsKPiA+ Kwo+ID4rCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ID4rCXZhbCAmPSB+SFNXX0ZSQU1FX1NUQVJU X0RFTEFZX01BU0s7Cj4gPisJdmFsIHw9IEhTV19GUkFNRV9TVEFSVF9ERUxBWSgwKTsKPiA+KwlJ OTE1X1dSSVRFKHJlZywgdmFsKTsKPiA+K30KPiA+Kwo+ID4gc3RhdGljIHZvaWQgaGFzd2VsbF9j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiAJCQkJ c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiB7Cj4gPkBAIC02NDk0LDggKzY1 MTksMTAgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZQo+ID4qcGlwZV9jb25maWcsCj4gPiAJCQkJCSAgICAgJnBpcGVfY29uZmlnLT5mZGlf bV9uLCBOVUxMKTsKPiA+IAl9Cj4gPgo+ID4tCWlmICghdHJhbnNjb2Rlcl9pc19kc2koY3B1X3Ry YW5zY29kZXIpKQo+ID4rCWlmICghdHJhbnNjb2Rlcl9pc19kc2koY3B1X3RyYW5zY29kZXIpKSB7 Cj4gPisJCWhzd19zZXRfZnJhbWVfc3RhcnRfZGVsYXkocGlwZV9jb25maWcpOwo+ID4gCQloYXN3 ZWxsX3NldF9waXBlY29uZihwaXBlX2NvbmZpZyk7Cj4gPisJfQo+ID4KPiA+IAlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gPiAJCWJkd19z ZXRfcGlwZW1pc2MocGlwZV9jb25maWcpOwo+ID5AQCAtODM5NCw2ICs4NDIxLDggQEAgc3RhdGlj IHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+ KmNydGNfc3RhdGUpCj4gPgo+ID4gCXBpcGVjb25mIHw9IFBJUEVDT05GX0dBTU1BX01PREUoY3J0 Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPgo+ID4rCXBpcGVjb25mIHw9IFBJUEVDT05GX0ZSQU1F X1NUQVJUX0RFTEFZKDApOwo+ID4rCj4gPiAJSTkxNV9XUklURShQSVBFQ09ORihjcnRjLT5waXBl KSwgcGlwZWNvbmYpOwo+ID4gCVBPU1RJTkdfUkVBRChQSVBFQ09ORihjcnRjLT5waXBlKSk7Cj4g PiB9Cj4gPkBAIC05NDc0LDYgKzk1MDMsOCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlw ZWNvbmYoY29uc3Qgc3RydWN0Cj4gPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPgo+ ID4gCXZhbCB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNfc3RhdGUtPmdhbW1hX21vZGUpOwo+ ID4KPiA+Kwl2YWwgfD0gUElQRUNPTkZfRlJBTUVfU1RBUlRfREVMQVkoMCk7Cj4gPisKPiA+IAlJ OTE1X1dSSVRFKFBJUEVDT05GKHBpcGUpLCB2YWwpOwo+ID4gCVBPU1RJTkdfUkVBRChQSVBFQ09O RihwaXBlKSk7Cj4gPiB9Cj4gPkBAIC0xNjkxOSwyNSArMTY5NTAsNjkgQEAgc3RhdGljIGJvb2wg aGFzX3BjaF90cmFuY29kZXIoc3RydWN0Cj4gPmRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gCQkoSEFTX1BDSF9MUFRfSChkZXZfcHJpdikgJiYgcGNoX3RyYW5zY29kZXIgPT0gUElQRV9B KTsgIH0KPiA+Cj4gPitzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9mcmFtZV9zdGFydF9kZWxh eShjb25zdCBzdHJ1Y3QKPiA+K2ludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpIHsKPiA+Kwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKPiA+KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKPiA+KwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRj X3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiA+Kwo+ID4rCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkgfHwKPiA+KwkgICAgSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19IQVNXRUxMKGRl dl9wcml2KSkgewo+ID4rCQlpOTE1X3JlZ190IHJlZyA9IENISUNLRU5fVFJBTlMoY3B1X3RyYW5z Y29kZXIpOwo+ID4rCQl1MzIgdmFsOwo+ID4rCj4gPisJCWlmICh0cmFuc2NvZGVyX2lzX2RzaShj cHVfdHJhbnNjb2RlcikpCj4gPisJCQlyZXR1cm47Cj4gPisKPiA+KwkJdmFsID0gSTkxNV9SRUFE KHJlZyk7Cj4gPisJCXZhbCAmPSB+SFNXX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0s7Cj4gPisJCXZh bCB8PSBIU1dfRlJBTUVfU1RBUlRfREVMQVkoMCk7Cj4gPisJCUk5MTVfV1JJVEUocmVnLCB2YWwp Owo+ID4rCX0gZWxzZSB7Cj4gPisJCWk5MTVfcmVnX3QgcmVnID0gUElQRUNPTkYoY3B1X3RyYW5z Y29kZXIpOwo+ID4rCQl1MzIgdmFsOwo+ID4rCj4gPisJCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ ID4rCQl2YWwgJj0gflBJUEVDT05GX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0s7Cj4gPisJCXZhbCB8 PSBQSVBFQ09ORl9GUkFNRV9TVEFSVF9ERUxBWSgwKTsKPiA+KwkJSTkxNV9XUklURShyZWcsIHZh bCk7Cj4gPisJfQo+ID4rCj4gPisJaWYgKCFjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4g PisJCXJldHVybjsKPiA+Kwo+ID4rCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpIHsKPiA+KwkJ aTkxNV9yZWdfdCByZWcgPSBQQ0hfVFJBTlNDT05GKGNydGMtPnBpcGUpOwo+ID4rCQl1MzIgdmFs Owo+ID4rCj4gPisJCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ID4rCQl2YWwgJj0gflRSQU5TX0ZS QU1FX1NUQVJUX0RFTEFZX01BU0s7Cj4gPisJCXZhbCB8PSBUUkFOU19GUkFNRV9TVEFSVF9ERUxB WSgwKTsKPiA+KwkJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gPisJfSBlbHNlIHsKPiA+KwkJaTkx NV9yZWdfdCByZWcgPSBUUkFOU19DSElDS0VOMihjcnRjLT5waXBlKTsKPiA+KwkJdTMyIHZhbDsK PiA+Kwo+ID4rCQl2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiA+KwkJdmFsICY9IH5UUkFOU19DSElD S0VOMl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLOwo+ID4rCQl2YWwgfD0gVFJBTlNfQ0hJQ0tFTjJf RlJBTUVfU1RBUlRfREVMQVkoMCk7Cj4gPisJCUk5MTVfV1JJVEUocmVnLCB2YWwpOwo+ID4rCX0K PiA+K30KPiA+Kwo+ID4gc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiA+IAkJCQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0 eCkgIHsKPiA+IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gPiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShj cnRjLT5iYXNlLnN0YXRlKTsKPiA+LQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBj cnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiA+LQo+ID4tCS8qIENsZWFyIGFueSBmcmFtZSBz dGFydCBkZWxheXMgdXNlZCBmb3IgZGVidWdnaW5nIGxlZnQgYnkgdGhlIEJJT1MgKi8KPiA+LQlp ZiAoY3J0Yy0+YWN0aXZlICYmICF0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpIHsK PiA+LQkJaTkxNV9yZWdfdCByZWcgPSBQSVBFQ09ORihjcHVfdHJhbnNjb2Rlcik7Cj4gPi0KPiA+ LQkJSTkxNV9XUklURShyZWcsCj4gPi0JCQkgICBJOTE1X1JFQUQocmVnKSAmCj4gPn5QSVBFQ09O Rl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLKTsKPiA+LQl9Cj4gPgo+ID4gCWlmIChjcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSkgewo+ID4gCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ID4KPiA+ KwkJLyogQ2xlYXIgYW55IGZyYW1lIHN0YXJ0IGRlbGF5cyB1c2VkIGZvciBkZWJ1Z2dpbmcgbGVm dCBieSB0aGUgQklPUyAqLwo+ID4rCQlpbnRlbF9zYW5pdGl6ZV9mcmFtZV9zdGFydF9kZWxheShj cnRjX3N0YXRlKTsKPiA+Kwo+ID4gCQkvKiBEaXNhYmxlIGV2ZXJ5dGhpbmcgYnV0IHRoZSBwcmlt YXJ5IHBsYW5lICovCj4gPiAJCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRj LCBwbGFuZSkgewo+ID4gCQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSA9IGRpZmYgLS1naXQKPiA+YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBpbmRleAo+ID41MGMyZmEwZjJjYWIuLmNi MmUwZjQ2NzljNCAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPkBAIC01NjcxLDcg KzU2NzEsOCBAQCBlbnVtIHsKPiA+ICNkZWZpbmUgICBQSVBFQ09ORl9ET1VCTEVfV0lERQkoMSA8 PCAzMCkKPiA+ICNkZWZpbmUgICBJOTY1X1BJUEVDT05GX0FDVElWRQkoMSA8PCAzMCkKPiA+ICNk ZWZpbmUgICBQSVBFQ09ORl9EU0lfUExMX0xPQ0tFRAkoMSA8PCAyOSkgLyogdmx2ICYgcGlwZSBB IG9ubHkgKi8KPiA+LSNkZWZpbmUgICBQSVBFQ09ORl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLICgz IDw8IDI3KQo+ID4rI2RlZmluZSAgIFBJUEVDT05GX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0sJKDMg PDwgMjcpIC8qIHByZS1oc3cgKi8KPiA+KyNkZWZpbmUgICBQSVBFQ09ORl9GUkFNRV9TVEFSVF9E RUxBWSh4KQkJKCh4KSA8PCAyNykgLyogcHJlLWhzdzogMC0zCj4gPiovCj4gPiAjZGVmaW5lICAg UElQRUNPTkZfU0lOR0xFX1dJREUJMAo+ID4gI2RlZmluZSAgIFBJUEVDT05GX1BJUEVfVU5MT0NL RUQgMAo+ID4gI2RlZmluZSAgIFBJUEVDT05GX1BJUEVfTE9DS0VECSgxIDw8IDI1KQo+ID5AQCAt NzYyNyw2ICs3NjI4LDggQEAgZW51bSB7Cj4gPiAJCQkJCSAgICBbVFJBTlNDT0RFUl9CXSA9IF9D SElDS0VOX1RSQU5TX0IsCj4gPlwKPiA+IAkJCQkJICAgIFtUUkFOU0NPREVSX0NdID0gX0NISUNL RU5fVFJBTlNfQywKPiA+XAo+ID4gCQkJCQkgICAgW1RSQU5TQ09ERVJfRF0gPQo+ID5fQ0hJQ0tF Tl9UUkFOU19EKSkKPiA+KyNkZWZpbmUgIEhTV19GUkFNRV9TVEFSVF9ERUxBWV9NQVNLCSgzIDw8 IDI3KQo+ID4rI2RlZmluZSAgSFNXX0ZSQU1FX1NUQVJUX0RFTEFZKHgpCSgoeCkgPDwgMjcpIC8q IDAtMyAqLwo+ID4gI2RlZmluZSAgVlNDX0RBVEFfU0VMX1NPRlRXQVJFX0NPTlRST0wJKDEgPDwg MjUpIC8qIEdMSyBhbmQgQ05MKyAqLwo+ID4gI2RlZmluZSAgRERJX1RSQUlOSU5HX09WRVJSSURF X0VOQUJMRQkoMSA8PCAxOSkKPiA+ICNkZWZpbmUgIERESV9UUkFJTklOR19PVkVSUklERV9WQUxV RQkoMSA8PCAxOCkKPiA+QEAgLTgzNDEsMTAgKzgzNDQsOCBAQCBlbnVtIHsKPiA+ICNkZWZpbmUg IFRSQU5TX1NUQVRFX01BU0sgICAgICAgKDEgPDwgMzApCj4gPiAjZGVmaW5lICBUUkFOU19TVEFU RV9ESVNBQkxFICAgICgwIDw8IDMwKQo+ID4gI2RlZmluZSAgVFJBTlNfU1RBVEVfRU5BQkxFICAg ICAoMSA8PCAzMCkKPiA+LSNkZWZpbmUgIFRSQU5TX0ZTWU5DX0RFTEFZX0hCMSAgKDAgPDwgMjcp IC0jZGVmaW5lICBUUkFOU19GU1lOQ19ERUxBWV9IQjIKPiA+KDEgPDwgMjcpIC0jZGVmaW5lICBU UkFOU19GU1lOQ19ERUxBWV9IQjMgICgyIDw8IDI3KSAtI2RlZmluZQo+ID5UUkFOU19GU1lOQ19E RUxBWV9IQjQgICgzIDw8IDI3KQo+ID4rI2RlZmluZSAgVFJBTlNfRlJBTUVfU1RBUlRfREVMQVlf TUFTSwkoMyA8PCAyNykgLyogaWJ4ICovCj4gPisjZGVmaW5lICBUUkFOU19GUkFNRV9TVEFSVF9E RUxBWSh4KQkoKHgpIDw8IDI3KSAvKiBpYng6IDAtMyAqLwo+ID4gI2RlZmluZSAgVFJBTlNfSU5U RVJMQUNFX01BU0sgICAoNyA8PCAyMSkKPiA+ICNkZWZpbmUgIFRSQU5TX1BST0dSRVNTSVZFICAg ICAgKDAgPDwgMjEpCj4gPiAjZGVmaW5lICBUUkFOU19JTlRFUkxBQ0VEICAgICAgICgzIDw8IDIx KQo+ID5AQCAtODM2NSw2ICs4MzY2LDcgQEAgZW51bSB7Cj4gPiAjZGVmaW5lICBUUkFOU19DSElD S0VOMl9USU1JTkdfT1ZFUlJJREUJCQkoMSA8PCAzMSkKPiA+ICNkZWZpbmUgIFRSQU5TX0NISUNL RU4yX0ZESV9QT0xBUklUWV9SRVZFUlNFRAkJKDEgPDwgMjkpCj4gPiAjZGVmaW5lICBUUkFOU19D SElDS0VOMl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLCQkoMyA8PCAyNykKPiA+KyNkZWZpbmUgIFRS QU5TX0NISUNLRU4yX0ZSQU1FX1NUQVJUX0RFTEFZKHgpCQkoKHgpIDw8IDI3KSAvKiAwLTMgKi8K PiA+ICNkZWZpbmUgIFRSQU5TX0NISUNLRU4yX0RJU0FCTEVfREVFUF9DT0xPUl9DT1VOVEVSCSgx IDw8IDI2KQo+ID4gI2RlZmluZSAgVFJBTlNfQ0hJQ0tFTjJfRElTQUJMRV9ERUVQX0NPTE9SX01P REVTV0lUQ0gJKDEgPDwgMjUpCj4gPgo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgaW5kZXgKPiA+ MzYyMjM0NDQ5MDg3Li44YjFmYmRiMzY1MzcgMTAwNjQ0Cj4gPi0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Ywo+ID5AQCAtODA3OSw3ICs4MDc5LDYgQEAgc3RhdGljIHZvaWQgY3B0X2luaXRfY2xvY2tfZ2F0 aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPipkZXZfcHJpdikKPiA+IAkJdmFsICY9IH5U UkFOU19DSElDS0VOMl9GRElfUE9MQVJJVFlfUkVWRVJTRUQ7Cj4gPiAJCWlmIChkZXZfcHJpdi0+ dmJ0LmZkaV9yeF9wb2xhcml0eV9pbnZlcnRlZCkKPiA+IAkJCXZhbCB8PSBUUkFOU19DSElDS0VO Ml9GRElfUE9MQVJJVFlfUkVWRVJTRUQ7Cj4gPi0JCXZhbCAmPSB+VFJBTlNfQ0hJQ0tFTjJfRlJB TUVfU1RBUlRfREVMQVlfTUFTSzsKPiAKPiBJcyB0aGVyZSBhbnkgcmVhc29uIG5vdCB0byBsZXQg aXQgYmUgc2V0IGF0IDAuCj4gCj4gT3ZlcmFsbCwgSSBsb29rZWQgYXQgdGhlIHJlZ2lzdGVyIGFu ZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHZhcmlvdXMgcGxhdGZvcm1zIGFuZCB0aGlzIGxvb2tzCj4g YSB2ZXJ5IHJlYXNvbmFibGUgY2hhbmdlIHJlY3RpZnlpbmcgdGhlIGZyYW1lIHN0YXJ0IGRlbGF5 IHByb2dyYW1taW5nLgo+IAo+IEhvd2V2ZXIgSSBhbSBub3Qgc3VyZSBpZiBmb3IgYWxsIHBsYXRm b3JtcyAwIHdpbGwgYmUgdGhlIHByZWZlcnJlZCB2YWx1ZS4gSWYgdGhlIGRlZmF1bHQgdmFsdWVz Cj4gb2YgdGhlc2UgYml0cyBhcmUgMCBpbiBoYXJkd2FyZSByZWdpc3RlciAob3IgdGhlIEJJT1Mg c2V0IHRoZW0gYXQgMCBpdHNlbGYpLCB0aGlzIHNob3VsZAo+IHdvcmsgc2VhbWxlc3NseS4gT25s eSBjYXZlYXQgd2lsbCBiZSBpZiB0aGUgZGVmYXVsdHMgYXJlIG5vdCAwIG9uIGFsbCBwbGF0Zm9y bXMsIHdlIG1heSBoYXZlCj4gaXNzdWVzLiAKCkRlZmF1bHQgaXMgMCwgYnV0IHN1cHBvc2VkbHkg c29tZSBWQklPU2VuIGhhdmUgbGVmdCBvdGhlciB2YWx1ZXMKaW4gdGhlcmUgZm9yIHdoYXRldmVy IHJlYXNvbi4gT3IgZWxzZSB3ZSBwcm9iYWJseSB3b3VsZG4ndCBoYXZlIHRoaXMKY29kZSB0byBz YW5pdGl6ZSB0aGluZ3MuCgpJICptYXkqIHdhbnQgdG8gdHJ5IGJ1bXBpbmcgdGhpcyB0byAzIGFj cm9zcyB0aGUgYm9hcmQgdG8gZ2l2ZQpnYW1tYSBwcm9ncmFtbWluZyBtb3JlIGJyZWF0aGluZyBy b29tIGR1cmluZyB0aGUgdmJsYW5rLCBidXQgSSdtCm5vdCBzdXJlIHRoYXQncyBlbnRpcmVseSBz YWZlIHRvIGRvLiBIZW5jZSBJIHN0YXJ0ZWQgd2l0aCBqdXN0CmNsZWFuaW5nIHVwIHRoZSBjdXJy ZW50IG1lc3MuCgpJSVJDIHRoZXJlIHdhcyBhbHNvIHNvbWUgb2Jub3hpb3VzIHdvcmthcm91bmQg b24gTFZEUytJQlggKG9yIG1heWJlCml0IHdhcyBDUFQpIHRoYXQgd291bGQgcmVxdWlyZSBzb21l IGV4dHJhIGhhbmRsaW5nIGlmIHdlIHdlcmUgdG8KcHJvZ3JhbSB0aGlzIHRvIHNvbWUgbm9uLXpl cm8gdmFsdWUuCgo+IAo+IEdvb2Qgd2F5IHRvIGZpZ3VyZSB0aGlzIG91dCBJIGd1ZXNzIGlzIG91 ciBDSSByZXN1bHRzLiBTbyBpZiB0aGUgQ0kgcGFzc2VzLCB0aGlzIGlzCj4gUmV2aWV3ZWQtYnk6 IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+CgpUYS4KCj4gCj4gPiAJCXZhbCAm PSB+VFJBTlNfQ0hJQ0tFTjJfRElTQUJMRV9ERUVQX0NPTE9SX0NPVU5URVI7Cj4gPiAJCXZhbCAm PSB+VFJBTlNfQ0hJQ0tFTjJfRElTQUJMRV9ERUVQX0NPTE9SX01PREVTV0lUQ0g7Cj4gPiAJCUk5 MTVfV1JJVEUoVFJBTlNfQ0hJQ0tFTjIocGlwZSksIHZhbCk7Cj4gPi0tCj4gPjIuMjEuMAo+ID4K PiA+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+SW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID5JbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g Pmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.4 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95F93C432C3 for ; Fri, 15 Nov 2019 17:19:29 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 732F420732 for ; Fri, 15 Nov 2019 17:19:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 732F420732 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DA7E66E9C8; Fri, 15 Nov 2019 17:19:28 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F2EA6E78E for ; Fri, 15 Nov 2019 17:19:27 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2019 09:19:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,308,1569308400"; d="scan'208";a="203633367" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga007.fm.intel.com with SMTP; 15 Nov 2019 09:19:24 -0800 Received: by stinkbox (sSMTP sendmail emulation); Fri, 15 Nov 2019 19:19:23 +0200 Date: Fri, 15 Nov 2019 19:19:23 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: "Shankar, Uma" Message-ID: <20191115171923.GH1208@intel.com> References: <20191024122138.25065-1-ville.syrjala@linux.intel.com> <20191024122138.25065-3-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Subject: Re: [Intel-gfx] [PATCH 3/3] drm/i915: Fix frame start delay programming X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191115171923.F3EdiqDH9Y2jKcn6uAE-e0JRW5yzbox9mEgGwr9OmgU@z> T24gRnJpLCBOb3YgMTUsIDIwMTkgYXQgMDQ6MDg6NDVQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBJbnRlbC1n ZnggPGludGVsLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmIE9m IFZpbGxlIFN5cmphbGEKPiA+U2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjQsIDIwMTkgNTo1MiBQ TQo+ID5UbzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID5TdWJqZWN0OiBbSW50 ZWwtZ2Z4XSBbUEFUQ0ggMy8zXSBkcm0vaTkxNTogRml4IGZyYW1lIHN0YXJ0IGRlbGF5IHByb2dy YW1taW5nCj4gPgo+ID5Gcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+ID4KPiA+Q3VycmVudGx5IHdlJ3JlIGJsaW5kbHkgcG9raW5nIGF0IHRoZSBm cmFtZSBzdGFydCBkZWxheSBiaXRzIGluIFBJUEVDT05GIHdoZW4gdHJ5aW5nIHRvCj4gPnNhbml0 aXplIHRoZSBoYXJkd2FyZSBzdGF0ZS4gVGhvc2UgYml0cyBkZWNpZGVkIHRvIG1vdmUgZWxzZXdo ZXJlIG9uIEhTVywgc28gb24KPiA+bWFueSBwbGF0Zm9ybXMgd2UncmUgbm90IGRvaW5nIGFueXRo aW5nIGF0IGFsbCBoZXJlLiBBbHNvIHdlJ3JlIGZvcmdldHRpbmcgYWJvdXQgdGhlCj4gPlBDSCB0 cmFuc2NvZGVyIGVudGlyZWx5Lgo+ID4KPiA+QWRkIGFsbCB0aGUgYml0IGRlZmluaXRpb25zIGZv ciB0aGUgdmFyaW91cyBob21lcyB0aGVzZSBiaXRzIGhhdmUgaGFkIHRocm91Z2hvdXQgdGhlCj4g PnllYXJzLCBhbmQgcmVzZXQgdGhlbSBhbGwgdG8gemVyby4KPiA+Cj4gPkhvd2V2ZXIgSSdtIG5v dCBlbnRpcmVseSBzdXJlIHRoaXMgaXMgYSBzYWZlIHRoaW5nIHRvIGRvLiBJZiBub3QgSSBndWVz cyB3ZSdkIHdhbnQgZnVsbAo+ID5yZWFkb3V0K3N0YXRlY2hlY2sgZm9yIHRoaXMgc3R1ZmYuCj4g PkZvciBub3cgbGV0J3Mgc3RpY2sgdG8gdGhlIGN1cnJlbnQgbG9naWMgYW5kIGhvcGUgZm9yIHRo ZSBiZXN0Lgo+ID4KPiA+U2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+LS0tCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYyB8IDEwMSArKysrKysrKysrKysrKysrLS0tCj4gPiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICB8ICAxMiArKy0KPiA+IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgIHwgICAxIC0KPiA+IDMgZmls ZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gPgo+ID5kaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID5pbmRleCA1 Nzk2NTU2NzViMDguLjI4OTZjZjg2NGY2MSAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+QEAgLTE2NDUsMTEgKzE2NDUsMTYgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2NvZGVyKGNvbnN0IHN0cnVjdAo+ID5p bnRlbF9jcnRjX3N0YXRlICpjcnRjX3MKPiA+IAlhc3NlcnRfZmRpX3J4X2VuYWJsZWQoZGV2X3By aXYsIHBpcGUpOwo+ID4KPiA+IAlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7Cj4gPi0JCS8q IFdvcmthcm91bmQ6IFNldCB0aGUgdGltaW5nIG92ZXJyaWRlIGJpdCBiZWZvcmUgZW5hYmxpbmcg dGhlCj4gPi0JCSAqIHBjaCB0cmFuc2NvZGVyLiAqLwo+ID4gCQlyZWcgPSBUUkFOU19DSElDS0VO MihwaXBlKTsKPiA+IAkJdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gPisJCS8qCj4gPisJCSAqIFdv cmthcm91bmQ6IFNldCB0aGUgdGltaW5nIG92ZXJyaWRlIGJpdAo+ID4rCQkgKiBiZWZvcmUgZW5h YmxpbmcgdGhlIHBjaCB0cmFuc2NvZGVyLgo+ID4rCQkgKi8KPiA+IAkJdmFsIHw9IFRSQU5TX0NI SUNLRU4yX1RJTUlOR19PVkVSUklERTsKPiA+KwkJLyogQ29uZmlndXJlIGZyYW1lIHN0YXJ0IGRl bGF5IHRvIG1hdGNoIHRoZSBDUFUgKi8KPiA+KwkJdmFsICY9IH5UUkFOU19DSElDS0VOMl9GUkFN RV9TVEFSVF9ERUxBWV9NQVNLOwo+ID4rCQl2YWwgfD0gVFJBTlNfQ0hJQ0tFTjJfRlJBTUVfU1RB UlRfREVMQVkoMCk7Cj4gPiAJCUk5MTVfV1JJVEUocmVnLCB2YWwpOwo+ID4gCX0KPiA+Cj4gPkBA IC0xNjU4LDYgKzE2NjMsMTAgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFu c2NvZGVyKGNvbnN0IHN0cnVjdAo+ID5pbnRlbF9jcnRjX3N0YXRlICpjcnRjX3MKPiA+IAlwaXBl Y29uZl92YWwgPSBJOTE1X1JFQUQoUElQRUNPTkYocGlwZSkpOwo+ID4KPiA+IAlpZiAoSEFTX1BD SF9JQlgoZGV2X3ByaXYpKSB7Cj4gPisJCS8qIENvbmZpZ3VyZSBmcmFtZSBzdGFydCBkZWxheSB0 byBtYXRjaCB0aGUgQ1BVICovCj4gPisJCXZhbCAmPSB+VFJBTlNfRlJBTUVfU1RBUlRfREVMQVlf TUFTSzsKPiA+KwkJdmFsIHw9IFRSQU5TX0ZSQU1FX1NUQVJUX0RFTEFZKDApOwo+ID4rCj4gPiAJ CS8qCj4gPiAJCSAqIE1ha2UgdGhlIEJQQyBpbiB0cmFuc2NvZGVyIGJlIGNvbnNpc3RlbnQgd2l0 aAo+ID4gCQkgKiB0aGF0IGluIHBpcGVjb25mIHJlZy4gRm9yIEhETUkgd2UgbXVzdCB1c2UgOGJw YyBAQCAtMTY5NSw5Cj4gPisxNzA0LDEyIEBAIHN0YXRpYyB2b2lkIGxwdF9lbmFibGVfcGNoX3Ry YW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+KmRldl9wcml2LAo+ID4gCWFzc2Vy dF9mZGlfdHhfZW5hYmxlZChkZXZfcHJpdiwgKGVudW0gcGlwZSkgY3B1X3RyYW5zY29kZXIpOwo+ ID4gCWFzc2VydF9mZGlfcnhfZW5hYmxlZChkZXZfcHJpdiwgUElQRV9BKTsKPiA+Cj4gPisJdmFs ID0gSTkxNV9SRUFEKFRSQU5TX0NISUNLRU4yKFBJUEVfQSkpOwo+ID4gCS8qIFdvcmthcm91bmQ6 IHNldCB0aW1pbmcgb3ZlcnJpZGUgYml0LiAqLwo+ID4tCXZhbCA9IEk5MTVfUkVBRChUUkFOU19D SElDS0VOMihQSVBFX0EpKTsKPiA+IAl2YWwgfD0gVFJBTlNfQ0hJQ0tFTjJfVElNSU5HX09WRVJS SURFOwo+ID4rCS8qIENvbmZpZ3VyZSBmcmFtZSBzdGFydCBkZWxheSB0byBtYXRjaCB0aGUgQ1BV ICovCj4gPisJdmFsICY9IH5UUkFOU19DSElDS0VOMl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLOwo+ ID4rCXZhbCB8PSBUUkFOU19DSElDS0VOMl9GUkFNRV9TVEFSVF9ERUxBWSgwKTsKPiA+IAlJOTE1 X1dSSVRFKFRSQU5TX0NISUNLRU4yKFBJUEVfQSksIHZhbCk7Cj4gPgo+ID4gCXZhbCA9IFRSQU5T X0VOQUJMRTsKPiA+QEAgLTY0NTIsNiArNjQ2NCwxOSBAQCBzdGF0aWMgdm9pZCBpY2xfcGlwZV9t YnVzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+IAlJOTE1X1dSSVRFKFBJUEVf TUJVU19EQk9YX0NUTChwaXBlKSwgdmFsKTsgIH0KPiA+Cj4gPitzdGF0aWMgdm9pZCBoc3dfc2V0 X2ZyYW1lX3N0YXJ0X2RlbGF5KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPisqY3J0 Y19zdGF0ZSkgewo+ID4rCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4rCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ID4rCWk5MTVfcmVnX3QgcmVnID0gQ0hJ Q0tFTl9UUkFOUyhjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7Cj4gPisJdTMyIHZhbDsKPiA+ Kwo+ID4rCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ID4rCXZhbCAmPSB+SFNXX0ZSQU1FX1NUQVJU X0RFTEFZX01BU0s7Cj4gPisJdmFsIHw9IEhTV19GUkFNRV9TVEFSVF9ERUxBWSgwKTsKPiA+KwlJ OTE1X1dSSVRFKHJlZywgdmFsKTsKPiA+K30KPiA+Kwo+ID4gc3RhdGljIHZvaWQgaGFzd2VsbF9j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiAJCQkJ c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiB7Cj4gPkBAIC02NDk0LDggKzY1 MTksMTAgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZQo+ID4qcGlwZV9jb25maWcsCj4gPiAJCQkJCSAgICAgJnBpcGVfY29uZmlnLT5mZGlf bV9uLCBOVUxMKTsKPiA+IAl9Cj4gPgo+ID4tCWlmICghdHJhbnNjb2Rlcl9pc19kc2koY3B1X3Ry YW5zY29kZXIpKQo+ID4rCWlmICghdHJhbnNjb2Rlcl9pc19kc2koY3B1X3RyYW5zY29kZXIpKSB7 Cj4gPisJCWhzd19zZXRfZnJhbWVfc3RhcnRfZGVsYXkocGlwZV9jb25maWcpOwo+ID4gCQloYXN3 ZWxsX3NldF9waXBlY29uZihwaXBlX2NvbmZpZyk7Cj4gPisJfQo+ID4KPiA+IAlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gPiAJCWJkd19z ZXRfcGlwZW1pc2MocGlwZV9jb25maWcpOwo+ID5AQCAtODM5NCw2ICs4NDIxLDggQEAgc3RhdGlj IHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+ KmNydGNfc3RhdGUpCj4gPgo+ID4gCXBpcGVjb25mIHw9IFBJUEVDT05GX0dBTU1BX01PREUoY3J0 Y19zdGF0ZS0+Z2FtbWFfbW9kZSk7Cj4gPgo+ID4rCXBpcGVjb25mIHw9IFBJUEVDT05GX0ZSQU1F X1NUQVJUX0RFTEFZKDApOwo+ID4rCj4gPiAJSTkxNV9XUklURShQSVBFQ09ORihjcnRjLT5waXBl KSwgcGlwZWNvbmYpOwo+ID4gCVBPU1RJTkdfUkVBRChQSVBFQ09ORihjcnRjLT5waXBlKSk7Cj4g PiB9Cj4gPkBAIC05NDc0LDYgKzk1MDMsOCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlw ZWNvbmYoY29uc3Qgc3RydWN0Cj4gPmludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPgo+ ID4gCXZhbCB8PSBQSVBFQ09ORl9HQU1NQV9NT0RFKGNydGNfc3RhdGUtPmdhbW1hX21vZGUpOwo+ ID4KPiA+Kwl2YWwgfD0gUElQRUNPTkZfRlJBTUVfU1RBUlRfREVMQVkoMCk7Cj4gPisKPiA+IAlJ OTE1X1dSSVRFKFBJUEVDT05GKHBpcGUpLCB2YWwpOwo+ID4gCVBPU1RJTkdfUkVBRChQSVBFQ09O RihwaXBlKSk7Cj4gPiB9Cj4gPkBAIC0xNjkxOSwyNSArMTY5NTAsNjkgQEAgc3RhdGljIGJvb2wg aGFzX3BjaF90cmFuY29kZXIoc3RydWN0Cj4gPmRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gCQkoSEFTX1BDSF9MUFRfSChkZXZfcHJpdikgJiYgcGNoX3RyYW5zY29kZXIgPT0gUElQRV9B KTsgIH0KPiA+Cj4gPitzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9mcmFtZV9zdGFydF9kZWxh eShjb25zdCBzdHJ1Y3QKPiA+K2ludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpIHsKPiA+Kwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKPiA+KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKPiA+KwllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRj X3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiA+Kwo+ID4rCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkgfHwKPiA+KwkgICAgSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19IQVNXRUxMKGRl dl9wcml2KSkgewo+ID4rCQlpOTE1X3JlZ190IHJlZyA9IENISUNLRU5fVFJBTlMoY3B1X3RyYW5z Y29kZXIpOwo+ID4rCQl1MzIgdmFsOwo+ID4rCj4gPisJCWlmICh0cmFuc2NvZGVyX2lzX2RzaShj cHVfdHJhbnNjb2RlcikpCj4gPisJCQlyZXR1cm47Cj4gPisKPiA+KwkJdmFsID0gSTkxNV9SRUFE KHJlZyk7Cj4gPisJCXZhbCAmPSB+SFNXX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0s7Cj4gPisJCXZh bCB8PSBIU1dfRlJBTUVfU1RBUlRfREVMQVkoMCk7Cj4gPisJCUk5MTVfV1JJVEUocmVnLCB2YWwp Owo+ID4rCX0gZWxzZSB7Cj4gPisJCWk5MTVfcmVnX3QgcmVnID0gUElQRUNPTkYoY3B1X3RyYW5z Y29kZXIpOwo+ID4rCQl1MzIgdmFsOwo+ID4rCj4gPisJCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ ID4rCQl2YWwgJj0gflBJUEVDT05GX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0s7Cj4gPisJCXZhbCB8 PSBQSVBFQ09ORl9GUkFNRV9TVEFSVF9ERUxBWSgwKTsKPiA+KwkJSTkxNV9XUklURShyZWcsIHZh bCk7Cj4gPisJfQo+ID4rCj4gPisJaWYgKCFjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCj4g PisJCXJldHVybjsKPiA+Kwo+ID4rCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpIHsKPiA+KwkJ aTkxNV9yZWdfdCByZWcgPSBQQ0hfVFJBTlNDT05GKGNydGMtPnBpcGUpOwo+ID4rCQl1MzIgdmFs Owo+ID4rCj4gPisJCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ID4rCQl2YWwgJj0gflRSQU5TX0ZS QU1FX1NUQVJUX0RFTEFZX01BU0s7Cj4gPisJCXZhbCB8PSBUUkFOU19GUkFNRV9TVEFSVF9ERUxB WSgwKTsKPiA+KwkJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gPisJfSBlbHNlIHsKPiA+KwkJaTkx NV9yZWdfdCByZWcgPSBUUkFOU19DSElDS0VOMihjcnRjLT5waXBlKTsKPiA+KwkJdTMyIHZhbDsK PiA+Kwo+ID4rCQl2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiA+KwkJdmFsICY9IH5UUkFOU19DSElD S0VOMl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLOwo+ID4rCQl2YWwgfD0gVFJBTlNfQ0hJQ0tFTjJf RlJBTUVfU1RBUlRfREVMQVkoMCk7Cj4gPisJCUk5MTVfV1JJVEUocmVnLCB2YWwpOwo+ID4rCX0K PiA+K30KPiA+Kwo+ID4gc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiA+IAkJCQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0 eCkgIHsKPiA+IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gPiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShj cnRjLT5iYXNlLnN0YXRlKTsKPiA+LQllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBj cnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiA+LQo+ID4tCS8qIENsZWFyIGFueSBmcmFtZSBz dGFydCBkZWxheXMgdXNlZCBmb3IgZGVidWdnaW5nIGxlZnQgYnkgdGhlIEJJT1MgKi8KPiA+LQlp ZiAoY3J0Yy0+YWN0aXZlICYmICF0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpIHsK PiA+LQkJaTkxNV9yZWdfdCByZWcgPSBQSVBFQ09ORihjcHVfdHJhbnNjb2Rlcik7Cj4gPi0KPiA+ LQkJSTkxNV9XUklURShyZWcsCj4gPi0JCQkgICBJOTE1X1JFQUQocmVnKSAmCj4gPn5QSVBFQ09O Rl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLKTsKPiA+LQl9Cj4gPgo+ID4gCWlmIChjcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSkgewo+ID4gCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ID4KPiA+ KwkJLyogQ2xlYXIgYW55IGZyYW1lIHN0YXJ0IGRlbGF5cyB1c2VkIGZvciBkZWJ1Z2dpbmcgbGVm dCBieSB0aGUgQklPUyAqLwo+ID4rCQlpbnRlbF9zYW5pdGl6ZV9mcmFtZV9zdGFydF9kZWxheShj cnRjX3N0YXRlKTsKPiA+Kwo+ID4gCQkvKiBEaXNhYmxlIGV2ZXJ5dGhpbmcgYnV0IHRoZSBwcmlt YXJ5IHBsYW5lICovCj4gPiAJCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRj LCBwbGFuZSkgewo+ID4gCQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSA9IGRpZmYgLS1naXQKPiA+YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBpbmRleAo+ID41MGMyZmEwZjJjYWIuLmNi MmUwZjQ2NzljNCAxMDA2NDQKPiA+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ID4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPkBAIC01NjcxLDcg KzU2NzEsOCBAQCBlbnVtIHsKPiA+ICNkZWZpbmUgICBQSVBFQ09ORl9ET1VCTEVfV0lERQkoMSA8 PCAzMCkKPiA+ICNkZWZpbmUgICBJOTY1X1BJUEVDT05GX0FDVElWRQkoMSA8PCAzMCkKPiA+ICNk ZWZpbmUgICBQSVBFQ09ORl9EU0lfUExMX0xPQ0tFRAkoMSA8PCAyOSkgLyogdmx2ICYgcGlwZSBB IG9ubHkgKi8KPiA+LSNkZWZpbmUgICBQSVBFQ09ORl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLICgz IDw8IDI3KQo+ID4rI2RlZmluZSAgIFBJUEVDT05GX0ZSQU1FX1NUQVJUX0RFTEFZX01BU0sJKDMg PDwgMjcpIC8qIHByZS1oc3cgKi8KPiA+KyNkZWZpbmUgICBQSVBFQ09ORl9GUkFNRV9TVEFSVF9E RUxBWSh4KQkJKCh4KSA8PCAyNykgLyogcHJlLWhzdzogMC0zCj4gPiovCj4gPiAjZGVmaW5lICAg UElQRUNPTkZfU0lOR0xFX1dJREUJMAo+ID4gI2RlZmluZSAgIFBJUEVDT05GX1BJUEVfVU5MT0NL RUQgMAo+ID4gI2RlZmluZSAgIFBJUEVDT05GX1BJUEVfTE9DS0VECSgxIDw8IDI1KQo+ID5AQCAt NzYyNyw2ICs3NjI4LDggQEAgZW51bSB7Cj4gPiAJCQkJCSAgICBbVFJBTlNDT0RFUl9CXSA9IF9D SElDS0VOX1RSQU5TX0IsCj4gPlwKPiA+IAkJCQkJICAgIFtUUkFOU0NPREVSX0NdID0gX0NISUNL RU5fVFJBTlNfQywKPiA+XAo+ID4gCQkJCQkgICAgW1RSQU5TQ09ERVJfRF0gPQo+ID5fQ0hJQ0tF Tl9UUkFOU19EKSkKPiA+KyNkZWZpbmUgIEhTV19GUkFNRV9TVEFSVF9ERUxBWV9NQVNLCSgzIDw8 IDI3KQo+ID4rI2RlZmluZSAgSFNXX0ZSQU1FX1NUQVJUX0RFTEFZKHgpCSgoeCkgPDwgMjcpIC8q IDAtMyAqLwo+ID4gI2RlZmluZSAgVlNDX0RBVEFfU0VMX1NPRlRXQVJFX0NPTlRST0wJKDEgPDwg MjUpIC8qIEdMSyBhbmQgQ05MKyAqLwo+ID4gI2RlZmluZSAgRERJX1RSQUlOSU5HX09WRVJSSURF X0VOQUJMRQkoMSA8PCAxOSkKPiA+ICNkZWZpbmUgIERESV9UUkFJTklOR19PVkVSUklERV9WQUxV RQkoMSA8PCAxOCkKPiA+QEAgLTgzNDEsMTAgKzgzNDQsOCBAQCBlbnVtIHsKPiA+ICNkZWZpbmUg IFRSQU5TX1NUQVRFX01BU0sgICAgICAgKDEgPDwgMzApCj4gPiAjZGVmaW5lICBUUkFOU19TVEFU RV9ESVNBQkxFICAgICgwIDw8IDMwKQo+ID4gI2RlZmluZSAgVFJBTlNfU1RBVEVfRU5BQkxFICAg ICAoMSA8PCAzMCkKPiA+LSNkZWZpbmUgIFRSQU5TX0ZTWU5DX0RFTEFZX0hCMSAgKDAgPDwgMjcp IC0jZGVmaW5lICBUUkFOU19GU1lOQ19ERUxBWV9IQjIKPiA+KDEgPDwgMjcpIC0jZGVmaW5lICBU UkFOU19GU1lOQ19ERUxBWV9IQjMgICgyIDw8IDI3KSAtI2RlZmluZQo+ID5UUkFOU19GU1lOQ19E RUxBWV9IQjQgICgzIDw8IDI3KQo+ID4rI2RlZmluZSAgVFJBTlNfRlJBTUVfU1RBUlRfREVMQVlf TUFTSwkoMyA8PCAyNykgLyogaWJ4ICovCj4gPisjZGVmaW5lICBUUkFOU19GUkFNRV9TVEFSVF9E RUxBWSh4KQkoKHgpIDw8IDI3KSAvKiBpYng6IDAtMyAqLwo+ID4gI2RlZmluZSAgVFJBTlNfSU5U RVJMQUNFX01BU0sgICAoNyA8PCAyMSkKPiA+ICNkZWZpbmUgIFRSQU5TX1BST0dSRVNTSVZFICAg ICAgKDAgPDwgMjEpCj4gPiAjZGVmaW5lICBUUkFOU19JTlRFUkxBQ0VEICAgICAgICgzIDw8IDIx KQo+ID5AQCAtODM2NSw2ICs4MzY2LDcgQEAgZW51bSB7Cj4gPiAjZGVmaW5lICBUUkFOU19DSElD S0VOMl9USU1JTkdfT1ZFUlJJREUJCQkoMSA8PCAzMSkKPiA+ICNkZWZpbmUgIFRSQU5TX0NISUNL RU4yX0ZESV9QT0xBUklUWV9SRVZFUlNFRAkJKDEgPDwgMjkpCj4gPiAjZGVmaW5lICBUUkFOU19D SElDS0VOMl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLCQkoMyA8PCAyNykKPiA+KyNkZWZpbmUgIFRS QU5TX0NISUNLRU4yX0ZSQU1FX1NUQVJUX0RFTEFZKHgpCQkoKHgpIDw8IDI3KSAvKiAwLTMgKi8K PiA+ICNkZWZpbmUgIFRSQU5TX0NISUNLRU4yX0RJU0FCTEVfREVFUF9DT0xPUl9DT1VOVEVSCSgx IDw8IDI2KQo+ID4gI2RlZmluZSAgVFJBTlNfQ0hJQ0tFTjJfRElTQUJMRV9ERUVQX0NPTE9SX01P REVTV0lUQ0gJKDEgPDwgMjUpCj4gPgo+ID5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgaW5kZXgKPiA+ MzYyMjM0NDQ5MDg3Li44YjFmYmRiMzY1MzcgMTAwNjQ0Cj4gPi0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKPiA+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Ywo+ID5AQCAtODA3OSw3ICs4MDc5LDYgQEAgc3RhdGljIHZvaWQgY3B0X2luaXRfY2xvY2tfZ2F0 aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPipkZXZfcHJpdikKPiA+IAkJdmFsICY9IH5U UkFOU19DSElDS0VOMl9GRElfUE9MQVJJVFlfUkVWRVJTRUQ7Cj4gPiAJCWlmIChkZXZfcHJpdi0+ dmJ0LmZkaV9yeF9wb2xhcml0eV9pbnZlcnRlZCkKPiA+IAkJCXZhbCB8PSBUUkFOU19DSElDS0VO Ml9GRElfUE9MQVJJVFlfUkVWRVJTRUQ7Cj4gPi0JCXZhbCAmPSB+VFJBTlNfQ0hJQ0tFTjJfRlJB TUVfU1RBUlRfREVMQVlfTUFTSzsKPiAKPiBJcyB0aGVyZSBhbnkgcmVhc29uIG5vdCB0byBsZXQg aXQgYmUgc2V0IGF0IDAuCj4gCj4gT3ZlcmFsbCwgSSBsb29rZWQgYXQgdGhlIHJlZ2lzdGVyIGFu ZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHZhcmlvdXMgcGxhdGZvcm1zIGFuZCB0aGlzIGxvb2tzCj4g YSB2ZXJ5IHJlYXNvbmFibGUgY2hhbmdlIHJlY3RpZnlpbmcgdGhlIGZyYW1lIHN0YXJ0IGRlbGF5 IHByb2dyYW1taW5nLgo+IAo+IEhvd2V2ZXIgSSBhbSBub3Qgc3VyZSBpZiBmb3IgYWxsIHBsYXRm b3JtcyAwIHdpbGwgYmUgdGhlIHByZWZlcnJlZCB2YWx1ZS4gSWYgdGhlIGRlZmF1bHQgdmFsdWVz Cj4gb2YgdGhlc2UgYml0cyBhcmUgMCBpbiBoYXJkd2FyZSByZWdpc3RlciAob3IgdGhlIEJJT1Mg c2V0IHRoZW0gYXQgMCBpdHNlbGYpLCB0aGlzIHNob3VsZAo+IHdvcmsgc2VhbWxlc3NseS4gT25s eSBjYXZlYXQgd2lsbCBiZSBpZiB0aGUgZGVmYXVsdHMgYXJlIG5vdCAwIG9uIGFsbCBwbGF0Zm9y bXMsIHdlIG1heSBoYXZlCj4gaXNzdWVzLiAKCkRlZmF1bHQgaXMgMCwgYnV0IHN1cHBvc2VkbHkg c29tZSBWQklPU2VuIGhhdmUgbGVmdCBvdGhlciB2YWx1ZXMKaW4gdGhlcmUgZm9yIHdoYXRldmVy IHJlYXNvbi4gT3IgZWxzZSB3ZSBwcm9iYWJseSB3b3VsZG4ndCBoYXZlIHRoaXMKY29kZSB0byBz YW5pdGl6ZSB0aGluZ3MuCgpJICptYXkqIHdhbnQgdG8gdHJ5IGJ1bXBpbmcgdGhpcyB0byAzIGFj cm9zcyB0aGUgYm9hcmQgdG8gZ2l2ZQpnYW1tYSBwcm9ncmFtbWluZyBtb3JlIGJyZWF0aGluZyBy b29tIGR1cmluZyB0aGUgdmJsYW5rLCBidXQgSSdtCm5vdCBzdXJlIHRoYXQncyBlbnRpcmVseSBz YWZlIHRvIGRvLiBIZW5jZSBJIHN0YXJ0ZWQgd2l0aCBqdXN0CmNsZWFuaW5nIHVwIHRoZSBjdXJy ZW50IG1lc3MuCgpJSVJDIHRoZXJlIHdhcyBhbHNvIHNvbWUgb2Jub3hpb3VzIHdvcmthcm91bmQg b24gTFZEUytJQlggKG9yIG1heWJlCml0IHdhcyBDUFQpIHRoYXQgd291bGQgcmVxdWlyZSBzb21l IGV4dHJhIGhhbmRsaW5nIGlmIHdlIHdlcmUgdG8KcHJvZ3JhbSB0aGlzIHRvIHNvbWUgbm9uLXpl cm8gdmFsdWUuCgo+IAo+IEdvb2Qgd2F5IHRvIGZpZ3VyZSB0aGlzIG91dCBJIGd1ZXNzIGlzIG91 ciBDSSByZXN1bHRzLiBTbyBpZiB0aGUgQ0kgcGFzc2VzLCB0aGlzIGlzCj4gUmV2aWV3ZWQtYnk6 IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+CgpUYS4KCj4gCj4gPiAJCXZhbCAm PSB+VFJBTlNfQ0hJQ0tFTjJfRElTQUJMRV9ERUVQX0NPTE9SX0NPVU5URVI7Cj4gPiAJCXZhbCAm PSB+VFJBTlNfQ0hJQ0tFTjJfRElTQUJMRV9ERUVQX0NPTE9SX01PREVTV0lUQ0g7Cj4gPiAJCUk5 MTVfV1JJVEUoVFJBTlNfQ0hJQ0tFTjIocGlwZSksIHZhbCk7Cj4gPi0tCj4gPjIuMjEuMAo+ID4K PiA+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+SW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID5JbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g Pmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==