From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zanoni, Paulo R" Subject: Re: [V2 PATCH 2/2] drm/i915: start adding dp mst audio Date: Mon, 23 Nov 2015 14:04:50 +0000 Message-ID: <1448287489.2529.8.camel@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> 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 556166E5DE for ; Mon, 23 Nov 2015 06:04:52 -0800 (PST) In-Reply-To: <1447931273.2693.12.camel@gmail.com> Content-Language: en-US Content-ID: <7DD362537C06D942B3E009F1339A244E@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" , "intel-gfx@lists.freedesktop.org" , "jani.nikula@linux.intel.com" , "Vetter, Daniel" , "conselvan2@gmail.com" , "libin.yang@linux.intel.com" Cc: "airlied@redhat.com" List-Id: intel-gfx@lists.freedesktop.org RW0gUXVpLCAyMDE1LTExLTE5IMOgcyAxMzowNyArMDIwMCwgQW5kZXIgQ29uc2VsdmFuIERlIE9s aXZlaXJhDQplc2NyZXZldToNCj4gKENjJ2luZyBQYXVsbyBmb3IgdGhlIGF1ZGlvIHBvd2VyIGRv bWFpbiBxdWVzdGlvbikNCj4gDQo+IE9uIFdlZCwgMjAxNS0xMS0xMSBhdCAxMzozMyArMDgwMCwg bGliaW4ueWFuZ0BsaW51eC5pbnRlbC5jb20gd3JvdGU6DQo+ID4gRnJvbTogTGliaW4gWWFuZyA8 bGliaW4ueWFuZ0BsaW51eC5pbnRlbC5jb20+DQo+ID4gDQo+ID4gVGhpcyBwYXRjaCBhZGRzIHN1 cHBvcnQgZm9yIERQIE1TVCBhdWRpbyBpbiBpOTE1Lg0KPiA+IA0KPiA+IEVuYWJsZSBhdWRpbyBj b2RlYyB3aGVuIERQIE1TVCBpcyBlbmFibGVkIGlmIGhhc19hdWRpbyBmbGFnIGlzIHNldC4NCj4g PiBEaXNhYmxlIGF1ZGlvIGNvZGVjIHdoZW4gRFAgTVNUIGlzIGRpc2FibGVkIGlmIGhhc19hdWRp byBmbGFnIGlzDQo+ID4gc2V0Lg0KPiA+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IExpYmluIFlhbmcg PGxpYmluLnlhbmdAbGludXguaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IERhdmUgQWly bGllIDxhaXJsaWVkQHJlZGhhdC5jb20+DQo+ID4gLS0tDQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyB8IDE0ICsrKysrKysrKysrKysrDQo+ID4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jwqDCoHzCoMKgOSArKysrKystLS0NCj4gPiDCoGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysr KysrKw0KPiA+IMKgMyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMNCj4gPiBp bmRleCA1NjU5ZDRjLi4zOGM3YTVkIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMNCj4gPiBAQCAtMjg3Myw2ICsyODczLDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rw X2luZm8oc3RydWN0IHNlcV9maWxlDQo+ID4gKm0sDQo+ID4gwqAJCWludGVsX3BhbmVsX2luZm8o bSwgJmludGVsX2Nvbm5lY3Rvci0+cGFuZWwpOw0KPiA+IMKgfQ0KPiA+IMKgDQo+ID4gK3N0YXRp YyB2b2lkIGludGVsX2RwX21zdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwNCj4gPiArCQkJwqDC oHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikNCj4gPiArew0KPiA+ICsJ c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItDQo+ ID4gPmVuY29kZXI7DQo+ID4gKwlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21z dCA9DQo+ID4gKwkJZW5jX3RvX21zdCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7DQo+ID4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGludGVsX21zdC0NCj4gPiA+ cHJpbWFyeTsNCj4gPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfZGlnX3Bv cnQtPmRwOw0KPiA+ICsNCj4gPiArCXNlcV9wcmludGYobSwgIlx0YXVkaW8gc3VwcG9ydDogJXNc biIsDQo+ID4gZHJtX2RwX21zdF9wb3J0X2hhc19hdWRpbygmaW50ZWxfZHAtPm1zdF9tZ3IsIGlu dGVsX2Nvbm5lY3Rvci0NCj4gPiA+cG9ydCkgPyAieWVzIiA6DQo+ID4gIm5vIik7DQo+IA0KPiBU b28gbXVjaCBnb2luZyBvbiBpbiBqdXN0IG9uZSBsaW5lLiBZb3UgY2FuIHJlcGxhY2UgdGhlIHRl cm5hcnkNCj4gb3BlcmF0b3Igd2l0aA0KPiB5ZXNubygpLiBZb3UgY291bGQgYWxzbyBhZGQgYSBo YXNfYXVkaW8gYm9vbDoNCj4gDQo+IGJvb2wgaGFzX2F1ZGlvID0gZHJtX2RwX21zdF9wb3J0X2hh c19hdWRpbyguLi4pOw0KPiBzZXFfcHJpbnRmKC4uLiwgeWVzbm8oaGFzX2F1ZGlvKSk7DQo+IA0K PiANCj4gPiArfQ0KPiA+ICsNCj4gPiDCoHN0YXRpYyB2b2lkIGludGVsX2hkbWlfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sDQo+ID4gwqAJCQnCoMKgwqDCoHN0cnVjdCBpbnRlbF9jb25uZWN0b3IN Cj4gPiAqaW50ZWxfY29ubmVjdG9yKQ0KPiA+IMKgew0KPiA+IEBAIC0yOTE2LDYgKzI5MjgsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfaW5mbyhzdHJ1Y3QNCj4gPiBzZXFfZmlsZSAq bSwNCj4gPiDCoAkJCWludGVsX2hkbWlfaW5mbyhtLCBpbnRlbF9jb25uZWN0b3IpOw0KPiA+IMKg CQllbHNlIGlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9MVkRTKQ0KPiA+ IMKgCQkJaW50ZWxfbHZkc19pbmZvKG0sIGludGVsX2Nvbm5lY3Rvcik7DQo+ID4gKwkJZWxzZSBp ZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PQ0KPiA+IElOVEVMX09VVFBVVF9EUF9NU1QpDQo+ID4g KwkJCWludGVsX2RwX21zdF9pbmZvKG0sIGludGVsX2Nvbm5lY3Rvcik7DQo+ID4gwqAJfQ0KPiA+ IMKgDQo+ID4gwqAJc2VxX3ByaW50ZihtLCAiXHRtb2RlczpcbiIpOw0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jDQo+ID4gYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jDQo+ID4gaW5kZXggNjNkNDcwNi4uMDdiMmFhNiAxMDA2NDQN Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jDQo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYw0KPiA+IEBAIC0yNjIsNyArMjYyLDgg QEAgc3RhdGljIHZvaWQgaHN3X2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0DQo+ID4gaW50ZWxf ZW5jb2Rlcg0KPiA+ICplbmNvZGVyKQ0KPiA+IMKgCXRtcCB8PSBBVURfQ09ORklHX05fUFJPR19F TkFCTEU7DQo+ID4gwqAJdG1wICY9IH5BVURfQ09ORklHX1VQUEVSX05fTUFTSzsNCj4gPiDCoAl0 bXAgJj0gfkFVRF9DT05GSUdfTE9XRVJfTl9NQVNLOw0KPiA+IC0JaWYgKGludGVsX3BpcGVfaGFz X3R5cGUoaW50ZWxfY3J0YywNCj4gPiBJTlRFTF9PVVRQVVRfRElTUExBWVBPUlQpKQ0KPiA+ICsJ aWYgKGludGVsX3BpcGVfaGFzX3R5cGUoaW50ZWxfY3J0YywNCj4gPiBJTlRFTF9PVVRQVVRfRElT UExBWVBPUlQpIHx8DQo+ID4gKwkJaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLA0KPiA+ IElOVEVMX09VVFBVVF9EUF9NU1QpKQ0KPiANCj4gVGhlIHNlY29uZCBsaW5lIHNob3VsZCBiZSBh bGlnbmVkIHdpdGggJygnLg0KPiANCj4gPiDCoAkJdG1wIHw9IEFVRF9DT05GSUdfTl9WQUxVRV9J TkRFWDsNCj4gPiDCoAlJOTE1X1dSSVRFKEhTV19BVURfQ0ZHKHBpcGUpLCB0bXApOw0KPiA+IMKg DQo+ID4gQEAgLTQ3OCw3ICs0NzksOCBAQCBzdGF0aWMgdm9pZCBpbGtfYXVkaW9fY29kZWNfZW5h YmxlKHN0cnVjdA0KPiA+IGRybV9jb25uZWN0b3INCj4gPiAqY29ubmVjdG9yLA0KPiA+IMKgCXRt cCAmPSB+QVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOw0KPiA+IMKgCXRtcCAmPSB+QVVEX0NPTkZJ R19OX1BST0dfRU5BQkxFOw0KPiA+IMKgCXRtcCAmPSB+QVVEX0NPTkZJR19QSVhFTF9DTE9DS19I RE1JX01BU0s7DQo+ID4gLQlpZiAoaW50ZWxfcGlwZV9oYXNfdHlwZShpbnRlbF9jcnRjLA0KPiA+ IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkpDQo+ID4gKwlpZiAoaW50ZWxfcGlwZV9oYXNfdHlw ZShpbnRlbF9jcnRjLA0KPiA+IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkgfHwNCj4gPiArCQlp bnRlbF9waXBlX2hhc190eXBlKGludGVsX2NydGMsDQo+ID4gSU5URUxfT1VUUFVUX0RQX01TVCkp DQo+IA0KPiBTYW1lIGhlcmUuDQo+IA0KPiA+IMKgCQl0bXAgfD0gQVVEX0NPTkZJR19OX1ZBTFVF X0lOREVYOw0KPiA+IMKgCWVsc2UNCj4gPiDCoAkJdG1wIHw9DQo+ID4gYXVkaW9fY29uZmlnX2hk bWlfcGl4ZWxfY2xvY2soYWRqdXN0ZWRfbW9kZSk7DQo+ID4gQEAgLTUxNiw3ICs1MTgsOCBAQCB2 b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QNCj4gPiBpbnRlbF9lbmNvZGVyDQo+ ID4gKmludGVsX2VuY29kZXIpDQo+ID4gwqANCj4gPiDCoAkvKiBFTEQgQ29ubl9UeXBlICovDQo+ ID4gwqAJY29ubmVjdG9yLT5lbGRbNV0gJj0gfigzIDw8IDIpOw0KPiA+IC0JaWYgKGludGVsX3Bp cGVfaGFzX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUKSkNCj4gPiArCWlmIChp bnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkgfHwNCj4g PiArCQlpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9EUF9NU1QpKQ0KPiA+ IMKgCQljb25uZWN0b3ItPmVsZFs1XSB8PSAoMSA8PCAyKTsNCj4gDQo+IEFuZCBoZXJlLg0KPiAN Cj4gPiDCoA0KPiA+IMKgCWNvbm5lY3Rvci0+ZWxkWzZdID0gZHJtX2F2X3N5bmNfZGVsYXkoY29u bmVjdG9yLA0KPiA+IGFkanVzdGVkX21vZGUpIC8gMjsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5jDQo+ID4gaW5kZXggMDYzOTI3NS4uNGRlZDBmYiAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYw0KPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jDQo+ID4gQEAgLTc4LDYgKzc4LDggQEAgc3Rh dGljIGJvb2wgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdA0KPiA+IGludGVsX2Vu Y29kZXINCj4gPiAqZW5jb2RlciwNCj4gPiDCoAkJcmV0dXJuIGZhbHNlOw0KPiA+IMKgCX0NCj4g PiDCoA0KPiA+ICsJaWYgKGRybV9kcF9tc3RfcG9ydF9oYXNfYXVkaW8oJmludGVsX2RwLT5tc3Rf bWdyLCBmb3VuZC0NCj4gPiA+cG9ydCkpDQo+ID4gKwkJcGlwZV9jb25maWctPmhhc19hdWRpbyA9 IHRydWU7DQo+ID4gwqAJbXN0X3BibiA9IGRybV9kcF9jYWxjX3Bibl9tb2RlKGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2ssDQo+ID4gYnBwKTsNCj4gPiDCoA0KPiA+IMKgCXBpcGVfY29uZmlnLT5w Ym4gPSBtc3RfcGJuOw0KPiA+IEBAIC0xMDIsNiArMTA0LDExIEBAIHN0YXRpYyB2b2lkIGludGVs X21zdF9kaXNhYmxlX2RwKHN0cnVjdA0KPiA+IGludGVsX2VuY29kZXINCj4gPiAqZW5jb2RlcikN Cj4gPiDCoAlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9DQo+ID4gZW5j X3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7DQo+ID4gwqAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRlbF9tc3QtDQo+ID4gPnByaW1hcnk7DQo+ID4gwqAJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7DQo+ID4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7DQo+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOw0KPiA+ICsJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+YmFzZS5jcnRjOw0KPiA+ICsJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOw0KPiA+ICsNCj4gPiDCoAlp bnQgcmV0Ow0KPiA+IMKgDQo+ID4gwqAJRFJNX0RFQlVHX0tNUygiJWRcbiIsIGludGVsX2RwLT5h Y3RpdmVfbXN0X2xpbmtzKTsNCj4gPiBAQCAtMTEyLDYgKzExOSwxMCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9tc3RfZGlzYWJsZV9kcChzdHJ1Y3QNCj4gPiBpbnRlbF9lbmNvZGVyDQo+ID4gKmVuY29k ZXIpDQo+ID4gwqAJaWYgKHJldCkgew0KPiA+IMKgCQlEUk1fRVJST1IoImZhaWxlZCB0byB1cGRh dGUgcGF5bG9hZCAlZFxuIiwgcmV0KTsNCj4gPiDCoAl9DQo+ID4gKwlpZiAoaW50ZWxfY3J0Yy0+ Y29uZmlnLT5oYXNfYXVkaW8pIHsNCj4gPiArCQlpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKGVu Y29kZXIpOw0KPiA+ICsJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LA0KPiA+IFBP V0VSX0RPTUFJTl9BVURJTyk7DQo+ID4gKwl9DQo+IA0KPiBJdCBzZWVtcyB0aGUgcG93ZXIgZG9t YWluIGlzIG9ubHkgbmVlZCBmb3IgRERJIHBsYXRmb3Jtcy4gUGVyaGFwcyBpdA0KPiB3b3VsZCBt YWtlDQo+IHNlbnNlIHRvIG1vdmUgdGhhdCBpbnRvIGhzd19hdWRpb19jb2RlY197ZW4sZGlzfWFi bGUuIFBhdWxvPw0KDQpUaGUgcG93ZXIgZG9tYWlucyBjb2RlIHVzdWFsbHkgdHJpZXMgdG8gYmUg cGxhdGZvcm0taW5kZXBlbmRlbnQsDQphYnN0cmFjdGluZyBhd2F5IHRoZSBkaWZmZXJlbnQgcG93 ZXIgd2VsbHMsIHdoaWNoIGFyZSB0aGUgcGxhdGZvcm0tDQpkZXBlbmRlbnQgdGhpbmcuIFNvIEkn bSBmaW5lIHdpdGggZXZlcnkgcGxhdGZvcm0gZ2V0dGluZyB0aGUgYXVkaW8NCnBvd2VyIGRvbWFp biB3aGVuIGl0IG5lZWRzIHRvIHVzZSBhdWRpbywgZXZlbiBpZiB0aGUgcGxhdGZvcm0gZG9lc24n dA0KaGF2ZSBwb3dlciB3ZWxscy4gU28gaWYgc29tZSBvdGhlciBwbGF0Zm9ybSBpbiB0aGUgZnV0 dXJlIGludHJvZHVjZXMNCnNvbWUgbmV3IG9kZCBwb3dlciB3ZWxsIGZvciBhdWRpbywgd2UgY2Fu IHJlbHkgb24gdGhlIGZhY3QgdGhhdCB3ZQ0KYWxyZWFkeSBoYXZlIHRoZSBwcm9wZXIgcG93ZXIg ZG9tYWluIGdldC9wdXQgY2FsbHMsIGFuZCBmb2N1cyBvbiBqdXN0DQppbXBsZW1lbnRpbmcgdGhl IGNvcnJlY3QgdHJhbnNsYXRpb24gZnJvbSAiYXVkaW8gcG93ZXIgZG9tYWluIiB0bw0KcHJvcGVy IHBvd2VyIHdlbGxzLg0KDQo+IA0KPiA+IMKgfQ0KPiA+IMKgDQo+ID4gwqBzdGF0aWMgdm9pZCBp bnRlbF9tc3RfcG9zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyDQo+ID4gKmVuY29k ZXIpDQo+ID4gQEAgLTIxNCw2ICsyMjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfZW5hYmxl X2RwKHN0cnVjdA0KPiA+IGludGVsX2VuY29kZXINCj4gPiAqZW5jb2RlcikNCj4gPiDCoAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsNCj4gPiDCoAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7DQo+ID4g wqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsN Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLQ0K PiA+ID5iYXNlLmNydGMpOw0KPiA+IMKgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQt PnBvcnQ7DQo+ID4gwqAJaW50IHJldDsNCj4gPiDCoA0KPiA+IEBAIC0yMjYsNiArMjM4LDEzIEBA IHN0YXRpYyB2b2lkIGludGVsX21zdF9lbmFibGVfZHAoc3RydWN0DQo+ID4gaW50ZWxfZW5jb2Rl cg0KPiA+ICplbmNvZGVyKQ0KPiA+IMKgCXJldCA9IGRybV9kcF9jaGVja19hY3Rfc3RhdHVzKCZp bnRlbF9kcC0+bXN0X21ncik7DQo+ID4gwqANCj4gPiDCoAlyZXQgPSBkcm1fZHBfdXBkYXRlX3Bh eWxvYWRfcGFydDIoJmludGVsX2RwLT5tc3RfbWdyKTsNCj4gPiArDQo+ID4gKwlpZiAoY3J0Yy0+ Y29uZmlnLT5oYXNfYXVkaW8pIHsNCj4gPiArCQlEUk1fREVCVUdfRFJJVkVSKCJFbmFibGluZyBE UCBhdWRpbyBvbiBwaXBlICVjXG4iLA0KPiA+ICsJCQkJwqBwaXBlX25hbWUoY3J0Yy0+cGlwZSkp Ow0KPiA+ICsJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LA0KPiA+IFBPV0VSX0RP TUFJTl9BVURJTyk7DQo+ID4gKwkJaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKGVuY29kZXIpOw0K PiA+ICsJfQ0KPiA+IMKgfQ0KPiA+IMKgDQo+ID4gwqBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3Rf ZW5jX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcg0KPiA+ICplbmNvZGVyLA0KPiA+ IEBAIC0yNTEsNiArMjcwLDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX21zdF9lbmNfZ2V0X2Nv bmZpZyhzdHJ1Y3QNCj4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiA+IMKgDQo+ID4gwqAJ cGlwZV9jb25maWctPmhhc19kcF9lbmNvZGVyID0gdHJ1ZTsNCj4gPiDCoA0KPiA+ICsJaWYgKGlu dGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxlZChkZXZfcHJpdiwNCj4gPiBQT1dFUl9ET01BSU5f QVVESU8pKSB7DQo+ID4gKwkJdGVtcCA9IEk5MTVfUkVBRChIU1dfQVVEX1BJTl9FTERfQ1BfVkxE KTsNCj4gPiArCQlpZiAodGVtcCAmIEFVRElPX09VVFBVVF9FTkFCTEUoY3J0Yy0+cGlwZSkpDQo+ ID4gKwkJCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8gPSB0cnVlOw0KPiA+ICsJfQ0KPiA+ICsNCj4g DQo+IFRoaXMgY29kZSBpcyBEREkgc3BlY2lmaWMuIFRoYXQgc2hvdWxkbid0IGJlIGEgcHJvYmxl bSBzaW5jZSB3ZSBvbmx5DQo+IHN1cHBvcnQgRFANCj4gTVNUIG9uIERESSBwbGF0Zm9ybXMsIGJ1 dCB3ZSBzaG91bGRuJ3QgZHVwbGljYXRlIHRoYXQgbG9naWMgaGVyZS4gU28NCj4gSSB0aGluaw0K PiB0aGlzIHNob3VsZCBiZSBhZGRlZCB0byBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGNhbGxlZCBi b3RoIGZyb20gaGVyZQ0KPiBhbmQNCj4gaW50ZWxfZGRpLmMuDQoNCg0KPiBBbmRlcgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=