From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 1/7] drm/i915: Add CRTC output format YCBCR 4:2:0 Date: Fri, 2 Feb 2018 16:00:12 +0200 Message-ID: <20180202140012.GW5453@intel.com> References: <1517304963-27932-1-git-send-email-shashank.sharma@intel.com> <1517304963-27932-2-git-send-email-shashank.sharma@intel.com> <20180201190908.GT5453@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 73B466E189 for ; Fri, 2 Feb 2018 14:00:17 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMDIsIDIwMTggYXQgMTE6Mzg6MDdBTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBUaGFua3MgZm9yIHRoZSBjb21tZW50cywgbWluZSBpbmxpbmUuCj4gCj4gUmVn YXJkcwo+IFNoYXNoYW5rCj4gT24gMi8yLzIwMTggMTI6MzkgQU0sIFZpbGxlIFN5cmrDpGzDpCB3 cm90ZToKPiA+IE9uIFR1ZSwgSmFuIDMwLCAyMDE4IGF0IDAzOjA1OjU3UE0gKzA1MzAsIFNoYXNo YW5rIFNoYXJtYSB3cm90ZToKPiA+PiBGcm9tOiAiU2hhcm1hLCBTaGFzaGFuayIgPHNoYXNoYW5r LnNoYXJtYUBpbnRlbC5jb20+Cj4gPj4KPiA+PiBDdXJyZW50bHksIHdlIGFyZSB1c2luZyBhIGJv b2wgaW4gQ1JUQyBzdGF0ZSAoc3RhdGUtPnljYmNyNDIwKSwKPiA+PiB0byBpbmRpY2F0ZSBtb2Rl c2V0LCB0aGF0IHRoZSBvdXRwdXQgZm9ybWF0IGlzIFlDQkNSIDQ6MjowLiBOb3cgaW4KPiA+PiBv cmRlciB0byBzdXBwb3J0IG90aGVyIFlDQkNSIGZvcm1hdHMsIHdlIHdpbGwgbmVlZCBtb3JlIHN1 Y2ggZmxhZ3MuCj4gPj4KPiA+PiBUaGUgaWRlYSBiZWhpbmQgdGhpcyBwYXRjaCBpcyB0byByZXBs YWNlIHRoaXMgYm9vbCB3aXRoIGFuIGVudW0sCj4gPj4gYW5kIHBsdWcgdGhpcyBpbiBpbiB0aGUg ZXhpc3RpbmcgWUNCQ1IgNDoyOjAgZnJhbWV3b3JrIGluIHN1Y2ggYQo+ID4+IHdheSB0aGF0IHRo aXMgY2FuIGJlIHJlLXVzZWQgZm9yIFlDQkNSIDQ6NDo0IGFuZCBvdGhlciBvdXRwdXQgZm9ybWF0 cyB0b28uCj4gPj4KPiA+PiBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgZW51bSBmb3IgQ1JUQyBvdXRw dXQgZm9ybWF0cywgYW5kIHRoZW4gcGx1Z3MgaXQKPiA+PiBpbiB0aGUgZXhpc3RpbmcgbW9kZXNl dCBmcmFtZXdvcmsuCj4gPj4KPiA+PiBWMzogQWRkZWQgdGhpcyBwYXRjaCBpbiB0aGUgc2VyaWVz LCB0byBhZGRyZXNzIHJldmlldyBjb21tZW50cyBmcm9tCj4gPj4gICAgICBzZWNvbmQgcGF0Y2hz ZXQuCj4gPj4gVjQ6IEFkZGVkIHItYiBmcm9tIE1hYXJ0ZW4gKG9uIHYzKQo+ID4+ICAgICAgQWRk cmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxlOgo+ID4+IAktIENoYW5nZSB0aGUgZW51 bSBuYW1lIHRvIGludGVsX291dHB1dF9mb3JtYXQgZnJvbSBjcnRjX291dHB1dF9mb3JtYXQuCj4g Pj4gCS0gU3RhcnQgdGhlIGVudW0gdmFsdWUgKElOVkFMSUQpIGZyb20gMCBpbnN0YWVkIG9mIDEu Cj4gPj4gICAgICAgICAgLSBTZXQgdGhlIGNydGMncyBvdXRwdXRfZm9ybWF0IHRvIFJHQiBpbiBl bmNvZGVyJ3MgY29tcHV0ZV9jb25maWcuCj4gPj4KPiA+PiBDYzogVmlsbGUgU3lyamFsYSA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPj4gU2lnbmVkLW9mZi1ieTogU2hh c2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+ID4+IFJldmlld2VkLWJ5 OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ ID4+IC0tLQo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgIHwgIDIg Ky0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8ICA0ICsrLQo+ ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNjYgKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCAgICAgfCAxMCArKysrLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYyAgICB8ICA2ICsrLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMgICB8ICAyICstCj4gPj4gICA2IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMo KyksIDI5IGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5j Cj4gPj4gaW5kZXggYWE2NmU5NS4uOTllMzJjYiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY29sb3IuYwo+ID4+IEBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9s b2FkX2NzY19tYXRyaXgoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ICAg CXVpbnQxNl90IGNvZWZmc1s5XSA9IHsgMCwgfTsKPiA+PiAgIAlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7 Cj4gPj4gICAKPiA+PiAtCWlmIChpbnRlbF9jcnRjX3N0YXRlLT55Y2JjcjQyMCkgewo+ID4+ICsJ aWYgKGludGVsX2NydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gQ1JUQ19PVVRQVVRfWUNCQ1I0 MjApIHsKPiA+PiAgIAkJaTl4eF9sb2FkX3ljYmNyX2NvbnZlcnNpb25fbWF0cml4KGludGVsX2Ny dGMpOwo+ID4+ICAgCQlyZXR1cm47Cj4gPj4gICAJfSBlbHNlIGlmIChjcnRjX3N0YXRlLT5jdG0p IHsKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4+IGluZGV4IGU1MTU1OWIuLmQ1NjVl MjggMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4+IEBAIC0xMjY0LDcg KzEyNjQsNyBAQCBzdGF0aWMgdm9pZCBkZGlfZG90Y2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKPiA+PiAgIAllbHNlCj4gPj4gICAJCWRvdGNsb2NrID0gcGlw ZV9jb25maWctPnBvcnRfY2xvY2s7Cj4gPj4gICAKPiA+PiAtCWlmIChwaXBlX2NvbmZpZy0+eWNi Y3I0MjApCj4gPj4gKwlpZiAocGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPT0gQ1JUQ19PVVRQ VVRfWUNCQ1I0MjApCj4gPj4gICAJCWRvdGNsb2NrICo9IDI7Cj4gPj4gICAKPiA+PiAgIAlpZiAo cGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXIpCj4gPj4gQEAgLTI3NTksNiArMjc1OSw4IEBA IHN0YXRpYyBib29sIGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+PiAgIAlpZiAocG9ydCA9PSBQT1JUX0EpCj4gPj4gICAJCXBpcGVfY29u ZmlnLT5jcHVfdHJhbnNjb2RlciA9IFRSQU5TQ09ERVJfRURQOwo+ID4+ICAgCj4gPj4gKwlwaXBl X2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9IENSVENfT1VUUFVUX1JHQjsKPiA+IFdlIHNlZW0gdG8g YmUgbWlzc2luZyB0aGlzIGZvciBtb3N0IHBsYXRmb3Jtcy9lbmNvZGVyIHR5cGVzLgo+IEkgdGhv dWdodCB0aGlzIHdvdWxkIGJlIHJlcXVpcmVkIG9ubHkgZm9yIERESSBpbnRlcmZhY2VzLCBkbyB5 b3Ugc3VnZ2VzdCAKPiB3ZSBzaG91bGQgc2V0IHRoaXMgcGVyIGVuY29kZXIgYmFzaXMgPwoKWWVz LCBJJ2QgbGlrZSB0byBzZWUgZXZlcnkgZW5jb2RlciBzZXQgaXQuIE90aGVyd2lzZSBvdXIgc3Rh dGUgZHVtcHMKd2lsbCBjb250YWluIGludmFsaWQgaW5mb3JtYXRpb24uCgo+ID4KPiA+PiArCj4g Pj4gICAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09VVFBVVF9I RE1JKSkKPiA+PiAgIAkJcmV0ID0gaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhlbmNvZGVyLCBw aXBlX2NvbmZpZywgY29ubl9zdGF0ZSk7Cj4gPj4gICAJZWxzZQo+ID4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiA+PiBpbmRleCA4M2RlNDNjLi44NzczMzZkIDEwMDY0NAo+ID4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IEBAIC00NjUwLDcgKzQ2NTAs OCBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCj4gPj4gICAJICovCj4gPj4gICAJbmVlZF9zY2FsaW5nID0g c3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2g7Cj4gPj4gICAKPiA+PiAtCWlmIChjcnRj X3N0YXRlLT55Y2JjcjQyMCAmJiBzY2FsZXJfdXNlciA9PSBTS0xfQ1JUQ19JTkRFWCkKPiA+PiAr CWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VUUFVUX1lDQkNSNDIwICYm Cj4gPj4gKwkgICAgc2NhbGVyX3VzZXIgPT0gU0tMX0NSVENfSU5ERVgpCj4gPj4gICAJCW5lZWRf c2NhbGluZyA9IHRydWU7Cj4gPj4gICAKPiA+PiAgIAkvKgo+ID4+IEBAIC02MzYyLDcgKzYzNjMs OCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCj4gPj4gICAJCXJldHVybiAtRUlOVkFMOwo+ID4+ICAgCX0KPiA+PiAgIAo+ID4+ IC0JaWYgKHBpcGVfY29uZmlnLT55Y2JjcjQyMCAmJiBwaXBlX2NvbmZpZy0+YmFzZS5jdG0pIHsK PiA+PiArCWlmIChwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JD UjQyMCAmJgo+ID4+ICsJICAgIHBpcGVfY29uZmlnLT5iYXNlLmN0bSkgewo+ID4+ICAgCQkvKgo+ ID4+ICAgCQkgKiBUaGVyZSBpcyBvbmx5IG9uZSBwaXBlIENTQyB1bml0IHBlciBwaXBlLCBhbmQg d2UgbmVlZCB0aGF0Cj4gPj4gICAJCSAqIGZvciBvdXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+ WUNCQ1IuIFNvIGlmIENUTSBpcyBhbHJlYWR5Cj4gPj4gQEAgLTgxOTIsMTAgKzgxOTQsMTAgQEAg c3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcGlwZW1pc2Moc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ID4+ICAgCQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5kaXRoZXIpCj4gPj4gICAJCQl2YWwgfD0g UElQRU1JU0NfRElUSEVSX0VOQUJMRSB8IFBJUEVNSVNDX0RJVEhFUl9UWVBFX1NQOwo+ID4+ICAg Cj4gPj4gLQkJaWYgKGNvbmZpZy0+eWNiY3I0MjApIHsKPiA+PiAtCQkJdmFsIHw9IFBJUEVNSVND X09VVFBVVF9DT0xPUlNQQUNFX1lVViB8Cj4gPj4gLQkJCQlQSVBFTUlTQ19ZVVY0MjBfRU5BQkxF IHwKPiA+PiAtCQkJCVBJUEVNSVNDX1lVVjQyMF9NT0RFX0ZVTExfQkxFTkQ7Cj4gPj4gKwkJaWYg KGNvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCkgewo+ID4+ICsJ CQl2YWwgfD0gUElQRU1JU0NfT1VUUFVUX0NPTE9SU1BBQ0VfWVVWOwo+ID4+ICsJCQl2YWwgfD0g UElQRU1JU0NfWVVWNDIwX0VOQUJMRSB8Cj4gPj4gKwkJCSAgICAgICBQSVBFTUlTQ19ZVVY0MjBf TU9ERV9GVUxMX0JMRU5EOwo+ID4gV2h5IHR3byB8PSA/Cj4gV2FubmEgbWFrZSBpdCBjbGVhciB0 aGF0IGZpcnN0IHNldCBpcyBmb3IgYWxsIFlDQkNSIG91dHB1dHMoNDIwIGFuZCA0NDQpIAo+IHdo ZXJlYXMgb3RoZXIgdHdvIGFyZSBleHBsaWNpdGx5IGZvciA0MjAuCgpGYWlyIGVub3VnaC4KCj4g Pj4gICAJCX0KPiA+PiAgIAo+ID4+ICAgCQlJOTE1X1dSSVRFKFBJUEVNSVNDKGludGVsX2NydGMt PnBpcGUpLCB2YWwpOwo+ID4+IEBAIC05MTcxLDYgKzkxNzMsMTkgQEAgc3RhdGljIHZvaWQgaGFz d2VsbF9nZXRfZGRpX3BvcnRfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPj4gICAJ fQo+ID4+ICAgfQo+ID4+ICAgCj4gPj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgb3V0cHV0 X2Zvcm1hdF9zdHJbXSA9IHsKPiA+PiArCSJJbnZhbGlkIiwKPiA+PiArCSJSR0IiLAo+ID4+ICsJ IllDQkNSNDoyOjAiLAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RhdGljIGNvbnN0IGNoYXIgKm91 dHB1dF9mb3JtYXRzKGVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCBmb3JtYXQpCj4gPj4gK3sKPiA+ PiArCWlmIChmb3JtYXQgPCBDUlRDX09VVFBVVF9JTlZBTElEIHx8IGZvcm1hdCA+IENSVENfT1VU UFVUX1lDQkNSNDIwKQo+ID4+ICsJCWZvcm1hdCA9IENSVENfT1VUUFVUX0lOVkFMSUQ7CgpCVFcg Pj0gQVJSQVlfU0laRShmb3JtYXRfc3RyKQoKd291bGQgc2VlbSBsaWtlIGEgYmV0dGVyIGNoZWNr IGhlcmUuCgo+ID4+ICsJcmV0dXJuIG91dHB1dF9mb3JtYXRfc3RyW2Zvcm1hdF07Cj4gPj4gK30K PiA+PiArCj4gPj4gICBzdGF0aWMgYm9vbCBoYXN3ZWxsX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPiA+PiAgIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQo+ID4+ICAgewo+ID4+IEBAIC05MjExLDE5ICs5MjI2LDI4IEBAIHN0YXRp YyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ ID4+ICAgCj4gPj4gICAJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KSB7Cj4gPj4gICAJCXUzMiB0bXAgPSBJOTE1X1JFQUQoUElQRU1JU0MoY3J0 Yy0+cGlwZSkpOwo+ID4+IC0JCWJvb2wgY2xyc3BhY2VfeXV2ID0gdG1wICYgUElQRU1JU0NfT1VU UFVUX0NPTE9SU1BBQ0VfWVVWOwo+ID4+IC0KPiA+PiAtCQlpZiAoSVNfR0VNSU5JTEFLRShkZXZf cHJpdikgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkgewo+ID4+IC0JCQlib29sIGJsZW5k X21vZGVfNDIwID0gdG1wICYKPiA+PiAtCQkJCQkgICAgICBQSVBFTUlTQ19ZVVY0MjBfTU9ERV9G VUxMX0JMRU5EOwo+ID4+ICsJCWVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCBvdXRwdXRfZm9ybWF0 ID0gQ1JUQ19PVVRQVVRfUkdCOwo+ID4+ICsKPiA+PiArCQlpZiAodG1wICYgUElQRU1JU0NfT1VU UFVUX0NPTE9SU1BBQ0VfWVVWKSB7Cj4gPj4gKwkJCWJvb2wgeWNiY3I0MjBfZW5hYmxlZCA9IHRt cCAmIFBJUEVNSVNDX1lVVjQyMF9FTkFCTEU7Cj4gPj4gKwkJCWJvb2wgYmxlbmQgPSB0bXAgJiBQ SVBFTUlTQ19ZVVY0MjBfTU9ERV9GVUxMX0JMRU5EOwo+ID4+ICsKPiA+PiArCQkJaWYgKHljYmNy NDIwX2VuYWJsZWQpIHsKPiA+PiArCQkJCS8qIFdlIHN1cHBvcnQgNDoyOjAgaW4gZnVsbCBibGVu ZCBtb2RlIG9ubHkgKi8KPiA+PiArCQkJCWlmICghYmxlbmQpCj4gPj4gKwkJCQkJb3V0cHV0X2Zv cm1hdCA9IENSVENfT1VUUFVUX0lOVkFMSUQ7Cj4gPj4gKwkJCQllbHNlIGlmICghKElTX0dFTUlO SUxBS0UoZGV2X3ByaXYpIHx8Cj4gPj4gKwkJCQkJICAgSU5URUxfR0VOKGRldl9wcml2KSA+PSAx MCkpCj4gPj4gKwkJCQkJb3V0cHV0X2Zvcm1hdCA9IENSVENfT1VUUFVUX0lOVkFMSUQ7Cj4gPj4g KwkJCQllbHNlCj4gPj4gKwkJCQkJb3V0cHV0X2Zvcm1hdCA9IENSVENfT1VUUFVUX1lDQkNSNDIw Owo+ID4+ICsJCQl9Cj4gPj4gICAKPiA+PiAtCQkJcGlwZV9jb25maWctPnljYmNyNDIwID0gdG1w ICYgUElQRU1JU0NfWVVWNDIwX0VOQUJMRTsKPiA+PiAtCQkJaWYgKHBpcGVfY29uZmlnLT55Y2Jj cjQyMCAhPSBjbHJzcGFjZV95dXYgfHwKPiA+PiAtCQkJICAgIHBpcGVfY29uZmlnLT55Y2JjcjQy MCAhPSBibGVuZF9tb2RlXzQyMCkKPiA+PiAtCQkJCURSTV9ERUJVR19LTVMoIkJhZCA0OjI6MCBt b2RlICglMDh4KVxuIiwgdG1wKTsKPiA+PiAtCQl9IGVsc2UgaWYgKGNscnNwYWNlX3l1dikgewo+ ID4+IC0JCQlEUk1fREVCVUdfS01TKCJZQ2JDciA0OjI6MCBVbnN1cHBvcnRlZFxuIik7Cj4gPj4g ICAJCX0KPiA+PiArCj4gPj4gKwkJcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPSBvdXRwdXRf Zm9ybWF0Owo+ID4+ICsJCURSTV9ERUJVR19LTVMoIk91dHB1dCBmb3JtYXQgJXNcbiIsCj4gPj4g KwkJCQlvdXRwdXRfZm9ybWF0cyhvdXRwdXRfZm9ybWF0KSk7Cj4gPiBVc2VsZXNzIGRlYnVnIHBy aW50Lgo+IEl0cyBhIF9rbXMgb25seSwgYnV0IGNhbiBiZSByZW1vdmVkIGlmIHlvdSB0aGluayBz by4KClllcywgd2UgY2FuJ3QgaGF2ZSBldmVyeW9uZSBwb2xsdXRlIHRoZSBkbWVzZyB3aXRoIHRo ZWlyIGZhdm9yaXRlIGRldGFpbApvZiB0aGUgZGF5LiBUaGF0J2xsIGxlYWQgdG8gdGhlIHdob2xl IHRoaW5nIGJlaW5nIG1vc3RseSBub2lzZS4KCkkgdGhpbmsgdGhlIGltcG9ydGFudCBzdHVmZiB3 ZSB3YW50IHRvIHByaW50IGlzIG1vc3RseSB0byBkbyB3aXRoIAplcnJvciBjb25kaXRpb25zIGFu ZCB0aGUgbW9kZXNldCBzZXF1ZW5jaW5nLiBEZXRhaXMgYWJvdXQgdGhlCmNydGMvcGxhbmUvZXRj LiBzdGF0ZXMgc2hvdWxkIGJlIGNvdmVyZWQgYnkgdGhlIHN0YXRlIGR1bXBzLgoKPiAtIFNoYXNo YW5rCj4gPj4gICAJfQo+ID4+ICAgCj4gPj4gICAJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlO X1BJUEVfUEFORUxfRklUVEVSKGNydGMtPnBpcGUpOwo+ID4+IEBAIC0xMDU3OCw2ICsxMDYwMiw5 IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gPj4gICAJRFJNX0RFQlVHX0tNUygib3V0cHV0X3R5cGVzOiAlcyAoMHgleClcbiIs Cj4gPj4gICAJCSAgICAgIGJ1ZiwgcGlwZV9jb25maWctPm91dHB1dF90eXBlcyk7Cj4gPj4gICAK PiA+PiArCURSTV9ERUJVR19LTVMoIm91dHB1dCBmb3JtYXQ6ICVzXG4iLAo+ID4+ICsJCW91dHB1 dF9mb3JtYXRzKHBpcGVfY29uZmlnLT5vdXRwdXRfZm9ybWF0KSk7Cj4gPj4gKwo+ID4+ICAgCURS TV9ERUJVR19LTVMoImNwdV90cmFuc2NvZGVyOiAlcywgcGlwZSBicHA6ICVpLCBkaXRoZXJpbmc6 ICVpXG4iLAo+ID4+ICAgCQkgICAgICB0cmFuc2NvZGVyX25hbWUocGlwZV9jb25maWctPmNwdV90 cmFuc2NvZGVyKSwKPiA+PiAgIAkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLCBwaXBlX2Nv bmZpZy0+ZGl0aGVyKTsKPiA+PiBAQCAtMTA1ODcsOSArMTA2MTQsNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4+ICAgCQkJ CSAgICAgIHBpcGVfY29uZmlnLT5mZGlfbGFuZXMsCj4gPj4gICAJCQkJICAgICAgJnBpcGVfY29u ZmlnLT5mZGlfbV9uKTsKPiA+PiAgIAo+ID4+IC0JaWYgKHBpcGVfY29uZmlnLT55Y2JjcjQyMCkK PiA+PiAtCQlEUk1fREVCVUdfS01TKCJZQ2JDciA0OjI6MCBvdXRwdXQgZW5hYmxlZFxuIik7Cj4g Pj4gLQo+ID4+ICAgCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkg ewo+ID4+ICAgCQlpbnRlbF9kdW1wX21fbl9jb25maWcocGlwZV9jb25maWcsICJkcCBtX24iLAo+ ID4+ICAgCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCAmcGlwZV9jb25maWctPmRwX21fbik7 Cj4gPj4gQEAgLTExMTYzLDYgKzExMTg3LDcgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4gICAJUElQRV9DT05GX0NIRUNL X0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kKTsKPiA+PiAgIAo+ID4+ICAgCVBJ UEVfQ09ORl9DSEVDS19JKHBpeGVsX211bHRpcGxpZXIpOwo+ID4+ICsJUElQRV9DT05GX0NIRUNL X0kob3V0cHV0X2Zvcm1hdCk7Cj4gPj4gICAJUElQRV9DT05GX0NIRUNLX0JPT0woaGFzX2hkbWlf c2luayk7Cj4gPj4gICAJaWYgKChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOCAmJiAhSVNfSEFTV0VM TChkZXZfcHJpdikpIHx8Cj4gPj4gICAJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4+IEBAIC0xMTE3MSw3ICsxMTE5Niw2IEBAIGludGVs X3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4+ICAgCVBJUEVfQ09ORl9DSEVDS19CT09MKGhkbWlfc2NyYW1ibGluZyk7Cj4gPj4gICAJUElQ RV9DT05GX0NIRUNLX0JPT0woaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8pOwo+ID4+ICAgCVBJ UEVfQ09ORl9DSEVDS19CT09MX0lOQ09NUExFVEUoaGFzX2luZm9mcmFtZSk7Cj4gPj4gLQlQSVBF X0NPTkZfQ0hFQ0tfQk9PTCh5Y2JjcjQyMCk7Cj4gPj4gICAKPiA+PiAgIAlQSVBFX0NPTkZfQ0hF Q0tfQk9PTF9JTkNPTVBMRVRFKGhhc19hdWRpbyk7Cj4gPj4gICAKPiA+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4+IGluZGV4IDNjZWU1NGIuLjM1YmU3OGUgMTAwNjQ0Cj4gPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+IEBAIC02ODcsNiArNjg3LDEyIEBAIHN0cnVjdCBpbnRl bF9jcnRjX3dtX3N0YXRlIHsKPiA+PiAgIAlib29sIG5lZWRfcG9zdHZibF91cGRhdGU7Cj4gPj4g ICB9Owo+ID4+ICAgCj4gPj4gK2VudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCB7Cj4gPj4gKwlDUlRD X09VVFBVVF9JTlZBTElELAo+ID4+ICsJQ1JUQ19PVVRQVVRfUkdCLAo+ID4+ICsJQ1JUQ19PVVRQ VVRfWUNCQ1I0MjAsCj4gPj4gK307Cj4gPj4gKwo+ID4+ICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgewo+ID4+ICAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBiYXNlOwo+ID4+ICAgCj4gPj4gQEAg LTg3Myw4ICs4NzksOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPj4gICAJLyogSERN SSBIaWdoIFRNRFMgY2hhciByYXRlIHJhdGlvICovCj4gPj4gICAJYm9vbCBoZG1pX2hpZ2hfdG1k c19jbG9ja19yYXRpbzsKPiA+PiAgIAo+ID4+IC0JLyogb3V0cHV0IGZvcm1hdCBpcyBZQ0JDUiA0 OjI6MCAqLwo+ID4+IC0JYm9vbCB5Y2JjcjQyMDsKPiA+PiArCS8qIE91dHB1dCBmb3JtYXQgUkdC L1lDQkNSIGV0YyAqLwo+ID4+ICsJZW51bSBpbnRlbF9vdXRwdXRfZm9ybWF0IG91dHB1dF9mb3Jt YXQ7Cj4gPj4gICB9Owo+ID4+ICAgCj4gPj4gICBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4gPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4+IGluZGV4IDk3OGYyMmIuLjY3MDBlZDYgMTAwNjQ0 Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPj4gQEAgLTQ3OSw3ICs0NzksNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwKPiA+PiAgIAkJcmV0dXJuOwo+ID4+ICAgCX0KPiA+PiAgIAo+ID4+IC0J aWYgKGNydGNfc3RhdGUtPnljYmNyNDIwKQo+ID4+ICsJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9m b3JtYXQgPT0gQ1JUQ19PVVRQVVRfWUNCQ1I0MjApCj4gPj4gICAJCWZyYW1lLmF2aS5jb2xvcnNw YWNlID0gSERNSV9DT0xPUlNQQUNFX1lVVjQyMDsKPiA+PiAgIAllbHNlCj4gPj4gICAJCWZyYW1l LmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1JHQjsKPiA+PiBAQCAtMTYxNSw3ICsx NjE1LDcgQEAgc3RhdGljIGJvb2wgaGRtaV8xMmJwY19wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgIAkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+ Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gPj4gICAJCQljb250aW51ZTsKPiA+PiAg IAo+ID4+IC0JCWlmIChjcnRjX3N0YXRlLT55Y2JjcjQyMCkgewo+ID4+ICsJCWlmIChjcnRjX3N0 YXRlLT5vdXRwdXRfZm9ybWF0ID09IENSVENfT1VUUFVUX1lDQkNSNDIwKSB7Cj4gPj4gICAJCQlj b25zdCBzdHJ1Y3QgZHJtX2hkbWlfaW5mbyAqaGRtaSA9ICZpbmZvLT5oZG1pOwo+ID4+ICAgCj4g Pj4gICAJCQlpZiAoIShoZG1pLT55NDIwX2RjX21vZGVzICYgRFJNX0VESURfWUNCQ1I0MjBfRENf MzYpKQo+ID4+IEBAIC0xNjUwLDcgKzE2NTAsNyBAQCBpbnRlbF9oZG1pX3ljYmNyNDIwX2NvbmZp ZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4+ICAgCWNvbmZpZy0+cG9ydF9j bG9jayAvPSAyOwo+ID4+ICAgCSpjbG9ja18xMmJwYyAvPSAyOwo+ID4+ICAgCSpjbG9ja184YnBj IC89IDI7Cj4gPj4gLQljb25maWctPnljYmNyNDIwID0gdHJ1ZTsKPiA+PiArCWNvbmZpZy0+b3V0 cHV0X2Zvcm1hdCA9IENSVENfT1VUUFVUX1lDQkNSNDIwOwo+ID4+ICAgCj4gPj4gICAJLyogWUNC Q1IgNDIwIG91dHB1dCBjb252ZXJzaW9uIG5lZWRzIGEgc2NhbGVyICovCj4gPj4gICAJaWYgKHNr bF91cGRhdGVfc2NhbGVyX2NydGMoY29uZmlnKSkgewo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cGFuZWwuYwo+ID4+IGluZGV4IGU3MDJhNjQuLjE3MDI1YmMgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BhbmVsLmMKPiA+PiBAQCAtMTExLDcgKzExMSw3IEBAIGludGVsX3BjaF9w YW5lbF9maXR0aW5nKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4+ICAgCS8qIE5h dGl2ZSBtb2RlcyBkb24ndCBuZWVkIGZpdHRpbmcgKi8KPiA+PiAgIAlpZiAoYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19oZGlzcGxheSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAmJgo+ID4+ICAgCSAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5ID09IHBpcGVfY29uZmlnLT5waXBlX3NyY19o ICYmCj4gPj4gLQkgICAgIXBpcGVfY29uZmlnLT55Y2JjcjQyMCkKPiA+PiArCSAgICBwaXBlX2Nv bmZpZy0+b3V0cHV0X2Zvcm1hdCAhPSBDUlRDX09VVFBVVF9ZQ0JDUjQyMCkKPiA+PiAgIAkJZ290 byBkb25lOwo+ID4+ICAgCj4gPj4gICAJc3dpdGNoIChmaXR0aW5nX21vZGUpIHsKPiA+PiAtLSAK PiA+PiAyLjcuNAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==