From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH v3 1/7] drm/i915: Add CRTC output format YCBCR 4:2:0 Date: Thu, 18 Jan 2018 11:51:13 +0530 Message-ID: References: <1515145535-11228-1-git-send-email-shashank.sharma@intel.com> <1515145535-11228-2-git-send-email-shashank.sharma@intel.com> <20180117182722.GP10981@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 23FA26E3A1 for ; Thu, 18 Jan 2018 06:21:16 +0000 (UTC) In-Reply-To: <20180117182722.GP10981@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiAxLzE3LzIwMTggMTE6NTcgUE0sIFZpbGxlIFN5cmrDpGzD pCB3cm90ZToKPiBPbiBGcmksIEphbiAwNSwgMjAxOCBhdCAwMzoxNToyOVBNICswNTMwLCBTaGFz aGFuayBTaGFybWEgd3JvdGU6Cj4+IEN1cnJlbnRseSwgd2UgYXJlIHVzaW5nIGEgYm9vbCBpbiBD UlRDIHN0YXRlIChzdGF0ZS0+eWNiY3I0MjApLAo+PiB0byBpbmRpY2F0ZSBtb2Rlc2V0LCB0aGF0 IHRoZSBvdXRwdXQgZm9ybWF0IGlzIFlDQkNSIDQ6MjowLiBOb3cgaW4KPj4gb3JkZXIgdG8gc3Vw cG9ydCBvdGhlciBZQ0JDUiBmb3JtYXRzLCB3ZSB3aWxsIG5lZWQgbW9yZSBzdWNoIGZsYWdzLgo+ Pgo+PiBUaGUgaWRlYSBiZWhpbmQgdGhpcyBwYXRjaCBpcyB0byByZXBsYWNlIHRoaXMgYm9vbCB3 aXRoIGFuIGVudW0sCj4+IGFuZCBwbHVnIHRoaXMgaW4gaW4gdGhlIGV4aXN0aW5nIFlDQkNSIDQ6 MjowIGZyYW1ld29yayBpbiBzdWNoIGEKPj4gd2F5IHRoYXQgdGhpcyBjYW4gYmUgcmUtdXNlZCBm b3IgWUNCQ1IgNDo0OjQgYW5kIG90aGVyIG91dHB1dCBmb3JtYXRzIHRvby4KPj4KPj4gVGhpcyBw YXRjaCBhZGRzIGEgbmV3IGVudW0gZm9yIENSVEMgb3V0cHV0IGZvcm1hdHMsIGFuZCB0aGVuIHBs dWdzIGl0Cj4+IGluIHRoZSBleGlzdGluZyBtb2Rlc2V0IGZyYW1ld29yay4KPj4KPj4gVjM6IEFk ZGVkIHRoaXMgcGF0Y2ggaW4gdGhlIHNlcmllcywgdG8gYWRkcmVzcyByZXZpZXcgY29tbWVudHMg ZnJvbQo+PiAgICAgIHNlY29uZCBwYXRjaHNldC4KPj4KPj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogU2hhc2hh bmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jICAgfCAgMiArLQo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5jICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgMTAgKysrKy0tCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jICAgIHwgIDYgKystLQo+PiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICB8ICAyICstCj4+ICAgNiBmaWxlcyBj aGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jb2xvci5jCj4+IGluZGV4IGFhNjZlOTUuLjk5ZTMyY2IgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+PiBAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyB2 b2lkIGk5eHhfbG9hZF9jc2NfbWF0cml4KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPj4gICAJdWludDE2X3QgY29lZmZzWzldID0geyAwLCB9Owo+PiAgIAlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19z dGF0ZSk7Cj4+ICAgCj4+IC0JaWYgKGludGVsX2NydGNfc3RhdGUtPnljYmNyNDIwKSB7Cj4+ICsJ aWYgKGludGVsX2NydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gQ1JUQ19PVVRQVVRfWUNCQ1I0 MjApIHsKPj4gICAJCWk5eHhfbG9hZF95Y2Jjcl9jb252ZXJzaW9uX21hdHJpeChpbnRlbF9jcnRj KTsKPj4gICAJCXJldHVybjsKPj4gICAJfSBlbHNlIGlmIChjcnRjX3N0YXRlLT5jdG0pIHsKPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gaW5kZXggZjUxNjQ1YS4uODQzMjdlNyAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gQEAgLTEyNjQsNyArMTI2NCw3IEBAIHN0YXRp YyB2b2lkIGRkaV9kb3RjbG9ja19nZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQo+PiAgIAllbHNlCj4+ICAgCQlkb3RjbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr Owo+PiAgIAo+PiAtCWlmIChwaXBlX2NvbmZpZy0+eWNiY3I0MjApCj4+ICsJaWYgKHBpcGVfY29u ZmlnLT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VUUFVUX1lDQkNSNDIwKQo+PiAgIAkJZG90Y2xv Y2sgKj0gMjsKPj4gICAKPj4gICAJaWYgKHBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyKQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IDBjZDM1NTkuLjY5YjBh YTMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTQ2NDQs NyArNDY0NCw4IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPj4gICAJICovCj4+ICAgCW5lZWRfc2NhbGlu ZyA9IHNyY193ICE9IGRzdF93IHx8IHNyY19oICE9IGRzdF9oOwo+PiAgIAo+PiAtCWlmIChjcnRj X3N0YXRlLT55Y2JjcjQyMCAmJiBzY2FsZXJfdXNlciA9PSBTS0xfQ1JUQ19JTkRFWCkKPj4gKwlp ZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCAmJgo+ PiArCSAgICBzY2FsZXJfdXNlciA9PSBTS0xfQ1JUQ19JTkRFWCkKPj4gICAJCW5lZWRfc2NhbGlu ZyA9IHRydWU7Cj4+ICAgCj4+ICAgCS8qCj4+IEBAIC02MzU2LDcgKzYzNTcsOCBAQCBzdGF0aWMg aW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ ICAgCQlyZXR1cm4gLUVJTlZBTDsKPj4gICAJfQo+PiAgIAo+PiAtCWlmIChwaXBlX2NvbmZpZy0+ eWNiY3I0MjAgJiYgcGlwZV9jb25maWctPmJhc2UuY3RtKSB7Cj4+ICsJaWYgKHBpcGVfY29uZmln LT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VUUFVUX1lDQkNSNDIwICYmCj4+ICsJICAgIHBpcGVf Y29uZmlnLT5iYXNlLmN0bSkgewo+PiAgIAkJLyoKPj4gICAJCSAqIFRoZXJlIGlzIG9ubHkgb25l IHBpcGUgQ1NDIHVuaXQgcGVyIHBpcGUsIGFuZCB3ZSBuZWVkIHRoYXQKPj4gICAJCSAqIGZvciBv dXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+WUNCQ1IuIFNvIGlmIENUTSBpcyBhbHJlYWR5Cj4+ IEBAIC04MTc3LDEwICs4MTc5LDEwIEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVtaXNj KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4gICAJCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmRp dGhlcikKPj4gICAJCQl2YWwgfD0gUElQRU1JU0NfRElUSEVSX0VOQUJMRSB8IFBJUEVNSVNDX0RJ VEhFUl9UWVBFX1NQOwo+PiAgIAo+PiAtCQlpZiAoY29uZmlnLT55Y2JjcjQyMCkgewo+PiAtCQkJ dmFsIHw9IFBJUEVNSVNDX09VVFBVVF9DT0xPUlNQQUNFX1lVViB8Cj4+IC0JCQkJUElQRU1JU0Nf WVVWNDIwX0VOQUJMRSB8Cj4+IC0JCQkJUElQRU1JU0NfWVVWNDIwX01PREVfRlVMTF9CTEVORDsK Pj4gKwkJaWYgKGNvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCkg ewo+PiArCQkJdmFsIHw9IFBJUEVNSVNDX09VVFBVVF9DT0xPUlNQQUNFX1lVVjsKPj4gKwkJCXZh bCB8PSBQSVBFTUlTQ19ZVVY0MjBfRU5BQkxFIHwKPj4gKwkJCSAgICAgICBQSVBFTUlTQ19ZVVY0 MjBfTU9ERV9GVUxMX0JMRU5EOwo+PiAgIAkJfQo+PiAgIAo+PiAgIAkJSTkxNV9XUklURShQSVBF TUlTQyhpbnRlbF9jcnRjLT5waXBlKSwgdmFsKTsKPj4gQEAgLTkxNTYsNiArOTE1OCwxOSBAQCBz dGF0aWMgdm9pZCBoYXN3ZWxsX2dldF9kZGlfcG9ydF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPj4gICAJfQo+PiAgIH0KPj4gICAKPj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg b3V0cHV0X2Zvcm1hdF9zdHJbXSA9IHsKPj4gKwkiSW52YWxpZCIsCj4+ICsJIlJHQiIsCj4+ICsJ IllDQkNSNDoyOjAiLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IGNoYXIgKm91dHB1dF9m b3JtYXRzKGVudW0gY3J0Y19vdXRwdXRfZm9ybWF0IGZvcm1hdCkKPj4gK3sKPj4gKwlpZiAoZm9y bWF0IDwgQ1JUQ19PVVRQVVRfSU5WQUxJRCB8fCBmb3JtYXQgPiBDUlRDX09VVFBVVF9ZQ0JDUjQy MCkKPj4gKwkJZm9ybWF0ID0gQ1JUQ19PVVRQVVRfSU5WQUxJRDsKPj4gKwlyZXR1cm4gb3V0cHV0 X2Zvcm1hdF9zdHJbZm9ybWF0ICsgMV07Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgYm9vbCBoYXN3 ZWxsX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gICAJCQkJICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPj4gICB7Cj4+IEBAIC05MTk2 LDE5ICs5MjExLDI4IEBAIHN0YXRpYyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgIAo+PiAgIAlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 KSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPj4gICAJCXUzMiB0bXAgPSBJOTE1X1JF QUQoUElQRU1JU0MoY3J0Yy0+cGlwZSkpOwo+PiAtCQlib29sIGNscnNwYWNlX3l1diA9IHRtcCAm IFBJUEVNSVNDX09VVFBVVF9DT0xPUlNQQUNFX1lVVjsKPj4gLQo+PiAtCQlpZiAoSVNfR0VNSU5J TEFLRShkZXZfcHJpdikgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkgewo+PiAtCQkJYm9v bCBibGVuZF9tb2RlXzQyMCA9IHRtcCAmCj4+IC0JCQkJCSAgICAgIFBJUEVNSVNDX1lVVjQyMF9N T0RFX0ZVTExfQkxFTkQ7Cj4+ICsJCWVudW0gY3J0Y19vdXRwdXRfZm9ybWF0IG91dHB1dF9mb3Jt YXQgPSBDUlRDX09VVFBVVF9SR0I7Cj4+ICsKPj4gKwkJaWYgKHRtcCAmIFBJUEVNSVNDX09VVFBV VF9DT0xPUlNQQUNFX1lVVikgewo+PiArCQkJYm9vbCB5Y2JjcjQyMF9lbmFibGVkID0gdG1wICYg UElQRU1JU0NfWVVWNDIwX0VOQUJMRTsKPj4gKwkJCWJvb2wgYmxlbmQgPSB0bXAgJiBQSVBFTUlT Q19ZVVY0MjBfTU9ERV9GVUxMX0JMRU5EOwo+PiArCj4+ICsJCQlpZiAoeWNiY3I0MjBfZW5hYmxl ZCkgewo+PiArCQkJCS8qIFdlIHN1cHBvcnQgNDoyOjAgaW4gZnVsbCBibGVuZCBtb2RlIG9ubHkg Ki8KPj4gKwkJCQlpZiAoIWJsZW5kKQo+PiArCQkJCQlvdXRwdXRfZm9ybWF0ID0gQ1JUQ19PVVRQ VVRfSU5WQUxJRDsKPiBOb3Qgc3VyZSB0aGF0IElOVkFMSUQgdGhpbmcgcmVhbGx5IHByb3ZpZGVz IGFueSByZWFsIHZhbHVlLgo+IEp1c3QgZmVlbHMgbGlrZSBpdCdzIG1ha2luZyB0aGUgY29kZSBt b3JlIGNvbnZvbHV0ZWQgZm9yIHNvbWV0aGluZyB0aGF0Cj4gc2hvdWxkIG5ldmVyIHJlYWxseSBo YXBwZW4uClRoZSBjaGVjayBpcyBkaXJlY3RseSBhZGFwdGVkIGZyb20gdGhlIHByZXZpb3VzIHZl cnNpb24gb2YgdGhlIGNvZGUsIAp3aGVyZSB3ZSB3ZXJlIHN0aWxsIGNoZWNraW5nIGlmCnRoZSBy ZWdpc3RlcnMgYXJlIHByb2dyYW1tZWQgcHJvcGVybHksIENSVENfT1VUUFVUX0lOVkFMSUQgaGVs cHMgdG8gCnByaW50IHRoZSBlcnJvciBtZXNzYWdlcyBhbmQKZml0cyBpbnRvIHRoZSBleGlzdGlu ZyBmcmFtZXdvcmssIHNvIEkgdGhvdWdodCB0aGVyZSBpcyBubyBoYXJtIGluIAprZWVwaW5nIGl0 Lgo+PiArCQkJCWVsc2UgaWYgKCEoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwKPj4gKwkJCQkJ ICAgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkpCj4+ICsJCQkJCW91dHB1dF9mb3JtYXQgPSBD UlRDX09VVFBVVF9JTlZBTElEOwo+PiArCQkJCWVsc2UKPj4gKwkJCQkJb3V0cHV0X2Zvcm1hdCA9 IENSVENfT1VUUFVUX1lDQkNSNDIwOwo+PiArCQkJfQo+PiAgIAo+PiAtCQkJcGlwZV9jb25maWct PnljYmNyNDIwID0gdG1wICYgUElQRU1JU0NfWVVWNDIwX0VOQUJMRTsKPj4gLQkJCWlmIChwaXBl X2NvbmZpZy0+eWNiY3I0MjAgIT0gY2xyc3BhY2VfeXV2IHx8Cj4+IC0JCQkgICAgcGlwZV9jb25m aWctPnljYmNyNDIwICE9IGJsZW5kX21vZGVfNDIwKQo+PiAtCQkJCURSTV9ERUJVR19LTVMoIkJh ZCA0OjI6MCBtb2RlICglMDh4KVxuIiwgdG1wKTsKPj4gLQkJfSBlbHNlIGlmIChjbHJzcGFjZV95 dXYpIHsKPj4gLQkJCURSTV9ERUJVR19LTVMoIllDYkNyIDQ6MjowIFVuc3VwcG9ydGVkXG4iKTsK Pj4gICAJCX0KPj4gKwo+PiArCQlwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9IG91dHB1dF9m b3JtYXQ7Cj4+ICsJCURSTV9ERUJVR19LTVMoIk91dHB1dCBmb3JtYXQgJXNcbiIsCj4+ICsJCQkJ b3V0cHV0X2Zvcm1hdHMob3V0cHV0X2Zvcm1hdCkpOwo+PiAgIAl9Cj4+ICAgCj4+ICAgCXBvd2Vy X2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9QSVBFX1BBTkVMX0ZJVFRFUihjcnRjLT5waXBlKTsKPj4g QEAgLTEwNTU4LDYgKzEwNTgyLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gICAJRFJNX0RFQlVHX0tNUygib3V0cHV0X3R5 cGVzOiAlcyAoMHgleClcbiIsCj4+ICAgCQkgICAgICBidWYsIHBpcGVfY29uZmlnLT5vdXRwdXRf dHlwZXMpOwo+PiAgIAo+PiArCURSTV9ERUJVR19LTVMoIm91dHB1dCBmb3JtYXQ6ICVzXG4iLAo+ PiArCQlvdXRwdXRfZm9ybWF0cyhwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCkpOwo+PiArCj4+ ICAgCURSTV9ERUJVR19LTVMoImNwdV90cmFuc2NvZGVyOiAlcywgcGlwZSBicHA6ICVpLCBkaXRo ZXJpbmc6ICVpXG4iLAo+PiAgIAkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKHBpcGVfY29uZmlnLT5j cHVfdHJhbnNjb2RlciksCj4+ICAgCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsIHBpcGVf Y29uZmlnLT5kaXRoZXIpOwo+PiBAQCAtMTA1NjcsOSArMTA1OTQsNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgIAkJCQkg ICAgICBwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzLAo+PiAgIAkJCQkgICAgICAmcGlwZV9jb25maWct PmZkaV9tX24pOwo+PiAgIAo+PiAtCWlmIChwaXBlX2NvbmZpZy0+eWNiY3I0MjApCj4+IC0JCURS TV9ERUJVR19LTVMoIllDYkNyIDQ6MjowIG91dHB1dCBlbmFibGVkXG4iKTsKPj4gLQo+PiAgIAlp ZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihwaXBlX2NvbmZpZykpIHsKPj4gICAJCWludGVs X2R1bXBfbV9uX2NvbmZpZyhwaXBlX2NvbmZpZywgImRwIG1fbiIsCj4+ICAgCQkJCXBpcGVfY29u ZmlnLT5sYW5lX2NvdW50LCAmcGlwZV9jb25maWctPmRwX21fbik7Cj4+IEBAIC0xMTE0Myw2ICsx MTE2Nyw3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+PiAgIAlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUu Y3J0Y192c3luY19lbmQpOwo+PiAgIAo+PiAgIAlQSVBFX0NPTkZfQ0hFQ0tfSShwaXhlbF9tdWx0 aXBsaWVyKTsKPj4gKwlQSVBFX0NPTkZfQ0hFQ0tfSShvdXRwdXRfZm9ybWF0KTsKPj4gICAJUElQ RV9DT05GX0NIRUNLX0JPT0woaGFzX2hkbWlfc2luayk7Cj4+ICAgCWlmICgoSU5URUxfR0VOKGRl dl9wcml2KSA8IDggJiYgIUlTX0hBU1dFTEwoZGV2X3ByaXYpKSB8fAo+PiAgIAkgICAgSVNfVkFM TEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4+IEBAIC0xMTE1 MSw3ICsxMTE3Niw2IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+PiAgIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTChoZG1pX3NjcmFt YmxpbmcpOwo+PiAgIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTChoZG1pX2hpZ2hfdG1kc19jbG9ja19y YXRpbyk7Cj4+ICAgCVBJUEVfQ09ORl9DSEVDS19CT09MX0lOQ09NUExFVEUoaGFzX2luZm9mcmFt ZSk7Cj4+IC0JUElQRV9DT05GX0NIRUNLX0JPT0woeWNiY3I0MjApOwo+PiAgIAo+PiAgIAlQSVBF X0NPTkZfQ0hFQ0tfQk9PTF9JTkNPTVBMRVRFKGhhc19hdWRpbyk7Cj4+ICAgCj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IDMwZjc5MWYuLjc5NjYyNjUwIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtNjA5LDYgKzYwOSwxMiBAQCBzdHJ1Y3QgaW50ZWxf Y3J0Y193bV9zdGF0ZSB7Cj4+ICAgCWJvb2wgbmVlZF9wb3N0dmJsX3VwZGF0ZTsKPj4gICB9Owo+ PiAgIAo+PiArZW51bSBjcnRjX291dHB1dF9mb3JtYXQgewo+IGludGVsX291dHB1dF9mb3JtYXQg b3Igc29tZXRoaW5nIHdvdWxkIGZpdCB0aGUgbm9ybWFsIG5hbWVzcGFjaW5nCj4gYmV0dGVyLgpB Z3JlZSwgd2lsbCBjaGFuZ2UgaXQgYWNjb3JkaW5nbHkuCj4KPj4gKwlDUlRDX09VVFBVVF9JTlZB TElEID0gLTEsCj4gVGhlIC0xIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIHRvIG1lLiBJZiB3ZSB3 YW50IHRvIGtlZXAgdGhpcyBJTU8KPiBqdXN0IGxldCB0aGUgZW51bSBzdGFydCBmcm9tIDAuIFRo YXQgd2lsbCBhdCBsZWFzdCBtYWtlIGl0IGNsZWFyCj4gaWYgeW91IGVudGlyZWx5IGZvcmdvdCB0 byBkbyByZWFkb3V0LgpUaGUgcmVhc29uIHdoeSBJIGtlcHQgSU5WQUxJRCBhcyAtMSwgaXMgdG8g bWFrZSBzdXJlIFJHQiBzdGFydHMgYXQgMC4gU28gCnRoYXQgd2UgbmVlZCBub3QgdG8KZXhwbGlj aXRseSBzZXQgdGhlIENSVENfT1VUUFVUX0ZPUk1BVCA9IFJHQiAod2hpY2ggaXMgYWxzbyBvbmUg b2YgeW91ciAKY29tbWVudCBpbiB0aGUKc2VyaWVzKS4gVGhpcyB3aWxsIGFsbG93IGxlYXN0IG1v ZGlmaWNhdGlvbnMgaW4gdGhlIGV4aXN0aW5nIGNvZGUuCgpNYXkgYmUgSSBjYW4ga2VlcCBpdCBp biB0aGUgZW5kIG9mIHRoZSBlbnVtLCBidXQgdGhhdCB3b3VsZCBiZSBtb3ZpbmcgYXMgCmFuZCB3 aGVuIHdlIGFkZApuZXcgZm9ybWF0cy4gV2hhdCBkbyB5b3Ugc3VnZ2VzdCA/CgotIFNoYXNoYW5r Cj4+ICsJQ1JUQ19PVVRQVVRfUkdCLAo+PiArCUNSVENfT1VUUFVUX1lDQkNSNDIwLAo+PiArfTsK Pj4gKwo+PiAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPj4gICAJc3RydWN0IGRybV9jcnRj X3N0YXRlIGJhc2U7Cj4+ICAgCj4+IEBAIC03OTUsOCArODAxLDggQEAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgewo+PiAgIAkvKiBIRE1JIEhpZ2ggVE1EUyBjaGFyIHJhdGUgcmF0aW8gKi8KPj4g ICAJYm9vbCBoZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbzsKPj4gICAKPj4gLQkvKiBvdXRwdXQg Zm9ybWF0IGlzIFlDQkNSIDQ6MjowICovCj4+IC0JYm9vbCB5Y2JjcjQyMDsKPj4gKwkvKiBPdXRw dXQgZm9ybWF0IFJHQi9ZQ0JDUiBldGMgKi8KPj4gKwllbnVtIGNydGNfb3V0cHV0X2Zvcm1hdCBv dXRwdXRfZm9ybWF0Owo+PiAgIH07Cj4+ICAgCj4+ICAgc3RydWN0IGludGVsX2NydGMgewo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+IGluZGV4IGJjZWQ3YjkuLmIyNjZhN2YgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPj4gQEAgLTQ3OCw3ICs0NzgsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciwKPj4gICAJCXJldHVybjsKPj4gICAJfQo+PiAgIAo+PiAtCWlmIChjcnRjX3N0YXRl LT55Y2JjcjQyMCkKPj4gKwlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09V VFBVVF9ZQ0JDUjQyMCkKPj4gICAJCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQ QUNFX1lVVjQyMDsKPj4gICAJZWxzZQo+PiAgIAkJZnJhbWUuYXZpLmNvbG9yc3BhY2UgPSBIRE1J X0NPTE9SU1BBQ0VfUkdCOwo+PiBAQCAtMTM3Miw3ICsxMzcyLDcgQEAgc3RhdGljIGJvb2wgaGRt aV8xMmJwY19wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKPj4gICAJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKQo+PiAgIAkJCWNvbnRpbnVlOwo+PiAgIAo+PiAtCQlpZiAoY3J0Y19zdGF0ZS0+eWNiY3I0 MjApIHsKPj4gKwkJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gQ1JUQ19PVVRQVVRf WUNCQ1I0MjApIHsKPj4gICAJCQljb25zdCBzdHJ1Y3QgZHJtX2hkbWlfaW5mbyAqaGRtaSA9ICZp bmZvLT5oZG1pOwo+PiAgIAo+PiAgIAkJCWlmICghKGhkbWktPnk0MjBfZGNfbW9kZXMgJiBEUk1f RURJRF9ZQ0JDUjQyMF9EQ18zNikpCj4+IEBAIC0xNDA3LDcgKzE0MDcsNyBAQCBpbnRlbF9oZG1p X3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiAgIAlj b25maWctPnBvcnRfY2xvY2sgLz0gMjsKPj4gICAJKmNsb2NrXzEyYnBjIC89IDI7Cj4+ICAgCSpj bG9ja184YnBjIC89IDI7Cj4+IC0JY29uZmlnLT55Y2JjcjQyMCA9IHRydWU7Cj4+ICsJY29uZmln LT5vdXRwdXRfZm9ybWF0ID0gQ1JUQ19PVVRQVVRfWUNCQ1I0MjA7Cj4+ICAgCj4+ICAgCS8qIFlD QkNSIDQyMCBvdXRwdXQgY29udmVyc2lvbiBuZWVkcyBhIHNjYWxlciAqLwo+PiAgIAlpZiAoc2ts X3VwZGF0ZV9zY2FsZXJfY3J0Yyhjb25maWcpKSB7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFu ZWwuYwo+PiBpbmRleCBmYTY4MzFmLi5jNTc4MTlmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BhbmVsLmMKPj4gQEAgLTExMSw3ICsxMTEsNyBAQCBpbnRlbF9wY2hfcGFuZWxfZml0dGlu ZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPj4gICAJLyogTmF0aXZlIG1vZGVzIGRv bid0IG5lZWQgZml0dGluZyAqLwo+PiAgIAlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxh eSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAmJgo+PiAgIAkgICAgYWRqdXN0ZWRfbW9kZS0+ Y3J0Y192ZGlzcGxheSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCAmJgo+PiAtCSAgICAhcGlw ZV9jb25maWctPnljYmNyNDIwKQo+PiArCSAgICBwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCAh PSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCkKPj4gICAJCWdvdG8gZG9uZTsKPj4gICAKPj4gICAJc3dp dGNoIChmaXR0aW5nX21vZGUpIHsKPj4gLS0gCj4+IDIuNy40CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK