From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 1/7] drm/i915: Add CRTC output format YCBCR 4:2:0 Date: Wed, 17 Jan 2018 20:27:22 +0200 Message-ID: <20180117182722.GP10981@intel.com> References: <1515145535-11228-1-git-send-email-shashank.sharma@intel.com> <1515145535-11228-2-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3170D6E414 for ; Wed, 17 Jan 2018 18:27:25 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1515145535-11228-2-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 T24gRnJpLCBKYW4gMDUsIDIwMTggYXQgMDM6MTU6MjlQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IEN1cnJlbnRseSwgd2UgYXJlIHVzaW5nIGEgYm9vbCBpbiBDUlRDIHN0YXRlIChz dGF0ZS0+eWNiY3I0MjApLAo+IHRvIGluZGljYXRlIG1vZGVzZXQsIHRoYXQgdGhlIG91dHB1dCBm b3JtYXQgaXMgWUNCQ1IgNDoyOjAuIE5vdyBpbgo+IG9yZGVyIHRvIHN1cHBvcnQgb3RoZXIgWUNC Q1IgZm9ybWF0cywgd2Ugd2lsbCBuZWVkIG1vcmUgc3VjaCBmbGFncy4KPiAKPiBUaGUgaWRlYSBi ZWhpbmQgdGhpcyBwYXRjaCBpcyB0byByZXBsYWNlIHRoaXMgYm9vbCB3aXRoIGFuIGVudW0sCj4g YW5kIHBsdWcgdGhpcyBpbiBpbiB0aGUgZXhpc3RpbmcgWUNCQ1IgNDoyOjAgZnJhbWV3b3JrIGlu IHN1Y2ggYQo+IHdheSB0aGF0IHRoaXMgY2FuIGJlIHJlLXVzZWQgZm9yIFlDQkNSIDQ6NDo0IGFu ZCBvdGhlciBvdXRwdXQgZm9ybWF0cyB0b28uCj4gCj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IGVu dW0gZm9yIENSVEMgb3V0cHV0IGZvcm1hdHMsIGFuZCB0aGVuIHBsdWdzIGl0Cj4gaW4gdGhlIGV4 aXN0aW5nIG1vZGVzZXQgZnJhbWV3b3JrLgo+IAo+IFYzOiBBZGRlZCB0aGlzIHBhdGNoIGluIHRo ZSBzZXJpZXMsIHRvIGFkZHJlc3MgcmV2aWV3IGNvbW1lbnRzIGZyb20KPiAgICAgc2Vjb25kIHBh dGNoc2V0Lgo+IAo+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJt YUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMg ICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8ICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDY2ICsrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAxMCArKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j ICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAgfCAg MiArLQo+ICA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+IGluZGV4IGFhNjZlOTUuLjk5ZTMy Y2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiBAQCAtMTQxLDcgKzE0MSw3 IEBAIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9jc2NfbWF0cml4KHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPiAgCXVpbnQxNl90IGNvZWZmc1s5XSA9IHsgMCwgfTsKPiAgCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0 ZShjcnRjX3N0YXRlKTsKPiAgCj4gLQlpZiAoaW50ZWxfY3J0Y19zdGF0ZS0+eWNiY3I0MjApIHsK PiArCWlmIChpbnRlbF9jcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VUUFVUX1lD QkNSNDIwKSB7Cj4gIAkJaTl4eF9sb2FkX3ljYmNyX2NvbnZlcnNpb25fbWF0cml4KGludGVsX2Ny dGMpOwo+ICAJCXJldHVybjsKPiAgCX0gZWxzZSBpZiAoY3J0Y19zdGF0ZS0+Y3RtKSB7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCBmNTE2NDVhLi44NDMyN2U3IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMTI2NCw3ICsxMjY0LDcgQEAgc3RhdGljIHZvaWQg ZGRpX2RvdGNsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4g IAllbHNlCj4gIAkJZG90Y2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsKPiAgCj4gLQlp ZiAocGlwZV9jb25maWctPnljYmNyNDIwKQo+ICsJaWYgKHBpcGVfY29uZmlnLT5vdXRwdXRfZm9y bWF0ID09IENSVENfT1VUUFVUX1lDQkNSNDIwKQo+ICAJCWRvdGNsb2NrICo9IDI7Cj4gIAo+ICAJ aWYgKHBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBpbmRleCAwY2QzNTU5Li42OWIwYWEzIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC00NjQ0LDcgKzQ2NDQsOCBAQCBza2xfdXBkYXRlX3Nj YWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRh Y2gsCj4gIAkgKi8KPiAgCW5lZWRfc2NhbGluZyA9IHNyY193ICE9IGRzdF93IHx8IHNyY19oICE9 IGRzdF9oOwo+ICAKPiAtCWlmIChjcnRjX3N0YXRlLT55Y2JjcjQyMCAmJiBzY2FsZXJfdXNlciA9 PSBTS0xfQ1JUQ19JTkRFWCkKPiArCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IENS VENfT1VUUFVUX1lDQkNSNDIwICYmCj4gKwkgICAgc2NhbGVyX3VzZXIgPT0gU0tMX0NSVENfSU5E RVgpCj4gIAkJbmVlZF9zY2FsaW5nID0gdHJ1ZTsKPiAgCj4gIAkvKgo+IEBAIC02MzU2LDcgKzYz NTcsOCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IC0JaWYgKHBpcGVf Y29uZmlnLT55Y2JjcjQyMCAmJiBwaXBlX2NvbmZpZy0+YmFzZS5jdG0pIHsKPiArCWlmIChwaXBl X2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCAmJgo+ICsJICAg IHBpcGVfY29uZmlnLT5iYXNlLmN0bSkgewo+ICAJCS8qCj4gIAkJICogVGhlcmUgaXMgb25seSBv bmUgcGlwZSBDU0MgdW5pdCBwZXIgcGlwZSwgYW5kIHdlIG5lZWQgdGhhdAo+ICAJCSAqIGZvciBv dXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+WUNCQ1IuIFNvIGlmIENUTSBpcyBhbHJlYWR5Cj4g QEAgLTgxNzcsMTAgKzgxNzksMTAgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcGlwZW1pc2Mo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmRpdGhl cikKPiAgCQkJdmFsIHw9IFBJUEVNSVNDX0RJVEhFUl9FTkFCTEUgfCBQSVBFTUlTQ19ESVRIRVJf VFlQRV9TUDsKPiAgCj4gLQkJaWYgKGNvbmZpZy0+eWNiY3I0MjApIHsKPiAtCQkJdmFsIHw9IFBJ UEVNSVNDX09VVFBVVF9DT0xPUlNQQUNFX1lVViB8Cj4gLQkJCQlQSVBFTUlTQ19ZVVY0MjBfRU5B QkxFIHwKPiAtCQkJCVBJUEVNSVNDX1lVVjQyMF9NT0RFX0ZVTExfQkxFTkQ7Cj4gKwkJaWYgKGNv bmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCkgewo+ICsJCQl2YWwg fD0gUElQRU1JU0NfT1VUUFVUX0NPTE9SU1BBQ0VfWVVWOwo+ICsJCQl2YWwgfD0gUElQRU1JU0Nf WVVWNDIwX0VOQUJMRSB8Cj4gKwkJCSAgICAgICBQSVBFTUlTQ19ZVVY0MjBfTU9ERV9GVUxMX0JM RU5EOwo+ICAJCX0KPiAgCj4gIAkJSTkxNV9XUklURShQSVBFTUlTQyhpbnRlbF9jcnRjLT5waXBl KSwgdmFsKTsKPiBAQCAtOTE1Niw2ICs5MTU4LDE5IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0 X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJfQo+ICB9Cj4gIAo+ ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG91dHB1dF9mb3JtYXRfc3RyW10gPSB7Cj4gKwki SW52YWxpZCIsCj4gKwkiUkdCIiwKPiArCSJZQ0JDUjQ6MjowIiwKPiArfTsKPiArCj4gK3N0YXRp YyBjb25zdCBjaGFyICpvdXRwdXRfZm9ybWF0cyhlbnVtIGNydGNfb3V0cHV0X2Zvcm1hdCBmb3Jt YXQpCj4gK3sKPiArCWlmIChmb3JtYXQgPCBDUlRDX09VVFBVVF9JTlZBTElEIHx8IGZvcm1hdCA+ IENSVENfT1VUUFVUX1lDQkNSNDIwKQo+ICsJCWZvcm1hdCA9IENSVENfT1VUUFVUX0lOVkFMSUQ7 Cj4gKwlyZXR1cm4gb3V0cHV0X2Zvcm1hdF9zdHJbZm9ybWF0ICsgMV07Cj4gK30KPiArCj4gIHN0 YXRpYyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAo+ICAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ IEBAIC05MTk2LDE5ICs5MjExLDI4IEBAIHN0YXRpYyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgCWlmIChJU19CUk9BRFdFTEwoZGV2 X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ICAJCXUzMiB0bXAgPSBJOTE1 X1JFQUQoUElQRU1JU0MoY3J0Yy0+cGlwZSkpOwo+IC0JCWJvb2wgY2xyc3BhY2VfeXV2ID0gdG1w ICYgUElQRU1JU0NfT1VUUFVUX0NPTE9SU1BBQ0VfWVVWOwo+IC0KPiAtCQlpZiAoSVNfR0VNSU5J TEFLRShkZXZfcHJpdikgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkgewo+IC0JCQlib29s IGJsZW5kX21vZGVfNDIwID0gdG1wICYKPiAtCQkJCQkgICAgICBQSVBFTUlTQ19ZVVY0MjBfTU9E RV9GVUxMX0JMRU5EOwo+ICsJCWVudW0gY3J0Y19vdXRwdXRfZm9ybWF0IG91dHB1dF9mb3JtYXQg PSBDUlRDX09VVFBVVF9SR0I7Cj4gKwo+ICsJCWlmICh0bXAgJiBQSVBFTUlTQ19PVVRQVVRfQ09M T1JTUEFDRV9ZVVYpIHsKPiArCQkJYm9vbCB5Y2JjcjQyMF9lbmFibGVkID0gdG1wICYgUElQRU1J U0NfWVVWNDIwX0VOQUJMRTsKPiArCQkJYm9vbCBibGVuZCA9IHRtcCAmIFBJUEVNSVNDX1lVVjQy MF9NT0RFX0ZVTExfQkxFTkQ7Cj4gKwo+ICsJCQlpZiAoeWNiY3I0MjBfZW5hYmxlZCkgewo+ICsJ CQkJLyogV2Ugc3VwcG9ydCA0OjI6MCBpbiBmdWxsIGJsZW5kIG1vZGUgb25seSAqLwo+ICsJCQkJ aWYgKCFibGVuZCkKPiArCQkJCQlvdXRwdXRfZm9ybWF0ID0gQ1JUQ19PVVRQVVRfSU5WQUxJRDsK Ck5vdCBzdXJlIHRoYXQgSU5WQUxJRCB0aGluZyByZWFsbHkgcHJvdmlkZXMgYW55IHJlYWwgdmFs dWUuCkp1c3QgZmVlbHMgbGlrZSBpdCdzIG1ha2luZyB0aGUgY29kZSBtb3JlIGNvbnZvbHV0ZWQg Zm9yIHNvbWV0aGluZyB0aGF0CnNob3VsZCBuZXZlciByZWFsbHkgaGFwcGVuLgoKPiArCQkJCWVs c2UgaWYgKCEoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwKPiArCQkJCQkgICBJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDEwKSkKPiArCQkJCQlvdXRwdXRfZm9ybWF0ID0gQ1JUQ19PVVRQVVRfSU5W QUxJRDsKPiArCQkJCWVsc2UKPiArCQkJCQlvdXRwdXRfZm9ybWF0ID0gQ1JUQ19PVVRQVVRfWUNC Q1I0MjA7Cj4gKwkJCX0KPiAgCj4gLQkJCXBpcGVfY29uZmlnLT55Y2JjcjQyMCA9IHRtcCAmIFBJ UEVNSVNDX1lVVjQyMF9FTkFCTEU7Cj4gLQkJCWlmIChwaXBlX2NvbmZpZy0+eWNiY3I0MjAgIT0g Y2xyc3BhY2VfeXV2IHx8Cj4gLQkJCSAgICBwaXBlX2NvbmZpZy0+eWNiY3I0MjAgIT0gYmxlbmRf bW9kZV80MjApCj4gLQkJCQlEUk1fREVCVUdfS01TKCJCYWQgNDoyOjAgbW9kZSAoJTA4eClcbiIs IHRtcCk7Cj4gLQkJfSBlbHNlIGlmIChjbHJzcGFjZV95dXYpIHsKPiAtCQkJRFJNX0RFQlVHX0tN UygiWUNiQ3IgNDoyOjAgVW5zdXBwb3J0ZWRcbiIpOwo+ICAJCX0KPiArCj4gKwkJcGlwZV9jb25m aWctPm91dHB1dF9mb3JtYXQgPSBvdXRwdXRfZm9ybWF0Owo+ICsJCURSTV9ERUJVR19LTVMoIk91 dHB1dCBmb3JtYXQgJXNcbiIsCj4gKwkJCQlvdXRwdXRfZm9ybWF0cyhvdXRwdXRfZm9ybWF0KSk7 Cj4gIAl9Cj4gIAo+ICAJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklU VEVSKGNydGMtPnBpcGUpOwo+IEBAIC0xMDU1OCw2ICsxMDU4Miw5IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAlEUk1fREVC VUdfS01TKCJvdXRwdXRfdHlwZXM6ICVzICgweCV4KVxuIiwKPiAgCQkgICAgICBidWYsIHBpcGVf Y29uZmlnLT5vdXRwdXRfdHlwZXMpOwo+ICAKPiArCURSTV9ERUJVR19LTVMoIm91dHB1dCBmb3Jt YXQ6ICVzXG4iLAo+ICsJCW91dHB1dF9mb3JtYXRzKHBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0 KSk7Cj4gKwo+ICAJRFJNX0RFQlVHX0tNUygiY3B1X3RyYW5zY29kZXI6ICVzLCBwaXBlIGJwcDog JWksIGRpdGhlcmluZzogJWlcbiIsCj4gIAkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKHBpcGVfY29u ZmlnLT5jcHVfdHJhbnNjb2RlciksCj4gIAkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLCBw aXBlX2NvbmZpZy0+ZGl0aGVyKTsKPiBAQCAtMTA1NjcsOSArMTA1OTQsNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJ ICAgICAgcGlwZV9jb25maWctPmZkaV9sYW5lcywKPiAgCQkJCSAgICAgICZwaXBlX2NvbmZpZy0+ ZmRpX21fbik7Cj4gIAo+IC0JaWYgKHBpcGVfY29uZmlnLT55Y2JjcjQyMCkKPiAtCQlEUk1fREVC VUdfS01TKCJZQ2JDciA0OjI6MCBvdXRwdXQgZW5hYmxlZFxuIik7Cj4gLQo+ICAJaWYgKGludGVs X2NydGNfaGFzX2RwX2VuY29kZXIocGlwZV9jb25maWcpKSB7Cj4gIAkJaW50ZWxfZHVtcF9tX25f Y29uZmlnKHBpcGVfY29uZmlnLCAiZHAgbV9uIiwKPiAgCQkJCXBpcGVfY29uZmlnLT5sYW5lX2Nv dW50LCAmcGlwZV9jb25maWctPmRwX21fbik7Cj4gQEAgLTExMTQzLDYgKzExMTY3LDcgQEAgaW50 ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19lbmQp Owo+ICAKPiAgCVBJUEVfQ09ORl9DSEVDS19JKHBpeGVsX211bHRpcGxpZXIpOwo+ICsJUElQRV9D T05GX0NIRUNLX0kob3V0cHV0X2Zvcm1hdCk7Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTChoYXNf aGRtaV9zaW5rKTsKPiAgCWlmICgoSU5URUxfR0VOKGRldl9wcml2KSA8IDggJiYgIUlTX0hBU1dF TEwoZGV2X3ByaXYpKSB8fAo+ICAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKQo+IEBAIC0xMTE1MSw3ICsxMTE3Niw2IEBAIGludGVsX3BpcGVf Y29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJUElQ RV9DT05GX0NIRUNLX0JPT0woaGRtaV9zY3JhbWJsaW5nKTsKPiAgCVBJUEVfQ09ORl9DSEVDS19C T09MKGhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKTsKPiAgCVBJUEVfQ09ORl9DSEVDS19CT09M X0lOQ09NUExFVEUoaGFzX2luZm9mcmFtZSk7Cj4gLQlQSVBFX0NPTkZfQ0hFQ0tfQk9PTCh5Y2Jj cjQyMCk7Cj4gIAo+ICAJUElQRV9DT05GX0NIRUNLX0JPT0xfSU5DT01QTEVURShoYXNfYXVkaW8p Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDMwZjc5MWYuLjc5NjYyNjUw IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNjA5LDYgKzYwOSwxMiBAQCBz dHJ1Y3QgaW50ZWxfY3J0Y193bV9zdGF0ZSB7Cj4gIAlib29sIG5lZWRfcG9zdHZibF91cGRhdGU7 Cj4gIH07Cj4gIAo+ICtlbnVtIGNydGNfb3V0cHV0X2Zvcm1hdCB7CgppbnRlbF9vdXRwdXRfZm9y bWF0IG9yIHNvbWV0aGluZyB3b3VsZCBmaXQgdGhlIG5vcm1hbCBuYW1lc3BhY2luZwpiZXR0ZXIu Cgo+ICsJQ1JUQ19PVVRQVVRfSU5WQUxJRCA9IC0xLAoKVGhlIC0xIGRvZXNuJ3QgbWFrZSBtdWNo IHNlbnNlIHRvIG1lLiBJZiB3ZSB3YW50IHRvIGtlZXAgdGhpcyBJTU8KanVzdCBsZXQgdGhlIGVu dW0gc3RhcnQgZnJvbSAwLiBUaGF0IHdpbGwgYXQgbGVhc3QgbWFrZSBpdCBjbGVhcgppZiB5b3Ug ZW50aXJlbHkgZm9yZ290IHRvIGRvIHJlYWRvdXQuCgo+ICsJQ1JUQ19PVVRQVVRfUkdCLAo+ICsJ Q1JUQ19PVVRQVVRfWUNCQ1I0MjAsCj4gK307Cj4gKwo+ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSB7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsKPiAgCj4gQEAgLTc5NSw4ICs4MDEs OCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gIAkvKiBIRE1JIEhpZ2ggVE1EUyBjaGFy IHJhdGUgcmF0aW8gKi8KPiAgCWJvb2wgaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW87Cj4gIAo+ IC0JLyogb3V0cHV0IGZvcm1hdCBpcyBZQ0JDUiA0OjI6MCAqLwo+IC0JYm9vbCB5Y2JjcjQyMDsK PiArCS8qIE91dHB1dCBmb3JtYXQgUkdCL1lDQkNSIGV0YyAqLwo+ICsJZW51bSBjcnRjX291dHB1 dF9mb3JtYXQgb3V0cHV0X2Zvcm1hdDsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9jcnRjIHsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gaW5kZXggYmNlZDdiOS4uYjI2NmE3ZiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiBAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gLQlpZiAoY3J0Y19zdGF0ZS0+eWNiY3I0 MjApCj4gKwlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JD UjQyMCkKPiAgCQlmcmFtZS5hdmkuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0MjA7 Cj4gIAllbHNlCj4gIAkJZnJhbWUuYXZpLmNvbG9yc3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfUkdC Owo+IEBAIC0xMzcyLDcgKzEzNzIsNyBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJCWlmIChjb25u ZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKQo+ICAJCQljb250aW51 ZTsKPiAgCj4gLQkJaWYgKGNydGNfc3RhdGUtPnljYmNyNDIwKSB7Cj4gKwkJaWYgKGNydGNfc3Rh dGUtPm91dHB1dF9mb3JtYXQgPT0gQ1JUQ19PVVRQVVRfWUNCQ1I0MjApIHsKPiAgCQkJY29uc3Qg c3RydWN0IGRybV9oZG1pX2luZm8gKmhkbWkgPSAmaW5mby0+aGRtaTsKPiAgCj4gIAkJCWlmICgh KGhkbWktPnk0MjBfZGNfbW9kZXMgJiBEUk1fRURJRF9ZQ0JDUjQyMF9EQ18zNikpCj4gQEAgLTE0 MDcsNyArMTQwNyw3IEBAIGludGVsX2hkbWlfeWNiY3I0MjBfY29uZmlnKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gIAljb25maWctPnBvcnRfY2xvY2sgLz0gMjsKPiAgCSpjbG9j a18xMmJwYyAvPSAyOwo+ICAJKmNsb2NrXzhicGMgLz0gMjsKPiAtCWNvbmZpZy0+eWNiY3I0MjAg PSB0cnVlOwo+ICsJY29uZmlnLT5vdXRwdXRfZm9ybWF0ID0gQ1JUQ19PVVRQVVRfWUNCQ1I0MjA7 Cj4gIAo+ICAJLyogWUNCQ1IgNDIwIG91dHB1dCBjb252ZXJzaW9uIG5lZWRzIGEgc2NhbGVyICov Cj4gIAlpZiAoc2tsX3VwZGF0ZV9zY2FsZXJfY3J0Yyhjb25maWcpKSB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wYW5lbC5jCj4gaW5kZXggZmE2ODMxZi4uYzU3ODE5ZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC0xMTEsNyArMTExLDcgQEAgaW50ZWxfcGNoX3BhbmVs X2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAkvKiBOYXRpdmUgbW9k ZXMgZG9uJ3QgbmVlZCBmaXR0aW5nICovCj4gIAlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlz cGxheSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAmJgo+ICAJICAgIGFkanVzdGVkX21vZGUt PmNydGNfdmRpc3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX2ggJiYKPiAtCSAgICAhcGlw ZV9jb25maWctPnljYmNyNDIwKQo+ICsJICAgIHBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0ICE9 IENSVENfT1VUUFVUX1lDQkNSNDIwKQo+ICAJCWdvdG8gZG9uZTsKPiAgCj4gIAlzd2l0Y2ggKGZp dHRpbmdfbW9kZSkgewo+IC0tIAo+IDIuNy40CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK