From mboxrd@z Thu Jan 1 00:00:00 1970 From: Libin Yang Subject: Re: [V2 PATCH 2/2] drm/i915: start adding dp mst audio Date: Tue, 24 Nov 2015 15:10:19 +0800 Message-ID: <56540D5B.7050806@linux.intel.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> <1448287489.2529.8.camel@intel.com> <1448290867.2849.30.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 056016E848 for ; Mon, 23 Nov 2015 23:12:14 -0800 (PST) In-Reply-To: <1448290867.2849.30.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , "Zanoni, Paulo R" , "ville.syrjala@linux.intel.com" , "intel-gfx@lists.freedesktop.org" , "jani.nikula@linux.intel.com" , "Vetter, Daniel" Cc: "airlied@redhat.com" List-Id: intel-gfx@lists.freedesktop.org CgpCZXN0IFJlZ2FyZHMsCkxpYmluCgpPbiAxMS8yMy8yMDE1IDExOjAxIFBNLCBBbmRlciBDb25z ZWx2YW4gRGUgT2xpdmVpcmEgd3JvdGU6Cj4gT24gTW9uLCAyMDE1LTExLTIzIGF0IDE0OjA0ICsw MDAwLCBaYW5vbmksIFBhdWxvIFIgd3JvdGU6Cj4+IEVtIFF1aSwgMjAxNS0xMS0xOSDDoHMgMTM6 MDcgKzAyMDAsIEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2ZWlyYQo+PiBlc2NyZXZldToKPj4+IChD YydpbmcgUGF1bG8gZm9yIHRoZSBhdWRpbyBwb3dlciBkb21haW4gcXVlc3Rpb24pCj4+Pgo+Pj4g T24gV2VkLCAyMDE1LTExLTExIGF0IDEzOjMzICswODAwLCBsaWJpbi55YW5nQGxpbnV4LmludGVs LmNvbSB3cm90ZToKPj4+PiBGcm9tOiBMaWJpbiBZYW5nIDxsaWJpbi55YW5nQGxpbnV4LmludGVs LmNvbT4KPj4+Pgo+Pj4+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBEUCBNU1QgYXVkaW8g aW4gaTkxNS4KPj4+Pgo+Pj4+IEVuYWJsZSBhdWRpbyBjb2RlYyB3aGVuIERQIE1TVCBpcyBlbmFi bGVkIGlmIGhhc19hdWRpbyBmbGFnIGlzIHNldC4KPj4+PiBEaXNhYmxlIGF1ZGlvIGNvZGVjIHdo ZW4gRFAgTVNUIGlzIGRpc2FibGVkIGlmIGhhc19hdWRpbyBmbGFnIGlzCj4+Pj4gc2V0Lgo+Pj4+ Cj4+Pj4gU2lnbmVkLW9mZi1ieTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BsaW51eC5pbnRlbC5j b20+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4K Pj4+PiAtLS0KPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgMTQg KysrKysrKysrKysrKysKPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMg IHwgIDkgKysrKysrLS0tCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3Qu YyB8IDI1ICsrKysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwg NDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPj4+PiBpbmRleCA1NjU5ZDRjLi4zOGM3YTVkIDEwMDY0NAo+ Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPj4+PiBAQCAtMjg3Myw2ICsyODcz LDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2luZm8oc3RydWN0IHNlcV9maWxlCj4+Pj4gKm0s Cj4+Pj4gICAJCWludGVsX3BhbmVsX2luZm8obSwgJmludGVsX2Nvbm5lY3Rvci0+cGFuZWwpOwo+ Pj4+ICAgfQo+Pj4+Cj4+Pj4gK3N0YXRpYyB2b2lkIGludGVsX2RwX21zdF9pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwKPj4+PiArCQkJICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25u ZWN0b3IpCj4+Pj4gK3sKPj4+PiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy ID0gaW50ZWxfY29ubmVjdG9yLQo+Pj4+PiBlbmNvZGVyOwo+Pj4+ICsJc3RydWN0IGludGVsX2Rw X21zdF9lbmNvZGVyICppbnRlbF9tc3QgPQo+Pj4+ICsJCWVuY190b19tc3QoJmludGVsX2VuY29k ZXItPmJhc2UpOwo+Pj4+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPSBpbnRlbF9tc3QtCj4+Pj4+IHByaW1hcnk7Cj4+Pj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPj4+PiArCj4+Pj4gKwlzZXFfcHJpbnRmKG0s ICJcdGF1ZGlvIHN1cHBvcnQ6ICVzXG4iLAo+Pj4+IGRybV9kcF9tc3RfcG9ydF9oYXNfYXVkaW8o JmludGVsX2RwLT5tc3RfbWdyLCBpbnRlbF9jb25uZWN0b3ItCj4+Pj4+IHBvcnQpID8gInllcyIg Ogo+Pj4+ICJubyIpOwo+Pj4KPj4+IFRvbyBtdWNoIGdvaW5nIG9uIGluIGp1c3Qgb25lIGxpbmUu IFlvdSBjYW4gcmVwbGFjZSB0aGUgdGVybmFyeQo+Pj4gb3BlcmF0b3Igd2l0aAo+Pj4geWVzbm8o KS4gWW91IGNvdWxkIGFsc28gYWRkIGEgaGFzX2F1ZGlvIGJvb2w6Cj4+Pgo+Pj4gYm9vbCBoYXNf YXVkaW8gPSBkcm1fZHBfbXN0X3BvcnRfaGFzX2F1ZGlvKC4uLik7Cj4+PiBzZXFfcHJpbnRmKC4u LiwgeWVzbm8oaGFzX2F1ZGlvKSk7Cj4+Pgo+Pj4KPj4+PiArfQo+Pj4+ICsKPj4+PiAgIHN0YXRp YyB2b2lkIGludGVsX2hkbWlfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCj4+Pj4gICAJCQkgICAg c3RydWN0IGludGVsX2Nvbm5lY3Rvcgo+Pj4+ICppbnRlbF9jb25uZWN0b3IpCj4+Pj4gICB7Cj4+ Pj4gQEAgLTI5MTYsNiArMjkyOCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2Nvbm5lY3Rvcl9pbmZv KHN0cnVjdAo+Pj4+IHNlcV9maWxlICptLAo+Pj4+ICAgCQkJaW50ZWxfaGRtaV9pbmZvKG0sIGlu dGVsX2Nvbm5lY3Rvcik7Cj4+Pj4gICAJCWVsc2UgaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0g SU5URUxfT1VUUFVUX0xWRFMpCj4+Pj4gICAJCQlpbnRlbF9sdmRzX2luZm8obSwgaW50ZWxfY29u bmVjdG9yKTsKPj4+PiArCQllbHNlIGlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09Cj4+Pj4gSU5U RUxfT1VUUFVUX0RQX01TVCkKPj4+PiArCQkJaW50ZWxfZHBfbXN0X2luZm8obSwgaW50ZWxfY29u bmVjdG9yKTsKPj4+PiAgIAl9Cj4+Pj4KPj4+PiAgIAlzZXFfcHJpbnRmKG0sICJcdG1vZGVzOlxu Iik7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMK Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPj4+PiBpbmRleCA2M2Q0 NzA2Li4wN2IyYWE2IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F1ZGlvLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4+ Pj4gQEAgLTI2Miw3ICsyNjIsOCBAQCBzdGF0aWMgdm9pZCBoc3dfYXVkaW9fY29kZWNfZGlzYWJs ZShzdHJ1Y3QKPj4+PiBpbnRlbF9lbmNvZGVyCj4+Pj4gKmVuY29kZXIpCj4+Pj4gICAJdG1wIHw9 IEFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsKPj4+PiAgIAl0bXAgJj0gfkFVRF9DT05GSUdfVVBQ RVJfTl9NQVNLOwo+Pj4+ICAgCXRtcCAmPSB+QVVEX0NPTkZJR19MT1dFUl9OX01BU0s7Cj4+Pj4g LQlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLAo+Pj4+IElOVEVMX09VVFBVVF9E SVNQTEFZUE9SVCkpCj4+Pj4gKwlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLAo+ Pj4+IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkgfHwKPj4+PiArCQlpbnRlbF9waXBlX2hhc190 eXBlKGludGVsX2NydGMsCj4+Pj4gSU5URUxfT1VUUFVUX0RQX01TVCkpCj4+Pgo+Pj4gVGhlIHNl Y29uZCBsaW5lIHNob3VsZCBiZSBhbGlnbmVkIHdpdGggJygnLgo+Pj4KPj4+PiAgIAkJdG1wIHw9 IEFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPj4+PiAgIAlJOTE1X1dSSVRFKEhTV19BVURfQ0ZH KHBpcGUpLCB0bXApOwo+Pj4+Cj4+Pj4gQEAgLTQ3OCw3ICs0NzksOCBAQCBzdGF0aWMgdm9pZCBp bGtfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdAo+Pj4+IGRybV9jb25uZWN0b3IKPj4+PiAqY29u bmVjdG9yLAo+Pj4+ICAgCXRtcCAmPSB+QVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOwo+Pj4+ICAg CXRtcCAmPSB+QVVEX0NPTkZJR19OX1BST0dfRU5BQkxFOwo+Pj4+ICAgCXRtcCAmPSB+QVVEX0NP TkZJR19QSVhFTF9DTE9DS19IRE1JX01BU0s7Cj4+Pj4gLQlpZiAoaW50ZWxfcGlwZV9oYXNfdHlw ZShpbnRlbF9jcnRjLAo+Pj4+IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkpCj4+Pj4gKwlpZiAo aW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLAo+Pj4+IElOVEVMX09VVFBVVF9ESVNQTEFZ UE9SVCkgfHwKPj4+PiArCQlpbnRlbF9waXBlX2hhc190eXBlKGludGVsX2NydGMsCj4+Pj4gSU5U RUxfT1VUUFVUX0RQX01TVCkpCj4+Pgo+Pj4gU2FtZSBoZXJlLgo+Pj4KPj4+PiAgIAkJdG1wIHw9 IEFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPj4+PiAgIAllbHNlCj4+Pj4gICAJCXRtcCB8PQo+ Pj4+IGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGFkanVzdGVkX21vZGUpOwo+Pj4+IEBA IC01MTYsNyArNTE4LDggQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0Cj4+ Pj4gaW50ZWxfZW5jb2Rlcgo+Pj4+ICppbnRlbF9lbmNvZGVyKQo+Pj4+Cj4+Pj4gICAJLyogRUxE IENvbm5fVHlwZSAqLwo+Pj4+ICAgCWNvbm5lY3Rvci0+ZWxkWzVdICY9IH4oMyA8PCAyKTsKPj4+ PiAtCWlmIChpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9ESVNQTEFZUE9S VCkpCj4+Pj4gKwlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfRElT UExBWVBPUlQpIHx8Cj4+Pj4gKwkJaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRjLCBJTlRFTF9PVVRQ VVRfRFBfTVNUKSkKPj4+PiAgIAkJY29ubmVjdG9yLT5lbGRbNV0gfD0gKDEgPDwgMik7Cj4+Pgo+ Pj4gQW5kIGhlcmUuCj4+Pgo+Pj4+Cj4+Pj4gICAJY29ubmVjdG9yLT5lbGRbNl0gPSBkcm1fYXZf c3luY19kZWxheShjb25uZWN0b3IsCj4+Pj4gYWRqdXN0ZWRfbW9kZSkgLyAyOwo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+Pj4+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPj4+PiBpbmRleCAwNjM5Mjc1Li40ZGVkMGZi IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPj4+PiBAQCAtNzgs NiArNzgsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0 Cj4+Pj4gaW50ZWxfZW5jb2Rlcgo+Pj4+ICplbmNvZGVyLAo+Pj4+ICAgCQlyZXR1cm4gZmFsc2U7 Cj4+Pj4gICAJfQo+Pj4+Cj4+Pj4gKwlpZiAoZHJtX2RwX21zdF9wb3J0X2hhc19hdWRpbygmaW50 ZWxfZHAtPm1zdF9tZ3IsIGZvdW5kLQo+Pj4+PiBwb3J0KSkKPj4+PiArCQlwaXBlX2NvbmZpZy0+ aGFzX2F1ZGlvID0gdHJ1ZTsKPj4+PiAgIAltc3RfcGJuID0gZHJtX2RwX2NhbGNfcGJuX21vZGUo YWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPj4+PiBicHApOwo+Pj4+Cj4+Pj4gICAJcGlwZV9j b25maWctPnBibiA9IG1zdF9wYm47Cj4+Pj4gQEAgLTEwMiw2ICsxMDQsMTEgQEAgc3RhdGljIHZv aWQgaW50ZWxfbXN0X2Rpc2FibGVfZHAoc3RydWN0Cj4+Pj4gaW50ZWxfZW5jb2Rlcgo+Pj4+ICpl bmNvZGVyKQo+Pj4+ICAgCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0K Pj4+PiBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKPj4+PiAgIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGludGVsX21zdC0KPj4+Pj4gcHJpbWFyeTsKPj4+ PiAgIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPj4+ PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPj4+PiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+Pj4g KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVyLT5iYXNlLmNydGM7Cj4+Pj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4+Pj4gKwo+ Pj4+ICAgCWludCByZXQ7Cj4+Pj4KPj4+PiAgIAlEUk1fREVCVUdfS01TKCIlZFxuIiwgaW50ZWxf ZHAtPmFjdGl2ZV9tc3RfbGlua3MpOwo+Pj4+IEBAIC0xMTIsNiArMTE5LDEwIEBAIHN0YXRpYyB2 b2lkIGludGVsX21zdF9kaXNhYmxlX2RwKHN0cnVjdAo+Pj4+IGludGVsX2VuY29kZXIKPj4+PiAq ZW5jb2RlcikKPj4+PiAgIAlpZiAocmV0KSB7Cj4+Pj4gICAJCURSTV9FUlJPUigiZmFpbGVkIHRv IHVwZGF0ZSBwYXlsb2FkICVkXG4iLCByZXQpOwo+Pj4+ICAgCX0KPj4+PiArCWlmIChpbnRlbF9j cnRjLT5jb25maWctPmhhc19hdWRpbykgewo+Pj4+ICsJCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2Fi bGUoZW5jb2Rlcik7Cj4+Pj4gKwkJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsCj4+ Pj4gUE9XRVJfRE9NQUlOX0FVRElPKTsKPj4+PiArCX0KPj4+Cj4+PiBJdCBzZWVtcyB0aGUgcG93 ZXIgZG9tYWluIGlzIG9ubHkgbmVlZCBmb3IgRERJIHBsYXRmb3Jtcy4gUGVyaGFwcyBpdAo+Pj4g d291bGQgbWFrZQo+Pj4gc2Vuc2UgdG8gbW92ZSB0aGF0IGludG8gaHN3X2F1ZGlvX2NvZGVjX3tl bixkaXN9YWJsZS4gUGF1bG8/Cj4+Cj4+IFRoZSBwb3dlciBkb21haW5zIGNvZGUgdXN1YWxseSB0 cmllcyB0byBiZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCwKPj4gYWJzdHJhY3RpbmcgYXdheSB0aGUg ZGlmZmVyZW50IHBvd2VyIHdlbGxzLCB3aGljaCBhcmUgdGhlIHBsYXRmb3JtLQo+PiBkZXBlbmRl bnQgdGhpbmcuIFNvIEknbSBmaW5lIHdpdGggZXZlcnkgcGxhdGZvcm0gZ2V0dGluZyB0aGUgYXVk aW8KPj4gcG93ZXIgZG9tYWluIHdoZW4gaXQgbmVlZHMgdG8gdXNlIGF1ZGlvLCBldmVuIGlmIHRo ZSBwbGF0Zm9ybSBkb2Vzbid0Cj4+IGhhdmUgcG93ZXIgd2VsbHMuIFNvIGlmIHNvbWUgb3RoZXIg cGxhdGZvcm0gaW4gdGhlIGZ1dHVyZSBpbnRyb2R1Y2VzCj4+IHNvbWUgbmV3IG9kZCBwb3dlciB3 ZWxsIGZvciBhdWRpbywgd2UgY2FuIHJlbHkgb24gdGhlIGZhY3QgdGhhdCB3ZQo+PiBhbHJlYWR5 IGhhdmUgdGhlIHByb3BlciBwb3dlciBkb21haW4gZ2V0L3B1dCBjYWxscywgYW5kIGZvY3VzIG9u IGp1c3QKPj4gaW1wbGVtZW50aW5nIHRoZSBjb3JyZWN0IHRyYW5zbGF0aW9uIGZyb20gImF1ZGlv IHBvd2VyIGRvbWFpbiIgdG8KPj4gcHJvcGVyIHBvd2VyIHdlbGxzLgo+Cj4gSG1tLCBvay4gU28g SSB0aGluayB0aGUgd2F5IHRvIGdvIGlzIHRvIG1vdmUgdGhlIHBvd2VyIGRvbWFpbiBoYW5kbGlu ZyBpbnRvCj4gaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlL2Rpc2FibGUuIEJ1dCB0aGF0IHdvdWxk IGJlIGEgc2VwYXJhdGUgcGF0Y2gsIHNvIExpYmluLAo+IEkgdGhpbmsgeW91IGNhbiBsZWF2ZSB0 aGlzIGFzIGlzLgoKZ2V0IGl0LiBUaGFua3MuCgpSZWdhcmRzLApMaWJpbgoKPgo+IEFuZGVyCj4K Pj4KPj4+Cj4+Pj4gICB9Cj4+Pj4KPj4+PiAgIHN0YXRpYyB2b2lkIGludGVsX21zdF9wb3N0X2Rp c2FibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIKPj4+PiAqZW5jb2RlcikKPj4+PiBAQCAtMjE0 LDYgKzIyNSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9lbmFibGVfZHAoc3RydWN0Cj4+Pj4g aW50ZWxfZW5jb2Rlcgo+Pj4+ICplbmNvZGVyKQo+Pj4+ICAgCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+Pj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPj4+PiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4+ICsJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItCj4+Pj4+IGJhc2UuY3J0Yyk7 Cj4+Pj4gICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPj4+PiAgIAlp bnQgcmV0Owo+Pj4+Cj4+Pj4gQEAgLTIyNiw2ICsyMzgsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxf bXN0X2VuYWJsZV9kcChzdHJ1Y3QKPj4+PiBpbnRlbF9lbmNvZGVyCj4+Pj4gKmVuY29kZXIpCj4+ Pj4gICAJcmV0ID0gZHJtX2RwX2NoZWNrX2FjdF9zdGF0dXMoJmludGVsX2RwLT5tc3RfbWdyKTsK Pj4+Pgo+Pj4+ICAgCXJldCA9IGRybV9kcF91cGRhdGVfcGF5bG9hZF9wYXJ0MigmaW50ZWxfZHAt Pm1zdF9tZ3IpOwo+Pj4+ICsKPj4+PiArCWlmIChjcnRjLT5jb25maWctPmhhc19hdWRpbykgewo+ Pj4+ICsJCURSTV9ERUJVR19EUklWRVIoIkVuYWJsaW5nIERQIGF1ZGlvIG9uIHBpcGUgJWNcbiIs Cj4+Pj4gKwkJCQkgcGlwZV9uYW1lKGNydGMtPnBpcGUpKTsKPj4+PiArCQlpbnRlbF9kaXNwbGF5 X3Bvd2VyX2dldChkZXZfcHJpdiwKPj4+PiBQT1dFUl9ET01BSU5fQVVESU8pOwo+Pj4+ICsJCWlu dGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShlbmNvZGVyKTsKPj4+PiArCX0KPj4+PiAgIH0KPj4+Pgo+ Pj4+ICAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2VuY19nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX2VuY29kZXIKPj4+PiAqZW5jb2RlciwKPj4+PiBAQCAtMjUxLDYgKzI3MCwxMiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kcF9tc3RfZW5jX2dldF9jb25maWcoc3RydWN0Cj4+Pj4gaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPj4+Pgo+Pj4+ICAgCXBpcGVfY29uZmlnLT5oYXNfZHBfZW5jb2RlciA9 IHRydWU7Cj4+Pj4KPj4+PiArCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoZGV2 X3ByaXYsCj4+Pj4gUE9XRVJfRE9NQUlOX0FVRElPKSkgewo+Pj4+ICsJCXRlbXAgPSBJOTE1X1JF QUQoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCk7Cj4+Pj4gKwkJaWYgKHRlbXAgJiBBVURJT19PVVRQ VVRfRU5BQkxFKGNydGMtPnBpcGUpKQo+Pj4+ICsJCQlwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvID0g dHJ1ZTsKPj4+PiArCX0KPj4+PiArCj4+Pgo+Pj4gVGhpcyBjb2RlIGlzIERESSBzcGVjaWZpYy4g VGhhdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtIHNpbmNlIHdlIG9ubHkKPj4+IHN1cHBvcnQgRFAK Pj4+IE1TVCBvbiBEREkgcGxhdGZvcm1zLCBidXQgd2Ugc2hvdWxkbid0IGR1cGxpY2F0ZSB0aGF0 IGxvZ2ljIGhlcmUuIFNvCj4+PiBJIHRoaW5rCj4+PiB0aGlzIHNob3VsZCBiZSBhZGRlZCB0byBh IGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCBib3RoIGZyb20gaGVyZQo+Pj4gYW5kCj4+PiBp bnRlbF9kZGkuYy4KPj4KPj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK