From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 4/4] drm/i915/dp: Enable master-slaves in trans port sync mode in correct order Date: Thu, 13 Jun 2019 14:36:26 -0700 Message-ID: <20190613213626.GB10554@intel.com> References: <20190423154901.15222-1-manasi.d.navare@intel.com> <20190423154901.15222-5-manasi.d.navare@intel.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 ESMTPS id 34E6E89317 for ; Thu, 13 Jun 2019 21:34:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190423154901.15222-5-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzIGEgbG90IE1hYXJ0ZW4gZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnRzLgpTb21laG93IG5v bmUgb2YgbXkgZW1haWwtY2xpZW50cyBjYXVnaHQgTWFhcnRlbidzIHJldmlldyBvbiB0aGlzLCBz byBjYXB0dXJpbmcgYW5kCnJlc3BvbmRpbmcgdG8gaGlzIHJldmlldyBjb21tZW50cyBmcm9tIFBh dGNod29yawoKT24gVHVlLCBBcHIgMjMsIDIwMTkgYXQgMDg6NDk6MDFBTSAtMDcwMCwgTWFuYXNp IE5hdmFyZSB3cm90ZToKPiBBcyBwZXIgdGhlIGRpc3BsYXkgZW5hYmxlIHNlcXVlbmNlLCB3ZSBu ZWVkIHRvIGZvbGxvdyB0aGUgZW5hYmxlIHNlcXVlbmNlCj4gZm9yIHNsYXZlcyBmaXJzdCB3aXRo IERQX1RQX0NUTCBzZXQgdG8gSWRsZSBhbmQgY29uZmlndXJlIHRoZSB0cmFuc2NvZGVyCj4gcG9y dCBzeW5jIHJlZ2lzdGVyIHRvIHNlbGVjdCB0aGUgY29yZXJzcG9uZGluZyBtYXN0ZXIsIHRoZW4g Zm9sbG93IHRoZQo+IGVuYWJsZSBzZXF1ZW5jZSBmb3IgbWFzdGVyIGxlYXZpbmcgRFBfVFBfQ1RM IHRvIGlkbGUuCj4gQXQgdGhpcyBwb2ludCB0aGUgdHJhbnNjb2RlciBwb3J0IHN5bmMgbW9kZSBp cyBjb25maWd1cmVkIGFuZCBlbmFibGVkCj4gYW5kIHRoZSBWYmxhbmtzIG9mIGJvdGggcG9ydHMg YXJlIHN5bmNocm9uaXplZCBzbyB0aGVuIHNldCBEUF9UUF9DVEwKPiBmb3IgdGhlIHNsYXZlIGFu ZCBtYXN0ZXIgdG8gTm9ybWFsIGFuZCBkbyBwb3N0IGNydGMgZW5hYmxlIHVwZGF0ZXMuCj4gCj4g Q2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1hYXJ0ZW4gTGFu a2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1hdHQgUm9w ZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5h dmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMgICAgIHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMiBmaWxl cyBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4gaW5kZXggMjRmOTEwNmVmY2M2Li4wYjMyNmIyYzI3NGQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0zMTIwLDcgKzMxMjAsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCQkJCQkgICAgICB0cnVlKTsKPiAgCWludGVsX2RwX3Npbmtfc2V0X2ZlY19yZWFkeShp bnRlbF9kcCwgY3J0Y19zdGF0ZSk7Cj4gIAlpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGludGVs X2RwKTsKPiAtCWlmIChwb3J0ICE9IFBPUlRfQSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp Cj4gKwlpZiAoKHBvcnQgIT0gUE9SVF9BIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgJiYK PiArCSAgICBJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCj4gIAkJaW50ZWxfZHBfc3RvcF9saW5r X3RyYWluKGludGVsX2RwKTsKCltNYWFydGVuJ3MgY29tbWVudF06ICYmICFtYXN0ZXJfY3J0YyBp bnN0ZWFkIG9mIGdlbiBjaGVjaz8gV291bGQgYmUgbW9yZSBjbGVhciB3aGF0IGl0ICdzIGZvciwg YW5kIG9ubHkgY2hhbmdlcyBsaW5rIHRyYWluaW5nIGluIHN5bmMgbW9kZS4KCi0+SXQgaXMgZ2Vu IGJhc2VkIGNoZWNrIGJlY2F1c2Ugd2Ugd2FudCB0byBjYWxsIHRoZSBpbnRlbF9kcF9zdG9wX2xp bmtfdHJhaW4oKSBhcyBpcyBmb3Igb2xkZXIgZ2VucyB3aGVyZWFzIGZvciBHZW4gMTEgaXQgZ2V0 cyBjYWxsZWQKc2VwYXJhdGVseSBpbiBjcnRjX2VuYWJsZSgpIGhvb2sgZm9yIGFsbCBjcnRjcyAo Z2FuZ2VkIGFuZCBub24gZ2FuZ2VkKS4KSXQgd2FzIFZpbGxlJ3MgZmVlZGJhY2sgdGhhdCBpdHMg YmV0dGVyIHRvIGNhbGwgc3RvcF9kcF9saW5rX3RyYWluKCkgaW4gY3J0Y19lbmFibGUoKSBmb3Ig YWxsIGNydGNzLgoKQnV0IG5vdyB0aGF0IEkgcmV0aGluaywgd2Ugc2hvdWxkbnQgY2hhbmdlIHRo ZSBlbmFibGUgc2VxdWVuY2UgZm9yIGNydGNzIG5vdCBpbiBzeW5jIG1vZGUgYW5kIG9ubHkgZG8g dGhpcyBmb3IgY3J0Y3MKaW4gc3luYyBtb2RlLiAKU28gSWYgd2UgaGF2ZSB0byBhdm9pZCBjYWxs aW5nIGl0IG9ubHkgZm9yIHRoZSB0cmFuc19wb3J0X3N5bmMgbW9kZSBhbmQgQ1JUQ3MgaW52b2x2 ZWQgaW4gdGhpcyBtb2RlIHRoZW4gd2Ugd291bGQgbmVlZCB0byBhZGQgYSBjaGVjawomJiAhbWFz dGVyX2NydGMgJiYgIXRyYW5zX3BvcnRfc3luY19zbGF2ZXMKClZpbGxlLCBNYWFydGVuLCBhbnkg dGhvdWdodHM/Cgo+ICAKPiAgCWludGVsX2RkaV9lbmFibGVfZmVjKGVuY29kZXIsIGNydGNfc3Rh dGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA0YmQyM2U2MWM2 ZmQuLmJkMDA1NDlhOWUwMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiBAQCAtMTM0ODgsNiArMTM0ODgsNyBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQlmb3JfZWFjaF9vbGRuZXdfY3J0Y19p bl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7 Cj4gIAkJCWJvb2wgdmJsX3dhaXQgPSBmYWxzZTsKPiAgCQkJdW5zaWduZWQgaW50IGNtYXNrID0g ZHJtX2NydGNfbWFzayhjcnRjKTsKPiArCQkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChu ZXdfY3J0Y19zdGF0ZSk7Cj4gIAo+ICAJCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKPiAgCQkJY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7Cj4g QEAgLTEzNDk2LDYgKzEzNDk3LDEyIEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfY3J0Y3Moc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCQlpZiAodXBkYXRlZCAmIGNtYXNrIHx8 ICFjc3RhdGUtPmJhc2UuYWN0aXZlKQo+ICAJCQkJY29udGludWU7CgpbTWFhcnRlbidzIGNvbW1l bnRdOiBPbmx5IGRvIHRoaXMgZm9yIHN5bmNlZCBjcnRjJ3M/CgotPiBJIHRoaW5rIHRoaXMgZ29l cyBiYWNrIHRvIFZpbGxlJ3Mgc3VnZ2VzdGlvbiBvZiBmb2xsb3dpbmcgdGhpcyBmb3IgYWxsIENS VENzLCBidXQgdGhhdCBtZWFucyB3ZSBkZXZpYXRlCmZyb20gdGggYnNwZWMgc2VxdWVuY2UgZm9y IG5vbiBzeW5jZWQgY3J0Y3MgdG9vLgoKU2hvdWxkIHdlIGRvIHRoc2kgb25seSBmb3Igc3luY2Vk IGNydGNzPyBBZ2FpbiB1c2UgdGhlIGNvbmRpdGlvbiBtYXN0ZXJfY3J0YyB8fCB0cmFuc19wb3J0 X3N5bmNfc2xhdmUgdGhlbiBkbyB0aGlzPwoKPiAgCj4gKwkJCWlmIChtb2Rlc2V0ICYmIElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTEpIHsKPiArCQkJCURSTV9ERUJVR19LTVMoIlB1c2hpbmcgdGhl IFRpbGVkIENSVEMgJWQgJXMgdGhhdCBuZWVkcyB1cGRhdGUgdG8gc2VwYXJhdGUgbG9vcFxuIiwK PiArCQkJCQkgICAgICBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQsIGludGVsX2NydGMtPmJhc2Uu bmFtZSk7Cj4gKwkJCQljb250aW51ZTsKPiArCQkJfQo+ICsKPiAgCQkJaWYgKHNrbF9kZGJfYWxs b2NhdGlvbl9vdmVybGFwcygmY3N0YXRlLT53bS5za2wuZGRiLAo+ICAJCQkJCQkJZW50cmllcywK PiAgCQkJCQkJCUlOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMsIGkpKQo+IEBAIC0xMzUy Niw2ICsxMzUzMywxMjEgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJfQo+ICAJfSB3aGlsZSAocHJvZ3Jlc3MpOwo+ICAK PiArCS8qIFNlcGFyYXRlIGxvb3AgZm9yIHVwZGF0aW5nIFNsYXZlIENSVENzIHRoYXQgbmVlZCBt b2Rlc2V0Lgo+ICsJICogV2UgbmVlZCB0byBsb29wIHRocm91Z2ggYWxsIHNsYXZlcyBvZiB0aWxl ZCBkaXNwbGF5IGZpcnN0IGFuZAo+ICsJICogZm9sbG93IGVuYWJsZSBzZXF1ZW5jZSB3aXRoIERQ X1RQX0NUTCBsZWZ0IElkbGUgdW50aWwgdGhlIG1hc3Rlcgo+ICsJICogaXMgcmVhZHkuCj4gKwkg Ki8KPiArCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0 Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiArCQlib29sIG1vZGVzZXQgPSBuZWVkc19t b2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKPiArCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKPiArCj4gKwkJ aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gKwo+ICsJCWlmICghcGlwZV9jb25m aWctPmJhc2UuYWN0aXZlKQo+ICsJCQljb250aW51ZTsKPiArCQlpZiAoIW1vZGVzZXQpCj4gKwkJ CWNvbnRpbnVlOwo+ICsJCWlmICghcGlwZV9jb25maWctPm1hc3Rlcl9jcnRjKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJdXBkYXRlX3NjYW5saW5lX29mZnNldChwaXBlX2NvbmZpZyk7Cj4gKwkJ ZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19lbmFibGUocGlwZV9jb25maWcsIHN0YXRlKTsKPiArCX0K PiArCS8qIE5vdyBkbyB0aGUgZGlzcGxheSBlbmFibGUgc2VxdWVuY2UgZm9yIG1hc3RlciBDUlRD ICovCj4gKwlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2Ny dGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gKwkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNf bW9kZXNldChuZXdfY3J0Y19zdGF0ZSk7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJ CWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsKPiArCQlpZiAoIXBpcGVfY29u ZmlnLT5iYXNlLmFjdGl2ZSkKPiArCQkJY29udGludWU7Cj4gKwkJaWYgKCFtb2Rlc2V0KQo+ICsJ CQljb250aW51ZTsKPiArCQlpZiAocGlwZV9jb25maWctPm1hc3Rlcl9jcnRjKQo+ICsJCQljb250 aW51ZTsKPiArCj4gKwkJdXBkYXRlX3NjYW5saW5lX29mZnNldChwaXBlX2NvbmZpZyk7Cj4gKwkJ ZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19lbmFibGUocGlwZV9jb25maWcsIHN0YXRlKTsKPiArCX0K PiArCWZvcl9lYWNoX29sZG5ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19z dGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZTsKPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKPiArCQlib29s IG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKPiArCQlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwOwo+ICsKPiArCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKPiArCQljc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKPiAr Cj4gKwkJaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZlKQo+ICsJCQljb250aW51ZTsKPiArCQlpZiAo IW1vZGVzZXQpCj4gKwkJCWNvbnRpbnVlOwo+ICsJCWlmICghY3N0YXRlLT5tYXN0ZXJfY3J0YykK PiArCQkJY29udGludWU7Cj4gKwo+ICsJCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUo c3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKPiArCQkJaWYgKGNvbm5fc3RhdGUtPmNydGMg PT0gY3J0YykKPiArCQkJCWJyZWFrOwo+ICsJCX0KPiArCQlpbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uKS0+YmFzZSk7Cj4gKwkJaW50ZWxfZHBf c3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCX0KCltNYWFydGVuJ3MgY29tbWVudF06IFdo eSBpcyB0aGlzIGEgc2VwYXJhdGUgcGFzcz8KCi0+IFRoaXMgaXMgYSBzZXBhcmF0ZSBwYXNzIGJl Y2F1c2UgZm9yIHRoZSBzeW5jZWQgbW9kZSB3ZSBjYW5ub3QgY2FsbCBzdG9wX2xpbmtfdHJhaW4o KSB3aGljaApzZXRzIERQX1RQX0NUTCB0byBOb3JtYWwgb24gbWFzdGVyIGJlZm9yZSB0aGUgc2xh dmUsIHNvIHdlIGNhbGwgc3RvcF9saW5rX3RyYWluKCkgZm9yIGFsbCBzbGF2ZXMgZmlyc3QKYW5k IHRoZW4gZm9yIHRoZSBtYXN0ZXIuCgo+ICsJZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUo c3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+ICsJCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwo+ICsJCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uOwo+ICsJCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNf c3RhdGUpOwo+ICsJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7Cj4gKwo+ICsJCWludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJCWNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3Rh dGUobmV3X2NydGNfc3RhdGUpOwo+ICsKPiArCQlpZiAoIWNzdGF0ZS0+YmFzZS5hY3RpdmUpCj4g KwkJCWNvbnRpbnVlOwo+ICsJCWlmICghbW9kZXNldCkKPiArCQkJY29udGludWU7Cj4gKwkJaWYg KGNzdGF0ZS0+bWFzdGVyX2NydGMpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQkvKiBXYWl0IGZv ciAyMDB1cyBiZWZvcmUgc2V0dGluZyB0aGUgbWFzdGVyIERQX1RQX1RDTCB0byBOb3JtYWwgKi8K PiArCQl1c2xlZXBfcmFuZ2UoMjAwLCA0MDApOwo+ICsJCWZvcl9lYWNoX25ld19jb25uZWN0b3Jf aW5fc3RhdGUoc3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKPiArCQkJaWYgKGNvbm5fc3Rh dGUtPmNydGMgPT0gY3J0YykKPiArCQkJCWJyZWFrOwo+ICsJCX0KPiArCQlpbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uKS0+YmFzZSk7Cj4gKwkJ aW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCX0KPiArCS8qIE5vdyBkbyB0 aGUgcG9zdCBjcnRjIGVuYWJsZSBmb3IgYWxsIG1hc3RlciBhbmQgc2xhdmVzICovCj4gKwlmb3Jf ZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5l d19jcnRjX3N0YXRlLCBpKSB7Cj4gKwkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdf Y3J0Y19zdGF0ZSk7Cj4gKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3Rh dGU7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0gdG9faW50ZWxf Y3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJCWludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwo+ICsKPiArCQlpZiAoIXBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSkKPiAr CQkJY29udGludWU7Cj4gKwkJaWYgKCFtb2Rlc2V0KQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJ bmV3X3BsYW5lX3N0YXRlID0KPiArCQkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUo dG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKSwKPiArCQkJCQkJCSB0b19pbnRlbF9wbGFuZShj cnRjLT5wcmltYXJ5KSk7Cj4gKwkJaWYgKHBpcGVfY29uZmlnLT51cGRhdGVfcGlwZSAmJiAhcGlw ZV9jb25maWctPmVuYWJsZV9mYmMpCj4gKwkJCWludGVsX2ZiY19kaXNhYmxlKGludGVsX2NydGMp Owo+ICsJCWVsc2UgaWYgKG5ld19wbGFuZV9zdGF0ZSkKPiArCQkJaW50ZWxfZmJjX2VuYWJsZShp bnRlbF9jcnRjLCBwaXBlX2NvbmZpZywgbmV3X3BsYW5lX3N0YXRlKTsKPiArCj4gKwkJaW50ZWxf YmVnaW5fY3J0Y19jb21taXQodG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKSwgaW50ZWxfY3J0 Yyk7Cj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiArCQkJc2tsX3VwZGF0ZV9w bGFuZXNfb25fY3J0Yyh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLCBpbnRlbF9jcnRjKTsK PiArCQllbHNlCj4gKwkJCWk5eHhfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHRvX2ludGVsX2F0b21p Y19zdGF0ZShzdGF0ZSksIGludGVsX2NydGMpOwoKW01hYXJ0ZW4ncyBjb21tZW50c106IFRoaXMg aXMgY2FsbGVkIGZyb20gc2tsX3VwZGF0ZV9jcnRjcywgZG9uJ3QgbmVlZCB0aGUgPGdlbjkgZmFs bGJhY2sgY29kZS4KCi0+IFl1cCwgd2lsbCByZW1vdmUgdGhlIGZhbGxiYWNrIGNvZGUKCj4gKwo+ ICsJCWludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdCh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp LCBpbnRlbF9jcnRjKTsKPiArCX0KPiAgCS8qIElmIDJuZCBEQnVmIHNsaWNlIGlzIG5vIG1vcmUg cmVxdWlyZWQgZGlzYWJsZSBpdCAqLwo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEg JiYgcmVxdWlyZWRfc2xpY2VzIDwgaHdfZW5hYmxlZF9zbGljZXMpCj4gIAkJaWNsX2RidWZfc2xp Y2VzX3VwZGF0ZShkZXZfcHJpdiwgcmVxdWlyZWRfc2xpY2VzKTsKCltNYWFydGVuJ3MgY29tbWVu dF06IEJldHRlciB5ZXQsIG1ha2UgYW4gaWNsX3VwZGF0ZV9jcnRjcyB0aGF0IGhhbmRsZXMgdGhl IHN5bmMgbW9kZSwgYW5kIHJlbW92ZSBhbGwgdGhlIGdlbjExIHN0dWZmIGZyb20gc2tsX3VwZGF0 ZV9jcnRjcy4KCn5NYWFydGVuCgotPiBZZXMgdGhhdCBtYWtlcyBzZW5zZSwgSSB3aWxsIGNyZWF0 ZSBhIG5ldyBob29rIGZvciBpY2xfdXBkYXRlX2NydGNzKCkgYW5kIGFkZCBhbGwgdHJhbnMgcG9y dCBzeW5jIGNvZGUgdGhlcmUgdGhlbiB3ZSBjYW4gZ2V0IHJpZApvZiB0aGUgR0VOIGNoZWNrcy4K Tm93IHRoZSBvbmx5IG9wZW4gaXMgaWYgd2Ugc2hvdWxkIHNwbGl0IGludG8gNCBsb29wcyBmb3Ig YWxsIGNydGNzIHRoYXQgbmVlZCBtb2Rlc2V0IG9yIHNob3VsZCB3ZSBkbyB0aGF0IG9ubHkgZm9y CmNydGNzIGluIHRoZSBzeW5jIG1vZGUuCgpNYW5hc2kKCj4gLS0gCj4gMi4xOS4xCj4gCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==