From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kazlauskas, Nicholas" Subject: Re: [PATCH 1/9] drm: Add variable refresh rate properties to DRM connector Date: Tue, 11 Sep 2018 14:16:34 -0400 Message-ID: References: <20180911161333.5334-1-nicholas.kazlauskas@amd.com> <20180911161333.5334-2-nicholas.kazlauskas@amd.com> <20180911162243.GN5565@intel.com> <20180911163119.GO5565@intel.com> <20180911175637.GP5565@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180911175637.GP5565-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx 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 T24gMDkvMTEvMjAxOCAwMTo1NiBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIFR1ZSwg U2VwIDExLCAyMDE4IGF0IDAxOjM2OjAxUE0gLTA0MDAsIEthemxhdXNrYXMsIE5pY2hvbGFzIHdy b3RlOgo+PiBPbiAwOS8xMS8yMDE4IDEyOjMxIFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+ PiBPbiBUdWUsIFNlcCAxMSwgMjAxOCBhdCAwNzoyMjo0M1BNICswMzAwLCBWaWxsZSBTeXJqw6Rs w6Qgd3JvdGU6Cj4+Pj4gT24gVHVlLCBTZXAgMTEsIDIwMTggYXQgMTI6MTM6MjVQTSAtMDQwMCwg TmljaG9sYXMgS2F6bGF1c2thcyB3cm90ZToKPj4+Pj4gTW9kZXJuIG1vbml0b3IgaGFyZHdhcmUg aXMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZXMKPj4+Pj4gYW5k IGFkYXB0aXZlIHN5bmMgdGVjaG5vbG9naWVzLiBUaGUgcHJvcGVydGllcyBmb3IgcXVlcnlpbmcg YW5kCj4+Pj4+IGNvbnRyb2xsaW5nIHRoZXNlIGZlYXR1cmVzIHNob3VsZCBiZSBleHBvc2VkIG9u IHRoZSBEUk0gY29ubmVjdG9yLgo+Pj4+Pgo+Pj4+PiBUaGlzIHBhdGNoIGludHJvZHVjZXMgdHdv IG5ldyBwcm9wZXJ0aWVzIGZvciB2YXJpYWJsZSByZWZyZXNoIHJhdGUKPj4+Pj4gc3VwcG9ydDoK Pj4+Pj4KPj4+Pj4gLSB2YXJpYWJsZV9yZWZyZXNoX2NhcGFibGUKPj4+Pj4gLSB2YXJpYWJsZV9y ZWZyZXNoX2VuYWJsZWQKPj4+Pj4KPj4+Pj4gVGhlc2UgYXJlIG9wdGlvbmFsIHByb3BlcnRpZXMg dGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBEUk0gY29ubmVjdG9yCj4+Pj4+IGR5bmFtaWNhbGx5IGJ5 IHVzaW5nIGRybV9jb25uZWN0b3JfYXR0YWNoX3ZhcmlhYmxlX3JlZnJlc2hfcHJvcGVydGllcy4K Pj4+Pj4KPj4+Pj4gRFJNIGRyaXZlcnMgc2hvdWxkIHNldCB2YXJpYWJsZV9yZWZyZXNoX2NhcGFi bGUgYXMgYXBwbGljYWJsZSBmb3IKPj4+Pj4gdGhlaXIgaGFyZHdhcmUuIFRoZSBwcm9wZXJ0eSB2 YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWQgYXMgYSB1c2Vyc3BhY2UKPj4+Pj4gY29udHJvbGxlZCBv cHRpb24uCj4+Pj4+Cj4+Pj4+IENoYW5nZS1JZDogSTVmNjBmOGI1NzUzNGUxZDNkYWNkYTRjNjRj NmM5MTA2YjQyZjQ0MzkKPj4+Pj4gU2lnbmVkLW9mZi1ieTogTmljaG9sYXMgS2F6bGF1c2thcyA8 bmljaG9sYXMua2F6bGF1c2thc0BhbWQuY29tPgo+Pj4+PiAtLS0KPj4+Pj4gICAgZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYyAgICB8ICA5ICsrKysrKysrKwo+Pj4+PiAgICBkcml2ZXJzL2dw dS9kcm0vZHJtX2Nvbm5lY3Rvci5jIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4+Pj4+ICAgIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgfCAyNyArKysrKysr KysrKysrKysrKysrKysrKysrCj4+Pj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9u cygrKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4+Pj4gaW5kZXggZDA0NzhhYmMwMWJk Li4yZjg5YWIwZmFjODcgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+Pj4+PiBAQCAt MTQwMyw2ICsxNDAzLDExIEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+Pj4+ICAgIAkJc3RhdGUt PmNvbnRlbnRfdHlwZSA9IHZhbDsKPj4+Pj4gICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29u bmVjdG9yLT5zY2FsaW5nX21vZGVfcHJvcGVydHkpIHsKPj4+Pj4gICAgCQlzdGF0ZS0+c2NhbGlu Z19tb2RlID0gdmFsOwo+Pj4+PiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT52 YXJpYWJsZV9yZWZyZXNoX2NhcGFibGVfcHJvcGVydHkpIHsKPj4+Pj4gKwkJRFJNX0RFQlVHX0tN Uygib25seSBkcml2ZXJzIGNhbiBzZXQgdmFyaWFibGVfcmVmcmVzaF9jYXBhYmxlXG4iKTsKPj4+ Pj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+Pj4KPj4+PiBXaHkgaXMgdGhhdCBuZWVkZWQ/IFdoeSBu b3QganVzdCBhdm9pZCBleHBvc2luZyB0aGUgdnJyX2VuYWJsZWQgcHJvcAo+Pj4+IHdoZW4gaXQn cyBub3Qgc3VwcG9ydGVkPwo+Pj4KPj4+IEFoLCBJIGd1ZXNzIHlvdSB3YW50IHRvIGNoYW5nZSB0 aGUgdmFsdWUgYWZ0ZXIgcGx1Z2dpbmcgaW4gYSBuZXcKPj4+IGRpc3BsYXkuIFllYWgsIGlmIHdl IGRvbid0IHdhbnQgdXNlcnNwYWNlIHRvIGhhdmUgdG8gcGFyc2UgdGhlIEVESUQgSQo+Pj4gZ3Vl c3Mgd2UgbmVlZCB0aGlzLiBCdXQgaW4gdGhhdCBjYXNlIGl0IHNob3VsZCBiZSBtYXJrZWQgaW1t dXRhYmxlLAo+Pj4gYW5kIHRoZW4geW91IGRvbid0IG5lZWQgYW55IG9mIHRoaXMgYXRvbWljIHN0 YXRlIHJlbGF0ZWQgY29kZSBmb3IgaXQuCj4+Cj4+IFllYWgsIGl0J3MgZm9yIGhvdHBsdWdnaW5n IHRoYXQgaXQgd29ya3MgdGhpcyB3YXkuIFRoZSByZWFzb24gaXQncyBub3QKPj4gbWFya2VkIGFz IGltbXV0YWJsZSBpcyBtb3N0bHkgY29udmVudGlvbiAtIHRoZSBleGlzdGluZyBkcml2ZXIKPj4g d3JpdGUtb25seSBwcm9wZXJ0aWVzICh3aXRoIHVzZXJzcGFjZSBxdWVyaWVzKSBkbyB0aGUgc2Ft ZSB0aGluZy4KPj4KPj4gVGhlIGltbXV0YWJsZSBwcm9wZXJ0eSBmbGFnIGlzIG9ubHkgdXNlZCBm b3Igbm9uLWNvbm5lY3RvciBwcm9wZXJ0aWVzLgo+IAo+IFRoZXJlIGFyZSBwbGVudHkgb2YgaW1t dXRhYmxlIGNvbm5lY3RvciBwcm9wZXJ0aWVzOiBFRElELCBUSUxFLAo+IG5vbi1kZXNrdG9wLCBl dGMuIEknbSBwcmV0dHkgc3VyZSB0aGVyZSBhcmUgbW9yZSBpbW11dGFibGUgY29ubmVjdG9yCj4g cHJvcGVydGllcyB0aGFuIHRoZXJlIGFyZSBpbW11dGFibGUgcHJvcGVydGllcyBvbiBvdGhlciB0 eXBlcyBvZgo+IG9iamVjdHMuIEFuZCBjb25zaWRlcmluZyBpbW11dGFibGUgY29ubmVjdG9yIHBy b3BlcnRpZXMgZXhpc3RlZAo+IGJlZm9yZSBvdGhlciB0eXBlcyBvZiBvYmplY3RzIGV2ZW4gaGFk IGFueSBwcm9wZXJ0aWVzIEknZCBzYXkKPiBpdCdzIHdlbGwgZXN0YWJsaXNoZWQgYnkgbm93IDop CgpJIHdlbnQgYmFjayBhbmQgY2hlY2tlZCBhbmQgSSBndWVzcyB5b3Ugd2VyZSByaWdodCBhbmQg bW9zdCBjb25uZWN0b3IgCnByb3BlcnRpZXMgaGF2ZSB0aGlzIG9uIHRoZW0uIE5vdCBzdXJlIHdo YXQgcGFydCBvZiB0aGUgY29kZSBJIHdhcyAKdGhpbmtpbmcgYmFjayBvbi4KCj4gCj4+IER1cmlu ZyB0ZXN0aW5nIEkgYWxzbyBub3RpY2VkIHRoYXQgc29tZXRoaW5nIGxpa2VzIHRvIGNhY2hlIHRo ZSBpbml0aWFsCj4+IGRlZmF1bHQgdmFsdWUgZm9yIHRoZXNlIGltbXV0YWJsZSBmbGFnZ2VkIHBy b3BlcnRpZXMgZm9yIHVzZXJzcGFjZQo+PiBxdWVyaWVzIC0gc28gd2hlbiB5b3UgY2FsbCB4cmFu ZHIgeW91IG9ubHkgZW5kIHVwIHNlZWluZyB0aGUgZGVmYXVsdAo+PiB2YWx1ZSBhbmQgbm90IHRo ZSBjdXJyZW50ID4KPiAneHJhbmRyIC0tY3VycmVudCcgaXMgc3VwcG9zZWQgdG8gbm90IHByb2Jl IGhhcmQgZm9yIG5ldyBzdHVmZi4gV2l0aG91dAo+IHRoZSAtLWN1cnJlbnQgaXQgbWF5IG9yIG1h eSBub3QgcmVzdWx0IGluIGEgZnVsbCBwcm9iZSBkZXBlbmRpbmcgb24gdGhlCj4gaW1wbGVtZW50 YXRpb24gaW4gdGhlIGRkeCBhbmQgb3IgdGhlIGttcyBkcml2ZXIuIEEgZnVsbCBwcm9iZSBzaG91 bGQKPiBkZWZpbml0ZWx5IGhhcHBlbiBhZnRlciBhIGhvdHBsdWcuIElmIGl0J3Mgbm90IGhhcHBl bmluZyB0aGVuIHRoZXJlIGlzCj4gYSBidWcgc29tZXdoZXJlLgoKVGhpcyBtaWdodCBiZSBhIGJ1 ZyB0aGVuIHNpbmNlIEkgZG9uJ3QgdXNlIHRoZSAtLWN1cnJlbnQgZmxhZyAoYW5kIGl0IApleGhp Yml0cyB0aGUgc2FtZSBpc3N1ZSB3aXRoIGl0KS4gSSBqdXN0IHRlc3RlZCB0aGlzIGFnYWluIHdp dGggdGhlIApEUk1fTU9ERV9QUk9QX0lNTVVUQUJMRSBmbGFnIHNldCBhbmQgaXQgc2hvd3MgdXAg YXMgMCBmb3IgbW9uaXRvcnMgdGhhdCAKc3VwcG9ydCBpdCAoZXZlbiB0aG91Z2ggaXQncyBzZXQg aW4ga2VybmVsc3BhY2UgdG8gMSkuCgo+IAo+Pgo+Pj4KPj4+Pgo+Pj4+PiArCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29ubmVjdG9yLT52YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWRfcHJvcGVydHkp IHsKPj4+Pj4gKwkJc3RhdGUtPnZhcmlhYmxlX3JlZnJlc2hfZW5hYmxlZCA9IHZhbDsKPj4+Pgo+ Pj4+IFNvIG9uZSB0aGluZyBJIGFscmVhZHkgYXNrZWQgbG9uZyBhZ28gaXMgd2hldGhlciB0aGVy ZSB3b3VsZCBhIHBvaW50IGluCj4+Pj4gZXhwb3Npbmcgc29tZSBraW5kIG9mIG1pbi9tYXggcmVm cmVzaCByYXRlIHJhbmdlIGNvbnRyb2wuIE5ldmVyIHJlYWxseQo+Pj4+IGdvdCBhbiBhbnN3ZXIu IFdhcyBzb21laHRpbmcgbGlrZSB0aGF0IGNvbnNpZGVyZWQgYW5kIHJlamVjdGVkPwo+Pgo+PiBG b3IgdGhlIGluaXRpYWwgcGF0Y2hzZXQgaXQgc2VlbWVkIGJlc3QgdG8ga2VlcCB0aGluZ3Mgc2lt cGxlIGFuZCB0YXJnZXQKPj4gdGhlIGR5bmFtaWMgYWRhcHRhdGlvbiB1c2VjYXNlIHdpdGggb24v b2ZmIHRvZ2dsZS4KPj4KPj4gVGhlIGRyaXZlciBoYXZpbmcgYWNjZXNzIHRvIHRoZSBmdWxsIHJh bmdlIGNhbiBlbmFibGUgYWRkaXRpb25hbAo+PiBmdW5jdGlvbmFsaXR5IHRoYXQgY2FuIGltcHJv dmUgdGhlIHVzZXIgZXhwZXJpZW5jZSAtIGEgZ29vZCBleGFtcGxlIGlzCj4+IGxvdyBmcmFtZXJh dGUgY29tcGVuc2F0aW9uLgo+Pgo+PiBBZGRpbmcgdGhlIHByb3BlcnRpZXMgdG8gc3VwcG9ydCBz ZXR0aW5nIHRoZSBtaW4vbWF4IGNvdWxkIGJlIGRvbmUgb24KPj4gdG9wIG9mIHRoaXMsIGhvd2V2 ZXIuIERyaXZlciBiZWhhdmlvciB3b3VsZCBsaWtlbHkgbmVlZCB0byBiZSBkZWZpbmVkCj4+IGZv ciBhdG9taWMgY2hlY2suIFRoZSBkcml2ZXIgbmVlZHMgdG8gdmVyaWZ5IHdpdGggdGhlIG1vbml0 b3IgdGhhdCB0aGUKPj4gcmFuZ2VzIGFyZSB2YWxpZCBhdCBzb21lIHBvaW50IC0gd2hldGhlciBp dCBzaWxlbnRseSBmYWlscyBvciByZXR1cm5zIGFuCj4+IGVycm9yIGlzIGFuIGV4YW1wbGUgb2Yg c29tZXRoaW5nIHRvIGNvbnNpZGVyIGhlcmUuCj4+Cj4+IERvIHlvdSBoYXZlIGEgc3BlY2lmaWMg dXNlY2FzZSBpbiBtaW5kIHRoYXQgbmVlZHMgbWluL21heCBleHBvc2VkIHRvCj4+IHVzZXJzcGFj ZT8KPiAKPiBOb3QgcmVhbGx5LiBTb21lIHZhZ3VlIGlkZWFzIGFib3V0IHZpZGVvIHBsYXliYWNr IGFuZCBzdWNoLCBhbmQgbWF5YmUKPiBqdXN0IGZvciBwb3dlciBzYXZpbmcuIEl0IHdhcyBqdXN0 IGFuIGlkZWEgdGhhdCBvY2N1cnJlZCB0byBtZSB3aGVuCj4gdGhpbmtpbmcgYWJvdXQgdGhpcyBz dHVmZi4gQWx0aG91Z2ggSSBzdXBwb3NlIHRoZSBjb21wb3NpdG9yIGNvdWxkCj4gYWx3YXlzIHRo cm90dGxlIHRoZSBmbGlwIHJhdGUgdXNpbmcgb3RoZXIgbWVhbnMuIEFuZCBpbiB0bmUgZW5kIGl0 Cj4gY29tZXMgZG93biB0byBhIHBvbGljeSBxdWVzdGlvbiBvZiBob3cgdGhlIGNvbXBvc2l0b3Ig d291bGQgZGVjaWRlCj4gd2hhdCB0aGUgYWxsb3dlZCByYW5nZSBpcy4KPiAKPj4KPj4+Pgo+Pj4+ PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVjdGlv bl9wcm9wZXJ0eSkgewo+Pj4+PiAgICAJCWlmICh2YWwgPT0gRFJNX01PREVfQ09OVEVOVF9QUk9U RUNUSU9OX0VOQUJMRUQpIHsKPj4+Pj4gICAgCQkJRFJNX0RFQlVHX0tNUygib25seSBkcml2ZXJz IGNhbiBzZXQgQ1AgRW5hYmxlZFxuIik7Cj4+Pj4+IEBAIC0xNTA4LDYgKzE1MTMsMTAgQEAgZHJt X2F0b21pY19jb25uZWN0b3JfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4+Pj4+ICAgIAkJKnZhbCA9IHN0YXRlLT5jb250ZW50X3R5cGU7Cj4+Pj4+ICAgIAl9 IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+c2NhbGluZ19tb2RlX3Byb3BlcnR5KSB7 Cj4+Pj4+ICAgIAkJKnZhbCA9IHN0YXRlLT5zY2FsaW5nX21vZGU7Cj4+Pj4+ICsJfSBlbHNlIGlm IChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnZhcmlhYmxlX3JlZnJlc2hfY2FwYWJsZV9wcm9wZXJ0 eSkgewo+Pj4+PiArCQkqdmFsID0gc3RhdGUtPnZhcmlhYmxlX3JlZnJlc2hfY2FwYWJsZTsKPj4+ Pj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVzaF9l bmFibGVkX3Byb3BlcnR5KSB7Cj4+Pj4+ICsJCSp2YWwgPSBzdGF0ZS0+dmFyaWFibGVfcmVmcmVz aF9lbmFibGVkOwo+Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPmNv bnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSkgewo+Pj4+PiAgICAJCSp2YWwgPSBzdGF0ZS0+Y29u dGVudF9wcm90ZWN0aW9uOwo+Pj4+PiAgICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWct PndyaXRlYmFja19mYl9pZF9wcm9wZXJ0eSkgewo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMK Pj4+Pj4gaW5kZXggNjAxMWQ3NjlkNTBiLi4zN2ZiMzNmYTc3YjkgMTAwNjQ0Cj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4+PiBAQCAtMTI1MCw2ICsxMjUwLDQxIEBAIGludCBkcm1f bW9kZV9jcmVhdGVfc2NhbGluZ19tb2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+Pj4+ICAgIH0KPj4+Pj4gICAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jcmVhdGVfc2NhbGlu Z19tb2RlX3Byb3BlcnR5KTsKPj4+Pj4gICAgCj4+Pj4+ICsvKioKPj4+Pj4gKyAqIGRybV9jb25u ZWN0b3JfYXR0YWNoX3ZhcmlhYmxlX3JlZnJlc2hfcHJvcGVydGllcyAtIGNyZWF0ZXMgYW5kIGF0 dGFjaGVzCj4+Pj4+ICsgKiBwcm9wZXJ0aWVzIGZvciBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBh ZGFwdGl2ZSByZWZyZXNoCj4+Pj4+ICsgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gY3JlYXRl IGFkYXB0aXZlIHJlZnJlc2ggcHJvcGVydGllcyBvbgo+Pj4+PiArICovCj4+Pj4+ICtpbnQgZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfdmFyaWFibGVfcmVmcmVzaF9wcm9wZXJ0aWVzKAo+Pj4+PiArCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4+Pj4+ICt7Cj4+Pj4+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+Pj4+PiArCXN0cnVjdCBkcm1fcHJvcGVy dHkgKnByb3A7Cj4+Pj4+ICsKPj4+Pj4gKwlpZiAoIWNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVz aF9jYXBhYmxlX3Byb3BlcnR5KSB7Cj4+Pj4+ICsJCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRl X2Jvb2woZGV2LCAwLAo+Pj4+PiArCQkJInZhcmlhYmxlX3JlZnJlc2hfY2FwYWJsZSIpOwo+Pj4+ PiArCQlpZiAoIXByb3ApCj4+Pj4+ICsJCQlyZXR1cm4gLUVOT01FTTsKPj4+Pj4gKwo+Pj4+PiAr CQljb25uZWN0b3ItPnZhcmlhYmxlX3JlZnJlc2hfY2FwYWJsZV9wcm9wZXJ0eSA9IHByb3A7Cj4+ Pj4+ICsJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsIHByb3As IDApOwo+Pj4+PiArCX0KPj4+Pj4gKwo+Pj4+PiArCWlmICghY29ubmVjdG9yLT52YXJpYWJsZV9y ZWZyZXNoX2VuYWJsZWRfcHJvcGVydHkpIHsKPj4+Pj4gKwkJcHJvcCA9IGRybV9wcm9wZXJ0eV9j cmVhdGVfYm9vbChkZXYsIDAsCj4+Pj4+ICsJCQkidmFyaWFibGVfcmVmcmVzaF9lbmFibGVkIik7 Cj4+Pj4+ICsJCWlmICghcHJvcCkKPj4+Pj4gKwkJCXJldHVybiAtRU5PTUVNOwo+Pj4+PiArCj4+ Pj4+ICsJCWNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVzaF9lbmFibGVkX3Byb3BlcnR5ID0gcHJv cDsKPj4+Pj4gKwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwg cHJvcCwgMCk7Cj4+Pj4+ICsJfQo+Pj4+PiArCj4+Pj4+ICsJcmV0dXJuIDA7Cj4+Pj4+ICt9Cj4+ Pj4+ICtFWFBPUlRfU1lNQk9MKGRybV9jb25uZWN0b3JfYXR0YWNoX3ZhcmlhYmxlX3JlZnJlc2hf cHJvcGVydGllcyk7Cj4+Pj4+ICsKPj4+Pj4gICAgLyoqCj4+Pj4+ICAgICAqIGRybV9jb25uZWN0 b3JfYXR0YWNoX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eSAtIGF0dGFjaCBhdG9taWMgc2NhbGluZyBt b2RlIHByb3BlcnR5Cj4+Pj4+ICAgICAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBhdHRhY2gg c2NhbGluZyBtb2RlIHByb3BlcnR5IG9uLgo+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+Pj4+IGluZGV4 IDk3ZWE0MWRjNjc4Zi4uMTA1YTEyN2U5MTkxIDEwMDY0NAo+Pj4+PiAtLS0gYS9pbmNsdWRlL2Ry bS9kcm1fY29ubmVjdG9yLmgKPj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5o Cj4+Pj4+IEBAIC00NDgsNiArNDQ4LDE4IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsK Pj4+Pj4gICAgCSAqLwo+Pj4+PiAgICAJdW5zaWduZWQgaW50IGNvbnRlbnRfcHJvdGVjdGlvbjsK Pj4+Pj4gICAgCj4+Pj4+ICsJLyoqCj4+Pj4+ICsJICogQHZhcmlhYmxlX3JlZnJlc2hfZW5hYmxl ZDogQ29ubmVjdG9yIHByb3BlcnR5IHVzZWQgdG8gY2hlY2sKPj4+Pj4gKwkgKiBpZiB2YXJpYWJs ZSByZWZyZXNoIGlzIHN1cHBvcnRlZCBvbiB0aGUgZGV2aWNlLgo+Pj4+PiArCSAqLwo+Pj4+PiAr CWJvb2wgdmFyaWFibGVfcmVmcmVzaF9jYXBhYmxlOwo+Pj4+PiArCj4+Pj4+ICsJLyoqCj4+Pj4+ ICsJICogQHZhcmlhYmxlX3JlZnJlc2hfZW5hYmxlZDogQ29ubmVjdG9yIHByb3BlcnR5IHVzZWQg dG8gY2hlY2sKPj4+Pj4gKwkgKiBpZiB2YXJpYWJsZSByZWZyZXNoIGlzIGVuYWJsZWQuCj4+Pj4+ ICsJICovCj4+Pj4+ICsJYm9vbCB2YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWQ7Cj4+Pj4+ICsKPj4+ Pj4gICAgCS8qKgo+Pj4+PiAgICAJICogQHdyaXRlYmFja19qb2I6IFdyaXRlYmFjayBqb2IgZm9y IHdyaXRlYmFjayBjb25uZWN0b3JzCj4+Pj4+ICAgIAkgKgo+Pj4+PiBAQCAtOTA5LDYgKzkyMSwx OSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4+Pj4+ICAgIAkgKi8KPj4+Pj4gICAgCXN0cnVj dCBkcm1fcHJvcGVydHkgKnNjYWxpbmdfbW9kZV9wcm9wZXJ0eTsKPj4+Pj4gICAgCj4+Pj4+ICsJ LyoqCj4+Pj4+ICsJICogQHZhcmlhYmxlX3JlZnJlc2hfY2FwYWJsZV9wcm9wZXJ0eTogT3B0aW9u YWwgcHJvcGVydHkgZm9yCj4+Pj4+ICsJICogcXVlcnlpbmcgaGFyZHdhcmUgc3VwcG9ydCBmb3Ig dmFyaWFibGUgcmVmcmVzaC4KPj4+Pj4gKwkgKi8KPj4+Pj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICp2YXJpYWJsZV9yZWZyZXNoX2NhcGFibGVfcHJvcGVydHk7Cj4+Pj4+ICsKPj4+Pj4gKwkvKioK Pj4+Pj4gKwkgKiBAdmFyaWFibGVfcmVmcmVzaF9lbmFibGVkX3Byb3BlcnR5OiBPcHRpb25hbCBw cm9wZXJ0eSBmb3IKPj4+Pj4gKwkgKiBlbmFibGluZyBvciBkaXNhYmxpbmcgc3VwcG9ydCBmb3Ig dmFyaWFibGUgcmVmcmVzaAo+Pj4+PiArCSAqIG9uIHRoZSBjb25uZWN0b3IuCj4+Pj4+ICsJICov Cj4+Pj4+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqdmFyaWFibGVfcmVmcmVzaF9lbmFibGVkX3By b3BlcnR5Owo+Pj4+PiArCj4+Pj4+ICAgIAkvKioKPj4+Pj4gICAgCSAqIEBjb250ZW50X3Byb3Rl Y3Rpb25fcHJvcGVydHk6IERSTSBFTlVNIHByb3BlcnR5IGZvciBjb250ZW50Cj4+Pj4+ICAgIAkg KiBwcm90ZWN0aW9uLiBTZWUgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9u X3Byb3BlcnR5KCkuCj4+Pj4+IEBAIC0xMTgyLDYgKzEyMDcsOCBAQCBpbnQgZHJtX21vZGVfY3Jl YXRlX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4+Pj4g ICAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqZGV2KTsKPj4+Pj4gICAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX3Nj YWxpbmdfbW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4+ PiAgICAJCQkJCSAgICAgICB1MzIgc2NhbGluZ19tb2RlX21hc2spOwo+Pj4+PiAraW50IGRybV9j b25uZWN0b3JfYXR0YWNoX3ZhcmlhYmxlX3JlZnJlc2hfcHJvcGVydGllcygKPj4+Pj4gKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPj4+Pj4gICAgaW50IGRybV9jb25uZWN0b3Jf YXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSgKPj4+Pj4gICAgCQlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPj4+Pj4gICAgaW50IGRybV9tb2RlX2NyZWF0ZV9hc3Bl Y3RfcmF0aW9fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+Pj4+IC0tIAo+Pj4+ PiAyLjE3LjEKPj4+Pgo+Pj4+IC0tIAo+Pj4+IFZpbGxlIFN5cmrDpGzDpAo+Pj4+IEludGVsCj4+ Pgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1k LWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==