From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v10 2/8] drm/i915: Add CRTC output format YCBCR 4:2:0 Date: Tue, 11 Sep 2018 17:53:10 +0300 Message-ID: <20180911145310.GG5565@intel.com> References: <1534240406-10534-1-git-send-email-shashank.sharma@intel.com> <1534240406-10534-3-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id C6F976E3A5 for ; Tue, 11 Sep 2018 14:53:13 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1534240406-10534-3-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMTQsIDIwMTggYXQgMDM6MjM6MjBQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IEN1cnJlbnRseSwgd2UgYXJlIHVzaW5nIGEgYm9vbCBpbiBDUlRDIHN0YXRlIChz dGF0ZS0+eWNiY3I0MjApLAo+IHRvIGluZGljYXRlIG1vZGVzZXQsIHRoYXQgdGhlIG91dHB1dCBm b3JtYXQgaXMgWUNCQ1IgNDoyOjAuIE5vdyBpbgo+IG9yZGVyIHRvIHN1cHBvcnQgb3RoZXIgWUNC Q1IgZm9ybWF0cywgd2Ugd2lsbCBuZWVkIG1vcmUgc3VjaCBmbGFncy4KPiAKPiBUaGlzIHBhdGNo IGFkZHMgYSBuZXcgZW51bSBwYXJhbWV0ZXIgZm9yIFlDQkNSIDQ6MjowIG91dHB1dHMsIGluIHRo ZQo+IENSVEMgb3V0cHV0IGZvcm1hdHMgYW5kIHRoZW4gcGx1Z3MgaXQgZHVyaW5nIHRoZSBtb2Rl c2V0Lgo+IAo+IFYzOiBBZGRlZCB0aGlzIHBhdGNoIGluIHRoZSBzZXJpZXMsIHRvIGFkZHJlc3Mg cmV2aWV3IGNvbW1lbnRzIGZyb20KPiAgICAgc2Vjb25kIHBhdGNoc2V0Lgo+IFY0OiBBZGRlZCBy LWIgZnJvbSBNYWFydGVuIChvbiB2MykKPiAgICAgQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBm cm9tIFZpbGxlOgo+ICAgICAgICAgLSBDaGFuZ2UgdGhlIGVudW0gbmFtZSB0byBpbnRlbF9vdXRw dXRfZm9ybWF0Lgo+ICAgICAgICAgLSBTdGFydCB0aGUgZW51bSB2YWx1ZSAoSU5WQUxJRCkgZnJv bSAwIGluc3RhZWQgb2YgMS4KPiAgICAgICAgIC0gU2V0IHRoZSBjcnRjJ3Mgb3V0cHV0X2Zvcm1h dCB0byBSR0IgaW4gZW5jb2RlcidzIGNvbXB1dGVfY29uZmlnLgo+IFY1OiBCcm9rZSBwcmV2aW91 cyBwYXRjaCAxIGludG8gdHdvIHBhcnRzLAo+ICAgICAtIGZpcnN0IHBhdGNoIHRvIGFkZCBDUlRD IG91dHB1dCBmb3JtYXQgaW4gZ2VuZXJhbAo+ICAgICAtIHNlY29uZCBwYXRjaCAodGhpcyBvbmUp IHRvIGFkZCBZQ0JDUiA0OjI6MCBvdXRwdXQKPiAgICAgICBmb3JtYXQgc3BlY2lmaWNhbGx5Lgo+ ICAgICAtIFVzZSBBUlJBWV9TSVpFKGZvcm1hdF9zdHIpIGZvciBvdXRwdXQgZm9ybWF0IHZhbGlk aXR5IGNoZWNrIChWaWxsZSkKPiBWNjogQWRkZWQgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0byBjYWxj dWxhdGUgY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCwgYW5kCj4gICAgIGNhbGxpbmcgaXQgZnJv bSB2YXJpb3VzIGdldF9jb25maWcgZnVuY3Rpb24gKEZpeCBDSSBidWlsZCB3YXJuaW5nKQo+IFY3 OiBGaXhlZCBjaGVja3BhdGNoIHdhcm5pbmdzIGZvciBhbGlnbm1lbnQKPiBWODogUmViYXNlCj4g Vjk6IFJlYmFzZQo+IFYxMDogUmViYXNlCj4gCj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFNo YXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA0ICstCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICB8ICA2ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jICAgfCAgMiArLQo+ICA2IGZpbGVzIGNoYW5nZWQsIDUwIGluc2Vy dGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3Iu Ywo+IGluZGV4IGM2YTdiZWEuLmJmOWQ4ZjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nv bG9yLmMKPiBAQCAtMTQ5LDcgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIGlsa19sb2FkX2NzY19tYXRy aXgoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOCB8fCBJU19IQVNXRUxMKGRldl9wcml2KSkKPiAgCQlsaW1pdGVkX2NvbG9y X3JhbmdlID0gaW50ZWxfY3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZTsKPiAgCj4gLQlp ZiAoaW50ZWxfY3J0Y19zdGF0ZS0+eWNiY3I0MjApIHsKPiArCWlmIChpbnRlbF9jcnRjX3N0YXRl LT5vdXRwdXRfZm9ybWF0ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0MjApIHsKPiAgCQlp bGtfbG9hZF95Y2Jjcl9jb252ZXJzaW9uX21hdHJpeChpbnRlbF9jcnRjKTsKPiAgCQlyZXR1cm47 Cj4gIAl9IGVsc2UgaWYgKGNydGNfc3RhdGUtPmN0bSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gaW5kZXggMGFkYzA0My4uYTAzNmZlNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gQEAgLTE0NDIsNyArMTQ0Miw3IEBAIHN0YXRpYyB2b2lkIGRkaV9kb3RjbG9ja19nZXQo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICAJZWxzZQo+ICAJCWRvdGNs b2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7Cj4gIAo+IC0JaWYgKHBpcGVfY29uZmlnLT55 Y2JjcjQyMCkKPiArCWlmIChwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQ VVRfRk9STUFUX1lDQkNSNDIwKQo+ICAJCWRvdGNsb2NrICo9IDI7Cj4gIAo+ICAJaWYgKHBpcGVf Y29uZmlnLT5waXhlbF9tdWx0aXBsaWVyKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiBpbmRleCA1ZTViYzA2Li5lMmExZTRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC00ODExLDcgKzQ4MTEsOCBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCj4gIAkJ aWYgKHBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCj4gIAkJCW5lZWRfc2NhbGluZyA9 IHRydWU7Cj4gIAo+IC0JaWYgKGNydGNfc3RhdGUtPnljYmNyNDIwICYmIHNjYWxlcl91c2VyID09 IFNLTF9DUlRDX0lOREVYKQo+ICsJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5U RUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCAmJgo+ICsJICAgIHNjYWxlcl91c2VyID09IFNLTF9D UlRDX0lOREVYKQo+ICAJCW5lZWRfc2NhbGluZyA9IHRydWU7Cj4gIAo+ICAJLyoKPiBAQCAtNjYy MCw3ICs2NjIxLDggQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAtCWlm IChwaXBlX2NvbmZpZy0+eWNiY3I0MjAgJiYgcGlwZV9jb25maWctPmJhc2UuY3RtKSB7Cj4gKwlp ZiAocGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JD UjQyMCAmJgo+ICsJICAgIHBpcGVfY29uZmlnLT5iYXNlLmN0bSkgewo+ICAJCS8qCj4gIAkJICog VGhlcmUgaXMgb25seSBvbmUgcGlwZSBDU0MgdW5pdCBwZXIgcGlwZSwgYW5kIHdlIG5lZWQgdGhh dAo+ICAJCSAqIGZvciBvdXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+WUNCQ1IuIFNvIGlmIENU TSBpcyBhbHJlYWR5Cj4gQEAgLTc4MTgsNiArNzgyMCwzNSBAQCBzdGF0aWMgdm9pZCBjaHZfY3J0 Y19jbG9ja19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAlwaXBlX2NvbmZpZy0+cG9y dF9jbG9jayA9IGNodl9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKPiAgfQo+ICAK PiArc3RhdGljIHZvaWQgaW50ZWxfZ2V0X2NydGNfeWNiY3JfY29uZmlnKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAo+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykK PiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7Cj4gKwllbnVtIGludGVsX291dHB1dF9mb3JtYXQgb3V0cHV0ID0gSU5URUxf T1VUUFVUX0ZPUk1BVF9SR0I7Cj4gKwo+ICsJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwg SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gKwkJdTMyIHRtcCA9IEk5MTVfUkVBRChQSVBF TUlTQyhjcnRjLT5waXBlKSk7Cj4gKwo+ICsJCWlmICh0bXAgJiBQSVBFTUlTQ19PVVRQVVRfQ09M T1JTUEFDRV9ZVVYpIHsKPiArCQkJYm9vbCB5Y2JjcjQyMF9lbmFibGVkID0gdG1wICYgUElQRU1J U0NfWVVWNDIwX0VOQUJMRTsKPiArCQkJYm9vbCBibGVuZCA9IHRtcCAmIFBJUEVNSVNDX1lVVjQy MF9NT0RFX0ZVTExfQkxFTkQ7Cj4gKwo+ICsJCQlpZiAoeWNiY3I0MjBfZW5hYmxlZCkgewo+ICsJ CQkJLyogV2Ugc3VwcG9ydCA0OjI6MCBpbiBmdWxsIGJsZW5kIG1vZGUgb25seSAqLwo+ICsJCQkJ aWYgKCFibGVuZCkKPiArCQkJCQlvdXRwdXQgPSBJTlRFTF9PVVRQVVRfRk9STUFUX0lOVkFMSUQ7 Cj4gKwkJCQllbHNlIGlmICghKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8Cj4gKwkJCQkJICAg SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkpCj4gKwkJCQkJb3V0cHV0ID0gSU5URUxfT1VUUFVU X0ZPUk1BVF9JTlZBTElEOwo+ICsJCQkJZWxzZQo+ICsJCQkJCW91dHB1dCA9IElOVEVMX09VVFBV VF9GT1JNQVRfWUNCQ1I0MjA7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwo+ICsJcGlwZV9jb25m aWctPm91dHB1dF9mb3JtYXQgPSBvdXRwdXQ7Cj4gK30KPiArCj4gIHN0YXRpYyBib29sIGk5eHhf Z2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+IEBAIC03ODY1LDYgKzc4OTYsNyBA QCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKPiAgCj4gIAlpbnRlbF9nZXRfcGlwZV90aW1pbmdzKGNydGMsIHBpcGVfY29uZmlnKTsKPiAg CWludGVsX2dldF9waXBlX3NyY19zaXplKGNydGMsIHBpcGVfY29uZmlnKTsKPiArCWludGVsX2dl dF9jcnRjX3ljYmNyX2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7CgpUaGF0IGZ1bmN0aW9uIGlz IGJkdysgb25seSBhY3R1YWxseSwgc28gbm90IG11Y2ggcG9pbnQgaW4gY2FsbGluZyBpdApoZXJl LiBKdXN0IG5lZWQgdGhlIHBhdGNoIDEgdG8gYmUgZml4ZWQgdG8gY29ycmVjbHkgc2V0IG91dHB1 dF90eXBlPVJHQi4KCldlJ2xsIG5lZWQgdG8gY29tZSB1cCB3aXRoIGFub3RoZXIgd2F5IHRvIGRl dGVjdCB0aGUgb3V0cHV0X2Zvcm1hdCB3aGVuCndlIHN0YXJ0IHRvIGRvIHl1diBvdXRwdXQgb24g cHJlLWJkdy4KCj4gIAo+ICAJaTl4eF9nZXRfcGZpdF9jb25maWcoY3J0YywgcGlwZV9jb25maWcp Owo+ICAKPiBAQCAtODQ1MiwxMCArODQ4NCwxMCBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9w aXBlbWlzYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAkJaWYgKGludGVsX2NydGMtPmNvbmZp Zy0+ZGl0aGVyKQo+ICAJCQl2YWwgfD0gUElQRU1JU0NfRElUSEVSX0VOQUJMRSB8IFBJUEVNSVND X0RJVEhFUl9UWVBFX1NQOwo+ICAKPiAtCQlpZiAoY29uZmlnLT55Y2JjcjQyMCkgewo+IC0JCQl2 YWwgfD0gUElQRU1JU0NfT1VUUFVUX0NPTE9SU1BBQ0VfWVVWIHwKPiAtCQkJCVBJUEVNSVNDX1lV VjQyMF9FTkFCTEUgfAo+IC0JCQkJUElQRU1JU0NfWVVWNDIwX01PREVfRlVMTF9CTEVORDsKPiAr CQlpZiAoY29uZmlnLT5vdXRwdXRfZm9ybWF0ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0 MjApIHsKPiArCQkJdmFsIHw9IFBJUEVNSVNDX09VVFBVVF9DT0xPUlNQQUNFX1lVVjsKPiArCQkJ dmFsIHw9IFBJUEVNSVNDX1lVVjQyMF9FTkFCTEUgfAo+ICsJCQkgICAgICAgUElQRU1JU0NfWVVW NDIwX01PREVfRlVMTF9CTEVORDsKPiAgCQl9Cj4gIAo+ICAJCUk5MTVfV1JJVEUoUElQRU1JU0Mo aW50ZWxfY3J0Yy0+cGlwZSksIHZhbCk7Cj4gQEAgLTg5NTMsNiArODk4NSw3IEBAIHN0YXRpYyBi b29sIGlyb25sYWtlX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAg Cj4gIAlpbnRlbF9nZXRfcGlwZV90aW1pbmdzKGNydGMsIHBpcGVfY29uZmlnKTsKPiAgCWludGVs X2dldF9waXBlX3NyY19zaXplKGNydGMsIHBpcGVfY29uZmlnKTsKPiArCWludGVsX2dldF9jcnRj X3ljYmNyX2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7CgpkaXR0bwoKPiAgCj4gIAlpcm9ubGFr ZV9nZXRfcGZpdF9jb25maWcoY3J0YywgcGlwZV9jb25maWcpOwo+ICAKPiBAQCAtOTUxNCwyOCAr OTU0NywxMSBAQCBzdGF0aWMgYm9vbCBoYXN3ZWxsX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiAgCX0KPiAgCj4gIAlpbnRlbF9nZXRfcGlwZV9zcmNfc2l6ZShjcnRj LCBwaXBlX2NvbmZpZyk7Cj4gKwlpbnRlbF9nZXRfY3J0Y195Y2Jjcl9jb25maWcoY3J0YywgcGlw ZV9jb25maWcpOwo+ICAKPiAgCXBpcGVfY29uZmlnLT5nYW1tYV9tb2RlID0KPiAgCQlJOTE1X1JF QUQoR0FNTUFfTU9ERShjcnRjLT5waXBlKSkgJiBHQU1NQV9NT0RFX01PREVfTUFTSzsKPiAgCj4g LQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp IHsKPiAtCQl1MzIgdG1wID0gSTkxNV9SRUFEKFBJUEVNSVNDKGNydGMtPnBpcGUpKTsKPiAtCQli b29sIGNscnNwYWNlX3l1diA9IHRtcCAmIFBJUEVNSVNDX09VVFBVVF9DT0xPUlNQQUNFX1lVVjsK PiAtCj4gLQkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJp dikgPj0gMTApIHsKPiAtCQkJYm9vbCBibGVuZF9tb2RlXzQyMCA9IHRtcCAmCj4gLQkJCQkJICAg ICAgUElQRU1JU0NfWVVWNDIwX01PREVfRlVMTF9CTEVORDsKPiAtCj4gLQkJCXBpcGVfY29uZmln LT55Y2JjcjQyMCA9IHRtcCAmIFBJUEVNSVNDX1lVVjQyMF9FTkFCTEU7Cj4gLQkJCWlmIChwaXBl X2NvbmZpZy0+eWNiY3I0MjAgIT0gY2xyc3BhY2VfeXV2IHx8Cj4gLQkJCSAgICBwaXBlX2NvbmZp Zy0+eWNiY3I0MjAgIT0gYmxlbmRfbW9kZV80MjApCj4gLQkJCQlEUk1fREVCVUdfS01TKCJCYWQg NDoyOjAgbW9kZSAoJTA4eClcbiIsIHRtcCk7Cj4gLQkJfSBlbHNlIGlmIChjbHJzcGFjZV95dXYp IHsKPiAtCQkJRFJNX0RFQlVHX0tNUygiWUNiQ3IgNDoyOjAgVW5zdXBwb3J0ZWRcbiIpOwo+IC0J CX0KPiAtCX0KPiAtCj4gLQlwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBV VF9GT1JNQVRfUkdCOwo+ICAJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxf RklUVEVSKGNydGMtPnBpcGUpOwo+ICAJaWYgKGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2Vu YWJsZWQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbikpIHsKPiAgCQlwb3dlcl9kb21haW5fbWFzayB8 PSBCSVRfVUxMKHBvd2VyX2RvbWFpbik7Cj4gQEAgLTEwODg2LDExICsxMDkwMiwxMyBAQCBzdGF0 aWMgdm9pZCBzbnByaW50Zl9vdXRwdXRfdHlwZXMoY2hhciAqYnVmLCBzaXplX3QgbGVuLAo+ICBz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG91dHB1dF9mb3JtYXRfc3RyW10gPSB7Cj4gIAlbSU5U RUxfT1VUUFVUX0ZPUk1BVF9JTlZBTElEXSA9ICJJbnZhbGlkIiwKPiAgCVtJTlRFTF9PVVRQVVRf Rk9STUFUX1JHQl0gPSAiUkdCIiwKPiArCVtJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwXSA9 ICJZQ0JDUjQ6MjowIiwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBjaGFyICpvdXRwdXRfZm9y bWF0cyhlbnVtIGludGVsX291dHB1dF9mb3JtYXQgZm9ybWF0KQo+ICB7Cj4gLQlpZiAoZm9ybWF0 ICE9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCKQo+ICsJaWYgKGZvcm1hdCA8IElOVEVMX09VVFBV VF9GT1JNQVRfUkdCIHx8CgpJIHRoaW5rIHRoZSBlbnVtIGVuZHMgdXAgdW5zaWduZWQgc28gdGhp cyA8IGNoZWNrIGlzIHBvaW50bGVzcy4KCj4gKwkgICAgZm9ybWF0ID4gQVJSQVlfU0laRShvdXRw dXRfZm9ybWF0X3N0cikpCgpUaGlzIHNob3VsZCBiZSA+PQoKV2l0aCB0aGlzIGZpeGVkClJldmll d2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoK PiAgCQlmb3JtYXQgPSBJTlRFTF9PVVRQVVRfRk9STUFUX0lOVkFMSUQ7Cj4gIAlyZXR1cm4gb3V0 cHV0X2Zvcm1hdF9zdHJbZm9ybWF0XTsKPiAgfQo+IEBAIC0xMDkyNiw5ICsxMDk0NCw2IEBAIHN0 YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMs Cj4gIAkJCQkgICAgICBwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzLAo+ICAJCQkJICAgICAgJnBpcGVf Y29uZmlnLT5mZGlfbV9uKTsKPiAgCj4gLQlpZiAocGlwZV9jb25maWctPnljYmNyNDIwKQo+IC0J CURSTV9ERUJVR19LTVMoIllDYkNyIDQ6MjowIG91dHB1dCBlbmFibGVkXG4iKTsKPiAtCj4gIAlp ZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihwaXBlX2NvbmZpZykpIHsKPiAgCQlpbnRlbF9k dW1wX21fbl9jb25maWcocGlwZV9jb25maWcsICJkcCBtX24iLAo+ICAJCQkJcGlwZV9jb25maWct PmxhbmVfY291bnQsICZwaXBlX2NvbmZpZy0+ZHBfbV9uKTsKPiBAQCAtMTE1MTUsNyArMTE1MzAs NiBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCVBJUEVfQ09ORl9DSEVDS19CT09MKGhkbWlfc2NyYW1ibGluZyk7Cj4gIAlQ SVBFX0NPTkZfQ0hFQ0tfQk9PTChoZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbyk7Cj4gIAlQSVBF X0NPTkZfQ0hFQ0tfQk9PTF9JTkNPTVBMRVRFKGhhc19pbmZvZnJhbWUpOwo+IC0JUElQRV9DT05G X0NIRUNLX0JPT0woeWNiY3I0MjApOwo+ICAKPiAgCVBJUEVfQ09ORl9DSEVDS19CT09MX0lOQ09N UExFVEUoaGFzX2F1ZGlvKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBm NzA0NzIwLi5jYzdhNDZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNzEx LDYgKzcxMSw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3dtX3N0YXRlIHsKPiAgZW51bSBpbnRlbF9v dXRwdXRfZm9ybWF0IHsKPiAgCUlOVEVMX09VVFBVVF9GT1JNQVRfSU5WQUxJRCwKPiAgCUlOVEVM X09VVFBVVF9GT1JNQVRfUkdCLAo+ICsJSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCwKPiAg fTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiBAQCAtOTAwLDkgKzkwMSw2IEBA IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgCS8qIEhETUkgSGlnaCBUTURTIGNoYXIgcmF0 ZSByYXRpbyAqLwo+ICAJYm9vbCBoZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbzsKPiAgCj4gLQkv KiBvdXRwdXQgZm9ybWF0IGlzIFlDQkNSIDQ6MjowICovCj4gLQlib29sIHljYmNyNDIwOwo+IC0K PiAgCS8qIE91dHB1dCBmb3JtYXQgUkdCL1lDQkNSIGV0YyAqLwo+ICAJZW51bSBpbnRlbF9vdXRw dXRfZm9ybWF0IG91dHB1dF9mb3JtYXQ7Cj4gIH07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku Ywo+IGluZGV4IDg5OTNlNjYuLmYxMjU5YTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jCj4gQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlf aW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQlyZXR1cm47Cj4gIAl9 Cj4gIAo+IC0JaWYgKGNydGNfc3RhdGUtPnljYmNyNDIwKQo+ICsJaWYgKGNydGNfc3RhdGUtPm91 dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCkKPiAgCQlmcmFtZS5h dmkuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0MjA7Cj4gIAllbHNlCj4gIAkJZnJh bWUuYXZpLmNvbG9yc3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfUkdCOwo+IEBAIC0xNjIwLDcgKzE2 MjAsNyBAQCBzdGF0aWMgYm9vbCBoZG1pX2RlZXBfY29sb3JfcG9zc2libGUoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+ Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQlp ZiAoY3J0Y19zdGF0ZS0+eWNiY3I0MjApIHsKPiArCQlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zv cm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwKSB7Cj4gIAkJCWNvbnN0IHN0cnVj dCBkcm1faGRtaV9pbmZvICpoZG1pID0gJmluZm8tPmhkbWk7Cj4gIAo+ICAJCQlpZiAoYnBjID09 IDEyICYmICEoaGRtaS0+eTQyMF9kY19tb2RlcyAmCj4gQEAgLTE2NjUsNyArMTY2NSw3IEBAIGlu dGVsX2hkbWlfeWNiY3I0MjBfY29uZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gIAkqY2xvY2tfMTJicGMgLz0gMjsKPiAgCSpjbG9ja18xMGJwYyAvPSAyOwo+ICAJKmNsb2Nr XzhicGMgLz0gMjsKPiAtCWNvbmZpZy0+eWNiY3I0MjAgPSB0cnVlOwo+ICsJY29uZmlnLT5vdXRw dXRfZm9ybWF0ID0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMDsKPiAgCj4gIAkvKiBZQ0JD UiA0MjAgb3V0cHV0IGNvbnZlcnNpb24gbmVlZHMgYSBzY2FsZXIgKi8KPiAgCWlmIChza2xfdXBk YXRlX3NjYWxlcl9jcnRjKGNvbmZpZykpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMK PiBpbmRleCA0YTlmMTM5Li41Y2NhMDRhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5l bC5jCj4gQEAgLTExMSw3ICsxMTEsNyBAQCBpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCS8qIE5hdGl2ZSBtb2RlcyBkb24ndCBuZWVkIGZp dHRpbmcgKi8KPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID09IHBpcGVfY29u ZmlnLT5waXBlX3NyY193ICYmCj4gIAkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSA9 PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCAmJgo+IC0JICAgICFwaXBlX2NvbmZpZy0+eWNiY3I0 MjApCj4gKwkgICAgcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgIT0gSU5URUxfT1VUUFVUX0ZP Uk1BVF9ZQ0JDUjQyMCkKPiAgCQlnb3RvIGRvbmU7Cj4gIAo+ICAJc3dpdGNoIChmaXR0aW5nX21v ZGUpIHsKPiAtLSAKPiAyLjcuNAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK