From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kazlauskas, Nicholas" Subject: Re: [PATCH v2 2/3] drm: Add variable refresh property to DRM CRTC Date: Tue, 25 Sep 2018 09:51:37 -0400 Message-ID: References: <20180924181537.12092-1-nicholas.kazlauskas@amd.com> <20180924181537.12092-3-nicholas.kazlauskas@amd.com> <20180924183826.GX5565@intel.com> <4aa1583c-2be0-8cec-2857-6c3e489965b4@amd.com> <20180924202655.GA9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180924202655.GA9144-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Aric.Cyr-5C7GfCeVMHo@public.gmane.org, nicolai.haehnle-5C7GfCeVMHo@public.gmane.org, michel-otUistvHUpPR7s880joybQ@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Christian.Koenig-5C7GfCeVMHo@public.gmane.org, manasi.d.navare-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, daniel-/w4YWyX8dFk@public.gmane.org, Alexander.Deucher-5C7GfCeVMHo@public.gmane.org, harry.wentland-5C7GfCeVMHo@public.gmane.org, Marek.Olsak-5C7GfCeVMHo@public.gmane.org List-Id: dri-devel@lists.freedesktop.org T24gMDkvMjQvMjAxOCAwNDoyNiBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIE1vbiwg U2VwIDI0LCAyMDE4IGF0IDAzOjA2OjAyUE0gLTA0MDAsIEthemxhdXNrYXMsIE5pY2hvbGFzIHdy b3RlOgo+PiBPbiAwOS8yNC8yMDE4IDAyOjM4IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+ PiBPbiBNb24sIFNlcCAyNCwgMjAxOCBhdCAwMjoxNTozNlBNIC0wNDAwLCBOaWNob2xhcyBLYXps YXVza2FzIHdyb3RlOgo+Pj4+IFZhcmlhYmxlIHJlZnJlc2ggcmF0ZSBhbGdvcml0aG1zIGhhdmUg dHlwaWNhbGx5IGJlZW4gZW5hYmxlZCBvbmx5Cj4+Pj4gd2hlbiB0aGUgZGlzcGxheSBpcyBjb3Zl cmVkIGJ5IGEgc2luZ2xlIHNvdXJjZSBvZiBjb250ZW50Lgo+Pj4+Cj4+Pj4gVGhpcyBwYXRjaCBp bnRyb2R1Y2VzIGEgbmV3IGRlZmF1bHQgQ1JUQyBwcm9wZXJ0eSB0aGF0IGhlbHBzCj4+Pj4gaGlu dCB0byB0aGUgZHJpdmVyIHdoZW4gdGhlIENSVEMgY29tcG9zaXRpb24gaXMgc3VpdGFibGUgZm9y IHZhcmlhYmxlCj4+Pj4gcmVmcmVzaCByYXRlIGFsZ29yaXRobXMuIFVzZXJzcGFjZSBjYW4gc2V0 IHRoaXMgcHJvcGVydHkgZHluYW1pY2FsbHkKPj4+PiBhcyB0aGUgY29tcG9zaXRpb24gY2hhbmdl cy4KPj4+Pgo+Pj4+IFdoZXRoZXIgdGhlIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZSBhbGdvcml0aG1z IGFyZSBhY3RpdmUgd2lsbCBzdGlsbAo+Pj4+IGRlcGVuZCBvbiB0aGUgQ1JUQyBiZWluZyBzdWl0 YWJsZSBhbmQgdGhlIGNvbm5lY3RvciBiZWluZyBjYXBhYmxlCj4+Pj4gYW5kIGVuYWJsZWQgYnkg dGhlIHVzZXIgZm9yIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZSBzdXBwb3J0Lgo+Pj4+Cj4+Pj4gSXQg aXMgd29ydGggbm90aW5nIHRoYXQgd2hpbGUgdGhlIHByb3BlcnR5IGlzIGF0b21pYyBpdCBpc24n dCBmaWx0ZXJlZAo+Pj4+IGZyb20gbGVnYWN5IHVzZXJzcGFjZSBxdWVyaWVzLiBUaGlzIGFsbG93 cyBmb3IgWG9yZyB1c2Vyc3BhY2UgZHJpdmVycwo+Pj4+IHRvIGltcGxlbWVudCBzdXBwb3J0IGlu IG5vbi1hdG9taWMgc2V0dXBzLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogTmljaG9sYXMgS2F6 bGF1c2thcyA8bmljaG9sYXMua2F6bGF1c2thc0BhbWQuY29tPgo+Pj4+IC0tLQo+Pj4+ICAgIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDEgKwo+Pj4+ICAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyAgIHwgIDYgKysrKysrCj4+Pj4gICAgZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMgICAgICAgICAgfCAgMiArKwo+Pj4+ICAgIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZV9jb25maWcuYyAgIHwgIDYgKysrKysrCj4+Pj4gICAgaW5jbHVkZS9kcm0vZHJt X2NydGMuaCAgICAgICAgICAgICAgfCAxMyArKysrKysrKysrKysrCj4+Pj4gICAgaW5jbHVkZS9k cm0vZHJtX21vZGVfY29uZmlnLmggICAgICAgfCAgOCArKysrKysrKwo+Pj4+ICAgIDYgZmlsZXMg Y2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKPj4+PiBpbmRleCAzY2YxYWExMzI3NzguLmI3NjhkMzk3YTgxMSAxMDA2NDQKPj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4+Pj4gQEAgLTM0NzMsNiArMzQ3Myw3 IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4+Pj4gICAgCXN0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IGZhbHNlOwo+ Pj4+ICAgIAlzdGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gZmFsc2U7Cj4+Pj4gICAgCXN0YXRl LT5jb2xvcl9tZ210X2NoYW5nZWQgPSBmYWxzZTsKPj4+PiArCXN0YXRlLT52YXJpYWJsZV9yZWZy ZXNoX2NoYW5nZWQgPSBmYWxzZTsKPj4+Cj4+PiBBbm90aGVyIGJvb2wganVzdCB0byBjaGVjayBp ZiBvbmUgYm9vbCBjaGFuZ2VkIHNlZW1zIGEgYml0IGV4Y2Vzc2l2ZS4KPj4+IElzIHRoZXJlIGEg cmVhc29uIHlvdSBjYW4ndCBkaXJlY3RseSBjaGVjayBpZiB0aGUgb3RoZXIgYm9vbCBjaGFuZ2Vk Pwo+Pgo+PiBJdCdzIG5pY2UgZm9yIGFuIGF0b21pYyBkcml2ZXIgdG8gYmUgYWJsZSB0byBjaGVj ayBpZiB0aGUgcHJvcGVydHkgaGFzCj4+IGNoYW5nZWQgdG8gc3RlZXIgY29udHJvbCBmbG93Lgo+ Pgo+PiBUaGUgZHJpdmVyIGNvdWxkIGp1c3QgY2hlY2sgaWYgdGhlIG9sZCBjcnRjIHZhcmlhYmxl IHJlZnJlc2ggdmFsdWUgaXNuJ3QKPj4gZXF1YWwgdG8gdGhlIG5ldyBvbmUgaXRzZWxmLCBidXQg dGhlcmUncyBhbHJlYWR5IHByZWNlZGVudCBzZXQgdG8KPj4gcHJvdmlkZSBmbGFncyBsaWtlIHRo ZXNlIGluc3RlYWQuCj4gCj4gR2VuZXJhbGx5IHRoZSBjaGFuZ2VkIGZsYWdzIGFyZSBmb3IgbW9y ZSBjb21wbGljYXRlZCB0aGluZ3MuIE5vdAo+IHN1cmUgd2Ugd2FudCB0byBzdGFydCBhZGRpbmcg dGhlbSBmb3IgZXZlcnkgbGl0dGxlIHRoaW5nLiBUaG91Z2gKPiBJIHN1cHBvc2UgYWN0aXZlX2No YW5nZWQgYmxvd3MgYSBob2xlIGluIHRoYXQgdGhlb3J5Lgo+IAo+Pgo+PiBJdCBhbHNvIGxldHMg dGhlIGRyaXZlciBjaGFuZ2UgaXQgYXMgbmVlZGVkIGR1cmluZyBhdG9taWMgY29tbWl0cy4KPj4g WW91J2xsIHNlZSBtYW55IGRyaXZlcnMgbWFraW5nIHVzZSBvZiB0aGUgb3RoZXIgZmxhZ3MgbGlr ZQo+PiBjb25uZWN0b3JzX2NoYW5nZWQsIG1vZGVfY2hhbmdlZCwgZXRjLgo+Pgo+Pj4KPj4+IEFj dHVhbGx5IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aHkgdGhpcyBwZXItY3J0YyB0aGluZyBpcyBiZWlu ZyBhZGRlZCBhdAo+Pj4gYWxsLiBZb3UgYWxyZWFkeSBoYXZlIHRoZSBwcm9wIG9uIHRoZSBjb25u ZWN0b3IuIFdoeSBkbyB3ZSB3YW50IHRvCj4+PiBtYWtlIGxpZmUgbW9yZSBkaWZmaWN1bHQgYnkg cmVxdWlyaW5nIHRoZSB0aGluZyB0byBiZSBzZXQgb24gYm90aCB0aGUKPj4+IGNydGMgYW5kIGNv bm5lY3Rvcj8KPj4KPj4gSXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2Ugd2l0aG91dCBib3RoLgo+ Pgo+PiBUaGUgdXNlciBjYW4gZ2xvYmFsbHkgZW5hYmxlIG9yIGRpc2FibGUgdGhlIHZhcmlhYmxl X3JlZnJlc2hfZW5hYmxlZCBvbgo+PiB0aGUgY29ubmVjdG9yLiBUaGlzIGlzIHRoZSB1c2VyJ3Mg cHJlZmVyZW5jZS4KPj4KPj4gV2hhdCB0aGV5IGRvbid0IGNvbnRyb2wgaXMgdGhlIHZhcmlhYmxl X3JlZnJlc2ggLSB0aGUgY29udGVudCBoaW50IHRoYXQKPj4gdXNlcnNwYWNlIHNwZWNpZmllcyB3 aGVuIHRoZSBDUlRDIGNvbnRlbnRzIGFyZSBzdWl0YWJsZSBmb3IgZW5hYmxpbmcKPj4gdmFyaWFi bGUgcmVmcmVzaCBmZWF0dXJlcyAobGlrZSBhZGFwdGl2ZSBzeW5jKS4gVGhpcyBpcyB1c2Vyc3Bh Y2Uncwo+PiBwcmVmZXJlbmNlLgo+IAo+IEJ5IHVzZXJzcGFjZSBJIGd1ZXNzIHlvdSBtZWFuIHRo ZSBjb21wb3NpdG9yL2Rpc3BsYXkgc2VydmVyLiBJIGRvbid0Cj4gcmVhbGx5IHNlZSB3aHkgdGhl IGtlcm5lbCBoYXMgdG8gYmUgaW52b2x2ZWQgbGlrZSB0aGlzIGluIGEgdXNlcnNwYWNlCj4gcG9s aWN5IG1hdHRlci4gSWYgdGhlIGNvbXBvc2l0b3IgZG9lc24ndCB0aGluayB2cnIgaXMgYSBnb29k IGlkZWEgdGhlbgo+IGl0IGNvdWxkIHNpbXBseSBjaG9vc2UgdG8gZGlzYWJsZSB0aGUgcHJvcCBv biB0aGUgY29ubmVjdG9yIGV2ZW4gd2hlbgo+IHJlcXVlc3RlZCBieSBpdHMgY2xpZW50cy4KClRo ZSBwcm9wZXJ0aWVzIGFyZSBib3RoIGEga2VybmVsIGFuZCB1c2Vyc3BhY2UgQVBJIHNvIEkgdGhp bmsgaXQncyAKaW1wb3J0YW50IHRvIHRoaW5rIGFib3V0IHRoZSB1c2VjYXNlIGFuZCBBUEkgdXNh Z2UgZm9yIGJvdGguCgpJbiBhIERSTSBkcml2ZXIgdGhlIHZhcmlhYmxlIHJlZnJlc2ggY2FwYWJp bGl0eSB3aWxsIGJlIGRldGVybWluZWQgYnkgCmNvbm5lY3RvciB0eXBlIGFuZCB0aGUgZGlzcGxh eSB0aGF0J3MgY29ubmVjdGVkLiBUaGUgZHJpdmVyIG5lZWRzIGEgd2F5IAp0byB0cmFjayB0aGlz IGlmIGl0J3MgZ29pbmcgdG8gYmUgc2VuZGluZyBhbnkgc29ydCBvZiBwYWNrZXQgb3ZlciB0aGUg CmNvbm5lY3Rvci4gVGhlIGNhcGFiaWxpdHkgcHJvcGVydHkgcHJvdmlkZXMgYSBtZXRob2QgZm9y IHRoZSBkcml2ZXIgdG8gCmRvIHRoaXMgd2hpbGUgYWxzbyBleHBvc2luZyB0aGlzIGluZm9ybWF0 aW9uIHRvIHRoZSB1c2Vyc3BhY2UgZm9yIHF1ZXJ5aW5nLgoKVGhlIHZhcmlhYmxlX3JlZnJlc2hf ZW5hYmxlZCBwcm9wZXJ0eSBleGlzdHMgYmVjYXVzZSBub3QgYWxsIHVzZXJzIHdpbGwgCndhbnQg dGhpcyBmZWF0dXJlIGVuYWJsZWQuIEkgdGhpbmsgaXQgbWFrZXMgc2Vuc2UgdG8gcGxhY2UgdGhp cyAKYWxvbmdzaWRlIHRoZSBjYXBhYmlsaXR5IHByb3BlcnR5IG9uIHRoZSBjb25uZWN0b3IgYmVj YXVzZSBvZiB0aGVpciAKcmVsYXRpb24gYW5kIGJlY2F1c2Ugb2YgdGhlIGVhc2Ugb2YgYWNjZXNz IGZvciB0aGUgZW5kIHVzZXIgaW4gZXhpc3RpbmcgCnVzZXJzcGFjZSBzdGFja3MgLSB4cmFuZHIg bWFrZXMgdGhpcyBlYXN5LgoKVGhlIHZhcmlhYmxlX3JlZnJlc2ggQ1JUQyBwcm9wZXJ0eSBleGlz dHMgZm9yIGEgZmV3IHJlYXNvbnMuCgpVc2Vyc3BhY2UgbmVlZHMgYSBtZXRob2QgdmlhIHRoZSBh dG9taWMgQVBJIHRvIGxldCBhIERSTSBkcml2ZXIga25vdyAKdGhhdCBpdCB3YW50cyB2YXJpYWJs ZSBmcmFtZSB0aW1pbmcgdG8gYmUgZW5hYmxlZC4gVGhlIGNvbm5lY3RvciBlbmFibGUgCnByb3Bl cnR5IGNlcnRhaW5seSBzYXRpc2ZpZXMgdGhpcyBjb25kaXRpb24gLSBidXQgSSB0aGluayB0aGVy ZSBhcmUgCm90aGVyIHRvIHRha2UgaW50byBjb25zaWRlcmF0aW9uIGhlcmUuCgpXaGVuZXZlciBJ IG1lbnRpb25lZCB2YXJpYWJsZSByZWZyZXNoICJmZWF0dXJlcyIsIHdoYXQgSSByZWFsbHkgbWVh bnQgCndhcyBvcGVyYXRpbmcgaW4gb25lIG9mIHR3byBtb2RlczoKCigxKSBMZXR0aW5nIHRoZSBk cml2ZXIgYW5kIGhhcmR3YXJlIGFkanVzdCByZWZyZXNoIGF1dG9tYXRpY2FsbHkgYmFzZWQgCm9u IHRoZSBmbGlwIHJhdGUgb24gYSBDUlRDIGZyb20gYSBzaW5nbGUgYXBwbGljYXRpb24KCigyKSBT ZXR0aW5nIGEgZml4ZWQgZnJhbWUgZHVyYXRpb24gYmFzZWQgb24gdGhlIGZsaXAgcmF0ZSBvbiBh IENSVEMgZnJvbSAKYSBzaW5nbGUgYXBwbGljYXRpb24KCkluIGJvdGggY2FzZXMgdGhlIGltcG9y dGFudCB0aGluZyB0byBub3RlIGlzIHRoYXQgdGhleSdyZSBib3RoIGRlcGVuZGVudCAKb24gaG93 IG9mdGVuIGEgQ1JUQyBpcyBmbGlwcGluZy4gVGhlcmUncyBhbHNvIHRoZSAicmVxdWlyZW1lbnQi IGZvciAKc2luZ2xlIGFwcGxpY2F0aW9uIGluIGJvdGggY2FzZXMgLSBpZiB0aGVyZSBhcmUgbXVs dGlwbGUgYXBwbGljYXRpb25zIAppc3N1aW5nIGZsaXBzIHRoZW4gdGhlIGhhcmR3YXJlIGNhbid0 IGRldGVybWluZSB0aGUgY29ycmVjdCBjb250ZW50IApyYXRlLiBUaGUgcmVzdWx0aW5nIHVzZXIg ZXhwZXJpZW5jZSBpcyBnb2luZyB0byBiZSBuZWdhdGl2ZSBhcyB0aGUgCm1vbml0b3Igc2VlbWlu Z2x5IGFkanVzdHMgdG8gYSByYW5kb20gcmF0ZS4KCldpdGggdGhlIGV4aXN0aW5nIGtlcm5lbHNw YWNlIGFuZCB1c2Vyc3BhY2Ugc3RhY2tzIGEgRFJNIGRyaXZlciBjYW4ndCAKcmVhc29uYWJseSB1 bmRlcnN0YW5kIHdoZXRoZXIgYSBzaW5nbGUgYXBwbGljYXRpb24gaXMgZmxpcHBpbmcgb3Igbm90 IAphbmQgd2hhdCB2YXJpYWJsZSByZWZyZXNoICJtb2RlIiB0byBvcGVyYXRlIGluIC0gdGhlc2Ug Ym90aCBkZXBlbmQgb24gCndoYXQncyBoYXBwZW5pbmcgaW4gdXNlcnNwYWNlLgoKVGhlc2UgZmFj dG9ycyBhcmUgZGVjaWRlZCBpbiB1c2Vyc3BhY2Ugd2hlbiBpbnRlcmZhY2luZyB3aXRoIGEgRFJN IENSVEMuIApUaGUgdXNlcnNwYWNlIGludGVncmF0aW9uIHBhdGNoZXMgSSd2ZSBwb3N0ZWQgYWxv bmdzaWRlIHRoaXMgaW50ZXJmYWNlIApkZW1vbnN0cmF0ZSB0aGlzIHVzYWdlIC0gY2hlY2tzIGFy ZSBkb25lIGFnYWluc3QgYSBDUlRDIHRvIHNlZSBpZiB0aGUgCmFwcGxpY2F0aW9uIGZ1bGx5IGNv dmVycyB0aGUgc3VyZmFjZSBhbmQgdGhlIGF1dG9tYXRpYyBhZGp1c3RtZW50IG1vZGUgCmlzIG9u bHkgZW5hYmxlZCBmb3Igd2hlbiBmbGlwcyBhcmUgaXNzdWVkIGZvciB0aGUgQ1JUQyBvcmlnaW5h dGluZyBmcm9tIAp0aGF0IGFwcGxpY2F0aW9uLgoKRGV0ZXJtaW5pbmcgd2hpY2ggY29ubmVjdG9y cyB1c2UgdGhlIENSVEMgY2FuIGNlcnRhaW5seSBiZSBkb25lIGFuZCB0aGUgCnByb3BlcnR5IGNv dWxkIGJlIGNoYW5nZWQgdGhlcmUsIGJ1dCBJIGRvbid0IHRoaW5rIHRoaXMgbG9naWNhbGx5IApm b2xsb3dzIGZyb20gdGhlIEFQSSB1c2FnZSBkZXNjcmliZWQgYWJvdmUuCgpUaGUgcmVhc29uaW5n IGJlaGluZCB0aGlzIGJlaW5nIGEgZGVmYXVsdCBwcm9wZXJ0eSBvbiB0aGUgQ1JUQyBpcyB0aGF0 IEkgCmRvbid0IHRoaW5rIHVzZXJzcGFjZSBzaG91bGQgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHdo YXQncyBhY3R1YWxseSAKY29ubmVjdGVkIHVzaW5nIHRoZSBDUlRDLiBBIHVzZXIgY2FuIGhvdHBs dWcgZGlzcGxheXMgYXQgd2lsbCBvciAKZW5hYmxlL2Rpc2FibGUgdmFyaWFibGUgcmVmcmVzaCBz dXBwb3J0IHZpYSB0aGVpciBkaXNwbGF5J3MgT1NELiAKQ2FwYWJpbGl0aWVzIGNhbiBjaGFuZ2Ug YW5kIHRoaXMgaXMgb25seSBzb21ldGhpbmcgYSBkcml2ZXIgcmVhbGx5IG5lZWRzIAp0byBjb25j ZXJuIHRoZW1zZWx2ZXMgd2l0aCAtIHRoZSBkcml2ZXIgaXMgd2hhdCBzZW5kcyB0aGUgY29udHJv bCAKcGFja2V0cyB0byB0aGUgaGFyZHdhcmUuCgpJIHByb2JhYmx5IGNvdWxkIGhhdmUgZ29uZSBp bnRvIG1vcmUgZGV0YWlsIGFib3V0IHNvbWUgb2YgdGhpcyBpbiB0aGUgCmNvdmVyIGxldHRlciBp dHNlbGYgZm9yIHRoZXNlIHBhdGNoc2V0cy4gVGhlc2UgcGF0Y2hlcyB3ZXJlIGFjdHVhbGx5IGEg CmNvbm5lY3RvciBvbmx5IGludGVyZmFjZSBvcmlnaW5hbGx5IGJ1dCBldm9sdmVkIGFmdGVyIGRl dmVsb3BpbmcgdGhlIAphY3R1YWwgaW1wbGVtZW50YXRpb24uCgo+IAo+Pgo+PiBXaGVuIGJvdGgg cHJlZmVyZW5jZXMgYWdyZWUsIG9ubHkgdGhlbiB3aWxsIHZhcmlhYmxlIHJlZnJlc2ggZmVhdHVy ZXMgYmUKPj4gZW5hYmxlZC4KPj4KPj4gVGhlIHJlYXNvbmluZyBmb3IgdGhlIHNwbGl0IGlzIGJl Y2F1c2Ugbm90IGFsbCBjb250ZW50IGlzIHN1aXRhYmxlIGZvcgo+PiB2YXJpYWJsZSByZWZyZXNo LiBEZXNrdG9wIGVudmlyb25tZW50cywgd2ViIGJyb3dzZXJzLCBldGMgb25seSB0eXBpY2FsbHkK Pj4gZmxpcCB3aGVuIG5lZWRlZCAtIHdoaWNoIHdpbGwgcmVzdWx0IGluIGRpc3BsYXkgZmxpY2tl cmluZy4KPj4KPj4gVGhlIHVzZXJzcGFjZSBpbnRlZ3JhdGlvbiBhcyBwYXJ0IG9mIHRoZXNlIHBh dGNoZXMgZGVtb25zdHJhdGVzIGVuYWJsaW5nCj4+IHZhcmlhYmxlX3JlZnJlc2ggb24gdGhlIENS VEMgc2VsZWN0aXZlbHkuCj4+Cj4+Pgo+Pj4+ICAgIAlzdGF0ZS0+enBvc19jaGFuZ2VkID0gZmFs c2U7Cj4+Pj4gICAgCXN0YXRlLT5jb21taXQgPSBOVUxMOwo+Pj4+ICAgIAlzdGF0ZS0+ZXZlbnQg PSBOVUxMOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBp LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPj4+PiBpbmRleCAwYmIyN2Ey NGE1NWMuLjMyYTRjZjhhMDFjMyAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY191YXBpLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBp LmMKPj4+PiBAQCAtNDMzLDYgKzQzMywxMCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY3J0Y19z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4+ICAgIAkJcmV0ID0gZHJtX2F0 b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0YXRlLCBtb2RlKTsKPj4+PiAgICAJCWRybV9w cm9wZXJ0eV9ibG9iX3B1dChtb2RlKTsKPj4+PiAgICAJCXJldHVybiByZXQ7Cj4+Pj4gKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF92YXJpYWJsZV9yZWZyZXNoKSB7Cj4+Pj4g KwkJaWYgKHN0YXRlLT52YXJpYWJsZV9yZWZyZXNoICE9IHZhbCkKPj4+PiArCQkJc3RhdGUtPnZh cmlhYmxlX3JlZnJlc2hfY2hhbmdlZCA9IHRydWU7Cj4+Pj4gKwkJc3RhdGUtPnZhcmlhYmxlX3Jl ZnJlc2ggPSB2YWw7Cj4+Pj4gICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kZWdh bW1hX2x1dF9wcm9wZXJ0eSkgewo+Pj4+ICAgIAkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3By b3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCj4+Pj4gICAgCQkJCQkmc3RhdGUtPmRlZ2FtbWFfbHV0 LAo+Pj4+IEBAIC00OTEsNiArNDk1LDggQEAgZHJtX2F0b21pY19jcnRjX2dldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4gICAgCQkqdmFsID0gc3RhdGUtPmFjdGl2ZTsKPj4+ PiAgICAJZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX21vZGVfaWQpCj4+Pj4gICAg CQkqdmFsID0gKHN0YXRlLT5tb2RlX2Jsb2IpID8gc3RhdGUtPm1vZGVfYmxvYi0+YmFzZS5pZCA6 IDA7Cj4+Pj4gKwllbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfdmFyaWFibGVfcmVm cmVzaCkKPj4+PiArCQkqdmFsID0gc3RhdGUtPnZhcmlhYmxlX3JlZnJlc2g7Cj4+Pj4gICAgCWVs c2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ZGVnYW1tYV9sdXRfcHJvcGVydHkpCj4+Pj4gICAg CQkqdmFsID0gKHN0YXRlLT5kZWdhbW1hX2x1dCkgPyBzdGF0ZS0+ZGVnYW1tYV9sdXQtPmJhc2Uu aWQgOiAwOwo+Pj4+ICAgIAllbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmN0bV9wcm9wZXJ0 eSkKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2NydGMuYwo+Pj4+IGluZGV4IDVmNDg4YWE4MGJjZC4uY2EzM2Q2ZmI5MGFj IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPj4+PiBAQCAtMzQwLDYgKzM0MCw4IEBAIGludCBk cm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPj4+PiAgICAJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjcnRj LT5iYXNlLCBjb25maWctPnByb3BfbW9kZV9pZCwgMCk7Cj4+Pj4gICAgCQlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwKPj4+PiAgICAJCQkJCSAgIGNvbmZpZy0+cHJvcF9v dXRfZmVuY2VfcHRyLCAwKTsKPj4+PiArCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0 Yy0+YmFzZSwKPj4+PiArCQkJCQkgICBjb25maWctPnByb3BfdmFyaWFibGVfcmVmcmVzaCwgMCk7 Cj4+Pj4gICAgCX0KPj4+PiAgICAKPj4+PiAgICAJcmV0dXJuIDA7Cj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f bW9kZV9jb25maWcuYwo+Pj4+IGluZGV4IGVlODA3ODhmMmM0MC4uMTI4N2MxNjFkNjVkIDEwMDY0 NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwo+Pj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwo+Pj4+IEBAIC0zMTAsNiArMzEwLDEy IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPj4+PiAgICAJCXJldHVybiAtRU5PTUVNOwo+Pj4+ICAgIAlkZXYt Pm1vZGVfY29uZmlnLnByb3BfbW9kZV9pZCA9IHByb3A7Cj4+Pj4gICAgCj4+Pj4gKwlwcm9wID0g ZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGRldiwgMCwKPj4+PiArCQkJIlZBUklBQkxFX1JFRlJF U0giKTsKPj4+PiArCWlmICghcHJvcCkKPj4+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4+PiArCWRl di0+bW9kZV9jb25maWcucHJvcF92YXJpYWJsZV9yZWZyZXNoID0gcHJvcDsKPj4+PiArCj4+Pj4g ICAgCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwKPj4+PiAgICAJCQlEUk1fTU9ERV9Q Uk9QX0JMT0IsCj4+Pj4gICAgCQkJIkRFR0FNTUFfTFVUIiwgMCk7Cj4+Pj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4+Pj4gaW5k ZXggYjIxNDM3YmM5NWJmLi4zMmI3N2YxOGNlNmQgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2NydGMuaAo+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPj4+PiBAQCAt MTY4LDYgKzE2OCwxMiBAQCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgewo+Pj4+ICAgIAkgKiBkcml2 ZXJzIHRvIHN0ZWVyIHRoZSBhdG9taWMgY29tbWl0IGNvbnRyb2wgZmxvdy4KPj4+PiAgICAJICov Cj4+Pj4gICAgCWJvb2wgY29sb3JfbWdtdF9jaGFuZ2VkIDogMTsKPj4+PiArCS8qKgo+Pj4+ICsJ ICogQHZhcmlhYmxlX3JlZnJlc2hfY2hhbmdlZDogVmFyaWFibGUgcmVmcmVzaCBzdXBwb3J0IGhh cyBjaGFuZ2VkCj4+Pj4gKwkgKiBvbiB0aGUgQ1JUQy4gVXNlZCBieSB0aGUgYXRvbWljIGhlbHBl cnMgYW5kIGRyaXZlcnMgdG8gc3RlZXIgdGhlCj4+Pj4gKwkgKiBhdG9taWMgY29tbWl0IGNvbnRy b2wgZmxvdy4KPj4+PiArCSAqLwo+Pj4+ICsJYm9vbCB2YXJpYWJsZV9yZWZyZXNoX2NoYW5nZWQg OiAxOwo+Pj4+ICAgIAo+Pj4+ICAgIAkvKioKPj4+PiAgICAJICogQG5vX3ZibGFuazoKPj4+PiBA QCAtMjkwLDYgKzI5NiwxMyBAQCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgewo+Pj4+ICAgIAkgKi8K Pj4+PiAgICAJdTMyIHBhZ2VmbGlwX2ZsYWdzOwo+Pj4+ICAgIAo+Pj4+ICsJLyoqCj4+Pj4gKwkg KiBAdmFyaWFibGVfcmVmcmVzaDoKPj4+PiArCSAqCj4+Pj4gKwkgKiBJbmRpY2F0ZXMgd2hldGhl ciB0aGUgQ1JUQyBpcyBzdWl0YWJsZSBmb3IgdmFyaWFibGUgcmVmcmVzaCByYXRlLgo+Pj4+ICsJ ICovCj4+Pj4gKwlib29sIHZhcmlhYmxlX3JlZnJlc2g7Cj4+Pj4gKwo+Pj4+ICAgIAkvKioKPj4+ PiAgICAJICogQGV2ZW50Ogo+Pj4+ICAgIAkgKgo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4+Pj4g aW5kZXggOTI4ZTQxNzJhMGJiLi4xMjkwMTkxY2Q5NmUgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9j b25maWcuaAo+Pj4+IEBAIC02MzksNiArNjM5LDE0IEBAIHN0cnVjdCBkcm1fbW9kZV9jb25maWcg ewo+Pj4+ICAgIAkgKiBjb25uZWN0b3JzIG11c3QgYmUgb2YgYW5kIGFjdGl2ZSBtdXN0IGJlIHNl dCB0byBkaXNhYmxlZCwgdG9vLgo+Pj4+ICAgIAkgKi8KPj4+PiAgICAJc3RydWN0IGRybV9wcm9w ZXJ0eSAqcHJvcF9tb2RlX2lkOwo+Pj4+ICsJLyoqCj4+Pj4gKwkgKiBAcHJvcF92YXJpYWJsZV9y ZWZyZXNoOiBEZWZhdWx0IGF0b21pYyBDUlRDIHByb3BlcnR5IHRvIGluZGljYXRlCj4+Pj4gKwkg KiB3aGV0aGVyIHRoZSBDUlRDIGlzIHN1aXRhYmxlIGZvciB2YXJpYWJsZSByZWZyZXNoIHJhdGUg c3VwcG9ydC4KPj4+PiArCSAqCj4+Pj4gKwkgKiBUaGlzIGlzIG9ubHkgYW4gaW5kaWNhdGlvbiBv ZiBzdXBwb3J0LCBub3Qgd2hldGhlciB2YXJpYWJsZQo+Pj4+ICsJICogcmVmcmVzaCBpcyBhY3Rp dmUgb24gdGhlIENSVEMuCj4+Pj4gKwkgKi8KPj4+PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnBy b3BfdmFyaWFibGVfcmVmcmVzaDsKPj4+PiAgICAKPj4+PiAgICAJLyoqCj4+Pj4gICAgCSAqIEBk dmlfaV9zdWJjb25uZWN0b3JfcHJvcGVydHk6IE9wdGlvbmFsIERWSS1JIHByb3BlcnR5IHRvCj4+ Pj4gLS0gCj4+Pj4gMi4xOS4wCj4+Pgo+Pgo+PiBOaWNob2xhcyBLYXpsYXVza2FzCj4gCgpOaWNo b2xhcyBLYXpsYXVza2FzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=