From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 09/15] drm/i915: Trick CL2 into life on CHV when using pipe B with port B Date: Wed, 19 Aug 2015 14:29:37 +0300 Message-ID: <20150819112937.GM5176@intel.com> References: <1436388361-11130-1-git-send-email-ville.syrjala@linux.intel.com> <1436388361-11130-10-git-send-email-ville.syrjala@linux.intel.com> <55D3E745.3040609@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 8AFEE6E595 for ; Wed, 19 Aug 2015 04:29:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55D3E745.3040609@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: Deepak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBdWcgMTksIDIwMTUgYXQgMDc6NDc6NDFBTSArMDUzMCwgRGVlcGFrIHdyb3RlOgo+ IAo+IAo+IE9uIDA3LzA5LzIwMTUgMDI6MTUgQU0sIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+Cj4gPiBOb3JtbWFsbHkgdGhlIGNvbW1vbiBsYW5lIGluIGEgUEhZIGNo YW5uZWwgZ2V0cyBwb3dlcmVkIHVwIHdoZW4gc29tZQo+ID4gb2YgdGhlIGRhdGEgbGFuZXMgZ2V0 IHBvd2VyZWQgdXAuIEJ1dCB3aGVuIHdlJ3JlIGRyaXZpbmcgcG9ydCBCIHdpdGgKPiA+IHBpcGUg QiB3ZSBkb24ndCB3YW50IHRvIGVuYWJsZWQgYW55IG9mIHRoZSBkYXRhIGxhbmVzLCBhbmQganVz dCB3YW50Cj4gPiB0aGUgRFBMTCBpbiB0aGUgY29tbW9uIGxhbmUgdG8gYmUgYWN0aXZlLgo+ID4K PiA+IFRvIG1ha2UgdGhhdCBoYXBwZW5zIHdlIGhhdmUgdG8gdGVtcG9yYXJpbHkgZW5hYmxlIHNv bWUgZGF0YSBsYW5lcwo+ID4gYWZ0ZXIgd2hpY2ggd2UgY2FuIGFjY2VzcyB0aGUgRFBMTCByZWdp c3RlcnMgaW4gdGhlIGNvbW1vbiBsYW5lLiBPbmNlCj4gPiB0aGUgcGlwZSBpcyB1cCBhbmQgcnVu bmluZyB3ZSBjYW4gZHJvcCB0aGUgcG93ZXIgb3ZlcnJpZGUgb24gdGhlIGRhdGEKPiA+IGxhbmVz IGFsbG93aW5nIHRoZW0gdG8gc2h1dCBkb3duLiBGcm9tIHRoaXMgcG9pbnQgZm9yd2FyZCB0aGUg Y29tbW9uCj4gPiBsYW5lIHdpbGwgaW4gZmFjdCBzdGF5IHBvd2VyZWQgb24gdW50aWwgdGhlIGRh dGEgbGFuZXMgaW4gdGhlIG90aGVyCj4gPiBjaGFubmVsIGdldCBwb3dlcmVkIGRvd24uCj4gUGF0 Y2ggbG9va3MgZmluZS4gSXQgZG9lcyB3aGF0IGl0IHNheXMuIE9uZSBRLCB3aHkgb25seSBmb3Ig cG9ydCBCPyBQb3J0IAo+IEMgaXMgYWxzbyBpbiBzYW1lIGNvbW1vbiBsYW5lIHJpZ2h0PwoKUG9y dCBCIGlzIGluIHRoZSBmaXJzdCBQSFkgY2hhbm5lbCB3aGljaCBhbHNvIGhvdXNlcyBDTDEuIENM MSBhbHdheXMKcG93ZXJzIHVwIHdoZW5ldmVyIGFueSBsYW5lcyBpbiBlaXRoZXIgUEhZIGNoYW5u ZWwgYXJlIHBvd2VyZWQgdXAuCkNMMiBvbmx5IHBvd2VycyB1cCBpZiBsYW5lcyBpbiB0aGUgc2Vj b25kIGNoYW5uZWwgKGllLiB0aGUgb25lIHdpdGgKcG9ydCBDKSBwb3dlcnMgdXAuCgpTbyBpbiB0 aGlzIHNjZW5hcmlvIChwaXBlIEItPnBvcnQgQikgd2Ugd2FudCB0aGUgRFBMTCBmcm9tIENMMiwg YnV0CmlkZWFsbHkgd2Ugb25seSB3YW50IHRvIHBvd2VyIHVwIHRoZSBsYW5lcyBmb3IgcG9ydCBC LiBQb3dlcmluZyB1cApwb3J0IEIgbGFuZXMgd2lsbCBvbmx5IHBvd2VyIHVwIENMMSwgYnV0IGFz IHdlIG5lZWQgQ0wyIGluc3RlYWQgd2UKbmVlZCB0bywgdGVtcG9yYXJpbHksIHBvd2VyIHVwIHNv bWUgbGFuZXMgaW4gcG9ydCBDIGFzIHdlbGwuCgpDcm9zc2luZyB0aGUgc3RyZWFtcyB0aGUgb3Ro ZXIgd2F5IChwaXBlIEEtPnBvcnQgQykgaXMgbm90IGEgcHJvYmxlbQpzaW5jZSBDTDEgcG93ZXJz IHVwIHdoZW5ldmVyIGFueXRoaW5nIGVsc2UgcG93ZXJzIHVwLiBTbyBwb3dlcmluZyB1cApzb21l IHBvcnQgQyBsYW5lcyBpcyBlbm91Z2ggb24gaXRzIG93biB0byBtYWtlIHRoZSBDTDEgRFBMTApv cGVyYXRpb25hbCwgZXZlbiB0aG91Z2ggQ0wxIGFuZCB0aGUgbGFuZXMgbGl2ZSBpbiBzZXBhcmF0 ZSBjaGFubmVscy4KCj4gUmV2aWV3ZWQtYnk6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRl bC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgICAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAzICsrKwo+ID4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAyOSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gICA0IGZpbGVzIGNoYW5nZWQsIDc4IGluc2Vy dGlvbnMoKykKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDYwNTgxMjku LjhkMDg4ZjMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMjg2NSw2 ICsyODY1LDEyIEBAIHN0YXRpYyB2b2lkIGNodl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ID4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7 Cj4gPiAgIAo+ID4gICAJaW50ZWxfZW5hYmxlX2RwKGVuY29kZXIpOwo+ID4gKwo+ID4gKwkvKiBT ZWNvbmQgY29tbW9uIGxhbmUgd2lsbCBzdGF5IGFsaXZlIG9uIGl0cyBvd24gbm93ICovCj4gPiAr CWlmIChkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUpIHsKPiA+ICsJCWNodl9waHlfcG93ZXJn YXRlX2NoKGRldl9wcml2LCBEUElPX1BIWTAsIERQSU9fQ0gxLCBmYWxzZSk7Cj4gPiArCQlkcG9y dC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUgPSBmYWxzZTsKPiA+ICsJfQo+ID4gICB9Cj4gPiAgIAo+ ID4gICBzdGF0aWMgdm9pZCBjaHZfZHBfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gPiBAQCAtMjg4Miw2ICsyODg4LDE0IEBAIHN0YXRpYyB2b2lkIGNodl9k cF9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAgCj4g PiAgIAlpbnRlbF9kcF9wcmVwYXJlKGVuY29kZXIpOwo+ID4gICAKPiA+ICsJLyoKPiA+ICsJICog TXVzdCB0cmljayB0aGUgc2Vjb25kIGNvbW1vbiBsYW5lIGludG8gbGlmZS4KPiA+ICsJICogT3Ro ZXJ3aXNlIHdlIGNhbid0IGV2ZW4gYWNjZXNzIHRoZSBQTEwuCj4gPiArCSAqLwo+ID4gKwlpZiAo Y2ggPT0gRFBJT19DSDAgJiYgcGlwZSA9PSBQSVBFX0IpCj4gPiArCQlkcG9ydC0+cmVsZWFzZV9j bDJfb3ZlcnJpZGUgPQo+ID4gKwkJCSFjaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJpdiwgRFBJ T19QSFkwLCBEUElPX0NIMSwgdHJ1ZSk7Cj4gPiArCj4gPiAgIAljaHZfcGh5X3Bvd2VyZ2F0ZV9s YW5lcyhlbmNvZGVyLCB0cnVlLCBsYW5lX21hc2spOwo+ID4gICAKPiA+ICAgCW11dGV4X2xvY2so JmRldl9wcml2LT5zYl9sb2NrKTsKPiA+IEBAIC0yOTYwLDYgKzI5NzQsMTUgQEAgc3RhdGljIHZv aWQgY2h2X2RwX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp Cj4gPiAgIAo+ID4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gPiAgIAo+ ID4gKwkvKgo+ID4gKwkgKiBMZWF2ZSB0aGUgcG93ZXIgZG93biBiaXQgY2xlYXJlZCBmb3IgYXQg bGVhc3Qgb25lCj4gPiArCSAqIGxhbmUgc28gdGhhdCBjaHZfcG93ZXJnYXRlX3BoeV9jaCgpIHdp bGwgcG93ZXIKPiA+ICsJICogb24gc29tZXRoaW5nIHdoZW4gdGhlIGNoYW5uZWwgaXMgb3RoZXJ3 aXNlIHVudXNlZC4KPiA+ICsJICogV2hlbiB0aGUgcG9ydCBpcyBvZmYgYW5kIHRoZSBvdmVycmlk ZSBpcyByZW1vdmVkCj4gPiArCSAqIHRoZSBsYW5lcyBwb3dlciBkb3duIGFueXdheSwgc28gb3Ro ZXJ3aXNlIGl0IGRvZXNuJ3QKPiA+ICsJICogcmVhbGx5IG1hdHRlciB3aGF0IHRoZSBzdGF0ZSBv ZiBwb3dlciBkb3duIGJpdHMgaXMKPiA+ICsJICogYWZ0ZXIgdGhpcy4KPiA+ICsJICovCj4gPiAg IAljaHZfcGh5X3Bvd2VyZ2F0ZV9sYW5lcyhlbmNvZGVyLCBmYWxzZSwgMHgwKTsKPiA+ICAgfQo+ ID4gICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBmOGExNmRjLi42MTMz YTk4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtNzgyLDYgKzc4 Miw3IEBAIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+ID4gICAJc3RydWN0IGludGVsX2Rw IGRwOwo+ID4gICAJc3RydWN0IGludGVsX2hkbWkgaGRtaTsKPiA+ICAgCWVudW0gaXJxcmV0dXJu ICgqaHBkX3B1bHNlKShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICosIGJvb2wpOwo+ID4gKwli b29sIHJlbGVhc2VfY2wyX292ZXJyaWRlOwo+ID4gICB9Owo+ID4gICAKPiA+ICAgc3RydWN0IGlu dGVsX2RwX21zdF9lbmNvZGVyIHsKPiA+IEBAIC0xMzcyLDYgKzEzNzMsOCBAQCB2b2lkIGludGVs X2Rpc3BsYXlfc2V0X2luaXRfcG93ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldiwgYm9v bCBlbmFibGUpOwo+ID4gICAKPiA+ICAgdm9pZCBjaHZfcGh5X3Bvd2VyZ2F0ZV9sYW5lcyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAgCQkJICAgICBib29sIG92ZXJyaWRlLCB1 bnNpZ25lZCBpbnQgbWFzayk7Cj4gPiArYm9vbCBjaHZfcGh5X3Bvd2VyZ2F0ZV9jaChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gZHBpb19waHkgcGh5LAo+ID4gKwkJCSAg ZW51bSBkcGlvX2NoYW5uZWwgY2gsIGJvb2wgb3ZlcnJpZGUpOwo+ID4gICAKPiA+ICAgCj4gPiAg IC8qIGludGVsX3BtLmMgKi8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGluZGV4 IGIzZjZjOWYuLjRiNjA0ZWUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ ID4gQEAgLTE2MjUsNiArMTYyNSwxNCBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9wcmVfcGxsX2Vu YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAgCj4gPiAgIAlpbnRlbF9o ZG1pX3ByZXBhcmUoZW5jb2Rlcik7Cj4gPiAgIAo+ID4gKwkvKgo+ID4gKwkgKiBNdXN0IHRyaWNr IHRoZSBzZWNvbmQgY29tbW9uIGxhbmUgaW50byBsaWZlLgo+ID4gKwkgKiBPdGhlcndpc2Ugd2Ug Y2FuJ3QgZXZlbiBhY2Nlc3MgdGhlIFBMTC4KPiA+ICsJICovCj4gPiArCWlmIChjaCA9PSBEUElP X0NIMCAmJiBwaXBlID09IFBJUEVfQikKPiA+ICsJCWRwb3J0LT5yZWxlYXNlX2NsMl9vdmVycmlk ZSA9Cj4gPiArCQkJIWNodl9waHlfcG93ZXJnYXRlX2NoKGRldl9wcml2LCBEUElPX1BIWTAsIERQ SU9fQ0gxLCB0cnVlKTsKPiA+ICsKPiA+ICAgCWNodl9waHlfcG93ZXJnYXRlX2xhbmVzKGVuY29k ZXIsIHRydWUsIDB4MCk7Cj4gPiAgIAo+ID4gICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnNiX2xv Y2spOwo+ID4gQEAgLTE3MDEsNiArMTcwOSwxNSBAQCBzdGF0aWMgdm9pZCBjaHZfaGRtaV9wb3N0 X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gICAKPiA+ICAg CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ID4gICAKPiA+ICsJLyoKPiA+ICsJ ICogTGVhdmUgdGhlIHBvd2VyIGRvd24gYml0IGNsZWFyZWQgZm9yIGF0IGxlYXN0IG9uZQo+ID4g KwkgKiBsYW5lIHNvIHRoYXQgY2h2X3Bvd2VyZ2F0ZV9waHlfY2goKSB3aWxsIHBvd2VyCj4gPiAr CSAqIG9uIHNvbWV0aGluZyB3aGVuIHRoZSBjaGFubmVsIGlzIG90aGVyd2lzZSB1bnVzZWQuCj4g PiArCSAqIFdoZW4gdGhlIHBvcnQgaXMgb2ZmIGFuZCB0aGUgb3ZlcnJpZGUgaXMgcmVtb3ZlZAo+ ID4gKwkgKiB0aGUgbGFuZXMgcG93ZXIgZG93biBhbnl3YXksIHNvIG90aGVyd2lzZSBpdCBkb2Vz bid0Cj4gPiArCSAqIHJlYWxseSBtYXR0ZXIgd2hhdCB0aGUgc3RhdGUgb2YgcG93ZXIgZG93biBi aXRzIGlzCj4gPiArCSAqIGFmdGVyIHRoaXMuCj4gPiArCSAqLwo+ID4gICAJY2h2X3BoeV9wb3dl cmdhdGVfbGFuZXMoZW5jb2RlciwgZmFsc2UsIDB4MCk7Cj4gPiAgIH0KPiA+ICAgCj4gPiBAQCAt MTkyMiw2ICsxOTM5LDEyIEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiAgIAlnNHhfZW5hYmxlX2hkbWkoZW5jb2Rlcik7 Cj4gPiAgIAo+ID4gICAJdmx2X3dhaXRfcG9ydF9yZWFkeShkZXZfcHJpdiwgZHBvcnQsIDB4MCk7 Cj4gPiArCj4gPiArCS8qIFNlY29uZCBjb21tb24gbGFuZSB3aWxsIHN0YXkgYWxpdmUgb24gaXRz IG93biBub3cgKi8KPiA+ICsJaWYgKGRwb3J0LT5yZWxlYXNlX2NsMl9vdmVycmlkZSkgewo+ID4g KwkJY2h2X3BoeV9wb3dlcmdhdGVfY2goZGV2X3ByaXYsIERQSU9fUEhZMCwgRFBJT19DSDEsIGZh bHNlKTsKPiA+ICsJCWRwb3J0LT5yZWxlYXNlX2NsMl9vdmVycmlkZSA9IGZhbHNlOwo+ID4gKwl9 Cj4gPiAgIH0KPiA+ICAgCj4gPiAgIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfZGVzdHJveShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3J1bnRpbWVfcG0uYwo+ID4gaW5kZXggNTA2YThjYy4uNTUxY2YwOCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gPiBAQCAtMTAxNiw2ICsxMDE2LDM1 IEBAIHN0YXRpYyB2b2lkIGNodl9kcGlvX2Ntbl9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAJCSAgICAgIHBoeSwgZGV2X3ByaXYtPmNo dl9waHlfY29udHJvbCk7Cj4gPiAgIH0KPiA+ICAgCj4gPiArYm9vbCBjaHZfcGh5X3Bvd2VyZ2F0 ZV9jaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gZHBpb19waHkgcGh5 LAo+ID4gKwkJCSAgZW51bSBkcGlvX2NoYW5uZWwgY2gsIGJvb2wgb3ZlcnJpZGUpCj4gPiArewo+ ID4gKwlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zID0gJmRldl9wcml2 LT5wb3dlcl9kb21haW5zOwo+ID4gKwlib29sIHdhc19vdmVycmlkZTsKPiA+ICsKPiA+ICsJbXV0 ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4gPiArCj4gPiArCXdhc19vdmVycmlkZSA9 IGRldl9wcml2LT5jaHZfcGh5X2NvbnRyb2wgJiBQSFlfQ0hfUE9XRVJfRE9XTl9PVlJEX0VOKHBo eSwgY2gpOwo+ID4gKwo+ID4gKwlpZiAob3ZlcnJpZGUgPT0gd2FzX292ZXJyaWRlKQo+ID4gKwkJ Z290byBvdXQ7Cj4gPiArCj4gPiArCWlmIChvdmVycmlkZSkKPiA+ICsJCWRldl9wcml2LT5jaHZf cGh5X2NvbnRyb2wgfD0gUEhZX0NIX1BPV0VSX0RPV05fT1ZSRF9FTihwaHksIGNoKTsKPiA+ICsJ ZWxzZQo+ID4gKwkJZGV2X3ByaXYtPmNodl9waHlfY29udHJvbCAmPSB+UEhZX0NIX1BPV0VSX0RP V05fT1ZSRF9FTihwaHksIGNoKTsKPiA+ICsKPiA+ICsJSTkxNV9XUklURShESVNQTEFZX1BIWV9D T05UUk9MLCBkZXZfcHJpdi0+Y2h2X3BoeV9jb250cm9sKTsKPiA+ICsKPiA+ICsJRFJNX0RFQlVH X0tNUygiUG93ZXIgZ2F0aW5nIERQSU8gUEhZJWQgQ0glZCAoRFBJT19QSFlfQ09OVFJPTD0weCUw OHgpXG4iLAo+ID4gKwkJICAgICAgcGh5LCBjaCwgZGV2X3ByaXYtPmNodl9waHlfY29udHJvbCk7 Cj4gPiArCj4gPiArb3V0Ogo+ID4gKwltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2sp Owo+ID4gKwo+ID4gKwlyZXR1cm4gd2FzX292ZXJyaWRlOwo+ID4gK30KPiA+ICsKPiA+ICAgdm9p ZCBjaHZfcGh5X3Bvd2VyZ2F0ZV9sYW5lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiA+ICAgCQkJICAgICBib29sIG92ZXJyaWRlLCB1bnNpZ25lZCBpbnQgbWFzaykKPiA+ICAgewo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=