From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/skl+: Add and enable DP AUX CH mutex Date: Thu, 1 Mar 2018 12:53:04 +0200 Message-ID: <20180301105304.GT5453@intel.com> References: <20180227212359.15584-1-jose.souza@intel.com> <20180227213405.GB5453@intel.com> <1519779333.4533.2.camel@intel.com> <20180228110909.GC5453@intel.com> <1519862041.4498.3.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id B7C296EC1C for ; Thu, 1 Mar 2018 10:53:07 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1519862041.4498.3.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBGZWIgMjgsIDIwMTggYXQgMTE6NTU6MzlQTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gV2VkLCAyMDE4LTAyLTI4IGF0IDEzOjA5ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gPiBPbiBXZWQsIEZlYiAyOCwgMjAxOCBhdCAxMjo1NzowN0FNICswMDAwLCBTb3V6 YSwgSm9zZSB3cm90ZToKPiA+ID4gT24gVHVlLCAyMDE4LTAyLTI3IGF0IDIzOjM0ICswMjAwLCBW aWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gVHVlLCBGZWIgMjcsIDIwMTggYXQgMDE6 MjM6NTlQTSAtMDgwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQo+ID4gPiA+IHdyb3RlOgo+ID4g PiA+ID4gV2hlbiBQU1IvUFNSMi9HVEMgaXMgZW5hYmxlZCBoYXJkd2FyZSBjYW4gZG8gQVVYIHRy YW5zYWN0aW9ucwo+ID4gPiA+ID4gYnkgaXQKPiA+ID4gPiA+IHNlbGYsIHNvIGxldHMgdXNlIHRo ZSBtdXRleCByZWdpc3RlciB0aGF0IGlzIGF2YWlsYWJsZSBpbiBnZW45Kwo+ID4gPiA+ID4gdG8K PiA+ID4gPiA+IGF2b2lkIGNvbmN1cnJlbnQgYWNjZXNzIGJ5IGhhcmR3YXJlIGFuZCBkcml2ZXIu Cj4gPiA+ID4gPiBPbGRlciBnZW4gaGFuZGxpbmcgd2lsbCBiZSBkb25lIHNlcGFyYXRlZC4KPiA+ ID4gPiA+IAo+ID4gPiA+ID4gUmVmZXJlbmNlOiBodHRwczovLzAxLm9yZy9zaXRlcy9kZWZhdWx0 L2ZpbGVzL2RvY3VtZW50YXRpb24vaW50Cj4gPiA+ID4gPiBlbC1nCj4gPiA+ID4gPiBmeC1wcm0t b3NyYy1za2wtdm9sMTItZGlzcGxheS5wZGYKPiA+ID4gPiA+IFBhZ2UgMTk4IC0gQVVYIHByb2dy YW1taW5nIHNlcXVlbmNlCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFJldmlld2VkLWJ5OiBEaGluYWth cmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbQo+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNv bT4KPiA+ID4gPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29t Pgo+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxq b3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBD aGFuZ2Vsb2c6Cj4gPiA+ID4gPiB2Mgo+ID4gPiA+ID4gLSByZW1vdmVkIHRoZSBQU1IgZGVwZW5k ZW5jeSwgbm93IGdldHRpbmcgbG9jayBhbGwgdGhlIHRpbWVzCj4gPiA+ID4gPiB3aGVuCj4gPiA+ ID4gPiBhdmFpbGFibGUKPiA+ID4gPiA+IC0gcmVuYW1lZCBmdW5jdGlvbnMgdG8gYXZvaWQgbmVz dGVkIGNhbGxzCj4gPiA+ID4gPiAtIG1vdmVkIHJlZ2lzdGVyIGJpdHMgcmlnaHQgYWZ0ZXIgdGhl IERQX0FVWF9DSF9NVVRFWCgpCj4gPiA+ID4gPiAtIHJlbW92ZWQgJ2RybS9pOTE1OiBrZWVwIEFV WCBwb3dlcmVkIHdoaWxlIFBTUiBpcyBlbmFibGVkJwo+ID4gPiA+ID4gRGhpbmFrYXJhbiBQYW5k aXlhbiB3aWxsIHNlbnQgYSBiZXR0ZXIgYW5kIGZpbmFsIHZlcnNpb24KPiA+ID4gPiA+IHYzCj4g PiA+ID4gPiAtIHJlYmFzZWQgb24gdG9wIG9mIFZpbGxlJ3MgQVVYIHNlcmllcwo+ID4gPiA+ID4g LSBtb3ZlZCBwb3J0IHJlZ2lzdGVycyB0byBhYm92ZSBEUF9BVVhfQ0hfTVVURVgoKQo+ID4gPiA+ ID4gLSB1c2luZyBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcigpIGluc3RlYWQgb2YgdGhlIGludGVy bmFsCj4gPiA+ID4gPiB2ZXJzaW9uCj4gPiA+ID4gPiB2NAo+ID4gPiA+ID4gLSByZW1vdmVkIHZp cnR1YWwgZnVuY3Rpb24gdG8gZ2V0IG11dGV4IHJlZ2lzdGVyIGFkZHJlc3MKPiA+ID4gPiA+IC0g ZW5hYmxpbmcgdGhlIG11dGV4IGJhY2sgb25seSBvbiBhdXggY2hhbm5lbCBpbml0Cj4gPiA+ID4g PiAtIGFkZGVkIHRoZSBhdXggY2hhbm5lbCBuYW1lIHRvIHRoZSB0aW1lb3V0IGRlYnVnIG1lc3Nh Z2UKPiA+ID4gPiA+IHY1Cj4gPiA+ID4gPiAtIHJlbmFtZWQgRFBfQVVYX0NIX01VVEVYKCkgcGFy YW1ldGVyIHRvIGF1eF9jaAo+ID4gPiA+ID4gLSByZW5hbWVkIGdvdG8gbGFiZWwgd2hlbiBpbnRl bF9kcF9hdXhfY2hfdHJ5bG9jaygpIGZhaWxzCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIHwgIDkgKysrKysrKysKPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIHwgNDcKPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA1NiBp bnNlcnRpb25zKCspCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiA+ID4gPiA+IGluZGV4IGVlYTViMmM1MzdkNC4uYmNlMmU2ZGFkNGM0IDEwMDY0 NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiA+ID4gQEAgLTUz ODUsNiArNTM4NSwxNSBAQCBlbnVtIHsKPiA+ID4gPiA+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NU TF9GV19TWU5DX1BVTFNFX1NLTChjKSAoKChjKSAtIDEpIDw8IDUpCj4gPiA+ID4gPiAgI2RlZmlu ZSAgIERQX0FVWF9DSF9DVExfU1lOQ19QVUxTRV9TS0woYykgICAoKGMpIC0gMSkKPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ICsjZGVmaW5lIF9EUEFfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0KPiA+ID4g PiA+ID4gaW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDAyQykKPiA+ID4gPiA+IAo+ID4g PiA+ID4gKyNkZWZpbmUgX0RQQl9BVVhfQ0hfTVVURVgJKGRldl9wcml2LQo+ID4gPiA+ID4gPiBp bmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MTJDKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiAr I2RlZmluZSBfRFBDX0FVWF9DSF9NVVRFWAkoZGV2X3ByaXYtCj4gPiA+ID4gPiA+IGluZm8uZGlz cGxheV9tbWlvX29mZnNldCArIDB4NjQyMkMpCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICsjZGVmaW5l IF9EUERfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0KPiA+ID4gPiA+ID4gaW5mby5kaXNwbGF5X21t aW9fb2Zmc2V0ICsgMHg2NDMyQykKPiA+ID4gPiA+IAo+ID4gPiA+ID4gKyNkZWZpbmUgX0RQRl9B VVhfQ0hfTVVURVgJKGRldl9wcml2LQo+ID4gPiA+ID4gPiBpbmZvLmRpc3BsYXlfbW1pb19vZmZz ZXQgKyAweDY0NTJDKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiArI2RlZmluZSBEUF9BVVhfQ0hfTVVU RVgoYXV4X2NoKQlfTU1JT19QT1JUKGF1eF9jaCwKPiA+ID4gPiA+IF9EUEFfQVVYX0NIX01VVEVY LCBfRFBCX0FVWF9DSF9NVVRFWCkKPiA+ID4gPiA+ICsjZGVmaW5lICAgRFBfQVVYX0NIX01VVEVY X0VOQUJMRQkJKDEgPDwgMzEpCj4gPiA+ID4gPiArI2RlZmluZSAgIERQX0FVWF9DSF9NVVRFWF9T VEFUVVMJCSgxIDw8IDMwKQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIC8qCj4gPiA+ID4gPiAgICog Q29tcHV0aW5nIEdNQ0ggTSBhbmQgTiB2YWx1ZXMgZm9yIHRoZSBEaXNwbGF5IFBvcnQgbGluawo+ ID4gPiA+ID4gICAqCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g PiA+ID4gPiBpbmRleCAyYTNiM2FlNGUzZGEuLjdmNGJmNzcyMjdjZCAxMDA2NDQKPiA+ID4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiA+IEBAIC0xMDgxLDYgKzEwODEs NDIgQEAgc3RhdGljIHVpbnQzMl90Cj4gPiA+ID4gPiBpbnRlbF9kcF9nZXRfYXV4X3NlbmRfY3Rs KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ID4gPiAgCQkJCQkJYXV4X2Nsb2NrX2Rp dmkKPiA+ID4gPiA+IGRlcikKPiA+ID4gPiA+IDsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgCj4g PiA+ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4X2NoX3RyeWxvY2soc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiA+ID4gPiA+IGRwX3RvX2RpZ19wb3J0KGludGVs X2RwKTsKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiA+ ID4gPiA+ICsJCQl0b19pOTE1KGludGVsX2RpZ19wb3J0LQo+ID4gPiA+ID4gPmJhc2UuYmFzZS5k ZXYpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkp Cj4gPiA+ID4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyogU3Bl YyBzYXlzIHRoYXQgbXV0ZXggaXMgYWNxdWlyZWQgd2hlbiBzdGF0dXMgYml0IGlzCj4gPiA+ID4g PiByZWFkIGFzIHVuc2V0LAo+ID4gPiA+ID4gKwkgKiBoZXJlIHdhaXRpbmcgZm9yIDJtc2VjKCst NCBhdXggdHJhbnNhY3Rpb25zKSBiZWZvcmUKPiA+ID4gPiA+IGdpdmUgdXAuCj4gPiA+ID4gPiAr CSAqLwo+ID4gPiA+ID4gKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4g PiA+ID4gPiBEUF9BVVhfQ0hfTVVURVgoaW50ZWxfZHAtPmF1eF9jaCksCj4gPiA+ID4gPiArCQkJ CSAgICBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTLCAwLAo+ID4gPiA+ID4gMikpCj4gPiA+ID4gPiB7 Cj4gPiA+ID4gPiArCQlEUk1fREVCVUdfS01TKCJhdXggY2hhbm5lbCAlYyBsb2NrZWQgZm9yCj4g PiA+ID4gPiAybXNlYywKPiA+ID4gPiA+IHRpbWluZyBvdXRcbiIsCj4gPiA+ID4gPiArCQkJICAg ICAgYXV4X2NoX25hbWUoaW50ZWxfZHAtPmF1eF9jaCkpOwo+ID4gPiA+ID4gKwkJcmV0dXJuIGZh bHNlOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiB0cnVlOwo+ ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF9h dXhfY2hfdW5sb2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ID4gPiArewo+ID4g PiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gPiA+ ID4gPiBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gPiA+ID4gPiArCQkJdG9faTkxNShpbnRlbF9kaWdfcG9y dC0KPiA+ID4gPiA+ID5iYXNlLmJhc2UuZGV2KTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPCA5KQo+ID4gPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gKwkvKiBzZXQgdGhlIHN0YXR1cyBiaXQgcmVsZWFzZXMgdGhlIG11dGV4ICsg a2VlcGluZwo+ID4gPiA+ID4gbXV0ZXgKPiA+ID4gPiA+IGVuYWJsZWQgKi8KPiA+ID4gPiA+ICsJ STkxNV9XUklURShEUF9BVVhfQ0hfTVVURVgoaW50ZWxfZHAtPmF1eF9jaCksCj4gPiA+ID4gPiAr CQkgICBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFIHwKPiA+ID4gPiA+IERQX0FVWF9DSF9NVVRFWF9T VEFUVVMpOwo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICBzdGF0aWMgaW50Cj4g PiA+ID4gPiAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ ID4gPiAgCQljb25zdCB1aW50OF90ICpzZW5kLCBpbnQgc2VuZF9ieXRlcywKPiA+ID4gPiA+IEBA IC0xMTE5LDYgKzExNTUsMTEgQEAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRlbF9kcAo+ID4g PiA+ID4gKmludGVsX2RwLAo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlpbnRlbF9kcF9jaGVja19l ZHAoaW50ZWxfZHApOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlpZiAoIWludGVsX2RwX2F1eF9j aF90cnlsb2NrKGludGVsX2RwKSkgewo+ID4gPiA+ID4gKwkJcmV0ID0gLUVCVVNZOwo+ID4gPiA+ ID4gKwkJZ290byBvdXRfYXV4X2NoX3VubG9ja2VkOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiAgCS8qIFRyeSB0byB3YWl0IGZvciBhbnkgcHJldmlvdXMgQVVYIGNoYW5uZWwg YWN0aXZpdHkKPiA+ID4gPiA+ICovCj4gPiA+ID4gPiAgCWZvciAodHJ5ID0gMDsgdHJ5IDwgMzsg dHJ5KyspIHsKPiA+ID4gPiA+ICAJCXN0YXR1cyA9IEk5MTVfUkVBRF9OT1RSQUNFKGNoX2N0bCk7 Cj4gPiA+ID4gPiBAQCAtMTI0MCw2ICsxMjgxLDggQEAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBp bnRlbF9kcAo+ID4gPiA+ID4gKmludGVsX2RwLAo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlyZXQg PSByZWN2X2J5dGVzOwo+ID4gPiA+ID4gIG91dDoKPiA+ID4gPiA+ICsJaW50ZWxfZHBfYXV4X2No X3VubG9jayhpbnRlbF9kcCk7Cj4gPiA+ID4gPiArb3V0X2F1eF9jaF91bmxvY2tlZDoKPiA+ID4g PiA+ICAJcG1fcW9zX3VwZGF0ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zLAo+ID4gPiA+ID4g UE1fUU9TX0RFRkFVTFRfVkFMVUUpOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlpZiAodmRkKQo+ ID4gPiA+ID4gQEAgLTE1MzYsNiArMTU3OSwxMCBAQCBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3Qg aW50ZWxfZHAKPiA+ID4gPiA+ICppbnRlbF9kcCkKPiA+ID4gPiA+ICAJZWxzZQo+ID4gPiA+ID4g IAkJaW50ZWxfZHAtPmdldF9hdXhfc2VuZF9jdGwgPQo+ID4gPiA+ID4gZzR4X2dldF9hdXhfc2Vu ZF9jdGw7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDkpCj4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKERQX0FVWF9DSF9NVVRFWChpbnRlbF9kcC0+YXV4 X2NoKSwKPiA+ID4gPiA+ICsJCQkgICBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsKPiA+ID4gPiAK PiA+ID4gPiBBbmQgd2hvIGVuYWJsZXMgaXQgYWZ0ZXIgc3lzdGVtL3J1bnRpbWUgUE0gZXRjLj8g Tm90IHN1cmUgaG93Cj4gPiA+ID4gbXVjaAo+ID4gPiA+IHNlbnNlCj4gPiA+ID4gdGhlcmUgaXMg dG8gZmluZXNzZSB0aGlzIGFueXdheS4gT25lIGV4dHJhIG1taW8gd3JpdGUgZXZlcnkgdGltZQo+ ID4gPiA+IHdlCj4gPiA+ID4gdHJ5Cj4gPiA+ID4gdG8gYWNxdWlyZSB0aGUgbXV0ZXggc2hvdWxk bid0IGtpbGwgYW55b25lLgo+ID4gPiAKPiA+ID4gVmFsaWQgcG9pbnQsIGJ1dCBJIGd1ZXNzIGlz IGJldHRlciBlbmFibGUgdGhlIG11dGV4IGluCj4gPiA+IGludGVsX2RwX2VuY29kZXJfcmVzZXQo KToKPiA+ID4gCj4gPiA+ICIKPiA+ID4gQEAgLTUyOTMsNiArNTM0MCwxMCBAQCB2b2lkIGludGVs X2RwX2VuY29kZXJfcmVzZXQoc3RydWN0Cj4gPiA+IGRybV9lbmNvZGVyCj4gPiA+ICplbmNvZGVy KQo+ID4gPiAKPiA+ID4gICAgICAgICBwcHNfbG9jayhpbnRlbF9kcCk7Cj4gPiA+IAo+ID4gPiAr ICAgICAgIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gPiA+ICsgICAgICAgICAgICAg ICBJOTE1X1dSSVRFKERQX0FVWF9DSF9NVVRFWChpbnRlbF9kcC0+YXV4X2NoKSwKPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgRFBfQVVYX0NIX01VVEVYX0VOQUJMRSk7Cj4gPiA+ICsK PiA+ID4gICAgICAgICBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpCj4gPiA+ICAgICAgICAgICAgICAgICBpbnRlbF9kcC0+YWN0aXZlX3BpcGUg PSB2bHZfYWN0aXZlX3BpcGUoaW50ZWxfZHApOwo+ID4gPiAiCj4gPiA+IAo+ID4gPiBhbnkgb2Jq ZWN0aW9ucz8KPiA+IAo+ID4gSSBndWVzcyB3ZSBjYW4gaG9wZSB0aGF0IGRtYyB0YWtlcyBjYXJl IG9mIGl0IGZvciBkYzUvNi4gQnV0IHdoYXQKPiA+IGFib3V0IGRjOT8KPiAKPiBZZXAsIGZvciBE QzUgYW5kIERDNiB0aGUgcmVnaXN0ZXJzIGFyZSByZXN0b3JlZCBieSBoYXJkd2FyZSBidXQgaXQg aXMKPiBub3QgdGhlIGNhc2UgZm9yIERDOS4gSWYgSSdtIG5vdCBtaXNzaW5nIHNvbWV0aGluZyBs b29rcyBsaWtlIHRoZXJlIGlzCj4gbm8gaGFuZGxpbmcgdG8gcmVzdG9yZSByZWdpc3RlcnMgd2hl biBleGl0aW5nIERDOS4KClRoZSBkZXNpZ24gb2YgdGhlIGRyaXZlciBpcyAicHJvZ3JhbSBhbGwg cmVxdWlyZWQgcmVnaXN0ZXJzIHdoZW4geW91Cm5lZWQgdGhlbSIgaW5zdGVhZCBvZiB0aGUgImJs aW5kbHkgc2F2ZS9yZXN0b3JlIGV2ZXJ5dGhpbmciIERNQyBmaXJtd2FyZQphcHByb2FjaC4KCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=