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: Wed, 9 Oct 2019 21:01:42 +0300 Message-ID: <20191009180142.GC1208@intel.com> References: <20190922170807.12436-1-manasi.d.navare@intel.com> <20190930141415.GB1208@intel.com> <20191007034331.GE20745@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D35A6EA2C for ; Wed, 9 Oct 2019 18:01:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191007034331.GE20745@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 T24gU3VuLCBPY3QgMDYsIDIwMTkgYXQgMDg6NDM6MzFQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBNb24sIFNlcCAzMCwgMjAxOSBhdCAwNToxNDoxNVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBTdW4sIFNlcCAyMiwgMjAxOSBhdCAxMDowODowMkFNIC0w NzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPiBJbiBjYXNlIG9mIHRpbGVkIGRpc3BsYXlz IHdoZW4gdGhlIHR3byB0aWxlcyBhcmUgc2VudCBhY3Jvc3MgdHdvIENSVENzCj4gPiA+IG92ZXIg dHdvIHNlcGFyYXRlIERQIFNTVCBjb25uZWN0b3JzLCB3ZSBuZWVkIGEgbWVjaGFuaXNtIHRvIHN5 bmNocm9uaXplCj4gPiA+IHRoZSB0d28gQ1JUQ3MgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdHJh bnNjb2RlcnMuCj4gPiA+IFNvIHVzZSB0aGUgbWFzdGVyLXNsYXZlIG1vZGUgd2hlcmUgdGhlcmUg aXMgb25lIG1hc3RlciBjb3JyZXNwb25kaW5nCj4gPiA+IHRvIGxhc3QgaG9yaXpvbnRhbCBhbmQg dmVydGljYWwgdGlsZSB0aGF0IG5lZWRzIHRvIGJlIGdlbmxvY2tlZCB3aXRoCj4gPiA+IGFsbCBv dGhlciBzbGF2ZSB0aWxlcy4KPiA+ID4gVGhpcyBwYXRjaCBpZGVudGlmaWVzIHNhdmVzIHRoZSBt YXN0ZXIgdHJhbnNjb2RlciBpbiBhbGwgdGhlIHNsYXZlCj4gPiA+IENSVEMgc3RhdGVzLiBUaGlz IGlzIG5lZWRlZCB0byBzZWxlY3QgdGhlIG1hc3RlciBDUlRDL3RyYW5zY29kZXIKPiA+ID4gd2hp bGUgY29uZmlndXJpbmcgdHJhbnNjb2RlciBwb3J0IHN5bmMgZm9yIHRoZSBjb3JyZXNwb25kaW5n IHNsYXZlcy4KPiA+ID4gCj4gPiA+IHY0Ogo+ID4gPiAqIFJlYmFzZQo+ID4gPiB2MzoKPiA+ID4g KiBVc2UgbWFzdGVyX3RyYW1zY29kZXIgaW5zdGVhZCBvZiBtYXN0ZXJfY3J0YyBmb3IgdmFsaWQK PiA+ID4gSFcgc3RhdGUgcmVhZG91dHMgKFZpbGxlKQo+ID4gPiB2MjoKPiA+ID4gKiBNb3ZlIHRo aXMgdG8gaW50ZWxfbW9kZV9zZXRfcGlwZV9jb25maWcoSmFuaSBOLCBWaWxsZSkKPiA+ID4gKiBV c2Ugc2xhdmVfYml0bWFzayB0byBzYXZlIGFzc29jaWF0ZWQgc2xhdmVzIGluIG1hc3RlciBjcnRj IHN0YXRlIChWaWxsZSkKPiA+ID4gCj4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgo+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmto b3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9w ZXJAaW50ZWwuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2ku ZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gPiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAxMjMgKysrKysrKysr KysrKysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuaCAgfCAgIDMgKwo+ID4gPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90 eXBlcy5oICAgIHwgICA2ICsKPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMo KykKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jCj4gPiA+IGluZGV4IGMwNWJhNmFmNjIyNi4uNGZmMzc1ZDU4NTJkIDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4g PiBAQCAtNTIxLDYgKzUyMSwyNCBAQCBuZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpzdGF0ZSkKPiA+ID4gIAlyZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJnN0YXRlLT5iYXNlKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiArYm9vbAo+ID4gPiAr aXNfdHJhbnNfcG9ydF9zeW5jX21vZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gCj4gPiBSZWR1bmRhbnQgZnVuY3Rpb24gcGFyYW1ldGVyLiBDYW4gYmUgZGVyaXZlZCBp ZiBuZWVkZWQuCj4gCj4gT2sKPiAKPiA+IAo+ID4gPiArCQkJY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnN0YXRlKQo+ID4gCj4gPiAnY3J0Y19zdGF0ZScKPiAKPiBPawo+IAo+IAo+ID4g Cj4gPiA+ICt7Cj4gPiA+ICsJcmV0dXJuIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmCj4g PiAKPiA+IEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCBhIGdlbiBjaGVjayBhdCBhbGwuIFRoZSBzdGF0 ZSBzaG91bGQgbm90IGhhdmUKPiA+IG1hc3Rlci9zbGF2ZXMgc2V0IGlmIHRoZSBmZWF0dXJlIGlz IG5vdCBzdXBwb3J0ZWQuCj4gCj4gT2sgd2lsbCByZW1vdmUgdGhpcyBoZXJlIGFuZCBmb3IgbWFz dGVyIGFzIHdlbGwKPiAKPiA+IAo+ID4gPiArCQkoc3RhdGUtPm1hc3Rlcl90cmFuc2NvZGVyICE9 IElOVkFMSURfVFJBTlNDT0RFUiB8fAo+ID4gPiArCQkgc3RhdGUtPnN5bmNfbW9kZV9zbGF2ZXNf bWFzaykpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgYm9vbAo+ID4gPiAraXNfdHJh bnNfcG9ydF9zeW5jX21hc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g PiA+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKPiA+ID4gK3sK PiA+ID4gKwlyZXR1cm4gKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYKPiA+ID4gKwkJKHN0 YXRlLT5tYXN0ZXJfdHJhbnNjb2RlciA9PSBJTlZBTElEX1RSQU5TQ09ERVIgJiYKPiA+ID4gKwkJ IHN0YXRlLT5zeW5jX21vZGVfc2xhdmVzX21hc2spKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAg LyoKPiA+ID4gICAqIFBsYXRmb3JtIHNwZWNpZmljIGhlbHBlcnMgdG8gY2FsY3VsYXRlIHRoZSBw b3J0IFBMTCBsb29wYmFjay0gKGNsb2NrLm0pLAo+ID4gPiAgICogYW5kIHBvc3QtZGl2aWRlciAo Y2xvY2sucCkgdmFsdWVzLCBwcmUtIChjbG9jay52Y28pIGFuZCBwb3N0LWRpdmlkZWQgZmFzdAo+ ID4gPiBAQCAtMTE3NzMsNiArMTE3OTEsOTEgQEAgc3RhdGljIGJvb2wgYzhfcGxhbmVzX2NoYW5n ZWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+ID4gPiAg CXJldHVybiAhb2xkX2NydGNfc3RhdGUtPmM4X3BsYW5lcyAhPSAhbmV3X2NydGNfc3RhdGUtPmM4 X3BsYW5lczsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiArc3RhdGljIGludCBpY2xfYWRkX3N5bmNf bW9kZV9jcnRjcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAKPiA+IGludGVsXyB0eXBlcyBh bGwgb3ZlciBwbGVhc2UuCj4gCj4gWWVzIGkgdGhpbmsgdGhpcyBwYXRjaCB3YXMgd3JpdHRlbiB3 ZSBjaGFuZ2VkIGV2ZXJ5dGhpbmcgdG8gaW50ZWxfIHN0YXRlcywgd2lsbCBjaGFuZ2UgaXQgYWxs Cj4gdG8gaW50ZWwgc3RhdGVzCj4gCj4gQnV0IGRvIHdlIHN0bGwga2VlcCBkcm1fYXRvbWljX3N0 YXRlIG9yIGNoYW5nZSB0aGF0IHRvIGludGVsX2F0b21pY19zdGF0ZSBhcyB3ZWxsPwo+IAo+ID4g Cj4gPiBBbHNvIGRvbid0IG5lZWQgYWxsIHRocmVlIGZ1bmNpdG9uIGFyZ3VtZW50cy4gRWl0aGVy IGp1c3QKPiA+IGNydGNfc3RhdGUgb3Igc3RhdGUrY3J0YyB3aWxsIGRvLgo+IAo+IEhtbSwgYnV0 IEkgZG8gbmVlZCB0aGUgYXRvbWljX3N0YXRlLCBjcnRjX3N0YXRlIGFuZCBhbHNvIHRoZSBjcnRj IGluIHRoZSBtb2Rlc2V0CgpPbmUgY2FuIGFsd2F5cyBkZXJpdmUgdGhlIG90aGVycy4KCk9wdGlv biAxOgpmb28oY3J0Y19zdGF0ZSkKewoJY3J0YyA9IGNydGNfc3RhdGUtPmNydGM7CglzdGF0ZSA9 IGNydGNfc3RhdGUtPnN0YXRlOwoJLi4uCn0KCk9wdGlvbiAyOgpmb28oc3RhdGUsIGNydGMpCnsK CWNydGNfc3RhdGUgPSBnZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CgkuLi4KfQoKSU1PIGxp ZmUgaXMgbW9yZSBwbGVhc2FudCB3aGVuIHlvdSBkb24ndCBoYXZlIHRvIHRoaW5rIGFib3V0CmV2 ZXJ5IGZ1bmN0aW9uIG5lZWRpbmcgdG8gYmUgcGFzc2VkIGEgZGlmZmVyZW50IHNldCBvZiByZWR1 bmRhbnQKaW5mb3JtYXRpb24uCgo+IAo+IAo+ID4gCj4gPiA+ICsJCQkJICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+ICsJCQkJICAgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwo+ID4gPiArCXN0 cnVjdCBkcm1fY29ubmVjdG9yICptYXN0ZXJfY29ubmVjdG9yLCAqY29ubmVjdG9yOwo+ID4gPiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Cj4gPiA+ICsJc3Ry dWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiA+ID4gKwlzdHJ1Y3QgZHJt X2NydGMgKm1hc3Rlcl9jcnRjID0gTlVMTDsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg Km1hc3Rlcl9jcnRjX3N0YXRlOwo+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICptYXN0 ZXJfcGlwZV9jb25maWc7Cj4gPiA+ICsJaW50IGksIHRpbGVfZ3JvdXBfaWQ7Cj4gPiA+ICsKPiA+ ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQo+ID4gPiArCQlyZXR1cm4gMDsKPiA+ ID4gKwo+ID4gPiArCS8qCj4gPiA+ICsJICogSW4gY2FzZSBvZiB0aWxlZCBkaXNwbGF5cyB0aGVy ZSBjb3VsZCBiZSBvbmUgb3IgbW9yZSBzbGF2ZXMgYnV0IHRoZXJlIGlzCj4gPiA+ICsJICogb25s eSBvbmUgbWFzdGVyLiBMZXRzIG1ha2UgdGhlIENSVEMgdXNlZCBieSB0aGUgY29ubmVjdG9yIGNv cnJlc3BvbmRpbmcKPiA+ID4gKwkgKiB0byB0aGUgbGFzdCBob3Jpem9uYWwgYW5kIGxhc3QgdmVy dGljYWwgdGlsZSBhIG1hc3Rlci9nZW5sb2NrIENSVEMuCj4gPiA+ICsJICogQWxsIHRoZSBvdGhl ciBDUlRDcyBjb3JyZXNwb25kaW5nIHRvIG90aGVyIHRpbGVzIG9mIHRoZSBzYW1lIFRpbGUgZ3Jv dXAKPiA+ID4gKwkgKiBhcmUgdGhlIHNsYXZlIENSVENzIGFuZCBob2xkIGEgcG9pbnRlciB0byB0 aGVpciBnZW5sb2NrIENSVEMuCj4gPiA+ICsJICovCj4gPiA+ICsJZm9yX2VhY2hfbmV3X2Nvbm5l Y3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiA+ ID4gKwkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjKQo+ID4gPiArCQkJY29udGlu dWU7Cj4gPiA+ICsJCWlmICghY29ubmVjdG9yLT5oYXNfdGlsZSkKPiA+ID4gKwkJCWNvbnRpbnVl Owo+ID4gPiArCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLmhkaXNwbGF5ICE9IGNvbm5lY3Rv ci0+dGlsZV9oX3NpemUgfHwKPiA+ID4gKwkJICAgIGNydGNfc3RhdGUtPmJhc2UubW9kZS52ZGlz cGxheSAhPSBjb25uZWN0b3ItPnRpbGVfdl9zaXplKQo+ID4gPiArCQkJcmV0dXJuIDA7Cj4gPiA+ ICsJCWlmIChjb25uZWN0b3ItPnRpbGVfaF9sb2MgPT0gY29ubmVjdG9yLT5udW1faF90aWxlIC0g MSAmJgo+ID4gPiArCQkgICAgY29ubmVjdG9yLT50aWxlX3ZfbG9jID09IGNvbm5lY3Rvci0+bnVt X3ZfdGlsZSAtIDEpCj4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gKwkJY3J0Y19zdGF0ZS0+c3lu Y19tb2RlX3NsYXZlc19tYXNrID0gMDsKPiA+ID4gKwkJdGlsZV9ncm91cF9pZCA9IGNvbm5lY3Rv ci0+dGlsZV9ncm91cC0+aWQ7Cj4gPiA+ICsJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2lu KCZkZXZfcHJpdi0+ZHJtLCAmY29ubl9pdGVyKTsKPiA+ID4gKwkJZHJtX2Zvcl9lYWNoX2Nvbm5l Y3Rvcl9pdGVyKG1hc3Rlcl9jb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiA+ID4gKwkJCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICptYXN0ZXJfY29ubl9zdGF0ZSA9IE5VTEw7Cj4gPiA+ICsK PiA+ID4gKwkJCWlmICghbWFzdGVyX2Nvbm5lY3Rvci0+aGFzX3RpbGUpCj4gPiA+ICsJCQkJY29u dGludWU7Cj4gPiA+ICsJCQlpZiAobWFzdGVyX2Nvbm5lY3Rvci0+dGlsZV9oX2xvYyAhPSBtYXN0 ZXJfY29ubmVjdG9yLT5udW1faF90aWxlIC0gMSB8fAo+ID4gPiArCQkJICAgIG1hc3Rlcl9jb25u ZWN0b3ItPnRpbGVfdl9sb2MgIT0gbWFzdGVyX2Nvbm5lY3Rvci0+bnVtX3ZfdGlsZSAtIDEpCj4g PiA+ICsJCQkJY29udGludWU7Cj4gPiA+ICsJCQlpZiAobWFzdGVyX2Nvbm5lY3Rvci0+dGlsZV9n cm91cC0+aWQgIT0gdGlsZV9ncm91cF9pZCkKPiA+ID4gKwkJCQljb250aW51ZTsKPiA+ID4gKwo+ ID4gPiArCQkJbWFzdGVyX2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3Rh dGUoc3RhdGUsCj4gPiA+ICsJCQkJCQkJCQkgICBtYXN0ZXJfY29ubmVjdG9yKTsKPiA+ID4gKwkJ CWlmIChJU19FUlIobWFzdGVyX2Nvbm5fc3RhdGUpKSB7Cj4gPiA+ICsJCQkJZHJtX2Nvbm5lY3Rv cl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwo+ID4gPiArCQkJCXJldHVybiBQVFJfRVJSKG1h c3Rlcl9jb25uX3N0YXRlKTsKPiA+ID4gKwkJCX0KPiA+ID4gKwkJCWlmIChtYXN0ZXJfY29ubl9z dGF0ZS0+Y3J0Yykgewo+ID4gPiArCQkJCW1hc3Rlcl9jcnRjID0gbWFzdGVyX2Nvbm5fc3RhdGUt PmNydGM7Cj4gPiA+ICsJCQkJYnJlYWs7Cj4gPiA+ICsJCQl9Cj4gPiA+ICsJCX0KPiA+ID4gKwkJ ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwo+ID4gPiArCj4gPiA+ICsJ CWlmICghbWFzdGVyX2NydGMpIHsKPiA+ID4gKwkJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBm aW5kIE1hc3RlciBDUlRDIGZvciBTbGF2ZSBDUlRDICVkXG4iLAo+ID4gPiArCQkJCSAgICAgIGNv bm5lY3Rvcl9zdGF0ZS0+Y3J0Yy0+YmFzZS5pZCk7Cj4gPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsK PiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ICsJCW1hc3Rlcl9jcnRjX3N0YXRlID0gZHJtX2F0b21p Y19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwKPiA+ID4gKwkJCQkJCQkgICAgICBtYXN0ZXJfY3J0Yyk7 Cj4gPiA+ICsJCWlmIChJU19FUlIobWFzdGVyX2NydGNfc3RhdGUpKQo+ID4gPiArCQkJcmV0dXJu IFBUUl9FUlIobWFzdGVyX2NydGNfc3RhdGUpOwo+ID4gPiArCj4gPiA+ICsJCW1hc3Rlcl9waXBl X2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUobWFzdGVyX2NydGNfc3RhdGUpOwo+ID4gPiAr CQljcnRjX3N0YXRlLT5tYXN0ZXJfdHJhbnNjb2RlciA9IG1hc3Rlcl9waXBlX2NvbmZpZy0+Y3B1 X3RyYW5zY29kZXI7Cj4gPiA+ICsJCW1hc3Rlcl9waXBlX2NvbmZpZy0+c3luY19tb2RlX3NsYXZl c19tYXNrIHw9Cj4gPiA+ICsJCQlCSVQoY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXIpOwo+ID4g PiArCQlEUk1fREVCVUdfS01TKCJNYXN0ZXIgVHJhbnNjb2RlciA9ICVzIGFkZGVkIGZvciBTbGF2 ZSBDUlRDID0gJWQsIHNsYXZlIHRyYW5zY29kZXIgYml0bWFzayA9ICVkXG4iLAo+ID4gPiArCQkJ ICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNydGNfc3RhdGUtPm1hc3Rlcl90cmFuc2NvZGVyKSwKPiA+ ID4gKwkJCSAgICAgIGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+YmFzZS5pZCwKPiA+ID4gKwkJCSAg ICAgIG1hc3Rlcl9waXBlX2NvbmZpZy0+c3luY19tb2RlX3NsYXZlc19tYXNrKTsKPiA+ID4gKwl9 Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGlj IGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKl9jcnRjLAo+ID4g PiAgCQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqX2NydGNfc3RhdGUpCj4gPiA+ICB7Cj4g PiA+IEBAIC0xMjI3Niw2ICsxMjM3OSwxMiBAQCBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiAgCWlmIChJU19HNFgoZGV2X3By aXYpIHx8Cj4gPiA+ICAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKQo+ID4gPiAgCQlzYXZlZF9zdGF0ZS0+d20gPSBjcnRjX3N0YXRlLT53bTsK PiA+ID4gKwkvKiBTYXZlIHRoZSBzbGF2ZSBiaXRtYXNrIHdoaWNoIGdldHMgZmlsbGVkIGZvciBt YXN0ZXIgY3J0YyBzdGF0ZSBkdXJpbmcKPiA+ID4gKwkgKiBzbGF2ZSBhdG9taWMgY2hlY2sgY2Fs bC4KPiA+ID4gKwkgKi8KPiA+IAo+ID4gV3JvbmcgY29tbWVudCBmb3JtYXQuCj4gCj4gV2hhdCBp cyB3cm9uZyB3aXRoIHRoZSBmb3JtYXQ/CgpTaG91bGQgbG9vayBsaWtlOgoKLyoKICogZm9vCiAq IGJhcgogKi8KCm5vdCAKCi8qIGZvbwogKiBiYXIKICovCgpIbW0uIExvb2tzIGxpa2UgY2hlY2tw YXRjaCBkb2Vzbid0IGNvbXBsYWluIGFib3V0IHRoYXQgYW55bW9yZSwKc28gbWF5YmUgc29tZSBw ZW9wbGUgaGF2ZSBmaW5hbGx5IGNvbWUgdG8gYWNjZXB0IGVpdGhlciBmb3JtYXQuCgo+IAo+ID4g Cj4gPiA+ICsJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tYXN0ZXIoZGV2X3ByaXYsIGNydGNfc3Rh dGUpKQo+ID4gPiArCQlzYXZlZF9zdGF0ZS0+c3luY19tb2RlX3NsYXZlc19tYXNrID0KPiA+ID4g KwkJCWNydGNfc3RhdGUtPnN5bmNfbW9kZV9zbGF2ZXNfbWFzazsKPiA+ID4gIAo+ID4gPiAgCS8q IEtlZXAgYmFzZSBkcm1fY3J0Y19zdGF0ZSBpbnRhY3QsIG9ubHkgY2xlYXIgb3VyIGV4dGVuZGVk IHN0cnVjdCAqLwo+ID4gPiAgCUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSwgYmFzZSkpOwo+ID4gPiBAQCAtMTIzNjksNiArMTI0NzgsMTUgQEAgaW50ZWxfbW9k ZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4g PiA+ICAJZHJtX21vZGVfc2V0X2NydGNpbmZvKCZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLAo+ID4gPiAgCQkJICAgICAgQ1JUQ19TVEVSRU9fRE9VQkxFKTsKPiA+ID4gIAo+ID4gPiAr CS8qIFNldCB0aGUgY3J0Y19zdGF0ZSBkZWZhdWx0cyBmb3IgdHJhbnNfcG9ydF9zeW5jICovCj4g PiA+ICsJcGlwZV9jb25maWctPm1hc3Rlcl90cmFuc2NvZGVyID0gSU5WQUxJRF9UUkFOU0NPREVS Owo+ID4gPiArCXJldCA9IGljbF9hZGRfc3luY19tb2RlX2NydGNzKGNydGMsIHBpcGVfY29uZmln LCBzdGF0ZSk7Cj4gPiA+ICsJaWYgKHJldCkgewo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJDYW5u b3QgYXNzaWduIFN5bmMgTW9kZSBDUlRDczogJWRcbiIsCj4gPiA+ICsJCQkgICAgICByZXQpOwo+ ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAgCS8qIFBhc3Mgb3Vy IG1vZGUgdG8gdGhlIGNvbm5lY3RvcnMgYW5kIHRoZSBDUlRDIHRvIGdpdmUgdGhlbSBhIGNoYW5j ZSB0bwo+ID4gPiAgCSAqIGFkanVzdCBpdCBhY2NvcmRpbmcgdG8gbGltaXRhdGlvbnMgb3IgY29u bmVjdG9yIHByb3BlcnRpZXMsIGFuZCBhbHNvCj4gPiA+ICAJICogYSBjaGFuY2UgdG8gcmVqZWN0 IHRoZSBtb2RlIGVudGlyZWx5Lgo+ID4gPiBAQCAtMTI4ODIsNiArMTMwMDAsMTEgQEAgaW50ZWxf cGlwZV9jb25maWdfY29tcGFyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVu dF9jb25maWcsCj4gPiA+ICAJUElQRV9DT05GX0NIRUNLX0lORk9GUkFNRShoZG1pKTsKPiA+ID4g IAlQSVBFX0NPTkZfQ0hFQ0tfSU5GT0ZSQU1FKGRybSk7Cj4gPiA+ICAKPiA+ID4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+ID4gCj4gPiBKdXN0IGRvIHRoZSBjaGVjayB1bmNv ZGl0aW9uYWxseS4KPiAKPiBPayBtYWtlcyBzZW5zLCB3aWxsIHJlbW92ZSB0aGUgZ2VuIGNoZWNr Cj4gCj4gUmVnYXJkcwo+IE1hbmFzaQo+IAo+ID4gCj4gPiA+ICsJCVBJUEVfQ09ORl9DSEVDS19J KHN5bmNfbW9kZV9zbGF2ZXNfbWFzayk7Cj4gPiA+ICsJCVBJUEVfQ09ORl9DSEVDS19JKG1hc3Rl cl90cmFuc2NvZGVyKTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gICN1bmRlZiBQSVBFX0NPTkZf Q0hFQ0tfWAo+ID4gPiAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19JCj4gPiA+ICAjdW5kZWYgUElQ RV9DT05GX0NIRUNLX0JPT0wKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmgKPiA+ID4gaW5kZXggYjFhZTBlNTljNzE1Li4xNjIzZmFjZTQzNmIgMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5oCj4gPiA+IEBAIC05Myw2ICs5Myw3IEBAIGVudW0gcGlwZSB7Cj4gPiA+ICAjZGVmaW5lIHBp cGVfbmFtZShwKSAoKHApICsgJ0EnKQo+ID4gPiAgCj4gPiA+ICBlbnVtIHRyYW5zY29kZXIgewo+ ID4gPiArCUlOVkFMSURfVFJBTlNDT0RFUiA9IC0xLAo+ID4gPiAgCS8qCj4gPiA+ICAJICogVGhl IGZvbGxvd2luZyB0cmFuc2NvZGVycyBoYXZlIGEgMToxIHRyYW5zY29kZXIgLT4gcGlwZSBtYXBw aW5nLAo+ID4gPiAgCSAqIGtlZXAgdGhlaXIgdmFsdWVzIGZpeGVkOiB0aGUgY29kZSBhc3N1bWVz IHRoYXQgVFJBTlNDT0RFUl9BPTAsIHRoZQo+ID4gPiBAQCAtNDUzLDYgKzQ1NCw4IEBAIGVudW0g ZHJtX21vZGVfc3RhdHVzCj4gPiA+ICBpbnRlbF9tb2RlX3ZhbGlkX21heF9wbGFuZV9zaXplKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gIAkJCQljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSk7Cj4gPiA+ICBlbnVtIHBoeSBpbnRlbF9wb3J0X3RvX3Bo eShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51bSBwb3J0IHBvcnQpOwo+ID4gPiAr Ym9vbCBpc190cmFuc19wb3J0X3N5bmNfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKPiA+ID4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnN0YXRlKTsK PiA+ID4gIAo+ID4gPiAgdm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKTsKPiA+ID4gIHZvaWQgaTgzMF9lbmFibGVfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gaW5kZXggZDVj YzRiODEwZDllLi4xN2ZmMzRjYTI5OGIgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiA+IEBAIC05OTEs NiArOTkxLDEyIEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiA+ID4gIAo+ID4gPiAgCS8q IEZvcndhcmQgRXJyb3IgY29ycmVjdGlvbiBTdGF0ZSAqLwo+ID4gPiAgCWJvb2wgZmVjX2VuYWJs ZTsKPiA+ID4gKwo+ID4gPiArCS8qIFBvaW50ZXIgdG8gbWFzdGVyIHRyYW5zY29kZXIgaW4gY2Fz ZSBvZiB0aWxlZCBkaXNwbGF5cyAqLwo+ID4gPiArCWVudW0gdHJhbnNjb2RlciBtYXN0ZXJfdHJh bnNjb2RlcjsKPiA+ID4gKwo+ID4gPiArCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUgc2xhdmVzIGF0 dGFjaGVkICovCj4gPiA+ICsJdTggc3luY19tb2RlX3NsYXZlc19tYXNrOwo+ID4gPiAgfTsKPiA+ ID4gIAo+ID4gPiAgc3RydWN0IGludGVsX2NydGMgewo+ID4gPiAtLSAKPiA+ID4gMi4xOS4xCj4g PiAKPiA+IC0tIAo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJbnRlbAoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=