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: Thu, 8 Mar 2018 18:21:05 +0200 Message-ID: <20180308162105.GZ5453@intel.com> References: <20180308120202.52446-1-maarten.lankhorst@linux.intel.com> <20180308152241.GY5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B2CB56E2B6 for ; Thu, 8 Mar 2018 16:21:08 +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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMDgsIDIwMTggYXQgMDU6MDI6MzhQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMDgtMDMtMTggb20gMTY6MjIgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBUaHUsIE1hciAwOCwgMjAxOCBhdCAwMTowMjowMlBNICswMTAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBUaGlzIHdpbGwgZ2V0IHJpZCBvZiB0aGUgZm9sbG93aW5nIGVy cm9yOgo+ID4+IFsgICA3NC43MzAyNzFdIFdBUk5JTkc6IENQVTogNCBQSUQ6IDAgYXQgZHJpdmVy cy9ncHUvZHJtL2RybV92YmxhbmsuYzo2MTQgZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nh bm91dHBvcysweDEzZS8weDJmMAo+ID4+IFsgICA3NC43MzAzMTFdIE1vZHVsZXMgbGlua2VkIGlu OiB2Z2VtIHNuZF9oZGFfY29kZWNfaGRtaSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWsgc25kX2hkYV9j b2RlY19nZW5lcmljIGk5MTUgeDg2X3BrZ190ZW1wX3RoZXJtYWwgaW50ZWxfcG93ZXJjbGFtcCBj b3JldGVtcCBzbmRfaGRhX2ludGVsIGNyY3QxMGRpZl9wY2xtdWwgc25kX2hkYV9jb2RlYyBjcmMz Ml9wY2xtdWwgc25kX2h3ZGVwIGJyb2FkY29tIGdoYXNoX2NsbXVsbmlfaW50ZWwgc25kX2hkYV9j b3JlIGJjbV9waHlfbGliIHNuZF9wY20gdGczIGxwY19pY2ggbWVpX21lIG1laSBwcmltZV9udW1i ZXJzCj4gPj4gWyAgIDc0LjczMDM1M10gQ1BVOiA0IFBJRDogMCBDb21tOiBzd2FwcGVyLzQgVGFp bnRlZDogRyAgICAgVSAgICAgICAgICAgNC4xNi4wLXJjMi1DSS1DSV9EUk1fMzgyMisgIzEKPiA+ PiBbICAgNzQuNzMwMzU1XSBIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4gWFBTIDgzMDAgIC8wWTJN UkcsIEJJT1MgQTA2IDEwLzE3LzIwMTEKPiA+PiBbICAgNzQuNzMwMzU5XSBSSVA6IDAwMTA6ZHJt X2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91dHBvcysweDEzZS8weDJmMAo+ID4+IFsgICA3 NC43MzAzNjFdIFJTUDogMDAxODpmZmZmODgwMjJmYjAzZDEwIEVGTEFHUzogMDAwMTAwODYKPiA+ PiBbICAgNzQuNzMwMzY1XSBSQVg6IGZmZmZmZmZmYTAyOTFkMjAgUkJYOiBmZmZmODgwMjFhMTgw MDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMQo+ID4+IFsgICA3NC43MzAzNjddIFJEWDogZmZmZmZm ZmY4MjBlN2RiOCBSU0k6IDAwMDAwMDAwMDAwMDAwMDEgUkRJOiBmZmZmZmZmZjgyMDY4Y2VhCj4g Pj4gWyAgIDc0LjczMDM2OV0gUkJQOiBmZmZmODgwMjJmYjAzZDcwIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IGZmZmZmZmZmODE1ZDI2ZDAKPiA+PiBbICAgNzQuNzMwMzcxXSBSMTA6IDAwMDAw MDAwMDAwMDAwMDAgUjExOiBmZmZmZmZmZmEwMTYxY2EwIFIxMjogMDAwMDAwMDAwMDAwMDAwMQo+ ID4+IFsgICA3NC43MzAzNzNdIFIxMzogZmZmZjg4MDIxMjQ0ODAwOCBSMTQ6IGZmZmY4ODAyMTI0 NDgzMzAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCj4gPj4gWyAgIDc0LjczMDM3Nl0gRlM6ICAwMDAw MDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODAyMmZiMDAwMDAoMDAwMCkga25sR1M6MDAwMDAw MDAwMDAwMDAwMAo+ID4+IFsgICA3NC43MzAzNzhdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAw MCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPiA+PiBbICAgNzQuNzMwMzgwXSBDUjI6IDAwMDA1NWVk Y2JlYzkwMDAgQ1IzOiAwMDAwMDAwMDAyMjEwMDAxIENSNDogMDAwMDAwMDAwMDA2MDZlMAo+ID4+ IFsgICA3NC43MzAzODJdIENhbGwgVHJhY2U6Cj4gPj4gWyAgIDc0LjczMDM4NV0gIDxJUlE+Cj4g Pj4gWyAgIDc0LjczMDM5N10gIGRybV9nZXRfbGFzdF92Ymx0aW1lc3RhbXArMHgzNi8weDUwCj4g Pj4gWyAgIDc0LjczMDQwMV0gIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KzB4NjQvMHgyNDAKPiA+ PiBbICAgNzQuNzMwNDA5XSAgZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50KzB4NDEvMHg5 MAo+ID4+IFsgICA3NC43MzA0NTNdICBkaXNwbGF5X3BpcGVfY3JjX2lycV9oYW5kbGVyKzB4MTc2 LzB4MjIwIFtpOTE1XQo+ID4+IFsgICA3NC43MzA0OTddICBpOXh4X3BpcGVfY3JjX2lycV9oYW5k bGVyKzB4ZmUvMHgxNTAgW2k5MTVdCj4gPj4gWyAgIDc0LjczMDUzN10gIGlyb25sYWtlX2lycV9o YW5kbGVyKzB4NjE4LzB4YTMwIFtpOTE1XQo+ID4+IFsgICA3NC43MzA1NDhdICBfX2hhbmRsZV9p cnFfZXZlbnRfcGVyY3B1KzB4M2MvMHgzNDAKPiA+PiBbICAgNzQuNzMwNTU2XSAgaGFuZGxlX2ly cV9ldmVudF9wZXJjcHUrMHgxYi8weDUwCj4gPj4gWyAgIDc0LjczMDU2MV0gIGhhbmRsZV9pcnFf ZXZlbnQrMHgyZi8weDUwCj4gPj4gWyAgIDc0LjczMDU2Nl0gIGhhbmRsZV9lZGdlX2lycSsweGU0 LzB4MWIwCj4gPj4gWyAgIDc0LjczMDU3Ml0gIGhhbmRsZV9pcnErMHgxMS8weDIwCj4gPj4gWyAg IDc0LjczMDU3Nl0gIGRvX0lSUSsweDVlLzB4MTIwCj4gPj4gWyAgIDc0LjczMDU4NF0gIGNvbW1v bl9pbnRlcnJ1cHQrMHg4NC8weDg0Cj4gPj4gWyAgIDc0LjczMDU4Nl0gIDwvSVJRPgo+ID4+IFsg ICA3NC43MzA1OTFdIFJJUDogMDAxMDpjcHVpZGxlX2VudGVyX3N0YXRlKzB4YWEvMHgzNTAKPiA+ PiBbICAgNzQuNzMwNTkzXSBSU1A6IDAwMTg6ZmZmZmM5MDAwMDA4YmViOCBFRkxBR1M6IDAwMDAw MjEyIE9SSUdfUkFYOiBmZmZmZmZmZmZmZmZmZmRlCj4gPj4gWyAgIDc0LjczMDU5N10gUkFYOiBm ZmZmODgwMjI2YjgwMDQwIFJCWDogMDAwMDAwMDAwMDMxZmMzZSBSQ1g6IDAwMDAwMDAwMDAwMDAw MDEKPiA+PiBbICAgNzQuNzMwNTk5XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiBmZmZmZmZm ZjgyMTBmYjU5IFJESTogZmZmZmZmZmY4MjBjMDJlNwo+ID4+IFsgICA3NC43MzA2MDFdIFJCUDog MDAwMDAwMDAwMDAwMDAwNCBSMDg6IDAwMDAwMDAwMDAwMDQwYWYgUjA5OiAwMDAwMDAwMDAwMDAw MDE4Cj4gPj4gWyAgIDc0LjczMDYwM10gUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAw MDAwMDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwMDQKPiA+PiBbICAgNzQuNzMwNjA2XSBSMTM6 IGZmZmZlOGZmZmZkMDA0MzAgUjE0OiAwMDAwMDAxMTY2MTIwYmY0IFIxNTogZmZmZmZmZmY4MjI5 NDQ2MAo+ID4+IFsgICA3NC43MzA2MjFdICA/IGNwdWlkbGVfZW50ZXJfc3RhdGUrMHhhNi8weDM1 MAo+ID4+IFsgICA3NC43MzA2MjldICBkb19pZGxlKzB4MTg4LzB4MWQwCj4gPj4gWyAgIDc0Ljcz MDYzNl0gIGNwdV9zdGFydHVwX2VudHJ5KzB4MTQvMHgyMAo+ID4+IFsgICA3NC43MzA2NDFdICBz dGFydF9zZWNvbmRhcnkrMHgxMjkvMHgxNjAKPiA+PiBbICAgNzQuNzMwNjQ2XSAgc2Vjb25kYXJ5 X3N0YXJ0dXBfNjQrMHhhNS8weGIwCj4gPj4gWyAgIDc0LjczMDY2MF0gQ29kZTogZTEgNDggYzcg YzIgYjggN2QgMGUgODIgYmUgMDEgMDAgMDAgMDAgNDggYzcgYzcgZWEgOGMgMDYgODIgZTggNjQg ZWMgZmYgZmYgNDggOGIgODMgYzggMDcgMDAgMDAgNDggODMgNzggMjggMDAgMGYgODQgZTIgZmUg ZmYgZmYgPDBmPiAwYiA0NSAzMSBlZCBlOSBkYiBmZSBmZiBmZiA0MSBiOCBkMyA0ZCA2MiAxMCA4 OSBjOCA2YSAwMyA0MQo+ID4+IFsgICA3NC43MzA3NTRdIC0tLVsgZW5kIHRyYWNlIDE0YjEzNDU3 MDViNjg1NjUgXS0tLQo+ID4+Cj4gPj4gQ2hhbmdlcyBzaW5jZSB2MToKPiA+PiAtIERvbid0IHRy eSB0byBhcHBseSBDUkMgd29ya2Fyb3VuZCB3aGVuIGVuYWJsaW5nIHBpcGUsIGl0IHNob3VsZCBh bHJlYWR5IGJlIGVuYWJsZWQuCj4gPj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiA+PiAtIE1ha2UgY3Jj IGZ1bmN0aW9ucyBmb3IgIURFQlVHRlMgY2FzZSBpbmxpbmUuCj4gPj4gLSBQYXNzIGludGVsX2Ny dGMgdG8gY3JjIGZ1bmN0aW9ucy4KPiA+PiAtIEFkZCBjb21tZW50cyB0byBjYWxsc2l0ZXMuCj4g Pj4gQ2hhbmdlcyBzaW5jZSB2MzoKPiA+PiAtIENhY2hlIHNlbGVjdGVkIHNvdXJjZSB0byBwaXBl X2NyYy0+c291cmNlLgo+ID4+IC0gU2V0IHBpcGVfY3JjLT5za2lwcGVkIHRvIE1JTl9JTlQgZHVy aW5nIGRpc2FibGUgdG8gY2xvc2UgYSByYWNlIGNvbmRpdGlvbi4KPiA+PiBDaGFuZ2VzIHNpbmNl IHY0Ogo+ID4+IC0gSGFuZGxlIGZhbGxvdXQgZnJvbSBzZXR0aW5nIHBpcGVfY3JjLT5zb3VyY2Ug aW4gaXJxIGhhbmRsZXIuCj4gPj4KPiA+PiBDYzogTWFydGEgTMO2ZnN0ZWR0IDxtYXJ0YS5sb2Zz dGVkdEBpbnRlbC5jb20+Cj4gPj4gUmVwb3J0ZWQtYnk6IE1hcnRhIEzDtmZzdGVkdCA8bWFydGEu bG9mc3RlZHRAaW50ZWwuY29tPgo+ID4+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0 b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUxODUKPiA+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4+IC0tLQo+ ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgIHwgIDQgKy0tCj4gPj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgfCAxMCArKysrKysrCj4gPj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgfCAgOSArKysrKysKPiA+PiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYyB8IDUzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4+ IGluZGV4IGNlMTYwMDNlZjA0OC4uNzgwNzQ4ODA4NGZlIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gPj4gQEAgLTE2MjYsNyArMTYyNiw3IEBAIHN0YXRpYyB2b2lkIGRpc3Bs YXlfcGlwZV9jcmNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4+ICAJaW50IGhlYWQsIHRhaWw7Cj4gPj4gIAo+ID4+ICAJc3Bpbl9sb2NrKCZwaXBlX2Ny Yy0+bG9jayk7Cj4gPj4gLQlpZiAocGlwZV9jcmMtPnNvdXJjZSkgewo+ID4+ICsJaWYgKHBpcGVf Y3JjLT5zb3VyY2UgJiYgIWNydGMtPmJhc2UuY3JjLm9wZW5lZCkgewo+ID4gSG1tLiBUaGlzIGlz IHN0YXJ0aW5nIHRvIGdldCBjb25mdXNpbmcuIFNlZWluZyBhcyB3ZSBub3cgbG9zZSB0aGUKPiA+ IGNhcGFiaWxpdHkgdG8gZ2V0IGFsbCB0aGUgY3JjcyBhY3Jvc3MgdGhlIG1vZGVzZXQgYW55d2F5 IEkgdGhpbmsgSSdsbAo+ID4gaGF2ZSB0byByZXZva2UgbXkgb2JqZWN0aW9uIHRvIG51a2luZyB0 aGUgb2xkIGludGVyZmFjZS4gQ29uc2lkZXIKPiA+IHRoYXQgb2xkIG51Z2dldCBhY2tlZC4KPiBP ayB0aGFua3MuIDopCj4gPj4gIAkJaWYgKCFwaXBlX2NyYy0+ZW50cmllcykgewo+ID4+ICAJCQlz cGluX3VubG9jaygmcGlwZV9jcmMtPmxvY2spOwo+ID4+ICAJCQlEUk1fREVCVUdfS01TKCJzcHVy aW91cyBpbnRlcnJ1cHRcbiIpOwo+ID4+IEBAIC0xNjY2LDcgKzE2NjYsNyBAQCBzdGF0aWMgdm9p ZCBkaXNwbGF5X3BpcGVfY3JjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+PiAgCQkgKiBPbiBHRU44KyBzb21ldGltZXMgdGhlIHNlY29uZCBDUkMgaXMg Ym9ua2VycyBhcyB3ZWxsLCBzbwo+ID4+ICAJCSAqIGRvbid0IHRydXN0IHRoYXQgb25lIGVpdGhl ci4KPiA+PiAgCQkgKi8KPiA+PiAtCQlpZiAocGlwZV9jcmMtPnNraXBwZWQgPT0gMCB8fAo+ID4+ ICsJCWlmIChwaXBlX2NyYy0+c2tpcHBlZCA8PSAwIHx8Cj4gPj4gIAkJICAgIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDggJiYgcGlwZV9jcmMtPnNraXBwZWQgPT0gMSkpIHsKPiA+PiAgCQkJcGlw ZV9jcmMtPnNraXBwZWQrKzsKPiA+PiAgCQkJc3Bpbl91bmxvY2soJnBpcGVfY3JjLT5sb2NrKTsK PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4gaW5kZXggMzMxMDg0MDgy NTQ1Li4yOTMzYWQzODA5NGYgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPj4gQEAgLTEyMTQ3LDYgKzEyMTQ3LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBk YXRlX2NydGMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4+ICAJaWYgKG1vZGVzZXQpIHsKPiA+ PiAgCQl1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0KGludGVsX2NydGMpOwo+ID4+ICAJCWRldl9wcml2 LT5kaXNwbGF5LmNydGNfZW5hYmxlKHBpcGVfY29uZmlnLCBzdGF0ZSk7Cj4gPj4gKwo+ID4+ICsJ CS8qIHZibGFua3Mgd29yayBhZ2FpbiwgcmUtZW5hYmxlIHBpcGUgQ1JDLiAqLwo+ID4+ICsJCWlu dGVsX2NydGNfZW5hYmxlX3BpcGVfY3JjKGludGVsX2NydGMpOwo+ID4+ICAJfSBlbHNlIHsKPiA+ PiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNf c3RhdGUpLAo+ID4+ICAJCQkJICAgICAgIHBpcGVfY29uZmlnKTsKPiA+PiBAQCAtMTIzMjcsNiAr MTIzMzAsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+PiAgCj4gPj4gIAkJaWYgKG9sZF9jcnRjX3N0YXRl LT5hY3RpdmUpIHsKPiA+PiAgCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhjcnRjLCBvbGRf Y3J0Y19zdGF0ZS0+cGxhbmVfbWFzayk7Cj4gPj4gKwo+ID4+ICsJCQkvKgo+ID4+ICsJCQkgKiBX ZSBuZWVkIHRvIGRpc2FibGUgcGlwZSBDUkMgYmVmb3JlIGRpc2FibGluZyB0aGUgcGlwZSwKPiA+ PiArCQkJICogb3Igd2UgcmFjZSBhZ2FpbnN0IHZibGFuayBvZmYuCj4gPj4gKwkJCSAqLwo+ID4+ ICsJCQlpbnRlbF9jcnRjX2Rpc2FibGVfcGlwZV9jcmMoaW50ZWxfY3J0Yyk7Cj4gPj4gKwo+ID4+ ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Rpc2FibGUodG9faW50ZWxfY3J0Y19zdGF0ZShv bGRfY3J0Y19zdGF0ZSksIHN0YXRlKTsKPiA+PiAgCQkJaW50ZWxfY3J0Yy0+YWN0aXZlID0gZmFs c2U7Cj4gPj4gIAkJCWludGVsX2ZiY19kaXNhYmxlKGludGVsX2NydGMpOwo+ID4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gPj4gaW5kZXggZDQzNjg1ODliMzU1Li5mY2U1ZDMwNzJkOTcgMTAw NjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+IEBAIC0yMTM4LDggKzIxMzgs MTcgQEAgaW50IGludGVsX3BpcGVfY3JjX2NyZWF0ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7 Cj4gPj4gICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiA+PiAgaW50IGludGVsX2NydGNfc2V0X2Ny Y19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFyICpzb3VyY2VfbmFtZSwK PiA+PiAgCQkJICAgICAgc2l6ZV90ICp2YWx1ZXNfY250KTsKPiA+PiArdm9pZCBpbnRlbF9jcnRj X2Rpc2FibGVfcGlwZV9jcmMoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ID4+ICt2b2lkIGlu dGVsX2NydGNfZW5hYmxlX3BpcGVfY3JjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiA+PiAg I2Vsc2UKPiA+PiAgI2RlZmluZSBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlIE5VTEwKPiA+PiAr c3RhdGljIGlubGluZSB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9waXBlX2NyYyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKPiA+PiArewo+ID4+ICt9Cj4gPj4gKwo+ID4+ICtzdGF0aWMgaW5saW5l IHZvaWQgaW50ZWxfY3J0Y19lbmFibGVfcGlwZV9jcmMoc3RydWN0IGludGVsX2NydGMgKmNydGMp Cj4gPj4gK3sKPiA+PiArfQo+ID4+ICAjZW5kaWYKPiA+PiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBm aWxlX29wZXJhdGlvbnMgaTkxNV9kaXNwbGF5X2NyY19jdGxfZm9wczsKPiA+PiAgI2VuZGlmIC8q IF9fSU5URUxfRFJWX0hfXyAqLwo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMu Ywo+ID4+IGluZGV4IDFmNWNkNTcyYTdmZi4uNGYzNjdjMTZlOWU1IDEwMDY0NAo+ID4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BpcGVfY3JjLmMKPiA+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCj4gPj4gQEAgLTU2OSw3ICs1NjksOCBAQCBz dGF0aWMgdm9pZCBoc3dfcGlwZV9BX2NyY193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPj4gIHN0YXRpYyBpbnQgaXZiX3BpcGVfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ICAJCQkJZW51bSBwaXBlIHBpcGUsCj4gPj4gIAkJ CQllbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZSAqc291cmNlLAo+ID4+IC0JCQkJdWludDMyX3Qg KnZhbCkKPiA+PiArCQkJCXVpbnQzMl90ICp2YWwsCj4gPj4gKwkJCQlib29sIHNldF93YSkKPiA+ PiAgewo+ID4+ICAJaWYgKCpzb3VyY2UgPT0gSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pCj4g Pj4gIAkJKnNvdXJjZSA9IElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9QRjsKPiA+PiBAQCAtNTgyLDcg KzU4Myw3IEBAIHN0YXRpYyBpbnQgaXZiX3BpcGVfY3JjX2N0bF9yZWcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ICAJCSp2YWwgPSBQSVBFX0NSQ19FTkFCTEUgfCBQSVBF X0NSQ19TT1VSQ0VfU1BSSVRFX0lWQjsKPiA+PiAgCQlicmVhazsKPiA+PiAgCWNhc2UgSU5URUxf UElQRV9DUkNfU09VUkNFX1BGOgo+ID4+IC0JCWlmICgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwK PiA+PiArCQlpZiAoc2V0X3dhICYmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fAo+ID4+ICAJCSAg ICAgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgJiYgcGlwZSA9PSBQSVBFX0EpCj4gPj4gIAkJCWhz d19waXBlX0FfY3JjX3dhKGRldl9wcml2LCB0cnVlKTsKPiA+PiAgCj4gPj4gQEAgLTYwMCw3ICs2 MDEsOCBAQCBzdGF0aWMgaW50IGl2Yl9waXBlX2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiA+PiAgCj4gPj4gIHN0YXRpYyBpbnQgZ2V0X25ld19jcmNfY3Rs X3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4gIAkJCSAgICAgICBl bnVtIHBpcGUgcGlwZSwKPiA+PiAtCQkJICAgICAgIGVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNl ICpzb3VyY2UsIHUzMiAqdmFsKQo+ID4+ICsJCQkgICAgICAgZW51bSBpbnRlbF9waXBlX2NyY19z b3VyY2UgKnNvdXJjZSwgdTMyICp2YWwsCj4gPj4gKwkJCSAgICAgICBib29sIHNldF93YSkKPiA+ PiAgewo+ID4+ICAJaWYgKElTX0dFTjIoZGV2X3ByaXYpKQo+ID4+ICAJCXJldHVybiBpOHh4X3Bp cGVfY3JjX2N0bF9yZWcoc291cmNlLCB2YWwpOwo+ID4+IEBAIC02MTEsNyArNjEzLDcgQEAgc3Rh dGljIGludCBnZXRfbmV3X2NyY19jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+PiAgCWVsc2UgaWYgKElTX0dFTjUoZGV2X3ByaXYpIHx8IElTX0dFTjYoZGV2X3By aXYpKQo+ID4+ICAJCXJldHVybiBpbGtfcGlwZV9jcmNfY3RsX3JlZyhzb3VyY2UsIHZhbCk7Cj4g Pj4gIAllbHNlCj4gPj4gLQkJcmV0dXJuIGl2Yl9waXBlX2NyY19jdGxfcmVnKGRldl9wcml2LCBw aXBlLCBzb3VyY2UsIHZhbCk7Cj4gPj4gKwkJcmV0dXJuIGl2Yl9waXBlX2NyY19jdGxfcmVnKGRl dl9wcml2LCBwaXBlLCBzb3VyY2UsIHZhbCwgc2V0X3dhKTsKPiA+PiAgfQo+ID4+ICAKPiA+PiAg c3RhdGljIGludCBwaXBlX2NyY19zZXRfc291cmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+PiBAQCAtNjM2LDcgKzYzOCw3IEBAIHN0YXRpYyBpbnQgcGlwZV9jcmNfc2V0 X3NvdXJjZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4gIAkJcmV0dXJu IC1FSU87Cj4gPj4gIAl9Cj4gPj4gIAo+ID4+IC0JcmV0ID0gZ2V0X25ld19jcmNfY3RsX3JlZyhk ZXZfcHJpdiwgcGlwZSwgJnNvdXJjZSwgJnZhbCk7Cj4gPj4gKwlyZXQgPSBnZXRfbmV3X2NyY19j dGxfcmVnKGRldl9wcml2LCBwaXBlLCAmc291cmNlLCAmdmFsLCB0cnVlKTsKPiA+PiAgCWlmIChy ZXQgIT0gMCkKPiA+PiAgCQlnb3RvIG91dDsKPiA+PiAgCj4gPj4gQEAgLTkxNiw3ICs5MTgsNyBA QCBpbnQgaW50ZWxfcGlwZV9jcmNfY3JlYXRlKHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQo+ID4+ ICBpbnQgaW50ZWxfY3J0Y19zZXRfY3JjX3NvdXJjZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGNv bnN0IGNoYXIgKnNvdXJjZV9uYW1lLAo+ID4+ICAJCQkgICAgICBzaXplX3QgKnZhbHVlc19jbnQp Cj4gPj4gIHsKPiA+PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMt PmRldi0+ZGV2X3ByaXZhdGU7Cj4gPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmRldik7Cj4gPj4gIAlzdHJ1Y3QgaW50ZWxfcGlwZV9jcmMgKnBp cGVfY3JjID0gJmRldl9wcml2LT5waXBlX2NyY1tjcnRjLT5pbmRleF07Cj4gPj4gIAllbnVtIGlu dGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiA+PiAgCWVudW0gaW50ZWxf cGlwZV9jcmNfc291cmNlIHNvdXJjZTsKPiA+PiBAQCAtOTM0LDEwICs5MzYsMTEgQEAgaW50IGlu dGVsX2NydGNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBjaGFy ICpzb3VyY2VfbmFtZSwKPiA+PiAgCQlyZXR1cm4gLUVJTzsKPiA+PiAgCX0KPiA+PiAgCj4gPj4g LQlyZXQgPSBnZXRfbmV3X2NyY19jdGxfcmVnKGRldl9wcml2LCBjcnRjLT5pbmRleCwgJnNvdXJj ZSwgJnZhbCk7Cj4gPj4gKwlyZXQgPSBnZXRfbmV3X2NyY19jdGxfcmVnKGRldl9wcml2LCBjcnRj LT5pbmRleCwgJnNvdXJjZSwgJnZhbCwgdHJ1ZSk7Cj4gPj4gIAlpZiAocmV0ICE9IDApCj4gPj4g IAkJZ290byBvdXQ7Cj4gPj4gIAo+ID4+ICsJcGlwZV9jcmMtPnNvdXJjZSA9IHNvdXJjZTsKPiA+ PiAgCUk5MTVfV1JJVEUoUElQRV9DUkNfQ1RMKGNydGMtPmluZGV4KSwgdmFsKTsKPiA+PiAgCVBP U1RJTkdfUkVBRChQSVBFX0NSQ19DVEwoY3J0Yy0+aW5kZXgpKTsKPiA+PiAgCj4gPj4gQEAgLTk1 OSwzICs5NjIsMzkgQEAgaW50IGludGVsX2NydGNfc2V0X2NyY19zb3VyY2Uoc3RydWN0IGRybV9j cnRjICpjcnRjLCBjb25zdCBjaGFyICpzb3VyY2VfbmFtZSwKPiA+PiAgCj4gPj4gIAlyZXR1cm4g cmV0Owo+ID4+ICB9Cj4gPj4gKwo+ID4+ICt2b2lkIGludGVsX2NydGNfZW5hYmxlX3BpcGVfY3Jj KHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQo+ID4+ICt7Cj4gPj4gKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKPiA+PiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiA+PiArCXN0cnVjdCBpbnRl bF9waXBlX2NyYyAqcGlwZV9jcmMgPSAmZGV2X3ByaXYtPnBpcGVfY3JjW2NydGMtPmluZGV4XTsK PiA+PiArCXUzMiB2YWwgPSAwOwo+ID4+ICsKPiA+PiArCWlmICghY3J0Yy0+Y3JjLm9wZW5lZCkK PiA+PiArCQlyZXR1cm47Cj4gPj4gKwo+ID4+ICsJaWYgKGdldF9uZXdfY3JjX2N0bF9yZWcoZGV2 X3ByaXYsIGNydGMtPmluZGV4LCAmcGlwZV9jcmMtPnNvdXJjZSwgJnZhbCwgZmFsc2UpIDwgMCkK PiA+PiArCQlyZXR1cm47Cj4gPj4gKwo+ID4+ICsJLyogRG9uJ3QgbmVlZCBwaXBlX2NyYy0+bG9j ayBoZXJlLCBJUlFzIGFyZSBub3QgZ2VuZXJhdGVkLiAqLwo+ID4+ICsJcGlwZV9jcmMtPnNraXBw ZWQgPSAwOwo+ID4+ICsKPiA+PiArCUk5MTVfV1JJVEUoUElQRV9DUkNfQ1RMKGNydGMtPmluZGV4 KSwgdmFsKTsKPiA+PiArCVBPU1RJTkdfUkVBRChQSVBFX0NSQ19DVEwoY3J0Yy0+aW5kZXgpKTsK PiA+PiArfQo+ID4+ICsKPiA+PiArdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGlwZV9jcmMoc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCj4gPj4gK3sKPiA+PiArCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ID4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwo+ID4+ICsJc3RydWN0IGludGVsX3Bp cGVfY3JjICpwaXBlX2NyYyA9ICZkZXZfcHJpdi0+cGlwZV9jcmNbY3J0Yy0+aW5kZXhdOwo+ID4+ ICsKPiA+PiArCS8qIFN3YWxsb3cgY3JjJ3MgdW50aWwgd2Ugc3RvcCBnZW5lcmF0aW5nIHRoZW0u ICovCj4gPj4gKwlzcGluX2xvY2tfaXJxKCZwaXBlX2NyYy0+bG9jayk7Cj4gPj4gKwlwaXBlX2Ny Yy0+c2tpcHBlZCA9IElOVF9NSU47Cj4gPj4gKwlzcGluX3VubG9ja19pcnEoJnBpcGVfY3JjLT5s b2NrKTsKPiA+IERvZXMgdGhpcyBtZWFuIHRoZSBodyBjYW4gc3RpbGwgZ2VuZXJhdGUgYSBjcmMg aW50ZXJydXB0IGFmdGVyIHRoZQo+ID4gUElQRV9DUkNfQ1RMIGhhcyBiZWVuIGNsZWFyZWQ/Cj4g SSB0aGluayBhdCBtb3N0IGp1c3QgMSwgYnV0IGlmIG1vZGVzZXQgZGlzYWJsZSBpcyBmYXN0IGVu b3VnaCB3ZSBjb3VsZCB0aGVvcmV0aWNhbGx5IGhpdCBpdCBhZnRlciB2Ymxhbmsgb2ZmIHByb2Jh Ymx5Lgo+IEhlbmNlIHRoZSBleHRyYSBwYXJhbm9pYSBvZiBzZXR0aW5nIHNraXBwZWQgYmVmb3Jl IHN5bmNocm9uaXplX2lycSwgYXQgdGhhdCBwb2ludCB3ZSBrbm93IGZvciBzdXJlIHRoYXQgYW55 Cj4gQ1JDIHdpbGwgYmUgc3dhbGxvd2VkIGFmdGVyIGRpc2FibGVfcGlwZV9jcmMgcmV0dXJucywg ZXZlbiBvbiBhIGNyYXp5IC1ydCBrZXJuZWwuCgpPSy4gU28gSSBndWVzcyB3ZSdyZSBub3QgZW50 aXJlbHkgc3VyZSB0aGVuLiBJIGd1ZXNzIGJlaW5nIHBhcmFub2lkCmRvZXNuJ3QgaHVydCB0aG91 Z2gKClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgpzdGlsbCBob2xkcy4gTm90IHRoYXQgaXQgZGlkIG11Y2ggZ29vZCBvbiB0aGUgcHJl dmlvdXMgaXRlcmF0aW9uIDovCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK