From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lysenko, Mykola" Subject: RE: [PATCH 3/5] drm/dp/mst: change MST detection scheme Date: Thu, 18 Feb 2016 04:53:05 +0000 Message-ID: References: <1453500449-9224-1-git-send-email-harry.wentland@amd.com> <1453500449-9224-4-git-send-email-harry.wentland@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0088.outbound.protection.outlook.com [207.46.100.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id A2F376E07A for ; Thu, 18 Feb 2016 05:25:47 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dave Airlie , "Wentland, Harry" Cc: dri-devel List-Id: dri-devel@lists.freedesktop.org SGkgRGF2ZSwNCg0KaXQgc2VlbXMgdG8gYmUgbWlzc2VkIGNhbGwgdG8gDQoNCmRybV9tb2RlX2Nv bm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShwb3J0LT5jb25uZWN0b3IpOw0KDQpoZXJlOg0KDQo+ ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBvcnQtPnBkdCA9PSBEUF9QRUVSX0RFVklDRV9T U1RfU0lOSyB8fA0KPiArICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5wZHQgPT0gRFBfUEVF Ul9ERVZJQ0VfRFBfTEVHQUNZX0NPTlYpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYg KCFwb3J0LT5jYWNoZWRfZWRpZCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBvcnQtPmNhY2hlZF9lZGlkID0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRybV9nZXRfZWRpZChwb3J0LT5jb25uZWN0b3IsICZwb3J0LT5hdXguZGRjKTsNCgkg ICAgICAgICAgICAgICAgICAgICBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHko cG9ydC0+Y29ubmVjdG9yKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQpJIHdpbGwg dGVzdCB3aXRoIHRpbGUgZGlzcGxheSB0byBzZWUgaWYgaXQgc29sdmVzIHRoZSBpc3N1ZS4NCg0K VGhhbmtzLA0KTXlrb2xhDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IERh dmUgQWlybGllIFttYWlsdG86YWlybGllZEBnbWFpbC5jb21dIA0KU2VudDogV2VkbmVzZGF5LCBG ZWJydWFyeSAxNywgMjAxNiAxOjQ2IFBNDQpUbzogV2VudGxhbmQsIEhhcnJ5IDxIYXJyeS5XZW50 bGFuZEBhbWQuY29tPg0KQ2M6IGRyaS1kZXZlbCA8ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZz47IEx5c2Vua28sIE15a29sYSA8TXlrb2xhLkx5c2Vua29AYW1kLmNvbT4NClN1YmplY3Q6 IFJlOiBbUEFUQ0ggMy81XSBkcm0vZHAvbXN0OiBjaGFuZ2UgTVNUIGRldGVjdGlvbiBzY2hlbWUN Cg0KT24gMjMgSmFudWFyeSAyMDE2IGF0IDA4OjA3LCBIYXJyeSBXZW50bGFuZCA8aGFycnkud2Vu dGxhbmRAYW1kLmNvbT4gd3JvdGU6DQo+IEZyb206IE15a29sYSBMeXNlbmtvIDxNeWtvbGEuTHlz ZW5rb0BhbWQuY29tPg0KPg0KPiAxLiBHZXQgZWRpZCBmb3IgYWxsIGNvbm5lY3RlZCBNU1QgZGlz cGxheXMsIG5vdCBvbmx5IG9uIGxvZ2ljYWwgcG9ydHMsDQo+ICAgIGluIHRoZSBzYW1lIHRocmVh ZCBhcyBNU1QgdG9wb2xvZ3kgZGV0ZWN0aW9uIGlzIGRvbmU6DQo+ICAgICAgVGhlcmUgYXJlIGRp c3BsYXlzIHRoYXQgaGF2ZSBicmFuY2hlcyBpbnNpZGUgdy9vIGxvZ2ljYWwgcG9ydHMuDQo+ICAg ICAgU28gaW4gY2FzZSBhbm90aGVyIFNTVCBkaXNwbGF5IGNvbm5lY3RlZCBkb3duc3RyZWFtIHN5 c3RlbSBjYW4NCj4gICAgICBlbmQtdXAgaW4gc2l0dWF0aW9uIHdoZW4gMyBET1dOIHJlcXVlc3Rz IHNlbnQ6IHR3byBmb3INCj4gICAgIOKAmHJlbW90ZSBpMmMgcmVhZOKAmSBhbmQgb25lIGZvciDi gJhlbnVtIHBhdGggcmVzb3VyY2Vz4oCZLCBtYWtpbmcgc2xvdHMgZnVsbC4NCj4NCj4gMi4gQ2Fs bCBub3RpZmljYXRpb24gY2FsbGJhY2sgaW4gb25lIHBsYWNlIGluIHRoZSBlbmQgb2YgdG9wb2xv Z3kgZGlzY292ZXJ5L3VwZGF0ZToNCj4gICAgICBUaGlzIGlzIGRvbmUgdG8gcmVkdWNlIG51bWJl ciBvZiBldmVudHMgc2VudCB0byB1c2Vyc3BhY2UgaW4gY2FzZSBjb21wbGV4DQo+ICAgICAgdG9w b2xvZ3kgZGlzY292ZXJ5IGlzIGdvaW5nLCBhZGRpbmcgbXVsdGlwbGUgbnVtYmVyIG9mIGNvbm5l Y3RvcnM7DQo+DQo+IDMuIFJlbW92ZSBub3RpZmljYXRpb24gY2FsbGJhY2sgY2FsbCBmcm9tIHNo b3J0IHB1bHNlIGludGVycnVwdCBwcm9jZXNzaW5nIGZ1bmN0aW9uOg0KPiAgICAgIFRoaXMgaXMg ZG9uZSBpbiBvcmRlciBub3QgdG8gYmxvY2sgaW50ZXJydXB0IHByb2Nlc3NpbmcgZnVuY3Rpb24s IGluIGNhc2UgYW55DQo+ICAgICAgTVNUIHJlcXVlc3Qgd2lsbCBiZSBtYWRlIGZyb20gaXQuIE5v dGlmaWNhdGlvbiB3aWxsIGJlIHNlbmQgZnJvbSB0b3BvbG9neQ0KPiAgICAgIGRpc2NvdmVyeS91 cGRhdGUgd29yayBpdGVtLg0KDQpJJ3ZlIGhhZCB0byBwdWxsIHRoaXMgb3V0LCBhcyBJIGRpZCBz b21lIG1vcmUgaW5kZXB0aCB0ZXN0aW5nIHdpdGgNCmk5MTUgYW5kIGEgRGVsbCAzMCINCmFuZCB0 aGlzIGJyb2tlIHRoaW5ncy4NCg0KVGhlIG1haW4gdGhpbmcgaXQgYnJva2UgaXMgc2V0dGluZyB0 aGUgdGlsaW5nIHByb3BlcnR5IHRoYXQgdXNlcnNwYWNlDQpuZWVkcyB0byBzZWUNCnRob3NlIGR1 YWwtcGFuZWwgbW9uaXRvcnMgYXMgb25lLg0KDQp5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIHhy YW5kciAtLXByb3BzIGlmIHRoZSB0aWxlIHByb3BlcnR5IGlzDQpjb3JyZWN0IGlmIHlvdSB0ZXN0 Lg0KDQpJJ20gYWxzbyBub3Qgc3VyZSBhYm91dCBzb21lIG90aGVyIGJpdHMgaW4gdGhpcyBwYXRj aCwgc28gSSBwcm9iYWJseSBuZWVkIHRvIGRpZw0KYSBiaXQgZGVlcGVyIGludG8gaXQuDQoNCkRh dmUuDQoNCj4NCj4gU2lnbmVkLW9mZi1ieTogTXlrb2xhIEx5c2Vua28gPE15a29sYS5MeXNlbmtv QGFtZC5jb20+DQo+IFJldmlld2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8SGFycnkuV2VudGxhbmRA YW1kLmNvbT4NCj4gQWNrZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1k LmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwg MzcgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2Vk LCAxOSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX21zdF90b3BvbG9neS5jDQo+IGluZGV4IDA0MTU5N2I3YTdjNi4uMDUyYzIwY2EzNWVlIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jDQo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMNCj4gQEAgLTExMzAsMTMg KzExMzAsMTEgQEAgc3RhdGljIHZvaWQgZHJtX2RwX2FkZF9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0 X2JyYW5jaCAqbXN0YiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2RwX3B1dF9wb3J0 KHBvcnQpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gICAgICAgICAg ICAgICAgIH0NCj4gLSAgICAgICAgICAgICAgIGlmIChwb3J0LT5wb3J0X251bSA+PSBEUF9NU1Rf TE9HSUNBTF9QT1JUXzApIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcG9ydC0+Y2FjaGVk X2VkaWQgPSBkcm1fZ2V0X2VkaWQocG9ydC0+Y29ubmVjdG9yLCAmcG9ydC0+YXV4LmRkYyk7DQo+ IC0gICAgICAgICAgICAgICAgICAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9w ZXJ0eShwb3J0LT5jb25uZWN0b3IpOw0KPiAtICAgICAgICAgICAgICAgfQ0KPiArDQo+ICsgICAg ICAgICAgICAgICBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHkocG9ydC0+Y29u bmVjdG9yKTsNCj4gKw0KPiAgICAgICAgICAgICAgICAgKCptc3RiLT5tZ3ItPmNicy0+cmVnaXN0 ZXJfY29ubmVjdG9yKShwb3J0LT5jb25uZWN0b3IpOw0KPiAgICAgICAgIH0NCj4gLQ0KPiAgb3V0 Og0KPiAgICAgICAgIC8qIHB1dCByZWZlcmVuY2UgdG8gdGhpcyBwb3J0ICovDQo+ICAgICAgICAg ZHJtX2RwX3B1dF9wb3J0KHBvcnQpOw0KPiBAQCAtMTE2MSw5ICsxMTU5LDkgQEAgc3RhdGljIHZv aWQgZHJtX2RwX3VwZGF0ZV9wb3J0KHN0cnVjdCBkcm1fZHBfbXN0X2JyYW5jaCAqbXN0YiwNCj4g ICAgICAgICBwb3J0LT5kZHBzID0gY29ubl9zdGF0LT5kaXNwbGF5cG9ydF9kZXZpY2VfcGx1Z19z dGF0dXM7DQo+DQo+ICAgICAgICAgaWYgKG9sZF9kZHBzICE9IHBvcnQtPmRkcHMpIHsNCj4gKyAg ICAgICAgICAgICAgIGRvd29yayA9IHRydWU7DQo+ICAgICAgICAgICAgICAgICBpZiAocG9ydC0+ ZGRwcykgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fZHBfY2hlY2tfcG9ydF9ndWlk KG1zdGIsIHBvcnQpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICBkb3dvcmsgPSB0cnVlOw0K PiAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgcG9y dC0+Z3VpZF92YWxpZCA9IGZhbHNlOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5h dmFpbGFibGVfcGJuID0gMDsNCj4gQEAgLTEyNzEsOCArMTI2OSwxMyBAQCBzdGF0aWMgdm9pZCBk cm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19hZGRyZXNzKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9s b2d5X21nciAqbQ0KPiAgICAgICAgICAgICAgICAgaWYgKHBvcnQtPmlucHV0KQ0KPiAgICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4NCj4gLSAgICAgICAgICAgICAgIGlmICghcG9y dC0+ZGRwcykNCj4gKyAgICAgICAgICAgICAgIGlmICghcG9ydC0+ZGRwcykgew0KPiArICAgICAg ICAgICAgICAgICAgICAgICBpZiAocG9ydC0+Y2FjaGVkX2VkaWQpIHsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZnJlZShwb3J0LT5jYWNoZWRfZWRpZCk7DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC0+Y2FjaGVkX2VkaWQgPSBOVUxMOw0KPiArICAg ICAgICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl Ow0KPiArICAgICAgICAgICAgICAgfQ0KPg0KPiAgICAgICAgICAgICAgICAgaWYgKCFwb3J0LT5h dmFpbGFibGVfcGJuKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fZHBfc2VuZF9lbnVt X3BhdGhfcmVzb3VyY2VzKG1nciwgbXN0YiwgcG9ydCk7DQo+IEBAIC0xMjgzLDYgKzEyODYsMTIg QEAgc3RhdGljIHZvaWQgZHJtX2RwX2NoZWNrX2FuZF9zZW5kX2xpbmtfYWRkcmVzcyhzdHJ1Y3Qg ZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm0NCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkcm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19hZGRyZXNzKG1nciwgbXN0Yl9jaGlsZCk7 DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2RwX3B1dF9tc3RfYnJhbmNo X2RldmljZShtc3RiX2NoaWxkKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiArICAg ICAgICAgICAgICAgfSBlbHNlIGlmIChwb3J0LT5wZHQgPT0gRFBfUEVFUl9ERVZJQ0VfU1NUX1NJ TksgfHwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcG9ydC0+cGR0ID09IERQX1BFRVJfREVW SUNFX0RQX0xFR0FDWV9DT05WKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICghcG9y dC0+Y2FjaGVkX2VkaWQpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0 LT5jYWNoZWRfZWRpZCA9DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkcm1fZ2V0X2VkaWQocG9ydC0+Y29ubmVjdG9yLCAmcG9ydC0+YXV4LmRkYyk7DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIH0NCj4gICAgICAgICAgICAgICAgIH0NCj4gICAgICAgICB9DQo+ ICB9DQo+IEBAIC0xMzAyLDYgKzEzMTEsOCBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfbXN0X2xpbmtf cHJvYmVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICAgICAgICAgICAgICAgICBk cm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19hZGRyZXNzKG1nciwgbXN0Yik7DQo+ICAgICAgICAg ICAgICAgICBkcm1fZHBfcHV0X21zdF9icmFuY2hfZGV2aWNlKG1zdGIpOw0KPiAgICAgICAgIH0N Cj4gKw0KPiArICAgICAgICgqbWdyLT5jYnMtPmhvdHBsdWcpKG1ncik7DQo+ICB9DQo+DQo+ICBz dGF0aWMgYm9vbCBkcm1fZHBfdmFsaWRhdGVfZ3VpZChzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9n eV9tZ3IgKm1nciwNCj4gQEAgLTE1NTgsNyArMTU2OSw2IEBAIHN0YXRpYyB2b2lkIGRybV9kcF9z ZW5kX2xpbmtfYWRkcmVzcyhzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHR4bXNnLT5yZXBseS51Lmxp bmtfYWRkci5ucG9ydHM7IGkrKykgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRybV9kcF9hZGRfcG9ydChtc3RiLCBtZ3ItPmRldiwgJnR4bXNnLT5yZXBseS51LmxpbmtfYWRk ci5wb3J0c1tpXSk7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gLSAgICAgICAgICAg ICAgICAgICAgICAgKCptZ3ItPmNicy0+aG90cGx1ZykobWdyKTsNCj4gICAgICAgICAgICAgICAg IH0NCj4gICAgICAgICB9IGVsc2Ugew0KPiAgICAgICAgICAgICAgICAgbXN0Yi0+bGlua19hZGRy ZXNzX3NlbnQgPSBmYWxzZTsNCj4gQEAgLTIyMzIsOCArMjI0Miw2IEBAIHN0YXRpYyBpbnQgZHJt X2RwX21zdF9oYW5kbGVfdXBfcmVxKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy KQ0KPg0KPiAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fZHBfdXBkYXRlX3BvcnQobXN0Yiwg Jm1zZy51LmNvbm5fc3RhdCk7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9ERUJVR19L TVMoIkdvdCBDU046IHBuOiAlZCBsZHBzOiVkIGRkcHM6ICVkIG1jczogJWQgaXA6ICVkIHBkdDog JWRcbiIsIG1zZy51LmNvbm5fc3RhdC5wb3J0X251bWJlciwgbXNnLnUuY29ubl9zdGF0LmxlZ2Fj eV9kZXZpY2VfcGx1Z19zdGF0dXMsIG1zZy51LmNvbm5fc3RhdC5kaXNwbGF5cG9ydF9kZXZpY2Vf cGx1Z19zdGF0dXMsIG1zZy51LmNvbm5fc3RhdC5tZXNzYWdlX2NhcGFiaWxpdHlfc3RhdHVzLCBt c2cudS5jb25uX3N0YXQuaW5wdXRfcG9ydCwgbXNnLnUuY29ubl9zdGF0LnBlZXJfZGV2aWNlX3R5 cGUpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAoKm1nci0+Y2JzLT5ob3RwbHVnKShtZ3Ip Ow0KPiAtDQo+ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zZy5yZXFfdHlwZSA9PSBEUF9S RVNPVVJDRV9TVEFUVVNfTk9USUZZKSB7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9k cF9zZW5kX3VwX2Fja19yZXBseShtZ3IsIG1nci0+bXN0X3ByaW1hcnksIG1zZy5yZXFfdHlwZSwg c2Vxbm8sIGZhbHNlKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtc3RiKQ0KPiBA QCAtMjMyMCwxMCArMjMyOCw2IEBAIGVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgZHJtX2RwX21z dF9kZXRlY3RfcG9ydChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yDQo+DQo+ICAgICAg ICAgY2FzZSBEUF9QRUVSX0RFVklDRV9TU1RfU0lOSzoNCj4gICAgICAgICAgICAgICAgIHN0YXR1 cyA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOw0KPiAtICAgICAgICAgICAgICAgLyogZm9y IGxvZ2ljYWwgcG9ydHMgLSBjYWNoZSB0aGUgRURJRCAqLw0KPiAtICAgICAgICAgICAgICAgaWYg KHBvcnQtPnBvcnRfbnVtID49IDggJiYgIXBvcnQtPmNhY2hlZF9lZGlkKSB7DQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIHBvcnQtPmNhY2hlZF9lZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3Rv ciwgJnBvcnQtPmF1eC5kZGMpOw0KPiAtICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAg ICAgYnJlYWs7DQo+ICAgICAgICAgY2FzZSBEUF9QRUVSX0RFVklDRV9EUF9MRUdBQ1lfQ09OVjoN Cj4gICAgICAgICAgICAgICAgIGlmIChwb3J0LT5sZHBzKQ0KPiBAQCAtMjM3OCwxMCArMjM4Miw3 IEBAIHN0cnVjdCBlZGlkICpkcm1fZHBfbXN0X2dldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsIHN0cnVjdCBkcm1fZHBfDQo+DQo+ICAgICAgICAgaWYgKHBvcnQtPmNhY2hl ZF9lZGlkKQ0KPiAgICAgICAgICAgICAgICAgZWRpZCA9IGRybV9lZGlkX2R1cGxpY2F0ZShwb3J0 LT5jYWNoZWRfZWRpZCk7DQo+IC0gICAgICAgZWxzZSB7DQo+IC0gICAgICAgICAgICAgICBlZGlk ID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgJnBvcnQtPmF1eC5kZGMpOw0KPiAtICAgICAgICAg ICAgICAgZHJtX21vZGVfY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KGNvbm5lY3Rvcik7DQo+ IC0gICAgICAgfQ0KPiArDQo+ICAgICAgICAgcG9ydC0+aGFzX2F1ZGlvID0gZHJtX2RldGVjdF9t b25pdG9yX2F1ZGlvKGVkaWQpOw0KPiAgICAgICAgIGRybV9kcF9wdXRfcG9ydChwb3J0KTsNCj4g ICAgICAgICByZXR1cm4gZWRpZDsNCj4gLS0NCj4gMi4xLjQNCj4NCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZHJpLWRldmVsIG1haWxpbmcgbGlz dA0KPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IGh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwNCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=