From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 1/6] drm/i915/display/icl: Save Master transcoder in slave's crtc_state for Transcoder Port Sync Date: Mon, 30 Sep 2019 17:14:15 +0300 Message-ID: <20190930141415.GB1208@intel.com> References: <20190922170807.12436-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id D87A16E44B for ; Mon, 30 Sep 2019 14:14:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190922170807.12436-1-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: Manasi Navare Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gU3VuLCBTZXAgMjIsIDIwMTkgYXQgMTA6MDg6MDJBTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBJbiBjYXNlIG9mIHRpbGVkIGRpc3BsYXlzIHdoZW4gdGhlIHR3byB0aWxlcyBhcmUg c2VudCBhY3Jvc3MgdHdvIENSVENzCj4gb3ZlciB0d28gc2VwYXJhdGUgRFAgU1NUIGNvbm5lY3Rv cnMsIHdlIG5lZWQgYSBtZWNoYW5pc20gdG8gc3luY2hyb25pemUKPiB0aGUgdHdvIENSVENzIGFu ZCB0aGVpciBjb3JyZXNwb25kaW5nIHRyYW5zY29kZXJzLgo+IFNvIHVzZSB0aGUgbWFzdGVyLXNs YXZlIG1vZGUgd2hlcmUgdGhlcmUgaXMgb25lIG1hc3RlciBjb3JyZXNwb25kaW5nCj4gdG8gbGFz dCBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCB0aWxlIHRoYXQgbmVlZHMgdG8gYmUgZ2VubG9ja2Vk IHdpdGgKPiBhbGwgb3RoZXIgc2xhdmUgdGlsZXMuCj4gVGhpcyBwYXRjaCBpZGVudGlmaWVzIHNh dmVzIHRoZSBtYXN0ZXIgdHJhbnNjb2RlciBpbiBhbGwgdGhlIHNsYXZlCj4gQ1JUQyBzdGF0ZXMu IFRoaXMgaXMgbmVlZGVkIHRvIHNlbGVjdCB0aGUgbWFzdGVyIENSVEMvdHJhbnNjb2Rlcgo+IHdo aWxlIGNvbmZpZ3VyaW5nIHRyYW5zY29kZXIgcG9ydCBzeW5jIGZvciB0aGUgY29ycmVzcG9uZGlu ZyBzbGF2ZXMuCj4gCj4gdjQ6Cj4gKiBSZWJhc2UKPiB2MzoKPiAqIFVzZSBtYXN0ZXJfdHJhbXNj b2RlciBpbnN0ZWFkIG9mIG1hc3Rlcl9jcnRjIGZvciB2YWxpZAo+IEhXIHN0YXRlIHJlYWRvdXRz IChWaWxsZSkKPiB2MjoKPiAqIE1vdmUgdGhpcyB0byBpbnRlbF9tb2RlX3NldF9waXBlX2NvbmZp ZyhKYW5pIE4sIFZpbGxlKQo+ICogVXNlIHNsYXZlX2JpdG1hc2sgdG8gc2F2ZSBhc3NvY2lhdGVk IHNsYXZlcyBpbiBtYXN0ZXIgY3J0YyBzdGF0ZSAoVmlsbGUpCj4gCj4gQ2M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5y b3BlckBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQu bmF2YXJlQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgMTIzICsrKysrKysrKysrKysrKysrKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCAgfCAgIDMgKwo+ICAu Li4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDYgKwo+ICAz IGZpbGVzIGNoYW5nZWQsIDEzMiBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBjMDViYTZhZjYyMjYuLjRmZjM3 NWQ1ODUyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jCj4gQEAgLTUyMSw2ICs1MjEsMjQgQEAgbmVlZHNfbW9kZXNldChjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqc3RhdGUpCj4gIAlyZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRz X21vZGVzZXQoJnN0YXRlLT5iYXNlKTsKPiAgfQo+ICAKPiArYm9vbAo+ICtpc190cmFuc19wb3J0 X3N5bmNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCgpSZWR1bmRhbnQg ZnVuY3Rpb24gcGFyYW1ldGVyLiBDYW4gYmUgZGVyaXZlZCBpZiBuZWVkZWQuCgo+ICsJCQljb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqc3RhdGUpCgonY3J0Y19zdGF0ZScKCj4gK3sKPiAr CXJldHVybiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSAmJgoKSSBkb24ndCB0aGluayB3ZSBu ZWVkIGEgZ2VuIGNoZWNrIGF0IGFsbC4gVGhlIHN0YXRlIHNob3VsZCBub3QgaGF2ZQptYXN0ZXIv c2xhdmVzIHNldCBpZiB0aGUgZmVhdHVyZSBpcyBub3Qgc3VwcG9ydGVkLgoKPiArCQkoc3RhdGUt Pm1hc3Rlcl90cmFuc2NvZGVyICE9IElOVkFMSURfVFJBTlNDT0RFUiB8fAo+ICsJCSBzdGF0ZS0+ c3luY19tb2RlX3NsYXZlc19tYXNrKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sCj4gK2lzX3Ry YW5zX3BvcnRfc3luY19tYXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJcmV0 dXJuIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmCj4gKwkJKHN0YXRlLT5tYXN0ZXJfdHJh bnNjb2RlciA9PSBJTlZBTElEX1RSQU5TQ09ERVIgJiYKPiArCQkgc3RhdGUtPnN5bmNfbW9kZV9z bGF2ZXNfbWFzaykpOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBQbGF0Zm9ybSBzcGVjaWZpYyBoZWxw ZXJzIHRvIGNhbGN1bGF0ZSB0aGUgcG9ydCBQTEwgbG9vcGJhY2stIChjbG9jay5tKSwKPiAgICog YW5kIHBvc3QtZGl2aWRlciAoY2xvY2sucCkgdmFsdWVzLCBwcmUtIChjbG9jay52Y28pIGFuZCBw b3N0LWRpdmlkZWQgZmFzdAo+IEBAIC0xMTc3Myw2ICsxMTc5MSw5MSBAQCBzdGF0aWMgYm9vbCBj OF9wbGFuZXNfY2hhbmdlZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGUpCj4gIAlyZXR1cm4gIW9sZF9jcnRjX3N0YXRlLT5jOF9wbGFuZXMgIT0gIW5ld19jcnRj X3N0YXRlLT5jOF9wbGFuZXM7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgaWNsX2FkZF9zeW5jX21v ZGVfY3J0Y3Moc3RydWN0IGRybV9jcnRjICpjcnRjLAoKaW50ZWxfIHR5cGVzIGFsbCBvdmVyIHBs ZWFzZS4KCkFsc28gZG9uJ3QgbmVlZCBhbGwgdGhyZWUgZnVuY2l0b24gYXJndW1lbnRzLiBFaXRo ZXIganVzdApjcnRjX3N0YXRlIG9yIHN0YXRlK2NydGMgd2lsbCBkby4KCj4gKwkJCQkgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkJCSAgIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gKwlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqbWFzdGVyX2Nvbm5lY3RvciwgKmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXIgY29ubl9pdGVyOwo+ICsJc3RydWN0IGRybV9jcnRjICptYXN0ZXJfY3J0YyA9 IE5VTEw7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm1hc3Rlcl9jcnRjX3N0YXRlOwo+ICsJ c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm1hc3Rlcl9waXBlX2NvbmZpZzsKPiArCWludCBpLCB0 aWxlX2dyb3VwX2lkOwo+ICsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCj4gKwkJ cmV0dXJuIDA7Cj4gKwo+ICsJLyoKPiArCSAqIEluIGNhc2Ugb2YgdGlsZWQgZGlzcGxheXMgdGhl cmUgY291bGQgYmUgb25lIG9yIG1vcmUgc2xhdmVzIGJ1dCB0aGVyZSBpcwo+ICsJICogb25seSBv bmUgbWFzdGVyLiBMZXRzIG1ha2UgdGhlIENSVEMgdXNlZCBieSB0aGUgY29ubmVjdG9yIGNvcnJl c3BvbmRpbmcKPiArCSAqIHRvIHRoZSBsYXN0IGhvcml6b25hbCBhbmQgbGFzdCB2ZXJ0aWNhbCB0 aWxlIGEgbWFzdGVyL2dlbmxvY2sgQ1JUQy4KPiArCSAqIEFsbCB0aGUgb3RoZXIgQ1JUQ3MgY29y cmVzcG9uZGluZyB0byBvdGhlciB0aWxlcyBvZiB0aGUgc2FtZSBUaWxlIGdyb3VwCj4gKwkgKiBh cmUgdGhlIHNsYXZlIENSVENzIGFuZCBob2xkIGEgcG9pbnRlciB0byB0aGVpciBnZW5sb2NrIENS VEMuCj4gKwkgKi8KPiArCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNv bm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Cj4gKwkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+ Y3J0YyAhPSBjcnRjKQo+ICsJCQljb250aW51ZTsKPiArCQlpZiAoIWNvbm5lY3Rvci0+aGFzX3Rp bGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsJCWlmIChjcnRjX3N0YXRlLT5iYXNlLm1vZGUuaGRpc3Bs YXkgIT0gY29ubmVjdG9yLT50aWxlX2hfc2l6ZSB8fAo+ICsJCSAgICBjcnRjX3N0YXRlLT5iYXNl Lm1vZGUudmRpc3BsYXkgIT0gY29ubmVjdG9yLT50aWxlX3Zfc2l6ZSkKPiArCQkJcmV0dXJuIDA7 Cj4gKwkJaWYgKGNvbm5lY3Rvci0+dGlsZV9oX2xvYyA9PSBjb25uZWN0b3ItPm51bV9oX3RpbGUg LSAxICYmCj4gKwkJICAgIGNvbm5lY3Rvci0+dGlsZV92X2xvYyA9PSBjb25uZWN0b3ItPm51bV92 X3RpbGUgLSAxKQo+ICsJCQljb250aW51ZTsKPiArCQljcnRjX3N0YXRlLT5zeW5jX21vZGVfc2xh dmVzX21hc2sgPSAwOwo+ICsJCXRpbGVfZ3JvdXBfaWQgPSBjb25uZWN0b3ItPnRpbGVfZ3JvdXAt PmlkOwo+ICsJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKCZkZXZfcHJpdi0+ZHJtLCAm Y29ubl9pdGVyKTsKPiArCQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIobWFzdGVyX2Nvbm5l Y3RvciwgJmNvbm5faXRlcikgewo+ICsJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbWFz dGVyX2Nvbm5fc3RhdGUgPSBOVUxMOwo+ICsKPiArCQkJaWYgKCFtYXN0ZXJfY29ubmVjdG9yLT5o YXNfdGlsZSkKPiArCQkJCWNvbnRpbnVlOwo+ICsJCQlpZiAobWFzdGVyX2Nvbm5lY3Rvci0+dGls ZV9oX2xvYyAhPSBtYXN0ZXJfY29ubmVjdG9yLT5udW1faF90aWxlIC0gMSB8fAo+ICsJCQkgICAg bWFzdGVyX2Nvbm5lY3Rvci0+dGlsZV92X2xvYyAhPSBtYXN0ZXJfY29ubmVjdG9yLT5udW1fdl90 aWxlIC0gMSkKPiArCQkJCWNvbnRpbnVlOwo+ICsJCQlpZiAobWFzdGVyX2Nvbm5lY3Rvci0+dGls ZV9ncm91cC0+aWQgIT0gdGlsZV9ncm91cF9pZCkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJ bWFzdGVyX2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUs Cj4gKwkJCQkJCQkJCSAgIG1hc3Rlcl9jb25uZWN0b3IpOwo+ICsJCQlpZiAoSVNfRVJSKG1hc3Rl cl9jb25uX3N0YXRlKSkgewo+ICsJCQkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25u X2l0ZXIpOwo+ICsJCQkJcmV0dXJuIFBUUl9FUlIobWFzdGVyX2Nvbm5fc3RhdGUpOwo+ICsJCQl9 Cj4gKwkJCWlmIChtYXN0ZXJfY29ubl9zdGF0ZS0+Y3J0Yykgewo+ICsJCQkJbWFzdGVyX2NydGMg PSBtYXN0ZXJfY29ubl9zdGF0ZS0+Y3J0YzsKPiArCQkJCWJyZWFrOwo+ICsJCQl9Cj4gKwkJfQo+ ICsJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsKPiArCj4gKwkJaWYg KCFtYXN0ZXJfY3J0Yykgewo+ICsJCQlEUk1fREVCVUdfS01TKCJDb3VsZCBub3QgZmluZCBNYXN0 ZXIgQ1JUQyBmb3IgU2xhdmUgQ1JUQyAlZFxuIiwKPiArCQkJCSAgICAgIGNvbm5lY3Rvcl9zdGF0 ZS0+Y3J0Yy0+YmFzZS5pZCk7Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCj4gKwkJ bWFzdGVyX2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLAo+ICsJ CQkJCQkJICAgICAgbWFzdGVyX2NydGMpOwo+ICsJCWlmIChJU19FUlIobWFzdGVyX2NydGNfc3Rh dGUpKQo+ICsJCQlyZXR1cm4gUFRSX0VSUihtYXN0ZXJfY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJCW1h c3Rlcl9waXBlX2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUobWFzdGVyX2NydGNfc3RhdGUp Owo+ICsJCWNydGNfc3RhdGUtPm1hc3Rlcl90cmFuc2NvZGVyID0gbWFzdGVyX3BpcGVfY29uZmln LT5jcHVfdHJhbnNjb2RlcjsKPiArCQltYXN0ZXJfcGlwZV9jb25maWctPnN5bmNfbW9kZV9zbGF2 ZXNfbWFzayB8PQo+ICsJCQlCSVQoY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXIpOwo+ICsJCURS TV9ERUJVR19LTVMoIk1hc3RlciBUcmFuc2NvZGVyID0gJXMgYWRkZWQgZm9yIFNsYXZlIENSVEMg PSAlZCwgc2xhdmUgdHJhbnNjb2RlciBiaXRtYXNrID0gJWRcbiIsCj4gKwkJCSAgICAgIHRyYW5z Y29kZXJfbmFtZShjcnRjX3N0YXRlLT5tYXN0ZXJfdHJhbnNjb2RlciksCj4gKwkJCSAgICAgIGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+YmFzZS5pZCwKPiArCQkJICAgICAgbWFzdGVyX3BpcGVfY29u ZmlnLT5zeW5jX21vZGVfc2xhdmVzX21hc2spOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0 YyAqX2NydGMsCj4gIAkJCQkgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKl9jcnRjX3N0YXRlKQo+ ICB7Cj4gQEAgLTEyMjc2LDYgKzEyMzc5LDEyIEBAIGNsZWFyX2ludGVsX2NydGNfc3RhdGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAlpZiAoSVNfRzRYKGRldl9wcml2 KSB8fAo+ICAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+ICAJCXNhdmVkX3N0YXRlLT53bSA9IGNydGNfc3RhdGUtPndtOwo+ICsJLyogU2F2 ZSB0aGUgc2xhdmUgYml0bWFzayB3aGljaCBnZXRzIGZpbGxlZCBmb3IgbWFzdGVyIGNydGMgc3Rh dGUgZHVyaW5nCj4gKwkgKiBzbGF2ZSBhdG9taWMgY2hlY2sgY2FsbC4KPiArCSAqLwoKV3Jvbmcg Y29tbWVudCBmb3JtYXQuCgo+ICsJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tYXN0ZXIoZGV2X3By aXYsIGNydGNfc3RhdGUpKQo+ICsJCXNhdmVkX3N0YXRlLT5zeW5jX21vZGVfc2xhdmVzX21hc2sg PQo+ICsJCQljcnRjX3N0YXRlLT5zeW5jX21vZGVfc2xhdmVzX21hc2s7Cj4gIAo+ICAJLyogS2Vl cCBiYXNlIGRybV9jcnRjX3N0YXRlIGludGFjdCwgb25seSBjbGVhciBvdXIgZXh0ZW5kZWQgc3Ry dWN0ICovCj4gIAlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUs IGJhc2UpKTsKPiBAQCAtMTIzNjksNiArMTI0NzgsMTUgQEAgaW50ZWxfbW9kZXNldF9waXBlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIAlkcm1fbW9kZV9z ZXRfY3J0Y2luZm8oJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUsCj4gIAkJCSAgICAg IENSVENfU1RFUkVPX0RPVUJMRSk7Cj4gIAo+ICsJLyogU2V0IHRoZSBjcnRjX3N0YXRlIGRlZmF1 bHRzIGZvciB0cmFuc19wb3J0X3N5bmMgKi8KPiArCXBpcGVfY29uZmlnLT5tYXN0ZXJfdHJhbnNj b2RlciA9IElOVkFMSURfVFJBTlNDT0RFUjsKPiArCXJldCA9IGljbF9hZGRfc3luY19tb2RlX2Ny dGNzKGNydGMsIHBpcGVfY29uZmlnLCBzdGF0ZSk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0RF QlVHX0tNUygiQ2Fubm90IGFzc2lnbiBTeW5jIE1vZGUgQ1JUQ3M6ICVkXG4iLAo+ICsJCQkgICAg ICByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICAJLyogUGFzcyBvdXIgbW9kZSB0 byB0aGUgY29ubmVjdG9ycyBhbmQgdGhlIENSVEMgdG8gZ2l2ZSB0aGVtIGEgY2hhbmNlIHRvCj4g IAkgKiBhZGp1c3QgaXQgYWNjb3JkaW5nIHRvIGxpbWl0YXRpb25zIG9yIGNvbm5lY3RvciBwcm9w ZXJ0aWVzLCBhbmQgYWxzbwo+ICAJICogYSBjaGFuY2UgdG8gcmVqZWN0IHRoZSBtb2RlIGVudGly ZWx5Lgo+IEBAIC0xMjg4Miw2ICsxMzAwMCwxMSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2NvbmZpZywKPiAgCVBJUEVf Q09ORl9DSEVDS19JTkZPRlJBTUUoaGRtaSk7Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSU5GT0ZSQU1F KGRybSk7Cj4gIAo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKCkp1c3QgZG8g dGhlIGNoZWNrIHVuY29kaXRpb25hbGx5LgoKPiArCQlQSVBFX0NPTkZfQ0hFQ0tfSShzeW5jX21v ZGVfc2xhdmVzX21hc2spOwo+ICsJCVBJUEVfQ09ORl9DSEVDS19JKG1hc3Rlcl90cmFuc2NvZGVy KTsKPiArCX0KPiArCj4gICN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tfWAo+ICAjdW5kZWYgUElQRV9D T05GX0NIRUNLX0kKPiAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19CT09MCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgKPiBpbmRleCBiMWFlMGU1OWM3MTUu LjE2MjNmYWNlNDM2YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5oCj4gQEAgLTkzLDYgKzkzLDcgQEAgZW51bSBwaXBlIHsKPiAgI2RlZmluZSBw aXBlX25hbWUocCkgKChwKSArICdBJykKPiAgCj4gIGVudW0gdHJhbnNjb2RlciB7Cj4gKwlJTlZB TElEX1RSQU5TQ09ERVIgPSAtMSwKPiAgCS8qCj4gIAkgKiBUaGUgZm9sbG93aW5nIHRyYW5zY29k ZXJzIGhhdmUgYSAxOjEgdHJhbnNjb2RlciAtPiBwaXBlIG1hcHBpbmcsCj4gIAkgKiBrZWVwIHRo ZWlyIHZhbHVlcyBmaXhlZDogdGhlIGNvZGUgYXNzdW1lcyB0aGF0IFRSQU5TQ09ERVJfQT0wLCB0 aGUKPiBAQCAtNDUzLDYgKzQ1NCw4IEBAIGVudW0gZHJtX21vZGVfc3RhdHVzCj4gIGludGVsX21v ZGVfdmFsaWRfbWF4X3BsYW5lX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ICBlbnVtIHBo eSBpbnRlbF9wb3J0X3RvX3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51bSBw b3J0IHBvcnQpOwo+ICtib29sIGlzX3RyYW5zX3BvcnRfc3luY19tb2RlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAo+ICsJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpzdGF0ZSk7Cj4gIAo+ICB2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpOwo+ICB2b2lkIGk4MzBfZW5hYmxlX3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiBpbmRleCBkNWNjNGI4MTBkOWUu LjE3ZmYzNGNhMjk4YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gQEAgLTk5MSw2ICs5OTEsMTIgQEAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgewo+ICAKPiAgCS8qIEZvcndhcmQgRXJyb3IgY29ycmVjdGlvbiBTdGF0 ZSAqLwo+ICAJYm9vbCBmZWNfZW5hYmxlOwo+ICsKPiArCS8qIFBvaW50ZXIgdG8gbWFzdGVyIHRy YW5zY29kZXIgaW4gY2FzZSBvZiB0aWxlZCBkaXNwbGF5cyAqLwo+ICsJZW51bSB0cmFuc2NvZGVy IG1hc3Rlcl90cmFuc2NvZGVyOwo+ICsKPiArCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUgc2xhdmVz IGF0dGFjaGVkICovCj4gKwl1OCBzeW5jX21vZGVfc2xhdmVzX21hc2s7Cj4gIH07Cj4gIAo+ICBz dHJ1Y3QgaW50ZWxfY3J0YyB7Cj4gLS0gCj4gMi4xOS4xCgotLSAKVmlsbGUgU3lyasOkbMOkCklu dGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==