From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Handle pipe CRC around enabling/disabling pipe. Date: Wed, 7 Mar 2018 17:21:40 +0200 Message-ID: <20180307152140.GP5453@intel.com> References: <20180307142322.GN5453@intel.com> <20180307150432.47000-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 912566E03B for ; Wed, 7 Mar 2018 15:21:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180307150432.47000-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMDcsIDIwMTggYXQgMDQ6MDQ6MzJQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyB3aWxsIGdldCByaWQgb2YgdGhlIGZvbGxvd2luZyBlcnJvcjoKPiBb ICAgNzQuNzMwMjcxXSBXQVJOSU5HOiBDUFU6IDQgUElEOiAwIGF0IGRyaXZlcnMvZ3B1L2RybS9k cm1fdmJsYW5rLmM6NjE0IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3MrMHgx M2UvMHgyZjAKPiBbICAgNzQuNzMwMzExXSBNb2R1bGVzIGxpbmtlZCBpbjogdmdlbSBzbmRfaGRh X2NvZGVjX2hkbWkgc25kX2hkYV9jb2RlY19yZWFsdGVrIHNuZF9oZGFfY29kZWNfZ2VuZXJpYyBp OTE1IHg4Nl9wa2dfdGVtcF90aGVybWFsIGludGVsX3Bvd2VyY2xhbXAgY29yZXRlbXAgc25kX2hk YV9pbnRlbCBjcmN0MTBkaWZfcGNsbXVsIHNuZF9oZGFfY29kZWMgY3JjMzJfcGNsbXVsIHNuZF9o d2RlcCBicm9hZGNvbSBnaGFzaF9jbG11bG5pX2ludGVsIHNuZF9oZGFfY29yZSBiY21fcGh5X2xp YiBzbmRfcGNtIHRnMyBscGNfaWNoIG1laV9tZSBtZWkgcHJpbWVfbnVtYmVycwo+IFsgICA3NC43 MzAzNTNdIENQVTogNCBQSUQ6IDAgQ29tbTogc3dhcHBlci80IFRhaW50ZWQ6IEcgICAgIFUgICAg ICAgICAgIDQuMTYuMC1yYzItQ0ktQ0lfRFJNXzM4MjIrICMxCj4gWyAgIDc0LjczMDM1NV0gSGFy ZHdhcmUgbmFtZTogRGVsbCBJbmMuIFhQUyA4MzAwICAvMFkyTVJHLCBCSU9TIEEwNiAxMC8xNy8y MDExCj4gWyAgIDc0LjczMDM1OV0gUklQOiAwMDEwOmRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9t X3NjYW5vdXRwb3MrMHgxM2UvMHgyZjAKPiBbICAgNzQuNzMwMzYxXSBSU1A6IDAwMTg6ZmZmZjg4 MDIyZmIwM2QxMCBFRkxBR1M6IDAwMDEwMDg2Cj4gWyAgIDc0LjczMDM2NV0gUkFYOiBmZmZmZmZm ZmEwMjkxZDIwIFJCWDogZmZmZjg4MDIxYTE4MDAwMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDEKPiBb ICAgNzQuNzMwMzY3XSBSRFg6IGZmZmZmZmZmODIwZTdkYjggUlNJOiAwMDAwMDAwMDAwMDAwMDAx IFJESTogZmZmZmZmZmY4MjA2OGNlYQo+IFsgICA3NC43MzAzNjldIFJCUDogZmZmZjg4MDIyZmIw M2Q3MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiBmZmZmZmZmZjgxNWQyNmQwCj4gWyAgIDc0 LjczMDM3MV0gUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogZmZmZmZmZmZhMDE2MWNhMCBSMTI6 IDAwMDAwMDAwMDAwMDAwMDEKPiBbICAgNzQuNzMwMzczXSBSMTM6IGZmZmY4ODAyMTI0NDgwMDgg UjE0OiBmZmZmODgwMjEyNDQ4MzMwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAo+IFsgICA3NC43MzAz NzZdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMjJmYjAwMDAwKDAwMDAp IGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPiBbICAgNzQuNzMwMzc4XSBDUzogIDAwMTAgRFM6IDAw MDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4gWyAgIDc0LjczMDM4MF0gQ1IyOiAw MDAwNTVlZGNiZWM5MDAwIENSMzogMDAwMDAwMDAwMjIxMDAwMSBDUjQ6IDAwMDAwMDAwMDAwNjA2 ZTAKPiBbICAgNzQuNzMwMzgyXSBDYWxsIFRyYWNlOgo+IFsgICA3NC43MzAzODVdICA8SVJRPgo+ IFsgICA3NC43MzAzOTddICBkcm1fZ2V0X2xhc3RfdmJsdGltZXN0YW1wKzB4MzYvMHg1MAo+IFsg ICA3NC43MzA0MDFdICBkcm1fdXBkYXRlX3ZibGFua19jb3VudCsweDY0LzB4MjQwCj4gWyAgIDc0 LjczMDQwOV0gIGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudCsweDQxLzB4OTAKPiBbICAg NzQuNzMwNDUzXSAgZGlzcGxheV9waXBlX2NyY19pcnFfaGFuZGxlcisweDE3Ni8weDIyMCBbaTkx NV0KPiBbICAgNzQuNzMwNDk3XSAgaTl4eF9waXBlX2NyY19pcnFfaGFuZGxlcisweGZlLzB4MTUw IFtpOTE1XQo+IFsgICA3NC43MzA1MzddICBpcm9ubGFrZV9pcnFfaGFuZGxlcisweDYxOC8weGEz MCBbaTkxNV0KPiBbICAgNzQuNzMwNTQ4XSAgX19oYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDNj LzB4MzQwCj4gWyAgIDc0LjczMDU1Nl0gIGhhbmRsZV9pcnFfZXZlbnRfcGVyY3B1KzB4MWIvMHg1 MAo+IFsgICA3NC43MzA1NjFdICBoYW5kbGVfaXJxX2V2ZW50KzB4MmYvMHg1MAo+IFsgICA3NC43 MzA1NjZdICBoYW5kbGVfZWRnZV9pcnErMHhlNC8weDFiMAo+IFsgICA3NC43MzA1NzJdICBoYW5k bGVfaXJxKzB4MTEvMHgyMAo+IFsgICA3NC43MzA1NzZdICBkb19JUlErMHg1ZS8weDEyMAo+IFsg ICA3NC43MzA1ODRdICBjb21tb25faW50ZXJydXB0KzB4ODQvMHg4NAo+IFsgICA3NC43MzA1ODZd ICA8L0lSUT4KPiBbICAgNzQuNzMwNTkxXSBSSVA6IDAwMTA6Y3B1aWRsZV9lbnRlcl9zdGF0ZSsw eGFhLzB4MzUwCj4gWyAgIDc0LjczMDU5M10gUlNQOiAwMDE4OmZmZmZjOTAwMDAwOGJlYjggRUZM QUdTOiAwMDAwMDIxMiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmZkZQo+IFsgICA3NC43MzA1OTdd IFJBWDogZmZmZjg4MDIyNmI4MDA0MCBSQlg6IDAwMDAwMDAwMDAzMWZjM2UgUkNYOiAwMDAwMDAw MDAwMDAwMDAxCj4gWyAgIDc0LjczMDU5OV0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZm ZmZmZmY4MjEwZmI1OSBSREk6IGZmZmZmZmZmODIwYzAyZTcKPiBbICAgNzQuNzMwNjAxXSBSQlA6 IDAwMDAwMDAwMDAwMDAwMDQgUjA4OiAwMDAwMDAwMDAwMDA0MGFmIFIwOTogMDAwMDAwMDAwMDAw MDAxOAo+IFsgICA3NC43MzA2MDNdIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAw MDAwMDAwMDAgUjEyOiAwMDAwMDAwMDAwMDAwMDA0Cj4gWyAgIDc0LjczMDYwNl0gUjEzOiBmZmZm ZThmZmZmZDAwNDMwIFIxNDogMDAwMDAwMTE2NjEyMGJmNCBSMTU6IGZmZmZmZmZmODIyOTQ0NjAK PiBbICAgNzQuNzMwNjIxXSAgPyBjcHVpZGxlX2VudGVyX3N0YXRlKzB4YTYvMHgzNTAKPiBbICAg NzQuNzMwNjI5XSAgZG9faWRsZSsweDE4OC8weDFkMAo+IFsgICA3NC43MzA2MzZdICBjcHVfc3Rh cnR1cF9lbnRyeSsweDE0LzB4MjAKPiBbICAgNzQuNzMwNjQxXSAgc3RhcnRfc2Vjb25kYXJ5KzB4 MTI5LzB4MTYwCj4gWyAgIDc0LjczMDY0Nl0gIHNlY29uZGFyeV9zdGFydHVwXzY0KzB4YTUvMHhi MAo+IFsgICA3NC43MzA2NjBdIENvZGU6IGUxIDQ4IGM3IGMyIGI4IDdkIDBlIDgyIGJlIDAxIDAw IDAwIDAwIDQ4IGM3IGM3IGVhIDhjIDA2IDgyIGU4IDY0IGVjIGZmIGZmIDQ4IDhiIDgzIGM4IDA3 IDAwIDAwIDQ4IDgzIDc4IDI4IDAwIDBmIDg0IGUyIGZlIGZmIGZmIDwwZj4gMGIgNDUgMzEgZWQg ZTkgZGIgZmUgZmYgZmYgNDEgYjggZDMgNGQgNjIgMTAgODkgYzggNmEgMDMgNDEKPiBbICAgNzQu NzMwNzU0XSAtLS1bIGVuZCB0cmFjZSAxNGIxMzQ1NzA1YjY4NTY1IF0tLS0KPiAKPiBDaGFuZ2Vz IHNpbmNlIHYxOgo+IC0gRG9uJ3QgdHJ5IHRvIGFwcGx5IENSQyB3b3JrYXJvdW5kIHdoZW4gZW5h YmxpbmcgcGlwZSwgaXQgc2hvdWxkIGFscmVhZHkgYmUgZW5hYmxlZC4KPiBDaGFuZ2VzIHNpbmNl IHYyOgo+IC0gTWFrZSBjcmMgZnVuY3Rpb25zIGZvciAhREVCVUdGUyBjYXNlIGlubGluZS4KPiAt IFBhc3MgaW50ZWxfY3J0YyB0byBjcmMgZnVuY3Rpb25zLgo+IC0gQWRkIGNvbW1lbnRzIHRvIGNh bGxzaXRlcy4KPiAKPiBDYzogTWFydGEgTMO2ZnN0ZWR0IDxtYXJ0YS5sb2ZzdGVkdEBpbnRlbC5j b20+Cj4gUmVwb3J0ZWQtYnk6IE1hcnRhIEzDtmZzdGVkdCA8bWFydGEubG9mc3RlZHRAaW50ZWwu Y29tPgo+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNn aT9pZD0xMDUxODUKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgIHwgMTAgKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggICAgICB8ICA5ICsrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cGlwZV9jcmMuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gIDMg ZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggMzMxMDg0MDgyNTQ1Li4yOTMzYWQz ODA5NGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEyMTQ3 LDYgKzEyMTQ3LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX2NydGMoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICAJaWYgKG1vZGVzZXQpIHsKPiAgCQl1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0 KGludGVsX2NydGMpOwo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKHBpcGVfY29u ZmlnLCBzdGF0ZSk7Cj4gKwo+ICsJCS8qIHZibGFua3Mgd29yayBhZ2FpbiwgcmUtZW5hYmxlIHBp cGUgQ1JDLiAqLwo+ICsJCWludGVsX2NydGNfZW5hYmxlX3BpcGVfY3JjKGludGVsX2NydGMpOwo+ ICAJfSBlbHNlIHsKPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2NydGNfc3Rh dGUob2xkX2NydGNfc3RhdGUpLAo+ICAJCQkJICAgICAgIHBpcGVfY29uZmlnKTsKPiBAQCAtMTIz MjcsNiArMTIzMzAsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCj4gIAkJaWYgKG9sZF9jcnRjX3N0YXRl LT5hY3RpdmUpIHsKPiAgCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhjcnRjLCBvbGRfY3J0 Y19zdGF0ZS0+cGxhbmVfbWFzayk7Cj4gKwo+ICsJCQkvKgo+ICsJCQkgKiBXZSBuZWVkIHRvIGRp c2FibGUgcGlwZSBDUkMgYmVmb3JlIGRpc2FibGluZyB0aGUgcGlwZSwKPiArCQkJICogb3Igd2Ug cmFjZSBhZ2FpbnN0IHZibGFuayBvZmYuCj4gKwkJCSAqLwo+ICsJCQlpbnRlbF9jcnRjX2Rpc2Fi bGVfcGlwZV9jcmMoaW50ZWxfY3J0Yyk7Cj4gKwo+ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRj X2Rpc2FibGUodG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSksIHN0YXRlKTsKPiAg CQkJaW50ZWxfY3J0Yy0+YWN0aXZlID0gZmFsc2U7Cj4gIAkJCWludGVsX2ZiY19kaXNhYmxlKGlu dGVsX2NydGMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZDQzNjg1ODliMzU1 Li4zMWY5ODU5Y2RkZmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0yMTM4 LDggKzIxMzgsMTcgQEAgaW50IGludGVsX3BpcGVfY3JjX2NyZWF0ZShzdHJ1Y3QgZHJtX21pbm9y ICptaW5vcik7Cj4gICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiAgaW50IGludGVsX2NydGNfc2V0 X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzb3VyY2VfbmFt ZSwKPiAgCQkJICAgICAgc2l6ZV90ICp2YWx1ZXNfY250KTsKPiArdm9pZCBpbnRlbF9jcnRjX2Rp c2FibGVfcGlwZV9jcmMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICt2b2lkIGludGVsX2Ny dGNfZW5hYmxlX3BpcGVfY3JjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAgI2Vsc2UKPiAg I2RlZmluZSBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlIE5VTEwKPiArc3RhdGljIGlubGluZSB2 b2lkIGludGVsX2NydGNfZGlzYWJsZV9waXBlX2NyYyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK PiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY3J0Y19lbmFibGVfcGlw ZV9jcmMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpFeHRyYSAn OycKCj4gK3sKPiArfQo+ICAjZW5kaWYKPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJh dGlvbnMgaTkxNV9kaXNwbGF5X2NyY19jdGxfZm9wczsKPiAgI2VuZGlmIC8qIF9fSU5URUxfRFJW X0hfXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2Ny Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYwo+IGluZGV4IDFmNWNk NTcyYTdmZi4uMmM3YTQ4YjVhNTcxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BpcGVfY3JjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBl X2NyYy5jCj4gQEAgLTU2OSw3ICs1NjksOCBAQCBzdGF0aWMgdm9pZCBoc3dfcGlwZV9BX2NyY193 YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHN0YXRpYyBpbnQgaXZiX3Bp cGVfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJ ZW51bSBwaXBlIHBpcGUsCj4gIAkJCQllbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZSAqc291cmNl LAo+IC0JCQkJdWludDMyX3QgKnZhbCkKPiArCQkJCXVpbnQzMl90ICp2YWwsCj4gKwkJCQlib29s IHNldF93YSkKPiAgewo+ICAJaWYgKCpzb3VyY2UgPT0gSU5URUxfUElQRV9DUkNfU09VUkNFX0FV VE8pCj4gIAkJKnNvdXJjZSA9IElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9QRjsKPiBAQCAtNTgyLDcg KzU4Myw3IEBAIHN0YXRpYyBpbnQgaXZiX3BpcGVfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfCBQSVBFX0NS Q19TT1VSQ0VfU1BSSVRFX0lWQjsKPiAgCQlicmVhazsKPiAgCWNhc2UgSU5URUxfUElQRV9DUkNf U09VUkNFX1BGOgo+IC0JCWlmICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwKPiArCQlpZiAoc2V0 X3dhICYmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fAo+ICAJCSAgICAgSVNfQlJPQURXRUxMKGRl dl9wcml2KSkgJiYgcGlwZSA9PSBQSVBFX0EpCj4gIAkJCWhzd19waXBlX0FfY3JjX3dhKGRldl9w cml2LCB0cnVlKTsKPiAgCj4gQEAgLTYwMCw3ICs2MDEsOCBAQCBzdGF0aWMgaW50IGl2Yl9waXBl X2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIHN0 YXRpYyBpbnQgZ2V0X25ld19jcmNfY3RsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAkJCSAgICAgICBlbnVtIHBpcGUgcGlwZSwKPiAtCQkJICAgICAgIGVudW0gaW50 ZWxfcGlwZV9jcmNfc291cmNlICpzb3VyY2UsIHUzMiAqdmFsKQo+ICsJCQkgICAgICAgZW51bSBp bnRlbF9waXBlX2NyY19zb3VyY2UgKnNvdXJjZSwgdTMyICp2YWwsCj4gKwkJCSAgICAgICBib29s IHNldF93YSkKPiAgewo+ICAJaWYgKElTX0dFTjIoZGV2X3ByaXYpKQo+ICAJCXJldHVybiBpOHh4 X3BpcGVfY3JjX2N0bF9yZWcoc291cmNlLCB2YWwpOwo+IEBAIC02MTEsNyArNjEzLDcgQEAgc3Rh dGljIGludCBnZXRfbmV3X2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCWVsc2UgaWYgKElTX0dFTjUoZGV2X3ByaXYpIHx8IElTX0dFTjYoZGV2X3ByaXYp KQo+ICAJCXJldHVybiBpbGtfcGlwZV9jcmNfY3RsX3JlZyhzb3VyY2UsIHZhbCk7Cj4gIAllbHNl Cj4gLQkJcmV0dXJuIGl2Yl9waXBlX2NyY19jdGxfcmVnKGRldl9wcml2LCBwaXBlLCBzb3VyY2Us IHZhbCk7Cj4gKwkJcmV0dXJuIGl2Yl9waXBlX2NyY19jdGxfcmVnKGRldl9wcml2LCBwaXBlLCBz b3VyY2UsIHZhbCwgc2V0X3dhKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBwaXBlX2NyY19zZXRf c291cmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiBAQCAtNjM2LDcgKzYz OCw3IEBAIHN0YXRpYyBpbnQgcGlwZV9jcmNfc2V0X3NvdXJjZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAkJcmV0dXJuIC1FSU87Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZ2V0 X25ld19jcmNfY3RsX3JlZyhkZXZfcHJpdiwgcGlwZSwgJnNvdXJjZSwgJnZhbCk7Cj4gKwlyZXQg PSBnZXRfbmV3X2NyY19jdGxfcmVnKGRldl9wcml2LCBwaXBlLCAmc291cmNlLCAmdmFsLCB0cnVl KTsKPiAgCWlmIChyZXQgIT0gMCkKPiAgCQlnb3RvIG91dDsKPiAgCj4gQEAgLTkxNiw3ICs5MTgs NyBAQCBpbnQgaW50ZWxfcGlwZV9jcmNfY3JlYXRlKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQo+ ICBpbnQgaW50ZWxfY3J0Y19zZXRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNv bnN0IGNoYXIgKnNvdXJjZV9uYW1lLAo+ICAJCQkgICAgICBzaXplX3QgKnZhbHVlc19jbnQpCj4g IHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGlwZV9jcmMgKnBpcGVfY3JjID0gJmRldl9w cml2LT5waXBlX2NyY1tjcnRjLT5pbmRleF07Cj4gIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJf ZG9tYWluIHBvd2VyX2RvbWFpbjsKPiAgCWVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHNvdXJj ZTsKPiBAQCAtOTM0LDcgKzkzNiw3IEBAIGludCBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywgY29uc3QgY2hhciAqc291cmNlX25hbWUsCj4gIAkJcmV0dXJu IC1FSU87Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZ2V0X25ld19jcmNfY3RsX3JlZyhkZXZfcHJpdiwg Y3J0Yy0+aW5kZXgsICZzb3VyY2UsICZ2YWwpOwo+ICsJcmV0ID0gZ2V0X25ld19jcmNfY3RsX3Jl ZyhkZXZfcHJpdiwgY3J0Yy0+aW5kZXgsICZzb3VyY2UsICZ2YWwsIHRydWUpOwo+ICAJaWYgKHJl dCAhPSAwKQo+ICAJCWdvdG8gb3V0Owo+ICAKPiBAQCAtOTU5LDMgKzk2MSwzMyBAQCBpbnQgaW50 ZWxfY3J0Y19zZXRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNvbnN0IGNoYXIg KnNvdXJjZV9uYW1lLAo+ICAKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiArCj4gK3ZvaWQgaW50ZWxf Y3J0Y19lbmFibGVfcGlwZV9jcmMoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCj4gK3sK PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwo+ICsJZW51 bSBpbnRlbF9waXBlX2NyY19zb3VyY2Ugc291cmNlOwo+ICsJdTMyIHZhbCA9IDA7Cj4gKwo+ICsJ aWYgKCFjcnRjLT5jcmMub3BlbmVkKQo+ICsJCXJldHVybjsKPiArCj4gKwlpZiAoZGlzcGxheV9j cmNfY3RsX3BhcnNlX3NvdXJjZShjcnRjLT5jcmMuc291cmNlLCAmc291cmNlKSA8IDApCj4gKwkJ cmV0dXJuOwo+ICsKPiArCWlmIChnZXRfbmV3X2NyY19jdGxfcmVnKGRldl9wcml2LCBjcnRjLT5p bmRleCwgJnNvdXJjZSwgJnZhbCwgZmFsc2UpIDwgMCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJSTkx NV9XUklURShQSVBFX0NSQ19DVEwoY3J0Yy0+aW5kZXgpLCB2YWwpOwo+ICsJUE9TVElOR19SRUFE KFBJUEVfQ1JDX0NUTChjcnRjLT5pbmRleCkpOwoKSSB3b25kZXIgd2hhdCdzIGdvaW5nIHRvIGhh cHBlbiB3aXRoIHRoZSBzY3JhbWJsZXIgcmVzZXQgc3R1ZmYgd2hpbGUgdGhlCnBpcGUgaXMgb2Zm LiBBdCBsZWFzdCB0aGUgcG93ZXIgd2VsbCBnb2luZyBvZmYgb24gVkxWL0NIViBjb3VsZApwb3Rl bnRpYWxseSBjbG9iYmVyIHRoYXQgc3RhdGUuIEJ1dCBJIGd1ZXNzIHdlIGFscmVhZHkgaGF2ZSB0 aGF0CnByb2JsZW0gc28gcHJvYmFibHkgbm8gcG9pbnQgaW4gd29ycnlpbmcgYWJvdXQgaXQgbm93 LgoKPiArfQo+ICsKPiArdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGlwZV9jcmMoc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZp bnRlbF9jcnRjLT5iYXNlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5kZXYpOwo+ICsKPiArCUk5MTVfV1JJVEUoUElQRV9DUkNfQ1RMKGNydGMt PmluZGV4KSwgMCk7CgpJIHdvbmRlciB3aGV0aGVyIHdlIHNob3VsZCB0cnVzdCAwIHRvIGJlICJv ZmYiLiBTaG91bGQgbWFrZSB1c2UKZ2V0X25ld19jcmNfY3RsX3JlZygpIGhlcmUgYXMgd2VsbD8g RHVubm8uCgpBbnl3YXlzLCB3aXRoIHRoZSAnOycgZml4ZWQgdGhpcyBpcwpSZXZpZXdlZC1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCgo+ICsJUE9T VElOR19SRUFEKFBJUEVfQ1JDX0NUTChjcnRjLT5pbmRleCkpOwo+ICsJc3luY2hyb25pemVfaXJx KGRldl9wcml2LT5kcm0uaXJxKTsKPiArfQo+IC0tIAo+IDIuMTYuMgoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==