From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [V2 PATCH 2/2] drm/i915: start adding dp mst audio Date: Mon, 23 Nov 2015 10:55:42 +0200 Message-ID: <1448268942.2699.5.camel@gmail.com> References: <1447220002-82030-1-git-send-email-libin.yang@linux.intel.com> <1447220002-82030-2-git-send-email-libin.yang@linux.intel.com> <1447931273.2693.12.camel@gmail.com> <5652788D.2010704@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id C1EDC6E476 for ; Mon, 23 Nov 2015 00:55:49 -0800 (PST) Received: by pacej9 with SMTP id ej9so184921753pac.2 for ; Mon, 23 Nov 2015 00:55:49 -0800 (PST) In-Reply-To: <5652788D.2010704@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: Libin Yang , intel-gfx@lists.freedesktop.org, jani.nikula@linux.intel.com, daniel.vetter@intel.com, ville.syrjala@linux.intel.com Cc: Dave Airlie List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE1LTExLTIzIGF0IDEwOjIzICswODAwLCBMaWJpbiBZYW5nIHdyb3RlOgo+IE9u IDExLzE5LzIwMTUgMDc6MDcgUE0sIEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2ZWlyYSB3cm90ZToK PiA+IChDYydpbmcgUGF1bG8gZm9yIHRoZSBhdWRpbyBwb3dlciBkb21haW4gcXVlc3Rpb24pCj4g PiAKPiA+IE9uIFdlZCwgMjAxNS0xMS0xMSBhdCAxMzozMyArMDgwMCwgbGliaW4ueWFuZ0BsaW51 eC5pbnRlbC5jb20gd3JvdGU6Cj4gPiA+IEZyb206IExpYmluIFlhbmcgPGxpYmluLnlhbmdAbGlu dXguaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIERQ IE1TVCBhdWRpbyBpbiBpOTE1Lgo+ID4gPiAKPiA+ID4gRW5hYmxlIGF1ZGlvIGNvZGVjIHdoZW4g RFAgTVNUIGlzIGVuYWJsZWQgaWYgaGFzX2F1ZGlvIGZsYWcgaXMgc2V0Lgo+ID4gPiBEaXNhYmxl IGF1ZGlvIGNvZGVjIHdoZW4gRFAgTVNUIGlzIGRpc2FibGVkIGlmIGhhc19hdWRpbyBmbGFnIGlz IHNldC4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IExpYmluIFlhbmcgPGxpYmluLnlhbmdA bGludXguaW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEFpcmxpZSA8YWlybGll ZEByZWRoYXQuY29tPgo+ID4gPiAtLS0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyB8IDE0ICsrKysrKysrKysrKysrCj4gPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uYyAgfCAgOSArKysrKystLS0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9tc3QuYyB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4g ICAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gPiA+ IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiBpbmRleCA1 NjU5ZDRjLi4zOGM3YTVkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwo+ID4gPiBAQCAtMjg3Myw2ICsyODczLDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2lu Zm8oc3RydWN0IHNlcV9maWxlICptLAo+ID4gPiAgIAkJaW50ZWxfcGFuZWxfaW5mbyhtLCAmaW50 ZWxfY29ubmVjdG9yLT5wYW5lbCk7Cj4gPiA+ICAgfQo+ID4gPiAKPiA+ID4gK3N0YXRpYyB2b2lk IGludGVsX2RwX21zdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKPiA+ID4gKwkJCSAgc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ID4gPiArewo+ID4gPiArCXN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yLT5lbmNvZGVy Owo+ID4gPiArCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0KPiA+ID4g KwkJZW5jX3RvX21zdCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gPiA+ICsJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRlbF9tc3QtPnByaW1hcnk7Cj4gPiA+ ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gPiA+ ICsKPiA+ID4gKwlzZXFfcHJpbnRmKG0sICJcdGF1ZGlvIHN1cHBvcnQ6ICVzXG4iLAo+ID4gPiBk cm1fZHBfbXN0X3BvcnRfaGFzX2F1ZGlvKCZpbnRlbF9kcC0+bXN0X21nciwgaW50ZWxfY29ubmVj dG9yLT5wb3J0KSA/Cj4gPiA+ICJ5ZXMiIDoKPiA+ID4gIm5vIik7Cj4gPiAKPiA+IFRvbyBtdWNo IGdvaW5nIG9uIGluIGp1c3Qgb25lIGxpbmUuIFlvdSBjYW4gcmVwbGFjZSB0aGUgdGVybmFyeSBv cGVyYXRvcgo+ID4gd2l0aAo+ID4geWVzbm8oKS4gWW91IGNvdWxkIGFsc28gYWRkIGEgaGFzX2F1 ZGlvIGJvb2w6Cj4gPiAKPiA+IGJvb2wgaGFzX2F1ZGlvID0gZHJtX2RwX21zdF9wb3J0X2hhc19h dWRpbyguLi4pOwo+ID4gc2VxX3ByaW50ZiguLi4sIHllc25vKGhhc19hdWRpbykpOwo+IAo+IEdl dCBpdC4gVGhhbmtzLgo+IAo+ID4gCj4gPiAKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgIHN0YXRp YyB2b2lkIGludGVsX2hkbWlfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4gPiA+ICAgCQkJICAg IHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+ID4gICB7Cj4gPiA+ IEBAIC0yOTE2LDYgKzI5MjgsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfaW5mbyhz dHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4gPiA+ICAgCQkJaW50ZWxfaGRtaV9pbmZvKG0sIGludGVsX2Nv bm5lY3Rvcik7Cj4gPiA+ICAgCQllbHNlIGlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVM X09VVFBVVF9MVkRTKQo+ID4gPiAgIAkJCWludGVsX2x2ZHNfaW5mbyhtLCBpbnRlbF9jb25uZWN0 b3IpOwo+ID4gPiArCQllbHNlIGlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBV VF9EUF9NU1QpCj4gPiA+ICsJCQlpbnRlbF9kcF9tc3RfaW5mbyhtLCBpbnRlbF9jb25uZWN0b3Ip Owo+ID4gPiAgIAl9Cj4gPiA+IAo+ID4gPiAgIAlzZXFfcHJpbnRmKG0sICJcdG1vZGVzOlxuIik7 Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4g PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gPiBpbmRleCA2M2Q0 NzA2Li4wN2IyYWE2IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdWRpby5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMK PiA+ID4gQEAgLTI2Miw3ICsyNjIsOCBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZGlz YWJsZShzdHJ1Y3QKPiA+ID4gaW50ZWxfZW5jb2Rlcgo+ID4gPiAqZW5jb2RlcikKPiA+ID4gICAJ dG1wIHw9IEFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKPiA+ID4gICAJdG1wICY9IH5BVURfQ09O RklHX1VQUEVSX05fTUFTSzsKPiA+ID4gICAJdG1wICY9IH5BVURfQ09ORklHX0xPV0VSX05fTUFT SzsKPiA+ID4gLQlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQ VVRfRElTUExBWVBPUlQpKQo+ID4gPiArCWlmIChpbnRlbF9waXBlX2hhc190eXBlKGludGVsX2Ny dGMsIElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkgfHwKPiA+ID4gKwkJaW50ZWxfcGlwZV9oYXNf dHlwZShpbnRlbF9jcnRjLCBJTlRFTF9PVVRQVVRfRFBfTVNUKSkKPiA+IAo+ID4gVGhlIHNlY29u ZCBsaW5lIHNob3VsZCBiZSBhbGlnbmVkIHdpdGggJygnLgo+IAo+IE9LLCBJIHNlZS4KPiAKPiA+ IAo+ID4gPiAgIAkJdG1wIHw9IEFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPiA+ID4gICAJSTkx NV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKPiA+ID4gCj4gPiA+IEBAIC00NzgsNyAr NDc5LDggQEAgc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QKPiA+ID4g ZHJtX2Nvbm5lY3Rvcgo+ID4gPiAqY29ubmVjdG9yLAo+ID4gPiAgIAl0bXAgJj0gfkFVRF9DT05G SUdfTl9WQUxVRV9JTkRFWDsKPiA+ID4gICAJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFC TEU7Cj4gPiA+ICAgCXRtcCAmPSB+QVVEX0NPTkZJR19QSVhFTF9DTE9DS19IRE1JX01BU0s7Cj4g PiA+IC0JaWYgKGludGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0YywgSU5URUxfT1VUUFVUX0RJ U1BMQVlQT1JUKSkKPiA+ID4gKwlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLCBJ TlRFTF9PVVRQVVRfRElTUExBWVBPUlQpIHx8Cj4gPiA+ICsJCWludGVsX3BpcGVfaGFzX3R5cGUo aW50ZWxfY3J0YywgSU5URUxfT1VUUFVUX0RQX01TVCkpCj4gPiAKPiA+IFNhbWUgaGVyZS4KPiA+ IAo+ID4gPiAgIAkJdG1wIHw9IEFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPiA+ID4gICAJZWxz ZQo+ID4gPiAgIAkJdG1wIHw9IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGFkanVzdGVk X21vZGUpOwo+ID4gPiBAQCAtNTE2LDcgKzUxOCw4IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiA+ICppbnRlbF9lbmNvZGVyKQo+ID4gPiAK PiA+ID4gICAJLyogRUxEIENvbm5fVHlwZSAqLwo+ID4gPiAgIAljb25uZWN0b3ItPmVsZFs1XSAm PSB+KDMgPDwgMik7Cj4gPiA+IC0JaWYgKGludGVsX3BpcGVfaGFzX3R5cGUoY3J0YywgSU5URUxf T1VUUFVUX0RJU1BMQVlQT1JUKSkKPiA+ID4gKwlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRj LCBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQpIHx8Cj4gPiA+ICsJCWludGVsX3BpcGVfaGFzX3R5 cGUoY3J0YywgSU5URUxfT1VUUFVUX0RQX01TVCkpCj4gPiA+ICAgCQljb25uZWN0b3ItPmVsZFs1 XSB8PSAoMSA8PCAyKTsKPiA+IAo+ID4gQW5kIGhlcmUuCj4gPiAKPiA+ID4gCj4gPiA+ICAgCWNv bm5lY3Rvci0+ZWxkWzZdID0gZHJtX2F2X3N5bmNfZGVsYXkoY29ubmVjdG9yLCBhZGp1c3RlZF9t b2RlKQo+ID4gPiAvIDI7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9tc3QuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j Cj4gPiA+IGluZGV4IDA2MzkyNzUuLjRkZWQwZmIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX21zdC5jCj4gPiA+IEBAIC03OCw2ICs3OCw4IEBAIHN0YXRpYyBib29sIGlu dGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QKPiA+ID4gaW50ZWxfZW5jb2Rlcgo+ID4g PiAqZW5jb2RlciwKPiA+ID4gICAJCXJldHVybiBmYWxzZTsKPiA+ID4gICAJfQo+ID4gPiAKPiA+ ID4gKwlpZiAoZHJtX2RwX21zdF9wb3J0X2hhc19hdWRpbygmaW50ZWxfZHAtPm1zdF9tZ3IsIGZv dW5kLT5wb3J0KSkKPiA+ID4gKwkJcGlwZV9jb25maWctPmhhc19hdWRpbyA9IHRydWU7Cj4gPiA+ ICAgCW1zdF9wYm4gPSBkcm1fZHBfY2FsY19wYm5fbW9kZShhZGp1c3RlZF9tb2RlLT5jcnRjX2Ns b2NrLCBicHApOwo+ID4gPiAKPiA+ID4gICAJcGlwZV9jb25maWctPnBibiA9IG1zdF9wYm47Cj4g PiA+IEBAIC0xMDIsNiArMTA0LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9kaXNhYmxlX2Rw KHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiA+ICplbmNvZGVyKQo+ID4gPiAgIAlzdHJ1Y3QgaW50 ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXIKPiA+ID4g LT5iYXNlKTsKPiA+ID4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPSBpbnRlbF9tc3QtPnByaW1hcnk7Cj4gPiA+ICAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+ID4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5iYXNlLmRldjsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IGVuY29kZXItPmJhc2UuY3J0YzsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gPiA+ICsKPiA+ID4gICAJaW50IHJldDsKPiA+ID4g Cj4gPiA+ICAgCURSTV9ERUJVR19LTVMoIiVkXG4iLCBpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5r cyk7Cj4gPiA+IEBAIC0xMTIsNiArMTE5LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9kaXNh YmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4gPiA+ICplbmNvZGVyKQo+ID4gPiAgIAlpZiAo cmV0KSB7Cj4gPiA+ICAgCQlEUk1fRVJST1IoImZhaWxlZCB0byB1cGRhdGUgcGF5bG9hZCAlZFxu IiwgcmV0KTsKPiA+ID4gICAJfQo+ID4gPiArCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19h dWRpbykgewo+ID4gPiArCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVuY29kZXIpOwo+ID4g PiArCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FVRElP KTsKPiA+ID4gKwl9Cj4gPiAKPiA+IEl0IHNlZW1zIHRoZSBwb3dlciBkb21haW4gaXMgb25seSBu ZWVkIGZvciBEREkgcGxhdGZvcm1zLiBQZXJoYXBzIGl0IHdvdWxkCj4gPiBtYWtlCj4gPiBzZW5z ZSB0byBtb3ZlIHRoYXQgaW50byBoc3dfYXVkaW9fY29kZWNfe2VuLGRpc31hYmxlLiBQYXVsbz8K PiA+IAo+ID4gPiAgIH0KPiA+ID4gCj4gPiA+ICAgc3RhdGljIHZvaWQgaW50ZWxfbXN0X3Bvc3Rf ZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gQEAgLTIxNCw2 ICsyMjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyCj4gPiA+ICplbmNvZGVyKQo+ID4gPiAgIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiA+ID4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gPiArCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ID4gPiAg IAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gPiAgIAlpbnQgcmV0 Owo+ID4gPiAKPiA+ID4gQEAgLTIyNiw2ICsyMzgsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfbXN0 X2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gPiAqZW5jb2RlcikKPiA+ID4gICAJ cmV0ID0gZHJtX2RwX2NoZWNrX2FjdF9zdGF0dXMoJmludGVsX2RwLT5tc3RfbWdyKTsKPiA+ID4g Cj4gPiA+ICAgCXJldCA9IGRybV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MigmaW50ZWxfZHAtPm1z dF9tZ3IpOwo+ID4gPiArCj4gPiA+ICsJaWYgKGNydGMtPmNvbmZpZy0+aGFzX2F1ZGlvKSB7Cj4g PiA+ICsJCURSTV9ERUJVR19EUklWRVIoIkVuYWJsaW5nIERQIGF1ZGlvIG9uIHBpcGUgJWNcbiIs Cj4gPiA+ICsJCQkJIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7Cj4gPiA+ICsJCWludGVsX2Rpc3Bs YXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fQVVESU8pOwo+ID4gPiArCQlpbnRl bF9hdWRpb19jb2RlY19lbmFibGUoZW5jb2Rlcik7Cj4gPiA+ICsJfQo+ID4gPiAgIH0KPiA+ID4g Cj4gPiA+ICAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2VuY19nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+IEBAIC0yNTEsNiArMjcwLDEyIEBAIHN0YXRp YyB2b2lkIGludGVsX2RwX21zdF9lbmNfZ2V0X2NvbmZpZyhzdHJ1Y3QKPiA+ID4gaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ID4gCj4gPiA+ICAgCXBpcGVfY29uZmlnLT5oYXNfZHBfZW5jb2Rl ciA9IHRydWU7Cj4gPiA+IAo+ID4gPiArCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJs ZWQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVURJTykpCj4gPiA+IHsKPiA+ID4gKwkJdGVtcCA9 IEk5MTVfUkVBRChIU1dfQVVEX1BJTl9FTERfQ1BfVkxEKTsKPiA+ID4gKwkJaWYgKHRlbXAgJiBB VURJT19PVVRQVVRfRU5BQkxFKGNydGMtPnBpcGUpKQo+ID4gPiArCQkJcGlwZV9jb25maWctPmhh c19hdWRpbyA9IHRydWU7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiAKPiA+IFRoaXMgY29kZSBpcyBE REkgc3BlY2lmaWMuIFRoYXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSBzaW5jZSB3ZSBvbmx5IHN1 cHBvcnQKPiA+IERQCj4gPiBNU1Qgb24gRERJIHBsYXRmb3JtcywgYnV0IHdlIHNob3VsZG4ndCBk dXBsaWNhdGUgdGhhdCBsb2dpYyBoZXJlLiBTbyBJIHRoaW5rCj4gPiB0aGlzIHNob3VsZCBiZSBh ZGRlZCB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCBib3RoIGZyb20gaGVyZSBhbmQK PiA+IGludGVsX2RkaS5jLgo+IAo+IE9LLCBJIHdpbGwgdHJ5IHRvIGFkZCBhIGhlbHBlciBmdW5j dGlvbi4gV2hpY2ggZmlsZSBkbyB5b3Ugc3VnZ2VzdCAKPiBhZGRpbmcgdGhlIGZ1bmN0aW9uIGl0 PwoKQWRkIGl0IHRvIGludGVsX2RkaS5jLCB3aGVyZSB0aGUgb3JpZ2luYWwgb2NjdXJyZW5jZSBv ZiB0aGF0IGNvZGUgaXMuCgpBbmRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=