From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 1/5] drm/i915/gen11: Start distinguishing 'phy' from 'port' Date: Mon, 8 Jul 2019 17:12:36 +0300 Message-ID: <20190708141236.GS5942@intel.com> References: <20190703233736.5816-1-matthew.d.roper@intel.com> <20190703233736.5816-2-matthew.d.roper@intel.com> <20190704091811.GE5942@intel.com> <20190704145426.f22rxbbzprj55tew@ldmartin-desk1> <20190704150904.GI5942@intel.com> <20190704155551.jsfwl73v2tqbcpqp@ldmartin-desk1> <20190705103310.GM5942@intel.com> <20190708140249.bfdqs5vuqcyxslgy@ldmartin-desk1> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B518188E88 for ; Mon, 8 Jul 2019 14:13:05 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190708140249.bfdqs5vuqcyxslgy@ldmartin-desk1> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdWwgMDgsIDIwMTkgYXQgMDc6MDI6NDlBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIEZyaSwgSnVsIDA1LCAyMDE5IGF0IDAxOjMzOjEwUE0gKzAzMDAsIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+T24gVGh1LCBKdWwgMDQsIDIwMTkgYXQgMDg6NTU6NTFBTSAt MDcwMCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ID4+IE9uIFRodSwgSnVsIDA0LCAyMDE5IGF0 IDA2OjA5OjA0UE0gKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+PiA+T24gVGh1LCBK dWwgMDQsIDIwMTkgYXQgMDc6NTQ6MjZBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+ ID4+ID4+IE9uIFRodSwgSnVsIDA0LCAyMDE5IGF0IDEyOjE4OjExUE0gKzAzMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+PiA+PiA+T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDQ6Mzc6MzJQ TSAtMDcwMCwgTWF0dCBSb3BlciB3cm90ZToKPiA+PiA+PiA+PiBPdXIgcGFzdCBEREktYmFzZWQg SW50ZWwgcGxhdGZvcm1zIGhhdmUgaGFkIGEgZml4ZWQgRERJPC0+UEhZIG1hcHBpbmcuCj4gPj4g Pj4gPj4gQmVjYXVzZSBvZiB0aGlzLCBib3RoIHRoZSBic3BlYyBkb2N1bWVudGF0aW9uIGFuZCBv dXIgaTkxNSBjb2RlIGhhcyB1c2VkCj4gPj4gPj4gPj4gdGhlIHRlcm0gInBvcnQiIHdoZW4gdGFs a2luZyBhYm91dCBlaXRoZXIgRERJJ3Mgb3IgUEhZJ3M7IGl0IHdhcyBhbHdheXMKPiA+PiA+PiA+ PiBlYXN5IHRvIHRlbGwgd2hhdCB0ZXJtcyBsaWtlICJQb3J0IEEiIHdlcmUgcmVmZXJyaW5nIHRv IGZyb20gdGhlCj4gPj4gPj4gPj4gY29udGV4dC4KPiA+PiA+PiA+Pgo+ID4+ID4+ID4+IFVuZm9y dHVuYXRlbHkgdGhpcyBpcyBzdGFydGluZyB0byBicmVhayBkb3duIG5vdyB0aGF0IEVITCBhbGxv d3MgUEhZLUEKPiA+PiA+PiA+PiB0byBiZSBkcml2ZW4gYnkgZWl0aGVyIERESS1BIG9yIERESS1E LiAgSXMgYSBzZXR1cCB3aXRoIERESS1EIGRyaXZpbmcKPiA+PiA+PiA+PiBQSFktQSBjb25zaWRl cmVkICJQb3J0IEEiIG9yICJQb3J0IEQ/IiAgVGhlIGFuc3dlciBkZXBlbmRzIG9uIHdoaWNoCj4g Pj4gPj4gPj4gcmVnaXN0ZXIgd2UncmUgd29ya2luZyB3aXRoLCBhbmQgZXZlbiB0aGUgYnNwZWMg ZG9lc24ndCBkbyBhIGdyZWF0IGpvYgo+ID4+ID4+ID4+IG9mIGNsYXJpZnlpbmcgdGhpcy4KPiA+ PiA+PiA+Pgo+ID4+ID4+ID4+IExldCdzIHRyeSB0byBiZSBtb3JlIGV4cGxpY2l0IGFib3V0IHdo ZXRoZXIgd2UncmUgdGFsa2luZyBhYm91dCB0aGUgRERJCj4gPj4gPj4gPj4gb3IgdGhlIFBIWSBv biBnZW4xMSsgYnkgdXNpbmcgJ3BvcnQnIHRvIHJlZmVyIHRvIHRoZSBEREkgYW5kIGNyZWF0aW5n IGEKPiA+PiA+PiA+PiBuZXcgJ2VudW0gcGh5JyBuYW1lc3BhY2UgdG8gcmVmZXIgdG8gdGhlIFBI WSBpbiB1c2UuCj4gPj4gPj4gPj4KPiA+PiA+PiA+PiBUaGlzIHBhdGNoIGp1c3QgYWRkcyB0aGUg bmV3IFBIWSBuYW1lc3BhY2UsIG5ldyBwaHktYmFzZWQgdmVyc2lvbnMgb2YKPiA+PiA+PiA+PiBp bnRlbF9wb3J0X2lzXyooKSwgYW5kIGEgaGVscGVyIHRvIGNvbnZlcnQgYSBwb3J0IHRvIGEgUEhZ Lgo+ID4+ID4+ID4+IFRyYW5zaXRpb25pbmcgdmFyaW91cyBhcmVhcyBvZiB0aGUgY29kZSBvdmVy IHRvIHVzaW5nIHRoZSBQSFkgbmFtZXNwYWNlCj4gPj4gPj4gPj4gd2lsbCBiZSBkb25lIGluIHN1 YnNlcXVlbnQgcGF0Y2hlcyB0byBtYWtlIHJldmlldyBlYXNpZXIuICBXZSdsbCByZW1vdmUKPiA+ PiA+PiA+PiB0aGUgaW50ZWxfcG9ydF9pc18qKCkgZnVuY3Rpb25zIGF0IHRoZSBlbmQgb2YgdGhl IHNlcmllcyB3aGVuIHdlCj4gPj4gPj4gPj4gdHJhbnNpdGlvbiBhbGwgY2FsbGVycyBvdmVyIHRv IHVzaW5nIHRoZSBQSFktYmFzZWQgdmVyc2lvbnMuCj4gPj4gPj4gPj4KPiA+PiA+PiA+PiB2MjoK PiA+PiA+PiA+PiAgLSBDb252ZXJ0IGEgZmV3IG1vcmUgJ3BvcnQnIHVzZXMgdG8gJ3BoeS4nIChT cGFyc2UpCj4gPj4gPj4gPj4KPiA+PiA+PiA+PiB2MzoKPiA+PiA+PiA+PiAgLSBTd2l0Y2ggRERJ X0NMS19TRUwoKSBiYWNrIHRvICdwb3J0LicgKEpvc2UpCj4gPj4gPj4gPj4gIC0gQWRkIGEgY29k ZSBjb21tZW50IGNsYXJpZnlpbmcgd2h5IERQQ0xLQV9DRkdDUjBfSUNMIG5lZWRzIHRvIHVzZSBQ SFkKPiA+PiA+PiA+PiAgICBmb3IgaXRzIGJpdCBkZWZpbml0aW9ucywgZXZlbiB0aG91Z2ggdGhl IHJlZ2lzdGVyIGRlc2NyaXB0aW9uIGlzCj4gPj4gPj4gPj4gICAgZ2l2ZW4gaW4gdGVybXMgb2Yg RERJLgo+ID4+ID4+ID4+ICAtIFRvIGF2b2lkIGNvbmZ1c2lvbiwgc3dpdGNoIENOTCdzIERQQ0xL QV9DRkdDUjAgZGVmaW5lcyBiYWNrIHRvIHVzaW5nCj4gPj4gPj4gPj4gICAgcG9ydCBhbmQgY3Jl YXRlIHNlcGFyYXRlIElDTCsgZGVmaW5pdGlvbnMgdGhhdCB3b3JrIGluIHRlcm1zIG9mIFBIWS4K PiA+PiA+PiA+Pgo+ID4+ID4+ID4+IHY0Ogo+ID4+ID4+ID4+ICAtIFJlYmFzZSBhbmQgcmVzb2x2 ZSBjb25mbGljdHMgd2l0aCBJbXJlJ3MgVEMgc2VyaWVzLgo+ID4+ID4+ID4+ICAtIFRoaXMgcGF0 Y2ggbm93IGp1c3QgYWRkcyB0aGUgbmFtZXNwYWNlIGFuZCBhIGZldyBjb252ZW5pZW5jZQo+ID4+ ID4+ID4+ICAgIGZ1bmN0aW9uczsgdGhlIGltcG9ydGFudCBjaGFuZ2VzIGFyZSBub3cgc3BsaXQg b3V0IGludG8gc2VwYXJhdGUKPiA+PiA+PiA+PiAgICBwYXRjaGVzIHRvIG1ha2UgcmV2aWV3IGVh c2llci4KPiA+PiA+PiA+Pgo+ID4+ID4+ID4+IFN1Z2dlc3RlZC1ieTogVmlsbGUgU3lyamFsYSA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4gPj4gPj4gQ2M6IEpvc8OpIFJvYmVy dG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4+ID4+ID4+IENjOiBMdWNhcyBE ZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiA+PiA+PiA+PiBDYzogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+PiA+PiA+PiBDYzog SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ID4+ID4+ID4+IENjOiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ID4+ID4+ID4+IFNpZ25lZC1vZmYtYnk6IE1hdHQg Um9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gPj4gPj4gPj4gLS0tCj4gPj4gPj4g Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIHwgMzIgKysr KysrKysrKysrKysrKysrKy0KPiA+PiA+PiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmggfCAxNiArKysrKysrKysrCj4gPj4gPj4gPj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgIHwgIDIgKysKPiA+PiA+PiA+PiAgMyBm aWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPj4gPj4gPj4K PiA+PiA+PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku Ywo+ID4+ID4+ID4+IGluZGV4IDkxOWY1YWM4NDRjOC4uNGE4NWFiZWY5M2U3IDEwMDY0NAo+ID4+ ID4+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j Cj4gPj4gPj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMKPiA+PiA+PiA+PiBAQCAtNjY2Myw2ICs2NjYzLDIwIEBAIGJvb2wgaW50ZWxfcG9ydF9p c19jb21ib3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBw b3J0KQo+ID4+ID4+ID4+ICAJcmV0dXJuIGZhbHNlOwo+ID4+ID4+ID4+ICB9Cj4gPj4gPj4gPj4K PiA+PiA+PiA+PiArYm9vbCBpbnRlbF9waHlfaXNfY29tYm8oc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBoeSBwaHkpCj4gPj4gPj4gPj4gK3sKPiA+PiA+PiA+PiArCWlm IChwaHkgPT0gUEhZX05PTkUpCj4gPj4gPj4gPj4gKwkJcmV0dXJuIGZhbHNlOwo+ID4+ID4+ID4+ ICsKPiA+PiA+PiA+PiArCWlmIChJU19FTEtIQVJUTEFLRShkZXZfcHJpdikpCj4gPj4gPj4gPj4g KwkJcmV0dXJuIHBoeSA8PSBQSFlfQzsKPiA+PiA+PiA+PiArCj4gPj4gPj4gPj4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiA+PiA+PiA+PiArCQlyZXR1cm4gcGh5IDw9IFBIWV9C Owo+ID4+ID4+ID4+ICsKPiA+PiA+PiA+PiArCXJldHVybiBmYWxzZTsKPiA+PiA+PiA+PiArfQo+ ID4+ID4+ID4+ICsKPiA+PiA+PiA+PiAgYm9vbCBpbnRlbF9wb3J0X2lzX3RjKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gPj4gPj4gPj4gIHsKPiA+ PiA+PiA+PiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmICFJU19FTEtIQVJUTEFL RShkZXZfcHJpdikpCj4gPj4gPj4gPj4gQEAgLTY2NzEsOSArNjY4NSwyNSBAQCBib29sIGludGVs X3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCkKPiA+PiA+PiA+PiAgCXJldHVybiBmYWxzZTsKPiA+PiA+PiA+PiAgfQo+ID4+ID4+ID4+ Cj4gPj4gPj4gPj4gK2Jvb2wgaW50ZWxfcGh5X2lzX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBwaHkgcGh5KQo+ID4+ID4+ID4+ICt7Cj4gPj4gPj4gPj4gKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSAmJiAhSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKQo+ ID4+ID4+ID4+ICsJCXJldHVybiBwaHkgPj0gUEhZX0MgJiYgcGh5IDw9IFBIWV9GOwo+ID4+ID4+ ID4+ICsKPiA+PiA+PiA+PiArCXJldHVybiBmYWxzZTsKPiA+PiA+PiA+PiArfQo+ID4+ID4+ID4+ ICsKPiA+PiA+PiA+PiArZW51bSBwaHkgaW50ZWxfcG9ydF90b19waHkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0KQo+ID4+ID4+ID4+ICt7Cj4gPj4gPj4gPj4g KwlpZiAoSVNfRUxLSEFSVExBS0UoaTkxNSkgJiYgcG9ydCA9PSBQT1JUX0QpCj4gPj4gPj4gPj4g KwkJcmV0dXJuIFBIWV9BOwo+ID4+ID4+ID4+ICsKPiA+PiA+PiA+PiArCXJldHVybiAoZW51bSBw aHkpcG9ydDsKPiA+PiA+PiA+PiArfQo+ID4+ID4+ID4+ICsKPiA+PiA+PiA+PiAgZW51bSB0Y19w b3J0IGludGVsX3BvcnRfdG9fdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBl bnVtIHBvcnQgcG9ydCkKPiA+PiA+PiA+PiAgewo+ID4+ID4+ID4+IC0JaWYgKCFpbnRlbF9wb3J0 X2lzX3RjKGRldl9wcml2LCBwb3J0KSkKPiA+PiA+PiA+PiArCWlmICghaW50ZWxfcGh5X2lzX3Rj KGRldl9wcml2LCBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCkpKQo+ID4+ID4+ID4+ ICAJCXJldHVybiBQT1JUX1RDX05PTkU7Cj4gPj4gPj4gPj4KPiA+PiA+PiA+PiAgCXJldHVybiBw b3J0IC0gUE9SVF9DOwo+ID4+ID4+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5oCj4gPj4gPj4gPj4gaW5kZXggZDI5NjU1NmVkODJlLi5kNTMyODVmYjg4 M2YgMTAwNjQ0Cj4gPj4gPj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmgKPiA+PiA+PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuaAo+ID4+ID4+ID4+IEBAIC0yMjgsNiArMjI4LDIxIEBAIHN0cnVj dCBpbnRlbF9saW5rX21fbiB7Cj4gPj4gPj4gPj4gIAl1MzIgbGlua19uOwo+ID4+ID4+ID4+ICB9 Owo+ID4+ID4+ID4+Cj4gPj4gPj4gPj4gK2VudW0gcGh5IHsKPiA+PiA+PiA+PiArCVBIWV9OT05F ID0gLTEsCj4gPj4gPj4gPj4gKwo+ID4+ID4+ID4+ICsJUEhZX0EgPSAwLAo+ID4+ID4+ID4+ICsJ UEhZX0IsCj4gPj4gPj4gPj4gKwlQSFlfQywKPiA+PiA+PiA+PiArCVBIWV9ELAo+ID4+ID4+ID4+ ICsJUEhZX0UsCj4gPj4gPj4gPj4gKwlQSFlfRiwKPiA+PiA+PiA+PiArCj4gPj4gPj4gPj4gKwlJ OTE1X01BWF9QSFlTCj4gPj4gPj4gPj4gK307Cj4gPj4gPj4gPgo+ID4+ID4+ID5JIHdhcyBwb25k ZXJpbmcgaWYgd2UgY291bGQgZXZlbnR1YWxseSBkbyBzb21ldGhpbmcgbGlrZToKPiA+PiA+PiA+ Cj4gPj4gPj4gPmVudW0gcGh5IHsKPiA+PiA+PiA+CVBIWV9DT01CT19BID0gMCwKPiA+PiA+PiA+ CVBIWV9DT01CT19CLAo+ID4+ID4+ID4JLi4uCj4gPj4gPj4gPgo+ID4+ID4+ID4JUEhZX1RDXzEs Cj4gPj4gPj4gPglQSFlfVENfMiwKPiA+PiA+PiA+CS4uLgo+ID4+ID4+ID59Owo+ID4+ID4+ID4K PiA+PiA+PiA+YW5kIHByb2JhYmx5IGFsc28gYWRkIGVuY29kZXItPnBoeSBzbyB3ZSBjYW4gY29u dGFpbgo+ID4+ID4+ID50aGF0IHBvcnQ8LT5waHkgbWFwcGluZyBsb2dpYyBpbiB0aGUgZW5jb2Rl ciBpbml0Lgo+ID4+ID4+ID5JIHRoaW5rIHRoYXQgc2hvdWxkIHdvcmsgbW9yZSBvciBsZXNzIGZp bmUgc2luY2UgSQo+ID4+ID4+ID5kb24ndCB0aGluayBQSFlfVENfMSBuZWVkcyB0byBoYXZlIGFu eSBzcGVjaWZpYyB2YWx1ZS4KPiA+PiA+Pgo+ID4+ID4+IHRoYXQncyBub3QgdHJ1ZS4gQWxsIFRD IHJlZ2lzdGVycyBhcmUgYmFzZWQgb2ZmIHRoZSBUQyBwaHkgbnVtYmVyLgo+ID4+ID4KPiA+PiA+ VGhhdCdzIGp1c3QgYSB0cml2aWFsICh4KS1UQzEsIHNvIEkgc3RhbmQgYnkgd2hhdCBJIHNhaWQu Cj4gPj4KPiA+PiBFSEwgYW5kIFRHTCBoYXZlIDMgY29tYm8gcGh5cy4gSUNMIGhhcyAyLiBTbyBU QzEgd291bGQgaGF2ZSB0byBiZSBhCj4gPj4gZGlmZmVyZW50IHZhbHVlIGZvciBJQ0wgYW5kIHRo ZSBvdGhlcnMgZm9yIHRoaXMgdG8gd29yay4KPiA+Cj4gPkl0IHdvdWxkIGp1c3QgYmUgYW4gYXJi aXRyYXJ5IG51bWJlciAoZWcuIDgpLgo+IAo+IE9uZSB0aGF0IGlzIHByb3BhZ2F0ZWQgdG8gZXZl cnkgYWNjZXNzIHRvIHRob3NlIHJlZ2lzdGVycywgYW5kIHdlIG5lZWQKPiB0byBrZWVwIHRoaXMg ZW51bSB1cGRhdGVkIGFzIHdlbGwgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb25zIGJlY2F1c2UgZXZl cnkKPiBwbGF0Zm9ybSBoYXMgYSBkaWZmZXJlbnQgcG9ydC0+cGh5IG1hcHBpbmcuCgpUaGUgcG9y dC0+cGh5IG1hcHBpbmcgZG9lc24ndCBtYXR0ZXIuIFRoZSBlbnVtIGlzIGp1c3QgYWJvdXQgdGhl IHBoeS4KCkFuZCByZWcgbWFjcm9zIHdvdWxkIGJlIGp1c3Qgc29tZXRoaW5nIGxpa2U6CiNkZWZp bmUgX1RDX1BIWV9JRFgocGh5KSAoKHBoeSktUEhZX1RDMSkKI2RlZmluZSBCTEFIKHBoeSkgX01N SU8oLi4uX1RDX1BIWV9JRFgocGh5KS4uLikKCj4gSU1PIGl0IHNob3VsZCBiZSBkb25lIGR1cmlu Zwo+IGluaXQgbGlrZSBpbiB0aGUgcHNldWRvIGNvZGUgSSBwb3N0ZWQuIEFuZCBpbiB0aGF0IGNh c2UgVEMxID0gMC4gQWx3YXlzLgo+IAo+IEx1Y2FzIERlIE1hcmNoaQo+IAo+ID4KPiA+PiBJIHRo aW5rIHdlIHNob3VsZCB0cmVhdCB0aGUgaW5kZXggYXMganVzdCBhIG51bWJlciB3ZSB1c2UgdG8g Y29tcHV0ZSB0aGUKPiA+PiByaWdodCBiYXNlIGZvciB0aGUgcmVnaXN0ZXJzIGluIHRoYXQgaHcg SVAuCj4gPj4KPiA+PiA+Cj4gPj4gPj4gSGVuY2UgYWxsIHRoZSBjb252ZXJzaW9uIHdlIGRvIHBv cnRfdG9fdGMoKS4uLiBJJ2QgbGlrZSB0byByZW1vdmUgdGhhdAo+ID4+ID4+IGluIGZ1dHVyZSBh bmQganVzdCBzdHVmZiB0aGUgcGh5IGluZGV4IGluIGludGVsX2RpZ2l0YWxfcG9ydCwgYXMgd2UK PiA+PiA+PiBhbHJlYWR5IGRvIGZvciBvdGhlciB0Y19waHlfKiBmaWVsZHMgKHdlIGNvdWxkIGFk ZCBhIHVuaW9uIHRoZXJlIHNvIGVhY2gKPiA+PiA+PiBwaHkgYWRkcyBpdHMgb3duIGZpZWxkcyku Cj4gPj4gPj4KPiA+PiA+PiBBbmQgSSdkIHJhdGhlciBub3QgZG8gdGhlIHNpbmdsZSBwaHkgbmFt ZXNwYWNlIC0gaXQgZG9lc24ndAo+ID4+ID4+IHBsYXkgd2VsbCB3aXRoIFRHTCBhbmQgdGhlIGNv bWJvL3RjLgo+ID4+ID4KPiA+PiA+SSB0aGluayBpdCB3b3VsZCB3b3JrIGp1c3QgZmluZSBmb3Ig dGhhdC4gQSBzaW5nbGUgbmFtZXNwYWNlIHdvdWxkIGFsbG93Cj4gPj4gPnVzIHRvIHJlbW92ZSBh bGwgdGhlIGNyYXp5IHBvcnQtPlBIWSB0eXBlIG1hcHBpbmcgd2UgaGF2ZSBnb2luZyBvbgo+ID4+ ID5jdXJyZW50bHkuIFByb2JhYmx5IHRoZSBiZXN0IGFsdGVybmF0aXZlIHdvdWxkIGJlIHNlcGFy YXRlIG5hbWVzcGFjZXMKPiA+PiA+Zm9yIGVhY2ggdHlwZSB3aXRoIGEgbmV3IGVudW0gdG8gaWRl bnRpZnkgdGhlIHR5cGUuCj4gPj4KPiA+PiBNeSBwcm9wb3NhbCBpcyBpbiB0aGUgbGluZXMgb2Yg dGhhdCBhbHRlcm5hdGl2ZSBhcHByb2FjaC4gU2F2ZSB0aGUgcGh5Cj4gPj4gdHlwZSBhbmQgdGhl IHBoeSBpbmRleCBpbiBpbnRlbF9kaWdpdGFsX3BvcnQuIEFuZCBhbGxvdyBlYWNoIHBoeSB0byBz dG9yZQo+ID4+IGl0cyBmaWVsZHMgdGhlcmUuIFNvbWV0aGluZyBhbG9uZzoKPiA+Pgo+ID4+IHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+ID4+IAkuLi4KPiA+PiAJc3RydWN0IHsKPiA+PiAJ CWVudW0gcGh5X3R5cGUgdHlwZTsKPiA+PiAJCXU4IGlkeDsKPiA+PiAJCXVuaW9uIHsKPiA+PiAJ CQlzdHJ1Y3Qgewo+ID4+IAkJCQlzdHJ1Y3QgbXV0ZXggbG9jazsgICAvKiBwcm90ZWN0cyB0aGUg VHlwZUMgcG9ydCBtb2RlICovCj4gPj4gCQkJCWludGVsX3dha2VyZWZfdCBsb2NrX3dha2VyZWY7 Cj4gPj4gCQkJCWludCBsaW5rX3JlZmNvdW50Owo+ID4+IAkJCQljaGFyIHRjX3BvcnRfbmFtZVs4 XTsKPiA+PiAJCQkJZW51bSB0Y19wb3J0X21vZGUgdGNfbW9kZTsKPiA+PiAJCQkJYm9vbCBsZWdh Y3lfcG9ydDsKPiA+PiAJCQkJdTggZmlhOwo+ID4+IAkJCX0gdGM7Cj4gPj4gCQkJc3RydWN0IHsK PiA+PiAJCQkJLi4uCj4gPj4gCQkJfSBjb21ibzsKPiA+PiAJCQlzdHJ1Y3Qgewo+ID4+IAkJCQku Li4KPiA+PiAJCQl9IGRwaW8/PzsKPiA+PiAJCX07Cj4gPj4gCX0gcGh5Owo+ID4+IH07Cj4gPj4K PiA+PiA+RnJvbSBhIHF1aWNrIGxvb2sgSSBkb24ndCB0aGluayB0aGUgaWR4IGlzIHJlbGV2YW50 IGVub3VnaCB0byBoYXZlIGl0cwo+ID4+IG93biBlbnVtLCBidXQgSSB3b3VsZG4ndCBtaW5kLgo+ ID4+Cj4gPj4gdGhlbiBubyBtb3JlIHBvcnQtPnBoeSBldmVyeXdoZXJlIGFzIHdlIGhhdmUgcmln aHQgbm93IGFuZCB3ZSBvbmx5Cj4gPj4gYXNzaWduIGlkeCB0byB0aGUgcmlnaHQgdmFsdWUgZHVy aW5nIGluaXQuIFRoZSBUQyByZXdvcmsgd2UgaGFkIHJlY2VudGx5Cj4gPj4gbWFrZXMgaXQgbmlj ZSBhbmQgSSdtIHN0YXJ0aW5nIHRvIGRvIGl0LCBidXQgSSdkIHJhdGhlciBtZXJnZSB0aGUgVEdM Cj4gPj4gcGF0Y2hlcyBiZWZvcmUuIEZvciBNb2R1bGFyIEZJQSBJJ20gYWxyZWFkeSBzdGFzaGlu ZyB0aGUgZmlhIGluZGV4Cj4gPj4gdGhlcmUgKHNpbmNlIEkgaGFkIHRvIHJlZG8gdGhlIHN1cHBv cnQgZHVlIHRvIHRoZSBUQyByZXdvcmspLAo+ID4+IGJ1dCB3aXRob3V0IHRoZSBhZGRpdGlvbmFs IHN0cnVjdC4KPiA+PiBTZWUgaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmll cy82MzE3NS8KPiA+Pgo+ID4+IEx1Y2FzIERlIE1hcmNoaQo+ID4+Cj4gPj4gPgo+ID4+ID4+Cj4g Pj4gPj4gTHVjYXMgRGUgTWFyY2hpCj4gPj4gPj4KPiA+PiA+PiA+Cj4gPj4gPj4gPlVuZm9ydHVu YWx0ZXkgSSBkb24ndCBoYXZlIGEgZ3JlYXQgaWRlYSBob3cgdG8gZG8gdGhlCj4gPj4gPj4gPnNh bWUgZm9yIHRoZSBERElzIHNpbmNlIHRoZXJlIHRoZSBudW1iZXIgb2YgY29tYm8gRERJcwo+ID4+ ID4+ID5jaGFuZ2VzIGJ1dCB3ZSBzdGlsbCBuZWVkIHRoZSBQT1JUX1RDMSAoYXNzdW1pbmcgd2Ug aGFkCj4gPj4gPj4gPm9uZSkgdG8gYmUgRERJXzxsYXN0IGNvbWJvIEREST4gKyAxLiBPbmUgcmFu ZG9tIHNpbGx5Cj4gPj4gPj4gPmlkZWEgd2FzIHRvIGRlY291cGxlIHRoZSBlbnVtIHBvcnQgZnJv bSB0aGUgcmVnaXN0ZXIKPiA+PiA+PiA+ZGVmaW5pdGlvbnMgYnkgaGF2aW5nIGp1c3Qgc29tZSBr aW5kIG9mCj4gPj4gPj4gPmVuY29kZXItPnBvcnRfaW5kZXggZm9yIHRob3NlLiBCdXQgdGhhdCBk b2Vzbid0IGZlZWwKPiA+PiA+PiA+ZW50aXJlbHkgZ3JlYXQgZWl0aGVyLgo+ID4+ID4+ID4KPiA+ PiA+PiA+QW55d2F5cywgc29tZXRoaW5nIHRvIHRoaW5rIGFib3V0IGluIHRoZSBmdXR1cmUgcGVy aGFwcy4KPiA+PiA+PiA+Cj4gPj4gPj4gPlBhdGNoIGlzCj4gPj4gPj4gPlJldmlld2VkLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4+ID4+ID4K PiA+PiA+PiA+PiArCj4gPj4gPj4gPj4gKyNkZWZpbmUgcGh5X25hbWUoYSkgKChhKSArICdBJykK PiA+PiA+PiA+PiArCj4gPj4gPj4gPj4gICNkZWZpbmUgZm9yX2VhY2hfcGlwZShfX2Rldl9wcml2 LCBfX3ApIFwKPiA+PiA+PiA+PiAgCWZvciAoKF9fcCkgPSAwOyAoX19wKSA8IElOVEVMX0lORk8o X19kZXZfcHJpdiktPm51bV9waXBlczsgKF9fcCkrKykKPiA+PiA+PiA+Pgo+ID4+ID4+ID4+IEBA IC0zNTYsNSArMzcxLDYgQEAgdm9pZCBscHRfZGlzYWJsZV9jbGtvdXRfZHAoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+PiA+PiA+PiAgdTMyIGludGVsX3BsYW5lX2ZiX21h eF9zdHJpZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ID4+ID4+ICAJ CQkgICAgICB1MzIgcGl4ZWxfZm9ybWF0LCB1NjQgbW9kaWZpZXIpOwo+ID4+ID4+ID4+ICBib29s IGludGVsX3BsYW5lX2Nhbl9yZW1hcChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKTsKPiA+PiA+PiA+PiArZW51bSBwaHkgaW50ZWxfcG9ydF90b19waHkoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0KTsKPiA+PiA+PiA+Pgo+ID4+ ID4+ID4+ICAjZW5kaWYKPiA+PiA+PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+ID4+ ID4+IGluZGV4IDI0YzYzZWQ0NWM2Zi4uODE1YzI2YzBiOThjIDEwMDY0NAo+ID4+ID4+ID4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPj4gPj4gPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiA+PiA+PiBAQCAtMTQ5Myw3ICsxNDkz LDkgQEAgdm9pZCBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKTsKPiA+PiA+PiA+PiAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKgo+ID4+ID4+ID4+ICBp bnRlbF9lbmNvZGVyX2N1cnJlbnRfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7 Cj4gPj4gPj4gPj4gIGJvb2wgaW50ZWxfcG9ydF9pc19jb21ib3BoeShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKPiA+PiA+PiA+PiArYm9vbCBpbnRl bF9waHlfaXNfY29tYm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBo eSBwaHkpOwo+ID4+ID4+ID4+ICBib29sIGludGVsX3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7Cj4gPj4gPj4gPj4gK2Jvb2wgaW50 ZWxfcGh5X2lzX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaHkg cGh5KTsKPiA+PiA+PiA+PiAgZW51bSB0Y19wb3J0IGludGVsX3BvcnRfdG9fdGMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4+ID4+ID4+ICAJCQkgICAgICBlbnVtIHBvcnQg cG9ydCk7Cj4gPj4gPj4gPj4gIGludCBpbnRlbF9nZXRfcGlwZV9mcm9tX2NydGNfaWRfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiA+PiA+PiA+PiAtLQo+ID4+ID4+ ID4+IDIuMTcuMgo+ID4+ID4+ID4KPiA+PiA+PiA+LS0KPiA+PiA+PiA+VmlsbGUgU3lyasOkbMOk Cj4gPj4gPj4gPkludGVsCj4gPj4gPgo+ID4+ID4tLQo+ID4+ID5WaWxsZSBTeXJqw6Rsw6QKPiA+ PiA+SW50ZWwKPiA+Cj4gPi0tIAo+ID5WaWxsZSBTeXJqw6Rsw6QKPiA+SW50ZWwKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4