From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 07/10] drm/i915/dmc: add support to load dmc_header version 3 Date: Thu, 23 May 2019 16:27:55 -0700 Message-ID: <20190523232755.GC4441@intel.com> References: <20190523082420.10352-1-lucas.demarchi@intel.com> <20190523082420.10352-7-lucas.demarchi@intel.com> <20190523185719.GT4441@intel.com> <20190523192533.3jqsung32hgu2mvy@ldmartin-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 250786E047 for ; Thu, 23 May 2019 23:27:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190523192533.3jqsung32hgu2mvy@ldmartin-desk.amr.corp.intel.com> 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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXkgMjMsIDIwMTkgYXQgMTI6MjU6MzRQTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIFRodSwgTWF5IDIzLCAyMDE5IGF0IDExOjU3OjE5QU0gLTA3MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IE9uIFRodSwgTWF5IDIzLCAyMDE5IGF0IDAxOjI0OjE3QU0gLTA3 MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiA+ID4gTWFpbiBkaWZmZXJlbmNlIGlzIHRoYXQg bm93IHRoZXJlIGFyZSB1cCB0byAyMCBNTUlPcyB0aGF0IGNhbiBiZSBzZXQgYW5kCj4gPiA+IGEg bG90IG9mIG5vaXNlIGR1ZSB0byB0aGUgc3RydWN0IGNoYW5naW5nIHRoZSBmaWVsZHMgaW4gdGhl IG1pZGRsZS4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNoaSA8bHVj YXMuZGVtYXJjaGlAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggIHwgICA0ICstCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jc3IuYyB8IDEwNyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiA+ICAyIGZp bGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+IGluZGV4IDFhZDM4MThkMjY3Ni4uMDRhNmI1 OTI1NmZkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTM1 NCw4ICszNTQsOCBAQCBzdHJ1Y3QgaW50ZWxfY3NyIHsKPiA+ID4gIAl1MzIgZG1jX2Z3X3NpemU7 IC8qIGR3b3JkcyAqLwo+ID4gPiAgCXUzMiB2ZXJzaW9uOwo+ID4gPiAgCXUzMiBtbWlvX2NvdW50 Owo+ID4gPiAtCWk5MTVfcmVnX3QgbW1pb2FkZHJbOF07Cj4gPiA+IC0JdTMyIG1taW9kYXRhWzhd Owo+ID4gPiArCWk5MTVfcmVnX3QgbW1pb2FkZHJbMjBdOwo+ID4gPiArCXUzMiBtbWlvZGF0YVsy MF07Cj4gPiA+ICAJdTMyIGRjX3N0YXRlOwo+ID4gPiAgCXUzMiBhbGxvd2VkX2RjX21hc2s7Cj4g PiA+ICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nz ci5jCj4gPiA+IGluZGV4IDIwZGQ0YmQ1ZmVhZS4uYWQ0ZWU1NWE4YzVlIDEwMDY0NAo+ID4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+ID4gPiBAQCAtNzIsNiArNzIsOCBAQCBNT0RVTEVf RklSTVdBUkUoQlhUX0NTUl9QQVRIKTsKPiA+ID4gICNkZWZpbmUgQ1NSX0RFRkFVTFRfRldfT0ZG U0VUCQkweEZGRkZGRkZGCj4gPiA+ICAjZGVmaW5lIFBBQ0tBR0VfTUFYX0ZXX0lORk9fRU5UUklF UwkyMAo+ID4gPiAgI2RlZmluZSBQQUNLQUdFX1YyX01BWF9GV19JTkZPX0VOVFJJRVMJMzIKPiA+ ID4gKyNkZWZpbmUgRE1DX1YxX01BWF9NTUlPX0NPVU5UCQk4Cj4gPiA+ICsjZGVmaW5lIERNQ19W M19NQVhfTU1JT19DT1VOVAkJMjAKPiA+ID4gCj4gPiA+ICBzdHJ1Y3QgaW50ZWxfY3NzX2hlYWRl ciB7Cj4gPiA+ICAJLyogMHgwOSBmb3IgRE1DICovCj4gPiA+IEBAIC0xNDMsNyArMTQ1LDcgQEAg c3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyIHsKPiA+ID4gIAl1MzIgbnVtX2VudHJpZXM7Cj4g PiA+ICB9IF9fcGFja2VkOwo+ID4gPiAKPiA+ID4gLXN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyIHsK PiA+ID4gK3N0cnVjdCBpbnRlbF9kbWNfaGVhZGVyX2Jhc2Ugewo+ID4gPiAgCS8qIGFsd2F5cyB2 YWx1ZSB3b3VsZCBiZSAweDQwNDAzRTNFICovCj4gPiA+ICAJdTMyIHNpZ25hdHVyZTsKPiA+ID4g Cj4gPiA+IEBAIC0xNjQsMjIgKzE2Niw0NyBAQCBzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlciB7Cj4g PiA+IAo+ID4gPiAgCS8qIE1ham9yIE1pbm9yIHZlcnNpb24gKi8KPiA+ID4gIAl1MzIgZndfdmVy c2lvbjsKPiA+ID4gK30gX19wYWNrZWQ7Cj4gPiA+ICsKPiA+ID4gK3N0cnVjdCBpbnRlbF9kbWNf aGVhZGVyX3YxIHsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcl9iYXNlIGJhc2U7Cj4g PiA+IAo+ID4gPiAgCS8qIE51bWJlciBvZiB2YWxpZCBNTUlPIGN5Y2xlcyBwcmVzZW50LiAqLwo+ ID4gPiAgCXUzMiBtbWlvX2NvdW50Owo+ID4gPiAKPiA+ID4gIAkvKiBNTUlPIGFkZHJlc3MgKi8K PiA+ID4gLQl1MzIgbW1pb2FkZHJbOF07Cj4gPiA+ICsJdTMyIG1taW9hZGRyW0RNQ19WMV9NQVhf TU1JT19DT1VOVF07Cj4gPiA+IAo+ID4gPiAgCS8qIE1NSU8gZGF0YSAqLwo+ID4gPiAtCXUzMiBt bWlvZGF0YVs4XTsKPiA+ID4gKwl1MzIgbW1pb2RhdGFbRE1DX1YxX01BWF9NTUlPX0NPVU5UXTsK PiA+ID4gCj4gPiA+ICAJLyogRlcgZmlsZW5hbWUgICovCj4gPiA+IC0JdW5zaWduZWQgY2hhciBk ZmlsZVszMl07Cj4gPiA+ICsJY2hhciBkZmlsZVszMl07Cj4gPiA+IAo+ID4gPiAgCXUzMiByZXNl cnZlZDFbMl07Cj4gPiA+ICB9IF9fcGFja2VkOwo+ID4gPiAKPiA+ID4gK3N0cnVjdCBpbnRlbF9k bWNfaGVhZGVyX3YzIHsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcl9iYXNlIGJhc2U7 Cj4gPiA+ICsKPiA+ID4gKwkvKiBETUMgUkFNIHN0YXJ0IE1NSU8gYWRkcmVzcyAqLwo+ID4gPiAr CXUzMiBzdGFydF9tbWlvYWRkcjsKPiA+ID4gKwo+ID4gPiArCXUzMiByZXNlcnZlZFs5XTsKPiA+ ID4gKwo+ID4gPiArCS8qIEZXIGZpbGVuYW1lICovCj4gPiA+ICsJY2hhciBkZmlsZVszMl07Cj4g PiA+ICsKPiA+ID4gKwkvKiBOdW1iZXIgb2YgdmFsaWQgTU1JTyBjeWNsZXMgcHJlc2VudC4gKi8K PiA+ID4gKwl1MzIgbW1pb19jb3VudDsKPiA+ID4gKwo+ID4gPiArCS8qIE1NSU8gYWRkcmVzcyAq Lwo+ID4gPiArCXUzMiBtbWlvYWRkcltETUNfVjNfTUFYX01NSU9fQ09VTlRdOwo+ID4gPiArCj4g PiA+ICsJLyogTU1JTyBkYXRhICovCj4gPiA+ICsJdTMyIG1taW9kYXRhW0RNQ19WM19NQVhfTU1J T19DT1VOVF07Cj4gPiA+ICt9IF9fcGFja2VkOwo+ID4gPiArCj4gPiA+ICBzdHJ1Y3Qgc3RlcHBp bmdfaW5mbyB7Cj4gPiA+ICAJY2hhciBzdGVwcGluZzsKPiA+ID4gIAljaGFyIHN1YnN0ZXBwaW5n Owo+ID4gPiBAQCAtMzMzLDM3ICszNjAsNjcgQEAgc3RhdGljIHUzMiBmaW5kX2RtY19md19vZmZz ZXQoY29uc3Qgc3RydWN0IGludGVsX2Z3X2luZm8gKmZ3X2luZm8sCj4gPiA+ICB9Cj4gPiA+IAo+ ID4gPiAgc3RhdGljIHUzMiBwYXJzZV9jc3JfZndfZG1jKHN0cnVjdCBpbnRlbF9jc3IgKmNzciwK PiA+ID4gLQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlciAqZG1jX2hlYWRlcikK PiA+ID4gKwkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcl9iYXNlICpkbWNfaGVh ZGVyKQo+ID4gPiAgewo+ID4gPiAtCXVuc2lnbmVkIGludCBpLCBwYXlsb2FkX3NpemU7Cj4gPiA+ IC0JdTMyIHI7Cj4gPiA+ICsJdW5zaWduZWQgaW50IGhlYWRlcl9sZW5fYnl0ZXMsIGRtY19oZWFk ZXJfc2l6ZSwgcGF5bG9hZF9zaXplLCBpOwo+ID4gPiArCWNvbnN0IHUzMiAqbW1pb2FkZHIsICpt bWlvZGF0YTsKPiA+ID4gKwl1MzIgbW1pb19jb3VudCwgbW1pb19jb3VudF9tYXg7Cj4gPiA+ICAJ dTggKnBheWxvYWQ7Cj4gPiA+IAo+ID4gPiAtCWlmIChzaXplb2Yoc3RydWN0IGludGVsX2RtY19o ZWFkZXIpICE9IGRtY19oZWFkZXItPmhlYWRlcl9sZW4pIHsKPiA+ID4gKwlCVUlMRF9CVUdfT04o QVJSQVlfU0laRShjc3ItPm1taW9hZGRyKSA8IERNQ19WM19NQVhfTU1JT19DT1VOVCB8fAo+ID4g PiArCQkgICAgIEFSUkFZX1NJWkUoY3NyLT5tbWlvYWRkcikgPCBETUNfVjFfTUFYX01NSU9fQ09V TlQpOwo+ID4gPiArCj4gPiA+ICsJLyogQ29wZSB3aXRoIHNtYWxsIGRpZmZlcmVuY2VzIGJldHdl ZW4gdjEgYW5kIHYzICovCj4gPiA+ICsJaWYgKGRtY19oZWFkZXItPmhlYWRlcl92ZXIgPT0gMykg ewo+ID4gCj4gPiBJJ20gbWlzc2luZyBvbiB0aGlzIHBhdGNoIHNvbWV0aGluZyBsaWtlOgo+ID4g Cj4gPiAtIC8qIDB4MDEsIDB4MDIgKi8KPiA+ICsgIC8qIDB4MDEsIDB4MDIsIDB4MDMgKi8KPiA+ IG5lYXIgaGVhZGVyX3ZlciBkZWZpbml0aW9uCj4gPiAKPiA+IG9yIG1heWJlIGtpbGwgdGhhdCBj b21tZW50IGF0IGFsbC4uLgo+IAo+IG5haCwgdGhhdCBpcyBhbm90aGVyIHZlcnNpb24gYW5kIGl0 J3MgYSBiaXQgY29uZnVzaW5nLiBCdXQgd2UgaGF2ZQo+ICpwYWNrYWdlKiBoZWFkZXIgdmVyc2lv bjogMSBvciAyCj4gKmRtYyogaGVhZGVyIHZlcnNpb246IDEgb3IgMwo+IAo+IE92ZXJhbGwgc3Ry dWN0dXJlIG9mIHRoZSBmaXJtd2FyZToKPiAKPiAuLS0tLS0tLS0tLS0tLgo+IHwgQ1NTIEhlYWRl ciB8Cj4gfC0tLS0tLS0tLS0tLXwKPiB8IFBhY2thZ2UgICAgfAo+IHwgSGVhZGVyICAgICB8Cj4g fC0tLS0tLS0tLS0tLXwKPiB8IDIwIG9yIDMyICAgfCAgICAgICAgICogMjAgZm9yIHBhY2thZ2Ug aGVhZGVyIHYxCj4gfCBmd19pbmZvICAgIHwtLS4tLi0uICAgIDMyIGZvciBwYWNrYWdlIGhlYWRl ciB2Mgo+IHwtLS0tLS0tLS0tLS18PC0nIHwgfAo+IHwgRE1DIGhlYWRlciB8ICAgIHwgfAo+IHwg RE1DIHBheWxvYWR8ICAgIHwgfAo+IHwtLS0tLS0tLS0tLS18PC0tLScgfAo+IHwgRE1DIGhlYWRl ciB8ICAgICAgfAo+IHwgRE1DIHBheWxvYWR8ICAgICAgfAo+IHwtLS0tLS0tLS0tLS18ICAgICAg Lgo+ICAgICAuLi4gICAgICAgICAgICAuCj4gfC0tLS0tLS0tLS0tLXw8LS0tLS0nCj4gfCBETUMg aGVhZGVyIHwKPiB8IERNQyBwYXlsb2FkfAo+ICctLS0tLS0tLS0tLS0nCj4gCj4gaGVyZSB0aGUg ZG1jX2hlYWRlciB2MyB3aWxsIGRpY3RhdGUgaG93IHRoZSAqRE1DIGhlYWRlcioKPiB3aWxsIGJl IHBhcnNlZCwgdGhhdCBjYW4gaGF2ZSBlaXRoZXIgOCBvciAyMCBNTUlPcyB0byBiZSBwcm9ncmFt bWVkLAo+IGJlc2lkZXMgdGhlIGZpcm13YXJlIHRvIGJlIGxvYWRlZC4KCkFoaCEgSSBnb3QgaXQg bm93LgpUaGFua3MgZm9yIGRldGFpbGluZyBpdCBvdXQuCgo+IAo+IEkgZ3Vlc3MgSSBjb3VsZCBh ZGQgYSBwYXRjaCBvbiB0b3Agd2l0aCB0aGlzIHNrZXRjaCBhcyBhIGNvbW1lbnQgdG8KPiBiZXR0 ZXIgZXhwbGFpbiBob3cgaXMgdGhlIGxheW91dCBvZiB0aGUgZmlsZS4KClRoYXQgaXMgYSBnb29k IGlkZWEhIDopCgpUaGFua3MsClJvZHJpZ28uCgo+IAo+IAo+IEx1Y2FzIERlIE1hcmNoaQo+IAo+ ID4gCj4gPiBUaGUgcmVzdCBzZWVtcyByaWdodCBzbyBmZWVsIGZyZWUgdG8gdXNlCj4gPiBSZXZp ZXdlZC1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gCj4gPiA+ ICsJCWNvbnN0IHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyX3YzICp2MyA9Cj4gPiA+ICsJCQkoY29u c3Qgc3RydWN0IGludGVsX2RtY19oZWFkZXJfdjMgKilkbWNfaGVhZGVyOwo+ID4gPiArCj4gPiA+ ICsJCW1taW9hZGRyID0gdjMtPm1taW9hZGRyOwo+ID4gPiArCQltbWlvZGF0YSA9IHYzLT5tbWlv ZGF0YTsKPiA+ID4gKwkJbW1pb19jb3VudCA9IHYzLT5tbWlvX2NvdW50Owo+ID4gPiArCQltbWlv X2NvdW50X21heCA9IERNQ19WM19NQVhfTU1JT19DT1VOVDsKPiA+ID4gKwkJLyogaGVhZGVyX2xl biBpcyBpbiBkd29yZHMgKi8KPiA+ID4gKwkJaGVhZGVyX2xlbl9ieXRlcyA9IGRtY19oZWFkZXIt PmhlYWRlcl9sZW4gKiA0Owo+ID4gPiArCQlkbWNfaGVhZGVyX3NpemUgPSBzaXplb2YoKnYzKTsK PiA+ID4gKwl9IGVsc2UgaWYgKGRtY19oZWFkZXItPmhlYWRlcl92ZXIgPT0gMSkgewo+ID4gPiAr CQljb25zdCBzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcl92MSAqdjEgPQo+ID4gPiArCQkJKGNvbnN0 IHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyX3YxICopZG1jX2hlYWRlcjsKPiA+ID4gKwo+ID4gPiAr CQltbWlvYWRkciA9IHYxLT5tbWlvYWRkcjsKPiA+ID4gKwkJbW1pb2RhdGEgPSB2MS0+bW1pb2Rh dGE7Cj4gPiA+ICsJCW1taW9fY291bnQgPSB2MS0+bW1pb19jb3VudDsKPiA+ID4gKwkJbW1pb19j b3VudF9tYXggPSBETUNfVjFfTUFYX01NSU9fQ09VTlQ7Cj4gPiA+ICsJCWhlYWRlcl9sZW5fYnl0 ZXMgPSBkbWNfaGVhZGVyLT5oZWFkZXJfbGVuOwo+ID4gPiArCQlkbWNfaGVhZGVyX3NpemUgPSBz aXplb2YoKnYxKTsKPiA+ID4gKwl9IGVsc2Ugewo+ID4gPiArCQlEUk1fRVJST1IoIlVua25vd24g RE1DIGZ3IGhlYWRlciB2ZXJzaW9uOiAldVxuIiwKPiA+ID4gKwkJCSAgZG1jX2hlYWRlci0+aGVh ZGVyX3Zlcik7Cj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlm IChoZWFkZXJfbGVuX2J5dGVzICE9IGRtY19oZWFkZXJfc2l6ZSkgewo+ID4gPiAgCQlEUk1fRVJS T1IoIkRNQyBmaXJtd2FyZSBoYXMgd3JvbmcgZG1jIGhlYWRlciBsZW5ndGggIgo+ID4gPiAtCQkJ ICAiKCV1IGJ5dGVzKVxuIiwKPiA+ID4gLQkJCSAgKGRtY19oZWFkZXItPmhlYWRlcl9sZW4pKTsK PiA+ID4gKwkJCSAgIigldSBieXRlcylcbiIsIGhlYWRlcl9sZW5fYnl0ZXMpOwo+ID4gPiAgCQly ZXR1cm4gMDsKPiA+ID4gIAl9Cj4gPiA+IAo+ID4gPiAgCS8qIENhY2hlIHRoZSBkbWMgaGVhZGVy IGluZm8uICovCj4gPiA+IC0JaWYgKGRtY19oZWFkZXItPm1taW9fY291bnQgPiBBUlJBWV9TSVpF KGNzci0+bW1pb2FkZHIpKSB7Cj4gPiA+IC0JCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB3 cm9uZyBtbWlvIGNvdW50ICV1XG4iLAo+ID4gPiAtCQkJICBkbWNfaGVhZGVyLT5tbWlvX2NvdW50 KTsKPiA+ID4gKwlpZiAobW1pb19jb3VudCA+IG1taW9fY291bnRfbWF4KSB7Cj4gPiA+ICsJCURS TV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB3cm9uZyBtbWlvIGNvdW50ICV1XG4iLCBtbWlvX2Nv dW50KTsKPiA+ID4gIAkJcmV0dXJuIDA7Cj4gPiA+ICAJfQo+ID4gPiAKPiA+ID4gLQljc3ItPm1t aW9fY291bnQgPSBkbWNfaGVhZGVyLT5tbWlvX2NvdW50Owo+ID4gPiAtCWZvciAoaSA9IDA7IGkg PCBkbWNfaGVhZGVyLT5tbWlvX2NvdW50OyBpKyspIHsKPiA+ID4gLQkJaWYgKGRtY19oZWFkZXIt Pm1taW9hZGRyW2ldIDwgQ1NSX01NSU9fU1RBUlRfUkFOR0UgfHwKPiA+ID4gLQkJICAgIGRtY19o ZWFkZXItPm1taW9hZGRyW2ldID4gQ1NSX01NSU9fRU5EX1JBTkdFKSB7Cj4gPiA+ICsJZm9yIChp ID0gMDsgaSA8IG1taW9fY291bnQ7IGkrKykgewo+ID4gPiArCQlpZiAobW1pb2FkZHJbaV0gPCBD U1JfTU1JT19TVEFSVF9SQU5HRSB8fAo+ID4gPiArCQkgICAgbW1pb2FkZHJbaV0gPiBDU1JfTU1J T19FTkRfUkFOR0UpIHsKPiA+ID4gIAkJCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB3cm9u ZyBtbWlvIGFkZHJlc3MgMHgleFxuIiwKPiA+ID4gLQkJCQkgIGRtY19oZWFkZXItPm1taW9hZGRy W2ldKTsKPiA+ID4gKwkJCQkgIG1taW9hZGRyW2ldKTsKPiA+ID4gIAkJCXJldHVybiAwOwo+ID4g PiAgCQl9Cj4gPiA+IC0JCWNzci0+bW1pb2FkZHJbaV0gPSBfTU1JTyhkbWNfaGVhZGVyLT5tbWlv YWRkcltpXSk7Cj4gPiA+IC0JCWNzci0+bW1pb2RhdGFbaV0gPSBkbWNfaGVhZGVyLT5tbWlvZGF0 YVtpXTsKPiA+ID4gKwkJY3NyLT5tbWlvYWRkcltpXSA9IF9NTUlPKG1taW9hZGRyW2ldKTsKPiA+ ID4gKwkJY3NyLT5tbWlvZGF0YVtpXSA9IG1taW9kYXRhW2ldOwo+ID4gPiAgCX0KPiA+ID4gKwlj c3ItPm1taW9fY291bnQgPSBtbWlvX2NvdW50Owo+ID4gPiAKPiA+ID4gIAkvKiBmd19zaXplIGlz IGluIGR3b3Jkcywgc28gbXVsdGlwbGllZCBieSA0IHRvIGNvbnZlcnQgaW50byBieXRlcy4gKi8K PiA+ID4gIAlwYXlsb2FkX3NpemUgPSBkbWNfaGVhZGVyLT5md19zaXplICogNDsKPiA+ID4gQEAg LTM3OSwxMiArNDM2LDEwIEBAIHN0YXRpYyB1MzIgcGFyc2VfY3NyX2Z3X2RtYyhzdHJ1Y3QgaW50 ZWxfY3NyICpjc3IsCj4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiAgCX0KPiA+ID4gCj4gPiA+IC0J ciA9IHNpemVvZihzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcik7Cj4gPiA+IC0JcGF5bG9hZCA9ICh1 OCAqKShkbWNfaGVhZGVyKSArIHI7Cj4gPiA+ICsJcGF5bG9hZCA9ICh1OCAqKShkbWNfaGVhZGVy KSArIGhlYWRlcl9sZW5fYnl0ZXM7Cj4gPiA+ICAJbWVtY3B5KGNzci0+ZG1jX3BheWxvYWQsIHBh eWxvYWQsIHBheWxvYWRfc2l6ZSk7Cj4gPiA+IC0JciArPSBwYXlsb2FkX3NpemU7Cj4gPiA+IAo+ ID4gPiAtCXJldHVybiByOwo+ID4gPiArCXJldHVybiBoZWFkZXJfbGVuX2J5dGVzICsgcGF5bG9h ZF9zaXplOwo+ID4gPiAgfQo+ID4gPiAKPiA+ID4gIHN0YXRpYyB1MzIKPiA+ID4gQEAgLTQ3MCw3 ICs1MjUsNyBAQCBzdGF0aWMgdTMyICpwYXJzZV9jc3JfZncoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBpbnRlbF9jc3NfaGVhZGVyICpj c3NfaGVhZGVyOwo+ID4gPiAgCXN0cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRlciAqcGFja2FnZV9o ZWFkZXI7Cj4gPiA+IC0Jc3RydWN0IGludGVsX2RtY19oZWFkZXIgKmRtY19oZWFkZXI7Cj4gPiA+ ICsJc3RydWN0IGludGVsX2RtY19oZWFkZXJfYmFzZSAqZG1jX2hlYWRlcjsKPiA+ID4gIAlzdHJ1 Y3QgaW50ZWxfY3NyICpjc3IgPSAmZGV2X3ByaXYtPmNzcjsKPiA+ID4gIAljb25zdCBzdHJ1Y3Qg c3RlcHBpbmdfaW5mbyAqc2kgPSBpbnRlbF9nZXRfc3RlcHBpbmdfaW5mbyhkZXZfcHJpdik7Cj4g PiA+ICAJdTMyIHJlYWRjb3VudCA9IDA7Cj4gPiA+IEBAIC00OTYsNyArNTUxLDcgQEAgc3RhdGlj IHUzMiAqcGFyc2VfY3NyX2Z3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ ID4gIAlyZWFkY291bnQgKz0gcjsKPiA+ID4gCj4gPiA+ICAJLyogRXh0cmFjdCBkbWNfaGVhZGVy IGluZm9ybWF0aW9uLiAqLwo+ID4gPiAtCWRtY19oZWFkZXIgPSAoc3RydWN0IGludGVsX2RtY19o ZWFkZXIgKikmZnctPmRhdGFbcmVhZGNvdW50XTsKPiA+ID4gKwlkbWNfaGVhZGVyID0gKHN0cnVj dCBpbnRlbF9kbWNfaGVhZGVyX2Jhc2UgKikmZnctPmRhdGFbcmVhZGNvdW50XTsKPiA+ID4gIAly ID0gcGFyc2VfY3NyX2Z3X2RtYyhjc3IsIGRtY19oZWFkZXIpOwo+ID4gPiAgCWlmICghcikKPiA+ ID4gIAkJcmV0dXJuIE5VTEw7Cj4gPiA+IC0tCj4gPiA+IDIuMjEuMAo+ID4gPiAKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4