From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 1/1] drm/i915/skl+: Add and enable DP AUX CH mutex Date: Sat, 24 Feb 2018 03:12:12 +0000 Message-ID: <1519443340.27620.30.camel@dk-H97M-D3H> References: <20180224015140.13803-1-jose.souza@intel.com> <20180224015140.13803-2-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B2926F3AE for ; Sat, 24 Feb 2018 03:12:15 +0000 (UTC) In-Reply-To: <20180224015140.13803-2-jose.souza@intel.com> Content-Language: en-US Content-ID: 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" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE4LTAyLTIzIGF0IDE3OjUxIC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOg0KPiBXaGVuIFBTUi9QU1IyL0dUQyBpcyBlbmFibGVkIGhhcmR3YXJlIGNhbiBkbyBB VVggdHJhbnNhY3Rpb25zIGJ5IGl0DQo+IHNlbGYsIHNvIGxldHMgdXNlIHRoZSBtdXRleCByZWdp c3RlciB0aGF0IGlzIGF2YWlsYWJsZSBpbiBnZW45KyB0bw0KPiBhdm9pZCBjb25jdXJyZW50IGFj Y2VzcyBieSBoYXJkd2FyZSBhbmQgZHJpdmVyLg0KPiBPbGRlciBnZW4gaGFuZGxpbmcgd2lsbCBi ZSBkb25lIHNlcGFyYXRlZC4NCj4gDQo+IFJlZmVyZW5jZTogaHR0cHM6Ly8wMS5vcmcvc2l0ZXMv ZGVmYXVsdC9maWxlcy9kb2N1bWVudGF0aW9uL2ludGVsLWdmeC1wcm0tb3NyYy1za2wtdm9sMTIt ZGlzcGxheS5wZGYNCj4gUGFnZSAxOTggLSBBVVggcHJvZ3JhbW1pbmcgc2VxdWVuY2UNCj4gDQo+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+IENjOiBKYW5pIE5p a3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPg0KPiBDYzogRGhpbmFrYXJhbiBQYW5k aXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+DQo+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBKb3PD qSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4NCj4gLS0tDQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICB8ICA5ICsrKysrKw0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyAgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAxICsNCj4g IDMgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oDQo+IGluZGV4IGVlYTViMmM1MzdkNC4uZjM2ZTgzOWI0YjRmIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgNCj4gQEAgLTUzODUsNiArNTM4NSwxNSBAQCBlbnVtIHsNCj4gICNk ZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX0ZXX1NZTkNfUFVMU0VfU0tMKGMpICgoKGMpIC0gMSkgPDwg NSkNCj4gICNkZWZpbmUgICBEUF9BVVhfQ0hfQ1RMX1NZTkNfUFVMU0VfU0tMKGMpICAgKChjKSAt IDEpDQo+ICANCj4gKyNkZWZpbmUgX0RQQV9BVVhfQ0hfTVVURVgJKGRldl9wcml2LT5pbmZvLmRp c3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MDJDKQ0KPiArI2RlZmluZSBfRFBCX0FVWF9DSF9NVVRF WAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQxMkMpDQo+ICsjZGVm aW5lIF9EUENfQVVYX0NIX01VVEVYCShkZXZfcHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0 ICsgMHg2NDIyQykNCj4gKyNkZWZpbmUgX0RQRF9BVVhfQ0hfTVVURVgJKGRldl9wcml2LT5pbmZv LmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0MzJDKQ0KPiArI2RlZmluZSBfRFBGX0FVWF9DSF9N VVRFWAkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MkMpDQo+ICsj ZGVmaW5lIERQX0FVWF9DSF9NVVRFWChwb3J0KQlfTU1JT19QT1JUKHBvcnQsIF9EUEFfQVVYX0NI X01VVEVYLCBfRFBCX0FVWF9DSF9NVVRFWCkNCgkJCSAgXmF1eF9jaCBzaW1pbGFyIHRvIGN0bCBh bmQgZGF0YS4NCg0KPiArI2RlZmluZSAgIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUJCSgxIDw8IDMx KQ0KPiArI2RlZmluZSAgIERQX0FVWF9DSF9NVVRFWF9TVEFUVVMJCSgxIDw8IDMwKQ0KPiArDQo+ ICAvKg0KPiAgICogQ29tcHV0aW5nIEdNQ0ggTSBhbmQgTiB2YWx1ZXMgZm9yIHRoZSBEaXNwbGF5 IFBvcnQgbGluaw0KPiAgICoNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+IGluZGV4IDJjM2Vi OTBiOTQ5OS4uN2JlMmZlYzUxNjUxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMNCj4g QEAgLTEwODEsNiArMTA4MSw0NSBAQCBzdGF0aWMgdWludDMyX3QgaW50ZWxfZHBfZ2V0X2F1eF9z ZW5kX2N0bChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLA0KPiAgCQkJCQkJYXV4X2Nsb2NrX2Rp dmlkZXIpOw0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9hdXhfY2hfdHJ5bG9j ayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiArew0KPiArCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOw0KPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9DQo+ICsJCQl0b19pOTE1KGludGVs X2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsNCj4gKwlpOTE1X3JlZ190IGNoX211dGV4Ow0KPiAr DQo+ICsJaWYgKCFpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZykNCj4gKwkJcmV0dXJuIHRydWU7 DQo+ICsNCj4gKwljaF9tdXRleCA9IGludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnKGludGVsX2Rw KTsNCj4gKwlJOTE1X1dSSVRFKGNoX211dGV4LCBEUF9BVVhfQ0hfTVVURVhfRU5BQkxFKTsNCg0K DQo+ID4gPiANCj4gPiA+IFlvdSBtaWdodCBiZSB0b3VjaGluZyBiaXRzLiBXZSBkb24ndCBrbm93 IGlmIEhXIGlzIHVzaW5nIHRoZQ0KPiA+ID4gcmVzZXJ2ZWQNCj4gPiA+IGJpdHMgb3Igbm90Lg0K PiA+ID4gU28gUk1XIHw9IGJpdCAzMSBoZXJlIGlzIGEgZ29vZCBpZGVhLg0KPiA+IA0KPiA+IEFz IGEgcmVhZCBpbiB0aGlzIHJlZ2lzdGVyIHJlcXVlc3QgdGhlIG11dGV4IGxvY2sgaXMgYmV0dGVy IGF2b2lkDQo+ID4gYW55DQo+ID4gcmVhZCB0aGF0IGlzIG5vdCBtZWFudCB0byByZXF1ZXN0IGl0 Lg0KPiANCj4gb2suLi4gSSBhY2NlcHQgdGhlIGZhY3QgdGhhdCByZWFkIHRoYXQgaXMgbG9ja2lu Zw0KPiBzbyB5b3UgYXJlIHJpZ2h0IGhlcmUuDQo+IA0KDQpJIGRvIG5vdCBhZ3JlZSB3aXRoIHRo ZSBpbnRlcnByZXRhdGlvbiBoZXJlLCByZWFkaW5nIHRoZSByZWdpc3Rlcg0KKmFmdGVyKiB0aGUg bXV0ZXggaXMgZW5hYmxlZCA9PSByZXF1ZXN0IGZvciBsb2NraW5nLiBZb3UgY2FuIHJlYWQgdGhl DQpyZWdpc3RlciBiZWZvcmUgZW5hYmxpbmcsIGFuZCB5b3UgaGF2ZSB0byByZWFkIHNvIHRoYXQg eW91IGRvbid0DQpvdmVyd3JpdGUgYW55IG90aGVyIGJpdC4NCg0KUmVmOiAiU3RpY2t5IGJpdCBz ZXQgdG8gMSBhZnRlciBhIHJlYWQgdG8gdGhpcyByZWdpc3RlciB3aGVuIE11dGV4IGlzDQplbmFi bGVkLiINCg0KDQo+ICsNCj4gKwkvKiBTcGVjIHNheXMgdGhhdCBtdXRleCBpcyBhY3F1aXJlZCB3 aGVuIHN0YXR1cyBiaXQgaXMgcmVhZCBhcyB1bnNldCwNCj4gKwkgKiBoZXJlIHdhaXRpbmcgZm9y IDJtc2VjIG9yIDQgdHJpZXMgYmVmb3JlIGdpdmUgdXAuDQoJCQkgICAgIDIgbXMuICAgIF4gdGhp cyBpcyBub3QgdHJ1ZQ0KDQo+ICsJICovDQo+ICsJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVy KGRldl9wcml2LCBjaF9tdXRleCwgRFBfQVVYX0NIX01VVEVYX1NUQVRVUywNCj4gKwkJCQkgICAg MCwgMikpIHsNCj4gKwkJRFJNX1dBUk4oImRwX2F1eF9jaCBwb3J0IGxvY2tlZCBmb3IgdG9vIGxv bmciKTsNCgkJIERSTV9ERUJVR19LTVMoImF1eCBjaGFubmVsICVjIGxvY2tlZCBmb3IgMiBtcywg dGltaW5nIG91dFxuIik7DQoNCjEuIERSTV9ERUJVR19LTVMgaXMgdGhlIGNvbnZlbnRpb24gaW4g dGhpcyBmaWxlIGFuZCBtb3N0IHBhcnRzIG9mIHRoZQ0KZHJpdmVyIGZvciB0aGluZ3MgbGlrZSB0 aGlzLg0KMi4gSSBwcmVmZXIgdG8gYWRkIGRldGFpbHMgbGlrZSBwb3J0L2NoYW5uZWwvcGlwZS9j b25uZWN0b3Igd2hlbg0KcHJpbnRpbmcgZGVidWcgbWVzc2FnZXMgaWYgaXQgZG9lc24ndCBjb3N0 IGFueSBleHRyYSBzcGFjZS4NCg0KDQogDQo+ICsJCXJldHVybiBmYWxzZTsNCj4gKwl9DQo+ICsN Cj4gKwlyZXR1cm4gdHJ1ZTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfYXV4 X2NoX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiArew0KPiArCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOw0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9DQo+ICsJCQl0b19p OTE1KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsNCj4gKw0KPiArCWlmICghaW50ZWxf ZHAtPmF1eF9jaF9tdXRleF9yZWcpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCS8qIHNldHRpbmcg dGhlIHN0YXR1cyBiaXQgcmVsZWFzZXMgdGhlIG11dGV4ICsga2VlcCBtdXRleCBlbmFibGVkICov DQo+ICsJSTkxNV9XUklURShpbnRlbF9kcC0+YXV4X2NoX211dGV4X3JlZyhpbnRlbF9kcCksDQo+ ICsJCSAgIERQX0FVWF9DSF9NVVRFWF9FTkFCTEUgfCBEUF9BVVhfQ0hfTVVURVhfU1RBVFVTKTsN Cg0KSWYgeW91IGFyZSBsZWF2aW5nIHRoZSBtdXRleCBlbmFibGVkLCB5b3UgZG9uJ3QgaGF2ZSB0 byBlbmFibGUgaXQgZm9yDQp0aGUgc2Vjb25kIHRyYW5zYWN0aW9uIG9ud2FyZHMuIEluIHRoYXQg Y2FzZSwgd2h5IG5vdCBtb3ZlIHRoZSBtdXRleA0KZW5hYmxpbmcgc3RlcCB0byBpbnRlbF9kcF9h dXhfaW5pdCgpIGFmdGVyIGNoZWNraW5nIGZvciBQU1Igc3VwcG9ydCBvcg0KZW5hYmxlIHRoZSBt dXRleCBqdXN0IGJlZm9yZSBpbnRlbF9wc3JfZW5hYmxlKCkuIFBsZWFzZSBnZXQgYW4gYWx0ZXJu YXRlDQpvcGluaW9uIG9uIHRoaXMuDQoNCg0KSSB0aGluayB0aGVyZSBhcmUgdHdvIG9wdGlvbnM6 DQoxKQ0KRW5hYmxlIG11dGV4IGJlZm9yZSBwc3JfZW5hYmxlDQpSZWFkIHN0YXR1cyAoPT0gcmVx dWVzdCBmb3IgbG9jaykNCglhdXhfeGZlcg0KV3JpdGUgc3RhdHVzKD09IHJlbGVhc2UgbG9jaykN CkRpc2FibGUgbXV0ZXggYWZ0ZXIgcHNyX2Rpc2FibGUNCg0KMikNCkZvciBldmVyeSBhdXggdHJh bnNhY3Rpb24uDQpFbmFibGUgbXV0ZXggKFJNVyBpcyBva2F5IGJlY2F1c2UgbXV0ZXggaXMgbm90 IGVuYWJsZWQpDQpSZWFkIHN0YXR1cyAoPT0gcmVxdWVzdCBmb3IgbG9jaykNCglhdXhfeGZlcg0K V3JpdGUgc3RhdHVzKD09ICByZWxlYXNlIGxvY2spDQpEaXNhYmxlIG11dGV4DQoNCkFzIG9mIG5v dywgeW91IGVuZCB1cCB3cml0aW5nIHRvIHRoZSBzdGF0dXMgYml0IGluDQppbnRlbF9kcF9hdXhf Y2hfdHJ5bG9jaygpLCB3aGljaCBsb29rcyB3cm9uZy4NCg0KDQotREsNCg0KDQo+ICt9DQo+ICsN Cj4gIHN0YXRpYyBpbnQNCj4gIGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLA0KPiAgCQljb25zdCB1aW50OF90ICpzZW5kLCBpbnQgc2VuZF9ieXRlcywNCj4gQEAgLTEx MTksNiArMTE1OCwxMSBAQCBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwNCj4gIA0KPiAgCWludGVsX2RwX2NoZWNrX2VkcChpbnRlbF9kcCk7DQo+ICANCj4gKwlpZiAo IWludGVsX2RwX2F1eF9jaF90cnlsb2NrKGludGVsX2RwKSkgew0KPiArCQlyZXQgPSAtRUJVU1k7 DQo+ICsJCWdvdG8gb3V0X2xvY2tlZDsNCj4gKwl9DQo+ICsNCj4gIAkvKiBUcnkgdG8gd2FpdCBm b3IgYW55IHByZXZpb3VzIEFVWCBjaGFubmVsIGFjdGl2aXR5ICovDQo+ICAJZm9yICh0cnkgPSAw OyB0cnkgPCAzOyB0cnkrKykgew0KPiAgCQlzdGF0dXMgPSBJOTE1X1JFQURfTk9UUkFDRShjaF9j dGwpOw0KPiBAQCAtMTI0OCw2ICsxMjkyLDggQEAgaW50ZWxfZHBfYXV4X2NoKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsDQo+ICANCj4gIAlyZXQgPSByZWN2X2J5dGVzOw0KPiAgb3V0Og0KPiAr CWludGVsX2RwX2F1eF9jaF91bmxvY2soaW50ZWxfZHApOw0KPiArb3V0X2xvY2tlZDoNCj4gIAlw bV9xb3NfdXBkYXRlX3JlcXVlc3QoJmRldl9wcml2LT5wbV9xb3MsIFBNX1FPU19ERUZBVUxUX1ZB TFVFKTsNCj4gIA0KPiAgCWlmICh2ZGQpDQo+IEBAIC0xNTA0LDYgKzE1NTAsMjQgQEAgc3RhdGlj IGk5MTVfcmVnX3Qgc2tsX2F1eF9kYXRhX3JlZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBp bnQgaW5kZXgpDQo+ICAJfQ0KPiAgfQ0KPiAgDQo+ICtzdGF0aWMgaTkxNV9yZWdfdCBza2xfYXV4 X211dGV4X3JlZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQ0KPiArew0KPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKSk7DQo+ICsJZW51bSBhdXhfY2ggYXV4X2NoID0gaW50ZWxfZHAtPmF1eF9jaDsNCj4gKw0K PiArCXN3aXRjaCAoYXV4X2NoKSB7DQo+ICsJY2FzZSBBVVhfQ0hfQToNCj4gKwljYXNlIEFVWF9D SF9COg0KPiArCWNhc2UgQVVYX0NIX0M6DQo+ICsJY2FzZSBBVVhfQ0hfRDoNCj4gKwljYXNlIEFV WF9DSF9GOg0KPiArCQlyZXR1cm4gRFBfQVVYX0NIX01VVEVYKGF1eF9jaCk7DQo+ICsJZGVmYXVs dDoNCj4gKwkJTUlTU0lOR19DQVNFKGF1eF9jaCk7DQo+ICsJCXJldHVybiBEUF9BVVhfQ0hfTVVU RVgoQVVYX0NIX0EpOw0KPiArCX0NCj4gK30NCj4gKw0KPiAgc3RhdGljIHZvaWQNCj4gIGludGVs X2RwX2F1eF9maW5pKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApDQo+ICB7DQo+IEBAIC0xNTQ0 LDYgKzE2MDgsOSBAQCBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQ0KPiAgCWVsc2UNCj4gIAkJaW50ZWxfZHAtPmdldF9hdXhfc2VuZF9jdGwgPSBnNHhfZ2V0X2F1 eF9zZW5kX2N0bDsNCj4gIA0KPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpDQo+ICsJ CWludGVsX2RwLT5hdXhfY2hfbXV0ZXhfcmVnID0gc2tsX2F1eF9tdXRleF9yZWc7DQo+ICsNCg0K TW92ZSB0aGlzIHRvIHRoZSBicmFuY2ggd2hlcmUgY29udHJvbCBhbmQgZGF0YSB2ZnVuY3MgYXJl IHNldHVwLg0KDQo+ICAJZHJtX2RwX2F1eF9pbml0KCZpbnRlbF9kcC0+YXV4KTsNCj4gIA0KPiAg CS8qIEZhaWx1cmUgdG8gYWxsb2NhdGUgb3VyIHByZWZlcnJlZCBuYW1lIGlzIG5vdCBjcml0aWNh bCAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiBpbmRleCA4ZjM4ZTU4NGQzNzUuLjI2 N2NjNmM1YTg5ZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gQEAgLTExMjgs NiArMTEyOCw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7DQo+ICANCj4gIAlpOTE1X3JlZ190ICgqYXV4 X2NoX2N0bF9yZWcpKHN0cnVjdCBpbnRlbF9kcCAqZHApOw0KPiAgCWk5MTVfcmVnX3QgKCphdXhf Y2hfZGF0YV9yZWcpKHN0cnVjdCBpbnRlbF9kcCAqZHAsIGludCBpbmRleCk7DQo+ICsJaTkxNV9y ZWdfdCAoKmF1eF9jaF9tdXRleF9yZWcpKHN0cnVjdCBpbnRlbF9kcCAqZHApOw0KPiAgDQo+ICAJ LyogVGhpcyBpcyBjYWxsZWQgYmVmb3JlIGEgbGluayB0cmFpbmluZyBpcyBzdGFydGVyZCAqLw0K PiAgCXZvaWQgKCpwcmVwYXJlX2xpbmtfcmV0cmFpbikoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCk7DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK