From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [RFC] drm/i915/dp: Preliminary support for 2 pipe 1 port mode for 5K@120 Date: Thu, 24 Jan 2019 17:24:03 -0800 Message-ID: <20190125012402.GA18485@intel.com> References: <20190122211207.20055-1-manasi.d.navare@intel.com> <20190123173117.GT4563@mdroper-desk.amr.corp.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 A5AF46E434 for ; Fri, 25 Jan 2019 01:21:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKYW4gMjQsIDIwMTkgYXQgMTI6MjM6NDVQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjMtMDEtMjAxOSBvbSAxODozMSBzY2hyZWVmIE1hdHQgUm9wZXI6Cj4g PiBPbiBUdWUsIEphbiAyMiwgMjAxOSBhdCAwMToxMjowN1BNIC0wODAwLCBNYW5hc2kgTmF2YXJl IHdyb3RlOgo+ID4+IE9uIEdlbiAxMSBwbGF0Zm9ybSwgdG8gZW5hYmxlIHJlc29sdXRpb25zIGxp a2UgNUtAMTIwIHdoZXJlCj4gPj4gdGhlIHBpeGVsIGNsb2NrIGlzIGdyZWF0ZXIgdGhhbiBwaXBl IHBpeGVsIHJhdGUsIHdlIG5lZWQgdG8gc3BsaXQgaXQgYWNyb3NzCj4gPj4gMiBwaXBlcyBhbmQg ZW5hYmxlIGl0IHVzaW5nIERTQyBhbmQgYmlnIGpvaW5lci4gSW4gb3JkZXIgdG8gc3VwcG9ydCB0 aGlzCj4gPj4gZHVhbCBwaXBlIHNpbmdsZSBwb3J0IG1vZGUsIHdlIG5lZWQgdG8gbGluayB0d28g Y3J0Y3MgaW52b2x2ZWQgaW4gdGhpcwo+ID4+IGdhbmdlZCBtb2RlLgo+ID4+Cj4gPj4gVGhpcyBw YXRjaCBpcyBhIFJGQyBwYXRjaCB0aGF0IGxpbmtzIHR3byBjcnRjcyB1c2luZyBsaW5rZWRfY3J0 YyBwb2ludGVyCj4gPj4gaW4gaW50ZWxfY3J0Y19zdGF0ZSBhbmQgc2xhdmUgdG8gaW5kaWNhdGUg aWYgdGhlIGNydGMgaXMgYSBtYXN0ZXIgb3Igc2xhdmUuCj4gPj4gSGVyZSB0aGUgSFcgbmVjZXNz aXRhdGVzIHRoZSBmaXJzdCBDUlRDIHRvIGJlIHRoZSBtYXN0ZXIgQ1JUQyB0aHJvdWdoIHdoaWNo Cj4gPj4gdGhlIGZpbmFsIG91dHB1dCB3aWxsIGJlIGRyaXZlbiBhbmQgdGhlIG5leHQgY29uc2Vj dXRpdmUgQ1JUQyBzaG91bGQgYmUKPiA+PiBzbGF2ZSBjcnRjLgo+ID4+Cj4gPj4gVGhpcyBpcyBj dXJyZW50bHkgbm90IHRlc3RlZCwgYnV0IEkgd2FudGVkIHRvIGdldCBzb21lIGlucHV0cyBvbiB0 aGlzIGFwcHJvYWNoLgo+ID4+IFRoZSBpZGVhIGlzIHRvIGZvbGxvdyB0aGUgc2FtZSBhcHByb2Fj aCB1c2VkIGluIEdhbmdlZCBwbGFuZSBtb2RlIGZvciBOVjEyCj4gPj4gcGxhbmVzLgo+ID4+Cj4g Pj4gU3VnZ2VzdGVkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPiwKPiA+PiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29t Pgo+ID4+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4+IENjOiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4+IENj OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ ID4+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5j b20+Cj4gPiBMb29rcyBsaWtlIHRoZSByaWdodCBnZW5lcmFsIGFwcHJvYWNoIG9mIHVzaW5nIHNs YXZlL21hc3Rlci4gIEkgYWdyZWUKPiA+IHdpdGggVmlsbGUgYW5kIE1hYXJ0ZW4ncyBmZWVkYmFj ayBhcyB3ZWxsLgo+ID4KPiA+IFRoZSBvdGhlciB0aGluZyB3ZSdyZSBnb2luZyB0byBuZWVkIHRv IHdvcnJ5IGFib3V0IGlzIGRlYWxpbmcgd2l0aCBhbGwKPiA+IHRoZSBwbGFuZXMgb24gdGhlIHR3 byBjcnRjJ3MuICBTdXBwb3NlIHdlIGhhdmUgYSB1c2Vyc3BhY2UtdmlzaWJsZSBzdGF0ZQo+ID4g b2Y6Cj4gPgo+ID4gICAgUGlwZSBBOiAgb2ZmCj4gPiAgICBQaXBlIEI6ICA1MDAweDIwMDBAMTIw ICh1c2luZyByb3VuZCBudW1iZXJzIHRvIG1ha2UgZXhhbXBsZSBzaW1wbGVyKQo+ID4gICAgICAg UGxhbmUgMDogIFJHQjMyOiBwb3MgKDAsMCksIHdpZHRoPTUwMDAsIGhlaWdodD0yMDAwCj4gPiAg ICAgICBQbGFuZSAxOiAgUkdCMzI6IHBvcyAoMTAwLDEwMCksIHdpZHRoPTEwMCwgaGVpZ2h0PTEw MAo+ID4gICAgICAgUGxhbmUgMjogIFJHQjMyOiBwb3MgKDQ4MDAsMTgwMCksIHdpZHRoPTEwMCwg aGVpZ2h0PTEwMAo+ID4gICAgICAgUGxhbmUgMzogIFJHQjMyOiBwb3MgKDAsMCksIHdpZHRoPTMw MDAsIGhlaWdodD0yMDAwCj4gPiAgICAgICBQbGFuZSA0OiAgTlYxMjogIHBvcyAoMjAwMCwwKSwg d2lkdGg9MTAwMCwgaGVpZ2h0PTIwMDAKPiA+ICAgICAgIFBsYW5lIDU6ICBvZmYKPiA+ICAgICAg IFBsYW5lIDY6ICBvZmYKPiA+ICAgIFBpcGUgQzogIG9mZgo+ID4KPiA+IHRoaXMgbWVhbnMgdGhh dCB3ZSBuZWVkIHRvIGdyYWIgZXh0cmEgcGxhbmVzIG9uIHRoZSBvdGhlciBDUlRDIGFuZAo+ID4g YWRqdXN0IHRoZWlyIHNpemUsIHBvc2l0aW9uLCBhbmQvb3Igc3VyZmFjZSBvZmZzZXRzIGFjY29y ZGluZ2x5LiAgU28gdGhlCj4gPiBpbnRlcm5hbCBkcml2ZXIgc3RhdGUgdGhhdCB3ZSBhY3R1YWxs eSBwcm9ncmFtIGludG8gdGhlIGhhcmR3YXJlIG5lZWRzCj4gPiB0byBiZSBzb21ldGhpbmcgbGlr ZToKPiA+Cj4gPiAgICBQaXBlIEE6ICBvZmYKPiA+ICAgIFBpcGUgQjogIDI1MDB4MTAwMCAobWFz dGVyKQo+ID4gICAgICAgUGxhbmUgMDogIHBvcyAoMCwwKSwgd2lkdGg9MjUwMCwgaGVpZ2h0PTIw MDAKPiA+ICAgICAgIFBsYW5lIDE6ICBwb3MgKDEwMCwxMDApLCB3aWR0aD0xMDAsIGhlaWdodD0x MDAKPiA+ICAgICAgIFBsYW5lIDI6ICBvZmYKPiA+ICAgICAgIFBsYW5lIDM6ICBwb3MgKDAsIDAp LCB3aWR0aD0yNTAwLCBoZWlnaHQ9MjAwMAo+ID4gICAgICAgUGxhbmUgNHtVVn06IHBvcyAoMjAw MCwgMCksIHdpZHRoPTUwMCwgaGVpZ2h0PTIwMDAKPiA+ICAgICAgIFBsYW5lIDV7WX06ICBwb3Mg KDIwMDAsIDApLCB3aWR0aD01MDAsIGhlaWdodD0yMDAwCj4gPiAgICAgICBQbGFuZSA2OiAgb2Zm Cj4gPiAgICBQaXBlIEM6ICAyNTAweDEwMDAgKHNsYXZlKQo+ID4gICAgICAgUGxhbmUgMDogIHBv cyAoMCwwKSwgb2Zmc2V0PSgyNTAwLDApLCB3aWR0aD0yNTAwLCBoZWlnaHQ9MjAwMAo+ID4gICAg ICAgUGxhbmUgMTogIG9mZgo+ID4gICAgICAgUGxhbmUgMjogIHBvcyAoMjMwMCwxODAwKSwgd2lk dGg9MTAwLCBoZWlnaHQ9MTAwCj4gPiAgICAgICBQbGFuZSAzOiAgcG9zICgwLCAwKSwgb2Zmc2V0 PSgyNTAwLCAwKSwgd2lkdGg9NTAwLCBoZWlnaHQ9MjAwMAo+ID4gICAgICAgUGxhbmUgNHtVVn06 IHBvcyAoMCwgMCksIG9mZnNldD0oNTAwLDApLCB3aWR0aD01MDAsIGhlaWdodD0yMDAwCj4gPiAg ICAgICBQbGFuZSA1e1l9OiAgcG9zICgwLCAwKSwgb2Zmc2V0PSg1MDAsMCksIHdpZHRoPTUwMCwg aGVpZ2h0PTIwMDAKPiA+ICAgICAgIFBsYW5lIDY6ICBvZmYKPiA+Cj4gPiBTbyBJIHRoaW5rIFZp bGxlIGlzIHJpZ2h0OyB3ZSdyZSBnb2luZyB0byBuZWVkIHRvIHJlYWxseSBjb3B5IGEgbG90IG9m Cj4gPiB0aGUgdXNlcnNwYWNlLWZhY2luZyBzdGF0ZSBkYXRhIGludG8gb3VyIG93biBpbnRlcm5h bCBzdGF0ZSBzdHJ1Y3R1cmVzCj4gPiBzbyB0aGF0IHdlIGNhbiBkbyB0aGUgdmFyaW91cyBhZGp1 c3RtZW50cyBvbiBpdC4gIEFzIHlvdSBjYW4gc2VlIGFib3ZlCj4gPiB0aGVyZSBhcmUgY2FzZXMg KDJwaTFwbyArIG52MTIpIHdoZXJlIGEgc2luZ2xlIHVzZXJzcGFjZSBwbGFuZSByZXF1ZXN0Cj4g PiB0cmFuc2xhdGVzIGludG8gdXMgcHJvZ3JhbW1pbmcgZm91ciBkaWZmZXJlbnQgc2V0cyBvZiBw bGFuZSByZWdpc3Rlcgo+ID4gdmFsdWVzLgo+IAo+IFllYWggSSBmZWFyIHlvdSdyZSByaWdodC4K PiBMZXRzIHNlZSwgd2Ugd291bGQgbmVlZCB0byBzYW5pdGl6ZSB0aGUgZHJpdmVyIGJpZyB0aW1l Li4KPiAKPiAKPiBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgewo+ICAgc3RydWN0IGRybV9jcnRjICpj cnRjOwo+ICAgYm9vbCBlbmFibGU7Cj4gICBib29sIGFjdGl2ZTsKPiAgIGJvb2wgcGxhbmVzX2No YW5nZWQgOiAxOwo+ICAgYm9vbCBtb2RlX2NoYW5nZWQgOiAxOwo+ICAgYm9vbCBhY3RpdmVfY2hh bmdlZCA6IDE7Cj4gICBib29sIGNvbm5lY3RvcnNfY2hhbmdlZCA6IDE7Cj4gICBib29sIHpwb3Nf Y2hhbmdlZCA6IDE7IC8vIHVudXNlZAo+ICAgYm9vbCBjb2xvcl9tZ210X2NoYW5nZWQgOiAxOwo+ ICAgYm9vbCBub192YmxhbmsgOiAxOyAvL3VudXNlZAo+ICAgdTMyIHBsYW5lX21hc2s7Cj4gICB1 MzIgY29ubmVjdG9yX21hc2s7Cj4gICB1MzIgZW5jb2Rlcl9tYXNrOwo+ICAgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgYWRqdXN0ZWRfbW9kZTsKPiAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIG1v ZGU7Cj4gICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKm1vZGVfYmxvYjsKPiAgIHN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQ7Cj4gICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmN0bTsKPiAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0Owo+ICAgdTMy IHRhcmdldF92Ymxhbms7IC8vIHVudXNlZAo+ICAgdTMyIHBhZ2VmbGlwX2ZsYWdzOyAvLyB1bnVz ZWQKPiAgIHN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50Owo+ICAgc3RydWN0 IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+ICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlOwo+IH07Cj4gCj4gRmlyc3QgdGhlIGdvb2QsIGl0IGxvb2tzIGxpa2Ugd2UgY2FuIHNhZmVs eSByZS11c2UgdGhlIGZvbGxvd2luZyBpbiB0aGUgc2xhdmUsIHdpdGhvdXQgYWZmZWN0aW5nIHVz ZXJzcGFjZToKPiAgIHN0cnVjdCBkcm1fY3J0YyAqIGNydGM7Cj4gICB1MzIgbGFzdF92Ymxhbmtf Y291bnQ7IC8vIGlnbm9yZWQgaW4gaTkxNQo+ICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgYWRq dXN0ZWRfbW9kZTsgLy8gc29ydCBvZiBoYW5kbGVkIGJ5IGNvcmUsIGJ1dCBvbiBkaXNhYmxlIHdl IGNhbiB3cml0ZSBvdXIgb3duIG1vZGUgaGVyZQo+ICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFu a19ldmVudCAqIGV2ZW50OyAvLyBoYW5kbGVkIGJ5IGNvcmUKPiAgIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICogc3RhdGU7IC8vIGhhbmRsZWQgYnkgY29yZQoKT2theSBzbyB0aGVzZSBhYm92ZSBm aWVsZHMgY2FuIGJlIHBhcnQgb2YgdGhlIGRybV9jcnRjX3VhcGlfc3RhdGUgYXMgc3VnZ2VzdGVk IGJ5IFZpbGxlLiBTbyB0aGF0IHRoZXNlIGV4cG9zZWQgdG8gdGhlIHVzZXJzcGFjZQpkbyBub3Qg Y2hhbmdlIGlycmVzcGVjdGl2ZSBvZiBtYXN0ZXItc2xhdmUgYmVoYXZpb3VyIGFuZCBjYW4gYmUg anVzdCB1c2VkIHRvIGNvbmZpZ3VyZSBtYXN0ZXJfY3J0YyBhbmQgc2xhdmVfY3J0YyBDb3JyZWN0 PwpTbyB0aGVzZSB3aWxsIG5vdCBiZSBwYXJ0IG9mIGRybV9tYXN0ZXJfY3J0Y19zdGF0ZSBhbmQg ZHJtX3NsYXZlX2NydGNfc3RhdGUKCj4gCj4gCj4gVGhlbiBvbmUgd2UgbWlnaHQgdXNlIGluc2lk ZSBpOTE1LCBidXQgc2hvdWxkIG5vdCBpbnNpZGUgdGhlIGRyaXZlcjoKPiAgIHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlIG1vZGU7IC0+IHVzZSBjcnRjX3N0YXRlLmFkanVzdGVkX21vZGUuLgoKU2hv dWxkbnQgdGhlIG1vZGUgcmVwcmVzZW50IHRoZSB0cnVlIG1vZGUgYW5kIG5vdCB0aGUgbW9kZS8y IGdvaW5nIHRvIGVhY2ggb2YgdGhlIGNydGNzPwpBbmQgdGhlbiB0aGUgYWRqdXN0ZWQgbW9kZSBj YW4gcmVmbGVjdCAgdGhlIG1vZGUvMj8KCj4gCj4gVGhlbiB0aGUgYmFkLCB3ZSBjYW4gZWFzaWx5 IGdldCBmcm9tIHRoZSBtYXN0ZXIgc2FmZWx5LiBXZSBvbmx5IG5lZWQgdG8gYWRkIHNwZWNpYWwg aGFuZGxpbmcgaW4gaW50ZWxfY29sb3IuYzoKPiAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq IGRlZ2FtbWFfbHV0Owo+ICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICogY3RtOwo+ICAgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICogZ2FtbWFfbHV0OwoKU28gdGhleSBjYW4gYWN0dWFsbHkg YmUgaW4gdGhlIGRybV9jcnRjX3VhcGlfc3RhdGUgYW5kIHVzZWQgZm9yIGJvdGggbWFzdGVyIGFu ZCBzbGF2ZSBpbiBpOTE1PwoKPiAKPiBBbHNvIGJhZCwKPiAgIHUzMiBwbGFuZV9tYXNrOyAvLyBT ZWUgYmVsb3cuCj4gICB1MzIgY29ubmVjdG9yX21hc2s7IC8vIEhtbSwgSSBkb24ndCB0aGluayB3 ZSBjYXJlIGFib3V0IGNvbm5lY3RvcnMgb24gc2xhdmUsIGRvIHdlPyBKdXN0IHNwZWNpYWwgaGFu ZGxpbmcgaW4gdGhlIG1vZGVzZXQgY2FsY3VsYXRpb25zIG5lZWRlZAo+ICAgdTMyIGVuY29kZXJf bWFzazsgLy8gSGFuZGxlZCBieSBjb3JlLCBidXQgcHJvYmFibHkgZmluZSB0byBsZWF2ZSBhcyAw LiBDYW4ndCB0b3VjaCB0aGlzLiBEb24ndCBuZWVkIHRvIGVpdGhlci4KPiAgIGJvb2wgcGxhbmVz X2NoYW5nZWQ6MTsKPiAgIGJvb2wgbW9kZV9jaGFuZ2VkOjE7Cj4gICBib29sIGFjdGl2ZV9jaGFu Z2VkOjE7Cj4gICBib29sIGNvbm5lY3RvcnNfY2hhbmdlZDoxOwo+ICAgYm9vbCBjb2xvcl9tZ210 X2NoYW5nZWQ6MTsKPiAKPiBXaGF0ZXZlciBmb3IgbW9zdCBvZiB0aG9zZSwgY2FuIGlnbm9yZSB0 aGUgbWFza3MgcHJvYmFibHkuIEp1c3QgbWFrZSBzdXJlIG1hc3RlciBwbGFuZSBzdGF0ZSBjaGVj a3MKPiB0aGUgc2xhdmUgcGxhbmUgc3RhdGUgYXMgd2VsbCwgYW5kIGlnbm9yZSBkaXJlY3QgY2hl Y2tzIG9mIHNsYXZlIHBsYW5lIHN0YXRlLiBCZWNhdXNlIHRoaXMgaXMgYSAxOjEgbWFwcGluZywK PiBpdCBzaG91bGQgYmUgZmluZS4KClNvIGxlYXZlIHRoZXNlIGZpZWxkcyBhcyBpcyBmb3IgYm90 aCBtYXN0ZXIgYW5kIHNsYXZlIGNydGMgc3RhdGVzIGkgaTkxNSwgc2xhdmUgc3RhdGUgZGVyaXZl cyBmcm9tIG1hc3RlcidzLgoKPiAKPiBBbmQgZmluYWxseSwgdGhlIHVnbHk6Cj4gICBib29sIGVu YWJsZTsKPiAgIGJvb2wgYWN0aXZlOwo+IAo+IFRoZSBiaWdnZXN0IGlzc3VlcyBhcmUgY3J0Y19z dGF0ZS0+YWN0aXZlIGFuZCBjcnRjX3N0YXRlLT5lbmFibGUuIGk5MTUgdXNlcyBpdCBhIGxvdCwg YW5kIGV2ZW4gdGhlIGNvcmUgbWFrZXMKPiBhIGxvdCBvZiBkZWNpc2lvbnMgYmFzZWQgb24gaXQu IFdlIHNob3VsZCBwcm9iYWJseSBvbmx5IHN0ZWFsIGNydGMncyB0aGF0IGRvZXNuJ3QgaGF2ZSBj cnRjX3N0YXRlLT5lbmFibGUgc2V0Lgo+CgpDb3JyZWN0LCB0aGUgc3RlYWxpbmcgY3J0YyBsb2dp YyBzaG91bGQgY2hlY2sgZm9yIGNydGNfc3RhdGUtPmVuYWJsZS4gU28gaWYgdGhlIG1hc3RlciBh bmQgc2xhdmUgY3J0YyBzdGF0ZXMgYXJlIGNyZWF0ZWQKcmlnaHQgdXAgaW4gRFJNLCB0aGVuIG9u Y2Ugc2xhdmUgY3J0YyBpcyBzdG9sZW4gaXRzIGNydGNfZW5hYmxlIHNob3VsZCBiZSBzZXQgdGhl bi4gClNvIGFnYWluIGRybV9jcnRjX21hc3Rlcl9zdGF0ZSBhbmQgZHJtX2NydGNfc2xhdmVfc3Rh dGUgZWFjaCB3aWxsIGhhdmUgdGhlc2UgZmllbGRzLCBjb3JyZWN0PwoKU28gdG8gc3VtbWFyaXpl IHlvdXIgc3VnZ2VzdGlvbiBpcyB0aGF0IHdlIGNyZWF0ZSBhIGRybV9jcnRjX3VhcGlfc3RhdGUg d2hpY2ggd2lsbCBiZSB0aGUgc3RhdGUgY29tbW9uIHRvIGJvdGgKbWFzdGVyIGFuZCBzbGF2ZSBj cnRjcy4gVGhlbiBoYXZlIHRoZSBkZXJpdmVkIHN0YXRlcyBhcyBkcm1fY3J0Y19tYXN0ZXJfc3Rh dGUgYW5kIGRybV9jcnRjX3NsYXZlX3N0YXRlCkFsc28gc3BsaXQgdGhlIGRybV9wbGFuZV9tYXN0 ZXJfc3RhdGUgYW5kIGRybV9wbGFuZV9zbGF2ZV9zdGF0ZSB0byBtYXAgcGxhbmVzIGFjcm9zcyB0 aGUgdHdvIGNydGNzLgoKSXMgbXkgdW5kZXJzdGFuZGluZyBjb3JyZWN0IHNvIGZhciwgSSBhbmFs eXplIHlvdXIgcGxhbmVfc3RhdGUgY29tbWVudHMgbmV4dC4gRmlyc3Qgd2FudGVkIHRvIHVuZGVy c3RhbmQKaWYgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGNydGNfc3RhdGUgaXMgY29ycmVjdAoK TWFuYXNpCiAKPiBCdXQgb25lIHByb2JsZW0gYXQgYSB0aW1lLi4KPiAKPiBwbGFuZV9zdGF0ZSBp cyByZWxhdGl2ZWx5IGVhc3ksIGJlY2F1c2UgZXZlbiBpZiB3ZSBjYW4ndCB0b3VjaCBwbGFuZV9t YXNrIGFuZCB0aGUgYXRvbWljIGRldGFpbHMgZm9yIHRoZSBwbGFuZXMsCj4gd2UgbmVlZCB0byBk ZXJpdmUgdGhpcyBmcm9tIHRoZSBtYXN0ZXIgcGxhbmUgY2hlY2sgZnVuY3Rpb24gYW55d2F5LiBG b3J0dW5hdGVseSB3ZSBoYXZlIG91ciBvd24KPiBpbnRlbF9jcnRjX3N0YXRlLT5hY3RpdmVfcGxh bmVzIGFscmVhZHkgdXNlZCBpbiB0aGUgcGxhbmUgdXBkYXRlIGZ1bmN0aW9ucyB3ZSBqdXN0IG5l ZWQgdG8gYmUgc3VyZSB0aGF0IHRoZQo+IHBsYW5lcyBhcmUgcGFydCBvZiB0aGUgc3RhdGUuIFdl IHNob3VsZCBwcm9iYWJseSBjb21wbGV0ZWx5IGlnbm9yZSB0aGUgc2xhdmUgcGxhbmVzIGluIHRo ZSBwbGFuZSBhdG9taWMgY2hlY2sKPiBjYWxsZWQgZnJvbSB0aGUgY29yZSB3aGVuIGl0J3MgdXNl ZCBhcyBhIHNsYXZlLi4KPiAKPiBPbmNlIGZvciBwbGFuZV9zdGF0ZToKPiBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlIHsKPiAgIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAgc3RydWN0IGRybV9j cnRjICpjcnRjOwo+ICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gICBzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZTsKPiAgIGludDMyX3QgY3J0Y194Owo+ICAgaW50MzJfdCBjcnRjX3k7Cj4g ICB1aW50MzJfdCBjcnRjX3csIGNydGNfaDsKPiAgIHVpbnQzMl90IHNyY194Owo+ICAgdWludDMy X3Qgc3JjX3k7Cj4gICB1aW50MzJfdCBzcmNfaCwgc3JjX3c7Cj4gICB1MTYgYWxwaGE7Cj4gICB1 aW50MTZfdCBwaXhlbF9ibGVuZF9tb2RlOwo+ICAgdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+ICAg dW5zaWduZWQgaW50IHpwb3M7Cj4gICB1bnNpZ25lZCBpbnQgbm9ybWFsaXplZF96cG9zOwo+ICAg ZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgY29sb3JfZW5jb2Rpbmc7Cj4gICBlbnVtIGRybV9jb2xv cl9yYW5nZSBjb2xvcl9yYW5nZTsKPiAgIHN0cnVjdCBkcm1fcmVjdCBzcmMsIGRzdDsKPiAgIGJv b2wgdmlzaWJsZTsKPiAgIHN0cnVjdCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKPiAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiB9Owo+IAo+IEdvb2Q6Cj4gICBzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZTsKPiAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOyAvLyBtdXN0IGJlIGNv cGllZCBmcm9tIG1hc3RlciBwbGFuZV9zdGF0ZQo+ICAgc3RydWN0IGRybV9yZWN0IHNyYywgZHN0 OyAvLyBjYW4gZmlsbCBpbiB3aGF0IHdlIHdhbnQgaGVyZS4uCj4gICBib29sIHZpc2libGU7IC8v IGlnbm9yZWQgYnkgY29yZSBtb3N0bHksIGJ1dCBzZXQgYW5kIHVzZWQgYnkgZHJpdmVyCj4gICB1 bnNpZ25lZCBpbnQgenBvczsKPiAgIHVuc2lnbmVkIGludCBub3JtYWxpemVkX3pwb3M7Cj4gICBz dHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGU7Cj4gCj4gCj4gQmFkOgo+ICAgLy8gV2UgZG9uJ3QgdXNlIHRoZSBiZWxvdyBhbnl3 YXksIHdlIG11c3QgdXNlIHRoZSBzcmMgYW5kIGRzdCByZWN0cy4uCj4gIMKgaW50MzJfdCBjcnRj X3g7Cj4gICBpbnQzMl90IGNydGNfeTsKPiAgIHVpbnQzMl90IGNydGNfdywgY3J0Y19oOwo+ICAg dWludDMyX3Qgc3JjX3g7Cj4gICB1aW50MzJfdCBzcmNfeTsKPiAgIHVpbnQzMl90IHNyY19oLCBz cmNfdzsKPiAKPiAgIC8vIFByb3BzIHdlIHNob3VsZCB1c2UgZnJvbSBtYXN0ZXIsIEkgdGhpbmsg d2UgY2FuIGlnbm9yZSBtb3N0IG9mIHRoaXMgYnkgY29weWluZyBpbnRlbF9wbGFuZV9zdGF0ZS0+ cGxhbmVfY3RsIC8gaW50ZWxfcGxhbmVfc3RhdGUtPnBsYW5lX2NvbG9yX2N0bCBmcm9tIHRoZSBt YXN0ZXIgcGxhbmUuCj4gICB1MTYgYWxwaGE7Cj4gICB1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4g wqAgdWludDE2X3QgcGl4ZWxfYmxlbmRfbW9kZTsKPiAgIGVudW0gZHJtX2NvbG9yX2VuY29kaW5n IGNvbG9yX2VuY29kaW5nOwo+ICAgZW51bSBkcm1fY29sb3JfcmFuZ2UgY29sb3JfcmFuZ2U7Cj4g Cj4gICBPbiBoZHIgcGxhbmVzIG9ubHksIHdlIHByb2dyYW0gdGhlIENTQywgc28gd2UgbmVlZCBz cGVjaWFsIGNhcmUgZm9yIHRob3NlIGluIHRoYXQgY2FzZToKPiAgIGVudW0gZHJtX2NvbG9yX2Vu Y29kaW5nIGNvbG9yX2VuY29kaW5nOwo+ICAgZW51bSBkcm1fY29sb3JfcmFuZ2UgY29sb3JfcmFu Z2U7Cj4gCj4gVWdseToKPiAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsgLy8gbWlnaHQgYmUgTlVM TAo+ICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7IC8vIGlzIE5VTEwsIG9yIGV2ZW4gd29y c2UgaXQgbWF5IHBvaW50IHRvIGEgZGlmZmVyZW50IEZCLCBzbyB0cmVhdCBhbnl0aGluZyB0b3Vj aGluZyBwbGFuZV9zdGF0ZS0+ZmIgd2l0aCBzdXNwaWNpb24KPiAKPiBTbyB0byBzdW0gaXQgYWxs IHVwLCB3ZSBuZWVkIHRvIGJlIHZlcnkgY2FyZWZ1bCBpbiBhIGxvdCBvZiBwbGFjZXMgdG8gaGFu ZGxlIGRldmlhdGluZyB2YWx1ZXMgY29ycmVjdGx5Li4KPiAKPiBNb3N0IGltcG9ydGFudCBvbmVz IGFyZSBjcnRjX3N0YXRlLT5hY3RpdmUgYW5kIGNydGNfc3RhdGUtPmVuYWJsZS4gRm9yIHBsYW5l cywgcGxhbmVfc3RhdGUtPmNydGMgbWlnaHQgYmUgbnVsbCwgYW5kIHBsYW5lX3N0YXRlLT5mYiBh bnl0aGluZy4gUGxhbmVzIGFyZSBlYXNpZXIgdG8gc29sdmUgdGhvdWdoLCBidXQgY3J0Y19zdGF0 ZSBpcyBhbGwgb3ZlciB0aGUgcGxhY2UuIDooCj4gCj4gCj4gCj4gfk1hYXJ0ZW4KPiAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==