From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 10/10] drm/i915/dsi: add support for DSC Date: Wed, 20 Nov 2019 22:37:59 +0200 Message-ID: <87sgmigu6w.fsf@intel.com> References: <07e3cf54bf97c714019d36cee45f04e31496baf0.1573831924.git.jani.nikula@intel.com> <57510F3E2013164E925CD03ED7512A3B809C0187@BGSMSX108.gar.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9748D6E7B0 for ; Wed, 20 Nov 2019 20:37:49 +0000 (UTC) In-Reply-To: <57510F3E2013164E925CD03ED7512A3B809C0187@BGSMSX108.gar.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: "Kulkarni, Vandita" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMCBOb3YgMjAxOSwgIkt1bGthcm5pLCBWYW5kaXRhIiA8dmFuZGl0YS5rdWxrYXJu aUBpbnRlbC5jb20+IHdyb3RlOgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9t OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiBTZW50OiBGcmlkYXksIE5v dmVtYmVyIDE1LCAyMDE5IDk6MDQgUE0KPj4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPj4gQ2M6IE5pa3VsYSwgSmFuaSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPjsgS3Vsa2Fy bmksIFZhbmRpdGEKPj4gPHZhbmRpdGEua3Vsa2FybmlAaW50ZWwuY29tPjsgdmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20KPj4gU3ViamVjdDogW1BBVENIIHYyIDEwLzEwXSBkcm0vaTkxNS9k c2k6IGFkZCBzdXBwb3J0IGZvciBEU0MKPj4gCj4+IEVuYWJsZSBEU0MgZm9yIERTSSwgaWYgc3Bl Y2lmaWVkIGluIFZCVC4KPj4gCj4+IFRoaXMgaXMgbm93IGV4Y2Vzc2l2ZWx5IGR5bmFtaWMsIGJl aW5nIGVuYWJsZWQgYXQgY29tcHV0ZSBjb25maWcuIEkgZG9uJ3QKPj4gZXhwZWN0IHVzIHRvIG5l ZWQgdG8gc3dpdGNoIGJldHdlZW4gRFNDIGFuZCBub24tRFNDIGZvciB0aGUgc2FtZSBwYW5lbC4K Pj4gQ2FyZ28gY3VsdGluZyB0aGUgRFAgRFNDIHNob3dzLgo+PiAKPj4gTW9kZSB2YWxpZCBsYWNr cyBhIHNlbnNpYmxlIGltcGxlbWVudGF0aW9uLCBhcyBkb2VzIGdldCBjb25maWcuCj4+IAo+PiB2 MzogdGFrZSBjb21wcmVzc2VkIGJwcCBpbnRvIGFjY291bnQKPj4gCj4+IHYyOiBOdWtlIGNvbm5f c3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjLCBpdCdzIG5vdCB1c2VkIG9uIERTSQo+PiAKPj4gU2ln bmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4gCj4+IC0t LQo+PiAKPj4gVGhlIGJ1cnN0IG1vZGUgc3R1ZmYgd3J0IERTQyBhcmUgc3RpbGwgd2hhdGV2ZXIs IGJ1dCBhdCBsZWFzdCB3ZSBzaG91bGQgYmUKPj4gdGFraW5nIERTQyBiZXR0ZXIgaW50byBhY2Nv dW50IGluIHBvcnQgY2xvY2sgY2FsY3VsYXRpb25zLgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysrLS0tLS0K Pj4gIDEgZmlsZSBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPj4g Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCj4+IGluZGV4IGQ1NzZm MjljZWY3NS4uZGM4NzEzNGY1YzI3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ljbF9kc2kuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ljbF9kc2kuYwo+PiBAQCAtMzQsNiArMzQsNyBAQAo+PiAgI2luY2x1ZGUgImludGVsX2RkaS5o Igo+PiAgI2luY2x1ZGUgImludGVsX2RzaS5oIgo+PiAgI2luY2x1ZGUgImludGVsX3BhbmVsLmgi Cj4+ICsjaW5jbHVkZSAiaW50ZWxfdmRzYy5oIgo+PiAKPj4gIHN0YXRpYyBpbmxpbmUgaW50IGhl YWRlcl9jcmVkaXRzX2F2YWlsYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4+ICAJCQkJCSAgIGVudW0gdHJhbnNjb2RlciBkc2lfdHJhbnMpCj4+IEBAIC0zMDIsMTcgKzMw MywyMiBAQCBzdGF0aWMgdm9pZCBjb25maWd1cmVfZHVhbF9saW5rX21vZGUoc3RydWN0Cj4+IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsICB9Cj4+IAo+PiAgLyogYWthIERTSSA4WCBjbG9jayAqLwo+ PiAtc3RhdGljIGludCBhZmVfY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiAr c3RhdGljIGludCBhZmVfY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiArCQkg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIHsKPj4gIAlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5i YXNlKTsKPj4gIAlpbnQgYnBwOwo+PiAKPj4gLQlicHAgPSBtaXBpX2RzaV9waXhlbF9mb3JtYXRf dG9fYnBwKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0KTsKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+ZHNj LmNvbXByZXNzaW9uX2VuYWJsZSkKPj4gKwkJYnBwID0gY3J0Y19zdGF0ZS0+ZHNjLmNvbXByZXNz ZWRfYnBwOwo+PiArCWVsc2UKPj4gKwkJYnBwID0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2Jw cChpbnRlbF9kc2ktCj4+ID5waXhlbF9mb3JtYXQpOwo+PiAKPj4gIAlyZXR1cm4gRElWX1JPVU5E X0NMT1NFU1QoaW50ZWxfZHNpLT5wY2xrICogYnBwLCBpbnRlbF9kc2ktCj4+ID5sYW5lX2NvdW50 KTsgIH0KPj4gCj4+IC1zdGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2Rpdihz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gK3N0YXRpYyB2b2lkIGdlbjExX2RzaV9w cm9ncmFtX2VzY19jbGtfZGl2KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiArCQkJ CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ICpjcnRjX3N0YXRlKQo+PiAgewo+ PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwo+PiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOyBAQCAtCj4+IDMyMCw3ICszMjYsNyBAQCBzdGF0aWMgdm9p ZCBnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2RpdihzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPj4gIAlpbnQgYWZlX2Nsa19raHo7Cj4+ICAJdTMyIGVzY19jbGtfZGl2X207Cj4+ IAo+PiAtCWFmZV9jbGtfa2h6ID0gYWZlX2NsayhlbmNvZGVyKTsKPj4gKwlhZmVfY2xrX2toeiA9 IGFmZV9jbGsoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4+ICAJZXNjX2Nsa19kaXZfbSA9IERJVl9S T1VORF9VUChhZmVfY2xrX2toeiwgRFNJX01BWF9FU0NfQ0xLKTsKPj4gCj4+ICAJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgeyBAQCAtNDk4LDcgKzUwNCw5IEBACj4+ IHN0YXRpYyB2b2lkIGdlbjExX2RzaV9lbmFibGVfZGRpX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPj4gIAl9Cj4+ICB9Cj4+IAo+PiAtc3RhdGljIHZvaWQgZ2VuMTFfZHNp X3NldHVwX2RwaHlfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gK3N0 YXRpYyB2b2lkCj4+ICtnZW4xMV9kc2lfc2V0dXBfZHBoeV90aW1pbmdzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+PiArCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4gIAlzdHJ1Y3QgaW50ZWxfZHNpICpp bnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsgQEAgLQo+PiA1Mzks NyArNTQ3LDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3NldHVwX2RwaHlfdGltaW5ncyhzdHJ1 Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gIAkgKiBsZWF2ZSBhbGwgZmllbGRzIGF0 IEhXIGRlZmF1bHQgdmFsdWVzLgo+PiAgCSAqLwo+PiAgCWlmIChJU19HRU4oZGV2X3ByaXYsIDEx KSkgewo+PiAtCQlpZiAoYWZlX2NsayhlbmNvZGVyKSA8PSA4MDAwMDApIHsKPj4gKwkJaWYgKGFm ZV9jbGsoZW5jb2RlciwgY3J0Y19zdGF0ZSkgPD0gODAwMDAwKSB7Cj4+ICAJCQlmb3JfZWFjaF9k c2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4+ICAJCQkJdG1wID0KPj4gSTkxNV9S RUFEKERQSFlfVEFfVElNSU5HX1BBUkFNKHBvcnQpKTsKPj4gIAkJCQl0bXAgJj0gflRBX1NVUkVf TUFTSzsKPj4gQEAgLTY0OSw3ICs2NTcsNyBAQCBnZW4xMV9kc2lfY29uZmlndXJlX3RyYW5zY29k ZXIoc3RydWN0IGludGVsX2VuY29kZXIKPj4gKmVuY29kZXIsCj4+ICAJCQl0bXAgfD0gRU9UUF9E SVNBQkxFRDsKPj4gCj4+ICAJCS8qIGVuYWJsZSBsaW5rIGNhbGlicmF0aW9uIGlmIGZyZXEgPiAx LjVHYnBzICovCj4+IC0JCWlmIChhZmVfY2xrKGVuY29kZXIpID49IDE1MDAgKiAxMDAwKSB7Cj4+ ICsJCWlmIChhZmVfY2xrKGVuY29kZXIsIHBpcGVfY29uZmlnKSA+PSAxNTAwICogMTAwMCkgewo+ PiAgCQkJdG1wICY9IH5MSU5LX0NBTElCUkFUSU9OX01BU0s7Cj4+ICAJCQl0bXAgfD0gQ0FMSUJS QVRJT05fRU5BQkxFRF9JTklUSUFMX09OTFk7Cj4+ICAJCX0KPj4gQEAgLTkxNSw3ICs5MjMsOCBA QCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZW5hYmxlX3RyYW5zY29kZXIoc3RydWN0Cj4+IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4+ICAJfQo+PiAgfQo+PiAKPj4gLXN0YXRpYyB2b2lkIGdlbjEx X2RzaV9zZXR1cF90aW1lb3V0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gK3N0 YXRpYyB2b2lkIGdlbjExX2RzaV9zZXR1cF90aW1lb3V0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPj4gKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOyBAQCAtCj4+IDkzMCw3ICs5Mzks NyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfc2V0dXBfdGltZW91dHMoc3RydWN0IGludGVsX2Vu Y29kZXIKPj4gKmVuY29kZXIpCj4+ICAJICogVElNRV9OUyA9IChCWVRFX0NMS19DT1VOVCAqIDgg KiAxMF42KS8gQml0cmF0ZQo+PiAgCSAqIEVTQ0FQRV9DTEtfQ09VTlQgID0gVElNRV9OUy9FU0Nf Q0xLX05TCj4+ICAJICovCj4+IC0JZGl2aXNvciA9IGludGVsX2RzaV90bHB4X25zKGludGVsX2Rz aSkgKiBhZmVfY2xrKGVuY29kZXIpICogMTAwMDsKPj4gKwlkaXZpc29yID0gaW50ZWxfZHNpX3Rs cHhfbnMoaW50ZWxfZHNpKSAqIGFmZV9jbGsoZW5jb2RlciwgY3J0Y19zdGF0ZSkKPj4gKyogMTAw MDsKPj4gIAltdWwgPSA4ICogMTAwMDAwMDsKPj4gIAloc190eF90aW1lb3V0ID0gRElWX1JPVU5E X1VQKGludGVsX2RzaS0+aHNfdHhfdGltZW91dCAqIG11bCwKPj4gIAkJCQkgICAgIGRpdmlzb3Ip Owo+PiBAQCAtOTY2LDcgKzk3NSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9zZXR1cF90aW1l b3V0cyhzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gCj4+ICBzdGF0aWMgdm9p ZAo+PiAgZ2VuMTFfZHNpX2VuYWJsZV9wb3J0X2FuZF9waHkoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4+IC0JCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4gCj4+IEBAIC05ODMsMTMgKzk5MiwxMyBAQCBn ZW4xMV9kc2lfZW5hYmxlX3BvcnRfYW5kX3BoeShzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPj4gIAlnZW4xMV9kc2lfZW5hYmxlX2RkaV9idWZmZXIoZW5jb2Rlcik7Cj4+IAo+PiAg CS8qIHNldHVwIEQtUEhZIHRpbWluZ3MgKi8KPj4gLQlnZW4xMV9kc2lfc2V0dXBfZHBoeV90aW1p bmdzKGVuY29kZXIpOwo+PiArCWdlbjExX2RzaV9zZXR1cF9kcGh5X3RpbWluZ3MoZW5jb2Rlciwg Y3J0Y19zdGF0ZSk7Cj4+IAo+PiAgCS8qIHN0ZXAgNGg6IHNldHVwIERTSSBwcm90b2NvbCB0aW1l b3V0cyAqLwo+PiAtCWdlbjExX2RzaV9zZXR1cF90aW1lb3V0cyhlbmNvZGVyKTsKPj4gKwlnZW4x MV9kc2lfc2V0dXBfdGltZW91dHMoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4+IAo+PiAgCS8qIFN0 ZXAgKDRoLCA0aSwgNGosIDRrKTogQ29uZmlndXJlIHRyYW5zY29kZXIgKi8KPj4gLQlnZW4xMV9k c2lfY29uZmlndXJlX3RyYW5zY29kZXIoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+PiArCWdlbjEx X2RzaV9jb25maWd1cmVfdHJhbnNjb2RlcihlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPj4gCj4+ICAJ LyogU3RlcCA0bDogR2F0ZSBEREkgY2xvY2tzICovCj4+ICAJaWYgKElTX0dFTihkZXZfcHJpdiwg MTEpKQo+PiBAQCAtMTAzNiwxNCArMTA0NSwxNCBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfcG93 ZXJ1cF9wYW5lbChzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikgIH0KPj4gCj4+ICBz dGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4+IC0JCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4+ICsJCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPj4gIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlCj4+ ICpjb25uX3N0YXRlKSAgewo+PiAgCS8qIHN0ZXAyOiBlbmFibGUgSU8gcG93ZXIgKi8KPj4gIAln ZW4xMV9kc2lfZW5hYmxlX2lvX3Bvd2VyKGVuY29kZXIpOwo+PiAKPj4gIAkvKiBzdGVwMzogZW5h YmxlIERTSSBQTEwgKi8KPj4gLQlnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2RpdihlbmNvZGVy KTsKPj4gKwlnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2RpdihlbmNvZGVyLCBjcnRjX3N0YXRl KTsKPj4gIH0KPj4gCj4+ICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwgQEAgLQo+PiAxMDYxLDYgKzEwNzAsOSBAQCBzdGF0aWMg dm9pZCBnZW4xMV9kc2lfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+PiAqZW5jb2Rl ciwKPj4gIAkvKiBzdGVwNTogcHJvZ3JhbSBhbmQgcG93ZXJ1cCBwYW5lbCAqLwo+PiAgCWdlbjEx X2RzaV9wb3dlcnVwX3BhbmVsKGVuY29kZXIpOwo+PiAKPj4gKwkvKiBGSVhNRTogbG9jYXRpb24/ ICovCj4+ICsJaW50ZWxfZHNjX2VuYWJsZShlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4+ICsKPj4g IAkvKiBzdGVwNmM6IGNvbmZpZ3VyZSB0cmFuc2NvZGVyIHRpbWluZ3MgKi8KPj4gIAlnZW4xMV9k c2lfc2V0X3RyYW5zY29kZXJfdGltaW5ncyhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4+IAo+PiBA QCAtMTIyMiw2ICsxMjM0LDEzIEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9kaXNhYmxlKHN0cnVj dAo+PiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgCWdlbjExX2RzaV9kaXNhYmxlX2lvX3Bv d2VyKGVuY29kZXIpOwo+PiAgfQo+PiAKPj4gK3N0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cyBn ZW4xMV9kc2lfbW9kZV92YWxpZChzdHJ1Y3QKPj4gZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ PiArCQkJCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlCj4+ICptb2RlKQo+PiArewo+PiArCS8q IEZJWE1FOiBEU0M/ICovCj4+ICsJcmV0dXJuIGludGVsX2RzaV9tb2RlX3ZhbGlkKGNvbm5lY3Rv ciwgbW9kZSk7IH0KPj4gKwo+PiAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dldF90aW1pbmdzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgCQkJCSAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKSAgeyBAQCAtCj4+IDEyNjksNiArMTI4OCw1MyBAQCBzdGF0aWMg dm9pZCBnZW4xMV9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+PiAqZW5jb2Rl ciwKPj4gIAlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBiZHdfZ2V0X3BpcGVtaXNjX2JwcChjcnRj KTsgIH0KPj4gCj4+ICtzdGF0aWMgaW50IGdlbjExX2RzaV9kc2NfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykgewo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiArCXN0cnVjdCBkcm1fZHNjX2NvbmZp ZyAqdmRzY19jZmcgPSAmcGlwZV9jb25maWctPmRzYy5jb25maWc7Cj4+ICsJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctCj4+ID5ody5hZGp1c3Rl ZF9tb2RlOwo+PiArCWludCBkc2NfbWF4X2JwYyA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIg PyAxMiA6IDEwOwo+PiArCWJvb2wgdXNlX2RzYzsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJdXNl X2RzYyA9IGludGVsX2Jpb3NfZ2V0X2RzY19wYXJhbXMoZW5jb2RlciwgcGlwZV9jb25maWcsCj4+ IGRzY19tYXhfYnBjKTsKPj4gKwlpZiAoIXVzZV9kc2MpCj4+ICsJCXJldHVybiAwOwo+PiArCj4+ ICsJaWYgKHBpcGVfY29uZmlnLT5waXBlX2JwcCA8IDggKiAzKQo+PiArCQlyZXR1cm4gLUVJTlZB TDsKPj4gKwo+PiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID4gZGV2X3ByaXYtPm1h eF9jZGNsa19mcmVxKSB7Cj4+ICsJCWlmIChwaXBlX2NvbmZpZy0+ZHNjLnNsaWNlX2NvdW50ID4g MSkgewo+PiArCQkJcGlwZV9jb25maWctPmRzYy5kc2Nfc3BsaXQgPSB0cnVlOwo+PiArCQl9IGVs c2Ugewo+PiArCQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMgo+ PiBWRFNDIGluc3RhbmNlc1xuIik7Cj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwkJfQo+PiAr CX0KPj4gKwo+PiArCXZkc2NfY2ZnLT5jb252ZXJ0X3JnYiA9IGZhbHNlOwo+PiArCj4+ICsJcmV0 ID0gaW50ZWxfZHNjX2NvbXB1dGVfcGFyYW1zKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPj4gKwlp ZiAocmV0KQo+PiArCQlyZXR1cm4gcmV0Owo+PiArCj4+ICsJLyogRFNJIHNwZWNpZmljIHNhbml0 eSBjaGVja3Mgb24gdGhlIGNvbW1vbiBjb2RlICovCj4+ICsJV0FSTl9PTih2ZHNjX2NmZy0+dmJy X2VuYWJsZSk7Cj4+ICsJV0FSTl9PTih2ZHNjX2NmZy0+cGljX3dpZHRoICUgdmRzY19jZmctPnNs aWNlX3dpZHRoKTsKPj4gKwlXQVJOX09OKHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQgPCA4KTsKPj4g KwlXQVJOX09OKHZkc2NfY2ZnLT5waWNfaGVpZ2h0ICUgdmRzY19jZmctPnNsaWNlX2hlaWdodCk7 Cj4+ICsKPj4gKwlyZXQgPSBkcm1fZHNjX2NvbXB1dGVfcmNfcGFyYW1ldGVycyh2ZHNjX2NmZyk7 Cj4+ICsJaWYgKHJldCkKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwo+PiArCXBpcGVfY29uZmlnLT5k c2MuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+ PiArCj4+ICBzdGF0aWMgaW50IGdlbjExX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPj4gIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAo+PiAgCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSkKPj4gQEAgLTEzMDAsNyArMTM2NiwxMSBAQCBzdGF0aWMgaW50IGdlbjExX2RzaV9jb21w dXRlX2NvbmZpZyhzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gIAkJcGlwZV9j b25maWctPnBpcGVfYnBwID0gMTg7Cj4KPiBUUkFOU19EU0lfRlVOQ19DT05GIHJlZ2lzdGVyIG5l ZWRzIHRvIGJlIHVwZGF0ZWQgd2l0aCBwaXhlbCBmb3JtYXQgYXMKPiBjb21wcmVzc2VkKDB4NikK CkFic29sdXRlbHksIHRoaXMgd2FzIGEgYml0IG9mIGEgZmFjZXBhbG0gZm9yIG1lLCBhcyB3ZWxs IGFzIHRoZQpob3Jpem9udGFsIHRpbWluZyBjaGFuZ2VzLiBUaGFua3MgZm9yIGNhdGNoaW5nLgoK T24gdGhhdCBub3RlLCBidXJzdCBtb2RlIGlzIGFsc28gYnJva2VuIGZvciBJQ0wgRFNJLCBidXQg dGhhdCdzIGFub3RoZXIKd29ycnkgZm9yIGFub3RoZXIgZGF5LgoKPiBTaG91bGQgd2UgYmUgaGF2 aW5nIHBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gY29tcHJlc3NlZCA/CgpObywgSSB0aGlu ayB3ZSBuZWVkIHRoZSByZWFsIHZhbHVlIHRoZXJlIGZvciBhY3R1YWwgcHJlLURTQyBlbmdpbmUg cGlwZQpzdHVmZi4KCkknbGwgc2VuZCBhIGNvdXBsZSBvZiBtb3JlIHBhdGNoZXMgaW4gcmVwbHkg dG8gdGhlIGNvdmVyIGxldHRlciBmb3IKdGVzdGluZy4gVGhleSdsbCBuZWVkIHRvIGJlIG1hZGUg cGFydCBvZiB0aGUgc2VyaWVzIGJldHRlciBidXQgSSdtIHRvbwp0aXJlZCBub3cuCgpCUiwKSmFu aS4KCgo+Cj4gVGhhbmtzLAo+IFZhbmRpdGEKPj4gCj4+ICAJcGlwZV9jb25maWctPmNsb2NrX3Nl dCA9IHRydWU7Cj4+IC0JcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBhZmVfY2xrKGVuY29kZXIp IC8gNTsKPj4gKwo+PiArCWlmIChnZW4xMV9kc2lfZHNjX2NvbXB1dGVfY29uZmlnKGVuY29kZXIs IHBpcGVfY29uZmlnKSkKPj4gKwkJRFJNX0RFQlVHX0tNUygiQXR0ZW1wdGluZyB0byB1c2UgRFND IGZhaWxlZFxuIik7Cj4+ICsKPj4gKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGFmZV9jbGso ZW5jb2RlciwgcGlwZV9jb25maWcpIC8gNTsKPj4gCj4+ICAJcmV0dXJuIDA7Cj4+ICB9Cj4+IEBA IC0xMzA4LDggKzEzNzgsMTMgQEAgc3RhdGljIGludCBnZW4xMV9kc2lfY29tcHV0ZV9jb25maWco c3RydWN0Cj4+IGludGVsX2VuY29kZXIgKmVuY29kZXIsICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lf Z2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0Cj4+IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAJ CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKSAgewo+PiAtCWdldF9kc2lf aW9fcG93ZXJfZG9tYWlucyh0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSwKPj4gLQkJCQkgZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSkpOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4+ICsKPj4gKwlnZXRfZHNp X2lvX3Bvd2VyX2RvbWFpbnMoaTkxNSwgZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0KPj4gPmJh c2UpKTsKPj4gKwo+PiArCWlmIChjcnRjX3N0YXRlLT5kc2MuY29tcHJlc3Npb25fZW5hYmxlKQo+ PiArCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChpOTE1LAo+PiArCj4+IAlpbnRlbF9kc2NfcG93 ZXJfZG9tYWluKGNydGNfc3RhdGUpKTsKPj4gIH0KPj4gCj4+ICBzdGF0aWMgYm9vbCBnZW4xMV9k c2lfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBAQCAtCj4+IDEz NzksNyArMTQ1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcwo+ PiBnZW4xMV9kc2lfY29ubmVjdG9yX2Z1bmNzID0gewo+PiAKPj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MKPj4gZ2VuMTFfZHNpX2Nvbm5lY3Rvcl9oZWxw ZXJfZnVuY3MgPSB7Cj4+ICAJLmdldF9tb2RlcyA9IGludGVsX2RzaV9nZXRfbW9kZXMsCj4+IC0J Lm1vZGVfdmFsaWQgPSBpbnRlbF9kc2lfbW9kZV92YWxpZCwKPj4gKwkubW9kZV92YWxpZCA9IGdl bjExX2RzaV9tb2RlX3ZhbGlkLAo+PiAgCS5hdG9taWNfY2hlY2sgPSBpbnRlbF9kaWdpdGFsX2Nv bm5lY3Rvcl9hdG9taWNfY2hlY2ssCj4+ICB9Owo+PiAKPj4gLS0KPj4gMi4yMC4xCj4KCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 85A78C432C0 for ; Wed, 20 Nov 2019 20:37:52 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 61D1820726 for ; Wed, 20 Nov 2019 20:37:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 61D1820726 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CD48D6E51A; Wed, 20 Nov 2019 20:37:51 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9748D6E7B0 for ; Wed, 20 Nov 2019 20:37:49 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Nov 2019 12:37:49 -0800 X-IronPort-AV: E=Sophos;i="5.69,223,1571727600"; d="scan'208";a="200863792" Received: from zimmerma-mobl.ger.corp.intel.com (HELO localhost) ([10.249.32.60]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Nov 2019 12:37:47 -0800 From: Jani Nikula To: "Kulkarni\, Vandita" , "intel-gfx\@lists.freedesktop.org" In-Reply-To: <57510F3E2013164E925CD03ED7512A3B809C0187@BGSMSX108.gar.corp.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <07e3cf54bf97c714019d36cee45f04e31496baf0.1573831924.git.jani.nikula@intel.com> <57510F3E2013164E925CD03ED7512A3B809C0187@BGSMSX108.gar.corp.intel.com> Date: Wed, 20 Nov 2019 22:37:59 +0200 Message-ID: <87sgmigu6w.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH v2 10/10] drm/i915/dsi: add support for DSC X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191120203759.fwEP7fPFCsbLXRf-NGij_KeRhs1gI-eY0brDY1LziU8@z> T24gV2VkLCAyMCBOb3YgMjAxOSwgIkt1bGthcm5pLCBWYW5kaXRhIiA8dmFuZGl0YS5rdWxrYXJu aUBpbnRlbC5jb20+IHdyb3RlOgo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9t OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiBTZW50OiBGcmlkYXksIE5v dmVtYmVyIDE1LCAyMDE5IDk6MDQgUE0KPj4gVG86IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPj4gQ2M6IE5pa3VsYSwgSmFuaSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPjsgS3Vsa2Fy bmksIFZhbmRpdGEKPj4gPHZhbmRpdGEua3Vsa2FybmlAaW50ZWwuY29tPjsgdmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20KPj4gU3ViamVjdDogW1BBVENIIHYyIDEwLzEwXSBkcm0vaTkxNS9k c2k6IGFkZCBzdXBwb3J0IGZvciBEU0MKPj4gCj4+IEVuYWJsZSBEU0MgZm9yIERTSSwgaWYgc3Bl Y2lmaWVkIGluIFZCVC4KPj4gCj4+IFRoaXMgaXMgbm93IGV4Y2Vzc2l2ZWx5IGR5bmFtaWMsIGJl aW5nIGVuYWJsZWQgYXQgY29tcHV0ZSBjb25maWcuIEkgZG9uJ3QKPj4gZXhwZWN0IHVzIHRvIG5l ZWQgdG8gc3dpdGNoIGJldHdlZW4gRFNDIGFuZCBub24tRFNDIGZvciB0aGUgc2FtZSBwYW5lbC4K Pj4gQ2FyZ28gY3VsdGluZyB0aGUgRFAgRFNDIHNob3dzLgo+PiAKPj4gTW9kZSB2YWxpZCBsYWNr cyBhIHNlbnNpYmxlIGltcGxlbWVudGF0aW9uLCBhcyBkb2VzIGdldCBjb25maWcuCj4+IAo+PiB2 MzogdGFrZSBjb21wcmVzc2VkIGJwcCBpbnRvIGFjY291bnQKPj4gCj4+IHYyOiBOdWtlIGNvbm5f c3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjLCBpdCdzIG5vdCB1c2VkIG9uIERTSQo+PiAKPj4gU2ln bmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4gCj4+IC0t LQo+PiAKPj4gVGhlIGJ1cnN0IG1vZGUgc3R1ZmYgd3J0IERTQyBhcmUgc3RpbGwgd2hhdGV2ZXIs IGJ1dCBhdCBsZWFzdCB3ZSBzaG91bGQgYmUKPj4gdGFraW5nIERTQyBiZXR0ZXIgaW50byBhY2Nv dW50IGluIHBvcnQgY2xvY2sgY2FsY3VsYXRpb25zLgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysrLS0tLS0K Pj4gIDEgZmlsZSBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPj4g Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCj4+IGluZGV4IGQ1NzZm MjljZWY3NS4uZGM4NzEzNGY1YzI3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ljbF9kc2kuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ljbF9kc2kuYwo+PiBAQCAtMzQsNiArMzQsNyBAQAo+PiAgI2luY2x1ZGUgImludGVsX2RkaS5o Igo+PiAgI2luY2x1ZGUgImludGVsX2RzaS5oIgo+PiAgI2luY2x1ZGUgImludGVsX3BhbmVsLmgi Cj4+ICsjaW5jbHVkZSAiaW50ZWxfdmRzYy5oIgo+PiAKPj4gIHN0YXRpYyBpbmxpbmUgaW50IGhl YWRlcl9jcmVkaXRzX2F2YWlsYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4+ICAJCQkJCSAgIGVudW0gdHJhbnNjb2RlciBkc2lfdHJhbnMpCj4+IEBAIC0zMDIsMTcgKzMw MywyMiBAQCBzdGF0aWMgdm9pZCBjb25maWd1cmVfZHVhbF9saW5rX21vZGUoc3RydWN0Cj4+IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsICB9Cj4+IAo+PiAgLyogYWthIERTSSA4WCBjbG9jayAqLwo+ PiAtc3RhdGljIGludCBhZmVfY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiAr c3RhdGljIGludCBhZmVfY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiArCQkg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIHsKPj4gIAlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5i YXNlKTsKPj4gIAlpbnQgYnBwOwo+PiAKPj4gLQlicHAgPSBtaXBpX2RzaV9waXhlbF9mb3JtYXRf dG9fYnBwKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0KTsKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+ZHNj LmNvbXByZXNzaW9uX2VuYWJsZSkKPj4gKwkJYnBwID0gY3J0Y19zdGF0ZS0+ZHNjLmNvbXByZXNz ZWRfYnBwOwo+PiArCWVsc2UKPj4gKwkJYnBwID0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2Jw cChpbnRlbF9kc2ktCj4+ID5waXhlbF9mb3JtYXQpOwo+PiAKPj4gIAlyZXR1cm4gRElWX1JPVU5E X0NMT1NFU1QoaW50ZWxfZHNpLT5wY2xrICogYnBwLCBpbnRlbF9kc2ktCj4+ID5sYW5lX2NvdW50 KTsgIH0KPj4gCj4+IC1zdGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2Rpdihz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gK3N0YXRpYyB2b2lkIGdlbjExX2RzaV9w cm9ncmFtX2VzY19jbGtfZGl2KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiArCQkJ CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4+ICpjcnRjX3N0YXRlKQo+PiAgewo+ PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwo+PiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOyBAQCAtCj4+IDMyMCw3ICszMjYsNyBAQCBzdGF0aWMgdm9p ZCBnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2RpdihzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPj4gIAlpbnQgYWZlX2Nsa19raHo7Cj4+ICAJdTMyIGVzY19jbGtfZGl2X207Cj4+ IAo+PiAtCWFmZV9jbGtfa2h6ID0gYWZlX2NsayhlbmNvZGVyKTsKPj4gKwlhZmVfY2xrX2toeiA9 IGFmZV9jbGsoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4+ICAJZXNjX2Nsa19kaXZfbSA9IERJVl9S T1VORF9VUChhZmVfY2xrX2toeiwgRFNJX01BWF9FU0NfQ0xLKTsKPj4gCj4+ICAJZm9yX2VhY2hf ZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgeyBAQCAtNDk4LDcgKzUwNCw5IEBACj4+ IHN0YXRpYyB2b2lkIGdlbjExX2RzaV9lbmFibGVfZGRpX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPj4gIAl9Cj4+ICB9Cj4+IAo+PiAtc3RhdGljIHZvaWQgZ2VuMTFfZHNp X3NldHVwX2RwaHlfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gK3N0 YXRpYyB2b2lkCj4+ICtnZW4xMV9kc2lfc2V0dXBfZHBoeV90aW1pbmdzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+PiArCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4gIAlzdHJ1Y3QgaW50ZWxfZHNpICpp bnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsgQEAgLQo+PiA1Mzks NyArNTQ3LDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3NldHVwX2RwaHlfdGltaW5ncyhzdHJ1 Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gIAkgKiBsZWF2ZSBhbGwgZmllbGRzIGF0 IEhXIGRlZmF1bHQgdmFsdWVzLgo+PiAgCSAqLwo+PiAgCWlmIChJU19HRU4oZGV2X3ByaXYsIDEx KSkgewo+PiAtCQlpZiAoYWZlX2NsayhlbmNvZGVyKSA8PSA4MDAwMDApIHsKPj4gKwkJaWYgKGFm ZV9jbGsoZW5jb2RlciwgY3J0Y19zdGF0ZSkgPD0gODAwMDAwKSB7Cj4+ICAJCQlmb3JfZWFjaF9k c2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4+ICAJCQkJdG1wID0KPj4gSTkxNV9S RUFEKERQSFlfVEFfVElNSU5HX1BBUkFNKHBvcnQpKTsKPj4gIAkJCQl0bXAgJj0gflRBX1NVUkVf TUFTSzsKPj4gQEAgLTY0OSw3ICs2NTcsNyBAQCBnZW4xMV9kc2lfY29uZmlndXJlX3RyYW5zY29k ZXIoc3RydWN0IGludGVsX2VuY29kZXIKPj4gKmVuY29kZXIsCj4+ICAJCQl0bXAgfD0gRU9UUF9E SVNBQkxFRDsKPj4gCj4+ICAJCS8qIGVuYWJsZSBsaW5rIGNhbGlicmF0aW9uIGlmIGZyZXEgPiAx LjVHYnBzICovCj4+IC0JCWlmIChhZmVfY2xrKGVuY29kZXIpID49IDE1MDAgKiAxMDAwKSB7Cj4+ ICsJCWlmIChhZmVfY2xrKGVuY29kZXIsIHBpcGVfY29uZmlnKSA+PSAxNTAwICogMTAwMCkgewo+ PiAgCQkJdG1wICY9IH5MSU5LX0NBTElCUkFUSU9OX01BU0s7Cj4+ICAJCQl0bXAgfD0gQ0FMSUJS QVRJT05fRU5BQkxFRF9JTklUSUFMX09OTFk7Cj4+ICAJCX0KPj4gQEAgLTkxNSw3ICs5MjMsOCBA QCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZW5hYmxlX3RyYW5zY29kZXIoc3RydWN0Cj4+IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4+ICAJfQo+PiAgfQo+PiAKPj4gLXN0YXRpYyB2b2lkIGdlbjEx X2RzaV9zZXR1cF90aW1lb3V0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gK3N0 YXRpYyB2b2lkIGdlbjExX2RzaV9zZXR1cF90aW1lb3V0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPj4gKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiAgCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOyBAQCAtCj4+IDkzMCw3ICs5Mzks NyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfc2V0dXBfdGltZW91dHMoc3RydWN0IGludGVsX2Vu Y29kZXIKPj4gKmVuY29kZXIpCj4+ICAJICogVElNRV9OUyA9IChCWVRFX0NMS19DT1VOVCAqIDgg KiAxMF42KS8gQml0cmF0ZQo+PiAgCSAqIEVTQ0FQRV9DTEtfQ09VTlQgID0gVElNRV9OUy9FU0Nf Q0xLX05TCj4+ICAJICovCj4+IC0JZGl2aXNvciA9IGludGVsX2RzaV90bHB4X25zKGludGVsX2Rz aSkgKiBhZmVfY2xrKGVuY29kZXIpICogMTAwMDsKPj4gKwlkaXZpc29yID0gaW50ZWxfZHNpX3Rs cHhfbnMoaW50ZWxfZHNpKSAqIGFmZV9jbGsoZW5jb2RlciwgY3J0Y19zdGF0ZSkKPj4gKyogMTAw MDsKPj4gIAltdWwgPSA4ICogMTAwMDAwMDsKPj4gIAloc190eF90aW1lb3V0ID0gRElWX1JPVU5E X1VQKGludGVsX2RzaS0+aHNfdHhfdGltZW91dCAqIG11bCwKPj4gIAkJCQkgICAgIGRpdmlzb3Ip Owo+PiBAQCAtOTY2LDcgKzk3NSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9zZXR1cF90aW1l b3V0cyhzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gCj4+ICBzdGF0aWMgdm9p ZAo+PiAgZ2VuMTFfZHNpX2VuYWJsZV9wb3J0X2FuZF9waHkoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4+IC0JCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCj4+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4gCj4+IEBAIC05ODMsMTMgKzk5MiwxMyBAQCBn ZW4xMV9kc2lfZW5hYmxlX3BvcnRfYW5kX3BoeShzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPj4gIAlnZW4xMV9kc2lfZW5hYmxlX2RkaV9idWZmZXIoZW5jb2Rlcik7Cj4+IAo+PiAg CS8qIHNldHVwIEQtUEhZIHRpbWluZ3MgKi8KPj4gLQlnZW4xMV9kc2lfc2V0dXBfZHBoeV90aW1p bmdzKGVuY29kZXIpOwo+PiArCWdlbjExX2RzaV9zZXR1cF9kcGh5X3RpbWluZ3MoZW5jb2Rlciwg Y3J0Y19zdGF0ZSk7Cj4+IAo+PiAgCS8qIHN0ZXAgNGg6IHNldHVwIERTSSBwcm90b2NvbCB0aW1l b3V0cyAqLwo+PiAtCWdlbjExX2RzaV9zZXR1cF90aW1lb3V0cyhlbmNvZGVyKTsKPj4gKwlnZW4x MV9kc2lfc2V0dXBfdGltZW91dHMoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4+IAo+PiAgCS8qIFN0 ZXAgKDRoLCA0aSwgNGosIDRrKTogQ29uZmlndXJlIHRyYW5zY29kZXIgKi8KPj4gLQlnZW4xMV9k c2lfY29uZmlndXJlX3RyYW5zY29kZXIoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+PiArCWdlbjEx X2RzaV9jb25maWd1cmVfdHJhbnNjb2RlcihlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPj4gCj4+ICAJ LyogU3RlcCA0bDogR2F0ZSBEREkgY2xvY2tzICovCj4+ICAJaWYgKElTX0dFTihkZXZfcHJpdiwg MTEpKQo+PiBAQCAtMTAzNiwxNCArMTA0NSwxNCBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfcG93 ZXJ1cF9wYW5lbChzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikgIH0KPj4gCj4+ICBz dGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4+IC0JCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCj4+ICsJCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPj4gIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlCj4+ ICpjb25uX3N0YXRlKSAgewo+PiAgCS8qIHN0ZXAyOiBlbmFibGUgSU8gcG93ZXIgKi8KPj4gIAln ZW4xMV9kc2lfZW5hYmxlX2lvX3Bvd2VyKGVuY29kZXIpOwo+PiAKPj4gIAkvKiBzdGVwMzogZW5h YmxlIERTSSBQTEwgKi8KPj4gLQlnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2RpdihlbmNvZGVy KTsKPj4gKwlnZW4xMV9kc2lfcHJvZ3JhbV9lc2NfY2xrX2RpdihlbmNvZGVyLCBjcnRjX3N0YXRl KTsKPj4gIH0KPj4gCj4+ICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwgQEAgLQo+PiAxMDYxLDYgKzEwNzAsOSBAQCBzdGF0aWMg dm9pZCBnZW4xMV9kc2lfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+PiAqZW5jb2Rl ciwKPj4gIAkvKiBzdGVwNTogcHJvZ3JhbSBhbmQgcG93ZXJ1cCBwYW5lbCAqLwo+PiAgCWdlbjEx X2RzaV9wb3dlcnVwX3BhbmVsKGVuY29kZXIpOwo+PiAKPj4gKwkvKiBGSVhNRTogbG9jYXRpb24/ ICovCj4+ICsJaW50ZWxfZHNjX2VuYWJsZShlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4+ICsKPj4g IAkvKiBzdGVwNmM6IGNvbmZpZ3VyZSB0cmFuc2NvZGVyIHRpbWluZ3MgKi8KPj4gIAlnZW4xMV9k c2lfc2V0X3RyYW5zY29kZXJfdGltaW5ncyhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4+IAo+PiBA QCAtMTIyMiw2ICsxMjM0LDEzIEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9kaXNhYmxlKHN0cnVj dAo+PiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgCWdlbjExX2RzaV9kaXNhYmxlX2lvX3Bv d2VyKGVuY29kZXIpOwo+PiAgfQo+PiAKPj4gK3N0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cyBn ZW4xMV9kc2lfbW9kZV92YWxpZChzdHJ1Y3QKPj4gZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ PiArCQkJCQkJIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlCj4+ICptb2RlKQo+PiArewo+PiArCS8q IEZJWE1FOiBEU0M/ICovCj4+ICsJcmV0dXJuIGludGVsX2RzaV9tb2RlX3ZhbGlkKGNvbm5lY3Rv ciwgbW9kZSk7IH0KPj4gKwo+PiAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dldF90aW1pbmdzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgCQkJCSAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKSAgeyBAQCAtCj4+IDEyNjksNiArMTI4OCw1MyBAQCBzdGF0aWMg dm9pZCBnZW4xMV9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+PiAqZW5jb2Rl ciwKPj4gIAlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBiZHdfZ2V0X3BpcGVtaXNjX2JwcChjcnRj KTsgIH0KPj4gCj4+ICtzdGF0aWMgaW50IGdlbjExX2RzaV9kc2NfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykgewo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiArCXN0cnVjdCBkcm1fZHNjX2NvbmZp ZyAqdmRzY19jZmcgPSAmcGlwZV9jb25maWctPmRzYy5jb25maWc7Cj4+ICsJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctCj4+ID5ody5hZGp1c3Rl ZF9tb2RlOwo+PiArCWludCBkc2NfbWF4X2JwYyA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIg PyAxMiA6IDEwOwo+PiArCWJvb2wgdXNlX2RzYzsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJdXNl X2RzYyA9IGludGVsX2Jpb3NfZ2V0X2RzY19wYXJhbXMoZW5jb2RlciwgcGlwZV9jb25maWcsCj4+ IGRzY19tYXhfYnBjKTsKPj4gKwlpZiAoIXVzZV9kc2MpCj4+ICsJCXJldHVybiAwOwo+PiArCj4+ ICsJaWYgKHBpcGVfY29uZmlnLT5waXBlX2JwcCA8IDggKiAzKQo+PiArCQlyZXR1cm4gLUVJTlZB TDsKPj4gKwo+PiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID4gZGV2X3ByaXYtPm1h eF9jZGNsa19mcmVxKSB7Cj4+ICsJCWlmIChwaXBlX2NvbmZpZy0+ZHNjLnNsaWNlX2NvdW50ID4g MSkgewo+PiArCQkJcGlwZV9jb25maWctPmRzYy5kc2Nfc3BsaXQgPSB0cnVlOwo+PiArCQl9IGVs c2Ugewo+PiArCQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMgo+ PiBWRFNDIGluc3RhbmNlc1xuIik7Cj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPj4gKwkJfQo+PiAr CX0KPj4gKwo+PiArCXZkc2NfY2ZnLT5jb252ZXJ0X3JnYiA9IGZhbHNlOwo+PiArCj4+ICsJcmV0 ID0gaW50ZWxfZHNjX2NvbXB1dGVfcGFyYW1zKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPj4gKwlp ZiAocmV0KQo+PiArCQlyZXR1cm4gcmV0Owo+PiArCj4+ICsJLyogRFNJIHNwZWNpZmljIHNhbml0 eSBjaGVja3Mgb24gdGhlIGNvbW1vbiBjb2RlICovCj4+ICsJV0FSTl9PTih2ZHNjX2NmZy0+dmJy X2VuYWJsZSk7Cj4+ICsJV0FSTl9PTih2ZHNjX2NmZy0+cGljX3dpZHRoICUgdmRzY19jZmctPnNs aWNlX3dpZHRoKTsKPj4gKwlXQVJOX09OKHZkc2NfY2ZnLT5zbGljZV9oZWlnaHQgPCA4KTsKPj4g KwlXQVJOX09OKHZkc2NfY2ZnLT5waWNfaGVpZ2h0ICUgdmRzY19jZmctPnNsaWNlX2hlaWdodCk7 Cj4+ICsKPj4gKwlyZXQgPSBkcm1fZHNjX2NvbXB1dGVfcmNfcGFyYW1ldGVycyh2ZHNjX2NmZyk7 Cj4+ICsJaWYgKHJldCkKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwo+PiArCXBpcGVfY29uZmlnLT5k c2MuY29tcHJlc3Npb25fZW5hYmxlID0gdHJ1ZTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+ PiArCj4+ICBzdGF0aWMgaW50IGdlbjExX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPj4gIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAo+PiAgCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSkKPj4gQEAgLTEzMDAsNyArMTM2NiwxMSBAQCBzdGF0aWMgaW50IGdlbjExX2RzaV9jb21w dXRlX2NvbmZpZyhzdHJ1Y3QKPj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gIAkJcGlwZV9j b25maWctPnBpcGVfYnBwID0gMTg7Cj4KPiBUUkFOU19EU0lfRlVOQ19DT05GIHJlZ2lzdGVyIG5l ZWRzIHRvIGJlIHVwZGF0ZWQgd2l0aCBwaXhlbCBmb3JtYXQgYXMKPiBjb21wcmVzc2VkKDB4NikK CkFic29sdXRlbHksIHRoaXMgd2FzIGEgYml0IG9mIGEgZmFjZXBhbG0gZm9yIG1lLCBhcyB3ZWxs IGFzIHRoZQpob3Jpem9udGFsIHRpbWluZyBjaGFuZ2VzLiBUaGFua3MgZm9yIGNhdGNoaW5nLgoK T24gdGhhdCBub3RlLCBidXJzdCBtb2RlIGlzIGFsc28gYnJva2VuIGZvciBJQ0wgRFNJLCBidXQg dGhhdCdzIGFub3RoZXIKd29ycnkgZm9yIGFub3RoZXIgZGF5LgoKPiBTaG91bGQgd2UgYmUgaGF2 aW5nIHBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gY29tcHJlc3NlZCA/CgpObywgSSB0aGlu ayB3ZSBuZWVkIHRoZSByZWFsIHZhbHVlIHRoZXJlIGZvciBhY3R1YWwgcHJlLURTQyBlbmdpbmUg cGlwZQpzdHVmZi4KCkknbGwgc2VuZCBhIGNvdXBsZSBvZiBtb3JlIHBhdGNoZXMgaW4gcmVwbHkg dG8gdGhlIGNvdmVyIGxldHRlciBmb3IKdGVzdGluZy4gVGhleSdsbCBuZWVkIHRvIGJlIG1hZGUg cGFydCBvZiB0aGUgc2VyaWVzIGJldHRlciBidXQgSSdtIHRvbwp0aXJlZCBub3cuCgpCUiwKSmFu aS4KCgo+Cj4gVGhhbmtzLAo+IFZhbmRpdGEKPj4gCj4+ICAJcGlwZV9jb25maWctPmNsb2NrX3Nl dCA9IHRydWU7Cj4+IC0JcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBhZmVfY2xrKGVuY29kZXIp IC8gNTsKPj4gKwo+PiArCWlmIChnZW4xMV9kc2lfZHNjX2NvbXB1dGVfY29uZmlnKGVuY29kZXIs IHBpcGVfY29uZmlnKSkKPj4gKwkJRFJNX0RFQlVHX0tNUygiQXR0ZW1wdGluZyB0byB1c2UgRFND IGZhaWxlZFxuIik7Cj4+ICsKPj4gKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGFmZV9jbGso ZW5jb2RlciwgcGlwZV9jb25maWcpIC8gNTsKPj4gCj4+ICAJcmV0dXJuIDA7Cj4+ICB9Cj4+IEBA IC0xMzA4LDggKzEzNzgsMTMgQEAgc3RhdGljIGludCBnZW4xMV9kc2lfY29tcHV0ZV9jb25maWco c3RydWN0Cj4+IGludGVsX2VuY29kZXIgKmVuY29kZXIsICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lf Z2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0Cj4+IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAJ CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKSAgewo+PiAtCWdldF9kc2lf aW9fcG93ZXJfZG9tYWlucyh0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSwKPj4gLQkJCQkgZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSkpOwo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4+ICsKPj4gKwlnZXRfZHNp X2lvX3Bvd2VyX2RvbWFpbnMoaTkxNSwgZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0KPj4gPmJh c2UpKTsKPj4gKwo+PiArCWlmIChjcnRjX3N0YXRlLT5kc2MuY29tcHJlc3Npb25fZW5hYmxlKQo+ PiArCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChpOTE1LAo+PiArCj4+IAlpbnRlbF9kc2NfcG93 ZXJfZG9tYWluKGNydGNfc3RhdGUpKTsKPj4gIH0KPj4gCj4+ICBzdGF0aWMgYm9vbCBnZW4xMV9k c2lfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBAQCAtCj4+IDEz NzksNyArMTQ1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcwo+ PiBnZW4xMV9kc2lfY29ubmVjdG9yX2Z1bmNzID0gewo+PiAKPj4gIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MKPj4gZ2VuMTFfZHNpX2Nvbm5lY3Rvcl9oZWxw ZXJfZnVuY3MgPSB7Cj4+ICAJLmdldF9tb2RlcyA9IGludGVsX2RzaV9nZXRfbW9kZXMsCj4+IC0J Lm1vZGVfdmFsaWQgPSBpbnRlbF9kc2lfbW9kZV92YWxpZCwKPj4gKwkubW9kZV92YWxpZCA9IGdl bjExX2RzaV9tb2RlX3ZhbGlkLAo+PiAgCS5hdG9taWNfY2hlY2sgPSBpbnRlbF9kaWdpdGFsX2Nv bm5lY3Rvcl9hdG9taWNfY2hlY2ssCj4+ICB9Owo+PiAKPj4gLS0KPj4gMi4yMC4xCj4KCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==