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 13:36:01 -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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180911163119.GO5565@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: nicolai.haehnle@amd.com, michel@daenzer.net, amd-gfx@lists.freedesktop.org, Christian.Koenig@amd.com, manasi.d.navare@intel.com, dri-devel@lists.freedesktop.org, Alexander.Deucher@amd.com, Marek.Olsak@amd.com List-Id: amd-gfx.lists.freedesktop.org T24gMDkvMTEvMjAxOCAxMjozMSBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIFR1ZSwg U2VwIDExLCAyMDE4IGF0IDA3OjIyOjQzUE0gKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToK Pj4gT24gVHVlLCBTZXAgMTEsIDIwMTggYXQgMTI6MTM6MjVQTSAtMDQwMCwgTmljaG9sYXMgS2F6 bGF1c2thcyB3cm90ZToKPj4+IE1vZGVybiBtb25pdG9yIGhhcmR3YXJlIGlzIGNhcGFibGUgb2Yg c3VwcG9ydGluZyB2YXJpYWJsZSByZWZyZXNoIHJhdGVzCj4+PiBhbmQgYWRhcHRpdmUgc3luYyB0 ZWNobm9sb2dpZXMuIFRoZSBwcm9wZXJ0aWVzIGZvciBxdWVyeWluZyBhbmQKPj4+IGNvbnRyb2xs aW5nIHRoZXNlIGZlYXR1cmVzIHNob3VsZCBiZSBleHBvc2VkIG9uIHRoZSBEUk0gY29ubmVjdG9y Lgo+Pj4KPj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0d28gbmV3IHByb3BlcnRpZXMgZm9yIHZh cmlhYmxlIHJlZnJlc2ggcmF0ZQo+Pj4gc3VwcG9ydDoKPj4+Cj4+PiAtIHZhcmlhYmxlX3JlZnJl c2hfY2FwYWJsZQo+Pj4gLSB2YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWQKPj4+Cj4+PiBUaGVzZSBh cmUgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIERSTSBjb25uZWN0 b3IKPj4+IGR5bmFtaWNhbGx5IGJ5IHVzaW5nIGRybV9jb25uZWN0b3JfYXR0YWNoX3ZhcmlhYmxl X3JlZnJlc2hfcHJvcGVydGllcy4KPj4+Cj4+PiBEUk0gZHJpdmVycyBzaG91bGQgc2V0IHZhcmlh YmxlX3JlZnJlc2hfY2FwYWJsZSBhcyBhcHBsaWNhYmxlIGZvcgo+Pj4gdGhlaXIgaGFyZHdhcmUu IFRoZSBwcm9wZXJ0eSB2YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWQgYXMgYSB1c2Vyc3BhY2UKPj4+ IGNvbnRyb2xsZWQgb3B0aW9uLgo+Pj4KPj4+IENoYW5nZS1JZDogSTVmNjBmOGI1NzUzNGUxZDNk YWNkYTRjNjRjNmM5MTA2YjQyZjQ0MzkKPj4+IFNpZ25lZC1vZmYtYnk6IE5pY2hvbGFzIEthemxh dXNrYXMgPG5pY2hvbGFzLmthemxhdXNrYXNAYW1kLmNvbT4KPj4+IC0tLQo+Pj4gICBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jICAgIHwgIDkgKysrKysrKysrCj4+PiAgIGRyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMgfCAzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4+ICAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICB8IDI3ICsrKysrKysrKysr KysrKysrKysrKysrKysKPj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspCj4+ Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCj4+PiBpbmRleCBkMDQ3OGFiYzAxYmQuLjJmODlhYjBmYWM4 NyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4+IEBAIC0xNDAzLDYgKzE0MDMsMTEgQEAg c3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPj4+ICAgCQlzdGF0ZS0+Y29udGVudF90eXBlID0gdmFsOwo+ Pj4gICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnNjYWxpbmdfbW9kZV9wcm9w ZXJ0eSkgewo+Pj4gICAJCXN0YXRlLT5zY2FsaW5nX21vZGUgPSB2YWw7Cj4+PiArCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT52YXJpYWJsZV9yZWZyZXNoX2NhcGFibGVfcHJvcGVy dHkpIHsKPj4+ICsJCURSTV9ERUJVR19LTVMoIm9ubHkgZHJpdmVycyBjYW4gc2V0IHZhcmlhYmxl X3JlZnJlc2hfY2FwYWJsZVxuIik7Cj4+PiArCQlyZXR1cm4gLUVJTlZBTDsKPj4KPj4gV2h5IGlz IHRoYXQgbmVlZGVkPyBXaHkgbm90IGp1c3QgYXZvaWQgZXhwb3NpbmcgdGhlIHZycl9lbmFibGVk IHByb3AKPj4gd2hlbiBpdCdzIG5vdCBzdXBwb3J0ZWQ/Cj4gCj4gQWgsIEkgZ3Vlc3MgeW91IHdh bnQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBhZnRlciBwbHVnZ2luZyBpbiBhIG5ldwo+IGRpc3BsYXku IFllYWgsIGlmIHdlIGRvbid0IHdhbnQgdXNlcnNwYWNlIHRvIGhhdmUgdG8gcGFyc2UgdGhlIEVE SUQgSQo+IGd1ZXNzIHdlIG5lZWQgdGhpcy4gQnV0IGluIHRoYXQgY2FzZSBpdCBzaG91bGQgYmUg bWFya2VkIGltbXV0YWJsZSwKPiBhbmQgdGhlbiB5b3UgZG9uJ3QgbmVlZCBhbnkgb2YgdGhpcyBh dG9taWMgc3RhdGUgcmVsYXRlZCBjb2RlIGZvciBpdC4KClllYWgsIGl0J3MgZm9yIGhvdHBsdWdn aW5nIHRoYXQgaXQgd29ya3MgdGhpcyB3YXkuIFRoZSByZWFzb24gaXQncyBub3QgCm1hcmtlZCBh cyBpbW11dGFibGUgaXMgbW9zdGx5IGNvbnZlbnRpb24gLSB0aGUgZXhpc3RpbmcgZHJpdmVyIAp3 cml0ZS1vbmx5IHByb3BlcnRpZXMgKHdpdGggdXNlcnNwYWNlIHF1ZXJpZXMpIGRvIHRoZSBzYW1l IHRoaW5nLgoKVGhlIGltbXV0YWJsZSBwcm9wZXJ0eSBmbGFnIGlzIG9ubHkgdXNlZCBmb3Igbm9u LWNvbm5lY3RvciBwcm9wZXJ0aWVzLiAKRHVyaW5nIHRlc3RpbmcgSSBhbHNvIG5vdGljZWQgdGhh dCBzb21ldGhpbmcgbGlrZXMgdG8gY2FjaGUgdGhlIGluaXRpYWwgCmRlZmF1bHQgdmFsdWUgZm9y IHRoZXNlIGltbXV0YWJsZSBmbGFnZ2VkIHByb3BlcnRpZXMgZm9yIHVzZXJzcGFjZSAKcXVlcmll cyAtIHNvIHdoZW4geW91IGNhbGwgeHJhbmRyIHlvdSBvbmx5IGVuZCB1cCBzZWVpbmcgdGhlIGRl ZmF1bHQgCnZhbHVlIGFuZCBub3QgdGhlIGN1cnJlbnQuCgo+IAo+Pgo+Pj4gKwl9IGVsc2UgaWYg KHByb3BlcnR5ID09IGNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVzaF9lbmFibGVkX3Byb3BlcnR5 KSB7Cj4+PiArCQlzdGF0ZS0+dmFyaWFibGVfcmVmcmVzaF9lbmFibGVkID0gdmFsOwo+Pgo+PiBT byBvbmUgdGhpbmcgSSBhbHJlYWR5IGFza2VkIGxvbmcgYWdvIGlzIHdoZXRoZXIgdGhlcmUgd291 bGQgYSBwb2ludCBpbgo+PiBleHBvc2luZyBzb21lIGtpbmQgb2YgbWluL21heCByZWZyZXNoIHJh dGUgcmFuZ2UgY29udHJvbC4gTmV2ZXIgcmVhbGx5Cj4+IGdvdCBhbiBhbnN3ZXIuIFdhcyBzb21l aHRpbmcgbGlrZSB0aGF0IGNvbnNpZGVyZWQgYW5kIHJlamVjdGVkPwoKRm9yIHRoZSBpbml0aWFs IHBhdGNoc2V0IGl0IHNlZW1lZCBiZXN0IHRvIGtlZXAgdGhpbmdzIHNpbXBsZSBhbmQgdGFyZ2V0 IAp0aGUgZHluYW1pYyBhZGFwdGF0aW9uIHVzZWNhc2Ugd2l0aCBvbi9vZmYgdG9nZ2xlLgoKVGhl IGRyaXZlciBoYXZpbmcgYWNjZXNzIHRvIHRoZSBmdWxsIHJhbmdlIGNhbiBlbmFibGUgYWRkaXRp b25hbCAKZnVuY3Rpb25hbGl0eSB0aGF0IGNhbiBpbXByb3ZlIHRoZSB1c2VyIGV4cGVyaWVuY2Ug LSBhIGdvb2QgZXhhbXBsZSBpcyAKbG93IGZyYW1lcmF0ZSBjb21wZW5zYXRpb24uCgpBZGRpbmcg dGhlIHByb3BlcnRpZXMgdG8gc3VwcG9ydCBzZXR0aW5nIHRoZSBtaW4vbWF4IGNvdWxkIGJlIGRv bmUgb24gCnRvcCBvZiB0aGlzLCBob3dldmVyLiBEcml2ZXIgYmVoYXZpb3Igd291bGQgbGlrZWx5 IG5lZWQgdG8gYmUgZGVmaW5lZCAKZm9yIGF0b21pYyBjaGVjay4gVGhlIGRyaXZlciBuZWVkcyB0 byB2ZXJpZnkgd2l0aCB0aGUgbW9uaXRvciB0aGF0IHRoZSAKcmFuZ2VzIGFyZSB2YWxpZCBhdCBz b21lIHBvaW50IC0gd2hldGhlciBpdCBzaWxlbnRseSBmYWlscyBvciByZXR1cm5zIGFuIAplcnJv ciBpcyBhbiBleGFtcGxlIG9mIHNvbWV0aGluZyB0byBjb25zaWRlciBoZXJlLgoKRG8geW91IGhh dmUgYSBzcGVjaWZpYyB1c2VjYXNlIGluIG1pbmQgdGhhdCBuZWVkcyBtaW4vbWF4IGV4cG9zZWQg dG8gCnVzZXJzcGFjZT8KCj4+Cj4+PiAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rv ci0+Y29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KSB7Cj4+PiAgIAkJaWYgKHZhbCA9PSBEUk1f TU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRCkgewo+Pj4gICAJCQlEUk1fREVCVUdfS01T KCJvbmx5IGRyaXZlcnMgY2FuIHNldCBDUCBFbmFibGVkXG4iKTsKPj4+IEBAIC0xNTA4LDYgKzE1 MTMsMTAgQEAgZHJtX2F0b21pY19jb25uZWN0b3JfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4+PiAgIAkJKnZhbCA9IHN0YXRlLT5jb250ZW50X3R5cGU7Cj4+ PiAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+c2NhbGluZ19tb2RlX3Byb3Bl cnR5KSB7Cj4+PiAgIAkJKnZhbCA9IHN0YXRlLT5zY2FsaW5nX21vZGU7Cj4+PiArCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT52YXJpYWJsZV9yZWZyZXNoX2NhcGFibGVfcHJvcGVy dHkpIHsKPj4+ICsJCSp2YWwgPSBzdGF0ZS0+dmFyaWFibGVfcmVmcmVzaF9jYXBhYmxlOwo+Pj4g Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVzaF9lbmFi bGVkX3Byb3BlcnR5KSB7Cj4+PiArCQkqdmFsID0gc3RhdGUtPnZhcmlhYmxlX3JlZnJlc2hfZW5h YmxlZDsKPj4+ICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb250ZW50X3By b3RlY3Rpb25fcHJvcGVydHkpIHsKPj4+ICAgCQkqdmFsID0gc3RhdGUtPmNvbnRlbnRfcHJvdGVj dGlvbjsKPj4+ICAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfZmJf aWRfcHJvcGVydHkpIHsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5l Y3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4gaW5kZXggNjAxMWQ3 NjlkNTBiLi4zN2ZiMzNmYTc3YjkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2Nvbm5lY3Rvci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4+ PiBAQCAtMTI1MCw2ICsxMjUwLDQxIEBAIGludCBkcm1fbW9kZV9jcmVhdGVfc2NhbGluZ19tb2Rl X3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+PiAgIH0KPj4+ICAgRVhQT1JUX1NZ TUJPTChkcm1fbW9kZV9jcmVhdGVfc2NhbGluZ19tb2RlX3Byb3BlcnR5KTsKPj4+ICAgCj4+PiAr LyoqCj4+PiArICogZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdmFyaWFibGVfcmVmcmVzaF9wcm9wZXJ0 aWVzIC0gY3JlYXRlcyBhbmQgYXR0YWNoZXMKPj4+ICsgKiBwcm9wZXJ0aWVzIGZvciBjb25uZWN0 b3JzIHRoYXQgc3VwcG9ydCBhZGFwdGl2ZSByZWZyZXNoCj4+PiArICogQGNvbm5lY3RvcjogY29u bmVjdG9yIHRvIGNyZWF0ZSBhZGFwdGl2ZSByZWZyZXNoIHByb3BlcnRpZXMgb24KPj4+ICsgKi8K Pj4+ICtpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdmFyaWFibGVfcmVmcmVzaF9wcm9wZXJ0aWVz KAo+Pj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+Pj4gK3sKPj4+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+Pj4gKwlzdHJ1Y3QgZHJtX3By b3BlcnR5ICpwcm9wOwo+Pj4gKwo+Pj4gKwlpZiAoIWNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVz aF9jYXBhYmxlX3Byb3BlcnR5KSB7Cj4+PiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9i b29sKGRldiwgMCwKPj4+ICsJCQkidmFyaWFibGVfcmVmcmVzaF9jYXBhYmxlIik7Cj4+PiArCQlp ZiAoIXByb3ApCj4+PiArCQkJcmV0dXJuIC1FTk9NRU07Cj4+PiArCj4+PiArCQljb25uZWN0b3It PnZhcmlhYmxlX3JlZnJlc2hfY2FwYWJsZV9wcm9wZXJ0eSA9IHByb3A7Cj4+PiArCQlkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wLCAwKTsKPj4+ICsJfQo+ Pj4gKwo+Pj4gKwlpZiAoIWNvbm5lY3Rvci0+dmFyaWFibGVfcmVmcmVzaF9lbmFibGVkX3Byb3Bl cnR5KSB7Cj4+PiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGRldiwgMCwKPj4+ ICsJCQkidmFyaWFibGVfcmVmcmVzaF9lbmFibGVkIik7Cj4+PiArCQlpZiAoIXByb3ApCj4+PiAr CQkJcmV0dXJuIC1FTk9NRU07Cj4+PiArCj4+PiArCQljb25uZWN0b3ItPnZhcmlhYmxlX3JlZnJl c2hfZW5hYmxlZF9wcm9wZXJ0eSA9IHByb3A7Cj4+PiArCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9w ZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBwcm9wLCAwKTsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlyZXR1 cm4gMDsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2F0dGFjaF92YXJp YWJsZV9yZWZyZXNoX3Byb3BlcnRpZXMpOwo+Pj4gKwo+Pj4gICAvKioKPj4+ICAgICogZHJtX2Nv bm5lY3Rvcl9hdHRhY2hfc2NhbGluZ19tb2RlX3Byb3BlcnR5IC0gYXR0YWNoIGF0b21pYyBzY2Fs aW5nIG1vZGUgcHJvcGVydHkKPj4+ICAgICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGF0dGFj aCBzY2FsaW5nIG1vZGUgcHJvcGVydHkgb24uCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+PiBpbmRleCA5 N2VhNDFkYzY3OGYuLjEwNWExMjdlOTE5MSAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+PiBA QCAtNDQ4LDYgKzQ0OCwxOCBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4+PiAgIAkg Ki8KPj4+ICAgCXVuc2lnbmVkIGludCBjb250ZW50X3Byb3RlY3Rpb247Cj4+PiAgIAo+Pj4gKwkv KioKPj4+ICsJICogQHZhcmlhYmxlX3JlZnJlc2hfZW5hYmxlZDogQ29ubmVjdG9yIHByb3BlcnR5 IHVzZWQgdG8gY2hlY2sKPj4+ICsJICogaWYgdmFyaWFibGUgcmVmcmVzaCBpcyBzdXBwb3J0ZWQg b24gdGhlIGRldmljZS4KPj4+ICsJICovCj4+PiArCWJvb2wgdmFyaWFibGVfcmVmcmVzaF9jYXBh YmxlOwo+Pj4gKwo+Pj4gKwkvKioKPj4+ICsJICogQHZhcmlhYmxlX3JlZnJlc2hfZW5hYmxlZDog Q29ubmVjdG9yIHByb3BlcnR5IHVzZWQgdG8gY2hlY2sKPj4+ICsJICogaWYgdmFyaWFibGUgcmVm cmVzaCBpcyBlbmFibGVkLgo+Pj4gKwkgKi8KPj4+ICsJYm9vbCB2YXJpYWJsZV9yZWZyZXNoX2Vu YWJsZWQ7Cj4+PiArCj4+PiAgIAkvKioKPj4+ICAgCSAqIEB3cml0ZWJhY2tfam9iOiBXcml0ZWJh Y2sgam9iIGZvciB3cml0ZWJhY2sgY29ubmVjdG9ycwo+Pj4gICAJICoKPj4+IEBAIC05MDksNiAr OTIxLDE5IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPj4+ICAgCSAqLwo+Pj4gICAJc3RydWN0 IGRybV9wcm9wZXJ0eSAqc2NhbGluZ19tb2RlX3Byb3BlcnR5Owo+Pj4gICAKPj4+ICsJLyoqCj4+ PiArCSAqIEB2YXJpYWJsZV9yZWZyZXNoX2NhcGFibGVfcHJvcGVydHk6IE9wdGlvbmFsIHByb3Bl cnR5IGZvcgo+Pj4gKwkgKiBxdWVyeWluZyBoYXJkd2FyZSBzdXBwb3J0IGZvciB2YXJpYWJsZSBy ZWZyZXNoLgo+Pj4gKwkgKi8KPj4+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqdmFyaWFibGVfcmVm cmVzaF9jYXBhYmxlX3Byb3BlcnR5Owo+Pj4gKwo+Pj4gKwkvKioKPj4+ICsJICogQHZhcmlhYmxl X3JlZnJlc2hfZW5hYmxlZF9wcm9wZXJ0eTogT3B0aW9uYWwgcHJvcGVydHkgZm9yCj4+PiArCSAq IGVuYWJsaW5nIG9yIGRpc2FibGluZyBzdXBwb3J0IGZvciB2YXJpYWJsZSByZWZyZXNoCj4+PiAr CSAqIG9uIHRoZSBjb25uZWN0b3IuCj4+PiArCSAqLwo+Pj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICp2YXJpYWJsZV9yZWZyZXNoX2VuYWJsZWRfcHJvcGVydHk7Cj4+PiArCj4+PiAgIAkvKioKPj4+ ICAgCSAqIEBjb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHk6IERSTSBFTlVNIHByb3BlcnR5IGZv ciBjb250ZW50Cj4+PiAgIAkgKiBwcm90ZWN0aW9uLiBTZWUgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hf Y29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KCkuCj4+PiBAQCAtMTE4Miw2ICsxMjA3LDggQEAg aW50IGRybV9tb2RlX2NyZWF0ZV9zY2FsaW5nX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4+PiAgIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3R5cGVfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmRldik7Cj4+PiAgIGludCBkcm1fY29ubmVjdG9y X2F0dGFjaF9zY2FsaW5nX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPj4+ICAgCQkJCQkgICAgICAgdTMyIHNjYWxpbmdfbW9kZV9tYXNrKTsKPj4+ICtpbnQg ZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdmFyaWFibGVfcmVmcmVzaF9wcm9wZXJ0aWVzKAo+Pj4gKwlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPj4+ICAgaW50IGRybV9jb25uZWN0b3Jf YXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSgKPj4+ICAgCQlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKTsKPj4+ICAgaW50IGRybV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0 aW9fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiAtLSAKPj4+IDIuMTcuMQo+ Pgo+PiAtLSAKPj4gVmlsbGUgU3lyasOkbMOkCj4+IEludGVsCj4gCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK