From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [Intel-gfx] [PATCH v4 10/15] drm/i915: add compute-config for YCBCR outputs Date: Mon, 26 Jun 2017 14:30:17 +0300 Message-ID: <1498476617.2376.5.camel@gmail.com> References: <1497888502-24980-1-git-send-email-shashank.sharma@intel.com> <1497888502-24980-11-git-send-email-shashank.sharma@intel.com> <1497968441.2289.8.camel@gmail.com> <841e5032-2b94-9c0f-8f15-176e0dc0e70d@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <841e5032-2b94-9c0f-8f15-176e0dc0e70d@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Sharma, Shashank" , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCAyMDE3LTA2LTIxIGF0IDIxOjE5ICswNTMwLCBTaGFybWEsIFNoYXNoYW5rIHdyb3Rl Ogo+IFJlZ2FyZHMKPiAKPiBTaGFzaGFuawo+IAo+IAo+IE9uIDYvMjAvMjAxNyA3OjUwIFBNLCBB bmRlciBDb25zZWx2YW4gRGUgT2xpdmVpcmEgd3JvdGU6Cj4gPiBPbiBNb24sIDIwMTctMDYtMTkg YXQgMjE6MzggKzA1MzAsIFNoYXNoYW5rIFNoYXJtYSB3cm90ZToKPiA+ID4gVGhpcyBwYXRjaCBj aGVja3MgZW5jb2RlciBsZXZlbCBzdXBwb3J0IGZvciBIRE1JIFlDQkNSIG91dHB1dHMuCj4gPiA+ IEhETUkgb3V0cHV0IG1vZGUgaXMgYSBjb25uZWN0b3IgcHJvcGVydHksIHRoaXMgcGF0Y2ggY2hl Y2tzIGlmCj4gPiA+IHNvdXJjZSBhbmQgc2luayBjYW4gc3VwcG9ydCB0aGUgSERNSSBvdXRwdXQg dHlwZSBzZWxlY3RlZCBieSB1c2VyLgo+ID4gPiBBbmQgaWYgdGhleSBib3RoIGNhbiwgaXQgY29t bWl0cyB0aGUgaGRtaSBvdXRwdXQgdHlwZSBpbnRvIGNydGMgc3RhdGUsCj4gPiA+IGZvciBmdXJ0 aGVyIHN0YWdpbmcgaW4gZHJpdmVyLgo+ID4gPiAKPiA+ID4gVjI6IFNwbGl0IHRoZSBwYXRjaCBp bnRvIHR3bywga2VwdCBoZWxwZXIgZnVuY3Rpb25zIGluIERSTSBsYXllci4KPiA+ID4gVjM6IENo YW5nZWQgdGhlIGNvbXB1dGVfY29uZmlnIGZ1bmN0aW9uIGJhc2VkIG9uIG5ldyBEUk0gQVBJLgo+ ID4gPiBWNDogUmViYXNlCj4gPiA+IAo+ID4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGludGVsLmNvbT4KPiA+ID4gQ2M6IEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2ZWlyYSA8YW5k ZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTog U2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMSArCj4gPiA+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDMgKysKPiA+ID4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCA5MyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0KPiA+ID4gICAzIGZpbGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPiA+IGluZGV4IGY5YmYwZDUuLmRhMjk1MzYgMTAwNjQ0Cj4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTExOTMwLDYgKzExOTMwLDcgQEAg aW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+ICAgCVBJUEVfQ09ORl9DSEVDS19JKGhkbWlfc2NyYW1ibGluZyk7Cj4gPiA+ICAg CVBJUEVfQ09ORl9DSEVDS19JKGhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKTsKPiA+ID4gICAJ UElQRV9DT05GX0NIRUNLX0koaGFzX2luZm9mcmFtZSk7Cj4gPiA+ICsJUElQRV9DT05GX0NIRUNL X0koaGRtaV9vdXRwdXQpOwo+ID4gPiAgIAo+ID4gPiAgIAlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNf YXVkaW8pOwo+ID4gPiAgIAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBpbmRl eCAxNzI3MzUwLi4zOGZlNTZjIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ID4gPiBAQCAtNzgwLDYgKzc4MCw5IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiA+ ID4gICAKPiA+ID4gICAJLyogSERNSSBIaWdoIFRNRFMgY2hhciByYXRlIHJhdGlvICovCj4gPiA+ ICAgCWJvb2wgaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW87Cj4gPiA+ICsKPiA+ID4gKwkvKiBI RE1JIG91dHB1dCB0eXBlICovCj4gPiA+ICsJZW51bSBkcm1faGRtaV9vdXRwdXRfdHlwZSBoZG1p X291dHB1dDsKPiA+ID4gICB9Owo+ID4gPiAgIAo+ID4gPiAgIHN0cnVjdCBpbnRlbF9jcnRjIHsK PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gPiBpbmRleCAxNzBhYmM0Li4yMmRh NWNkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiA+IEBAIC0x MzE3LDcgKzEzMTcsOCBAQCBpbnRlbF9oZG1pX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiA+ID4gICAJcmV0dXJuIHN0YXR1czsKPiA+ID4gICB9Cj4gPiA+ICAg Cj4gPiA+IC1zdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiArc3RhdGljIGJvb2wgaGRtaV8xMmJwY19wb3NzaWJs ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ID4gKwkJCQllbnVtIGRy bV9oZG1pX291dHB1dF90eXBlIGhkbWlfb3V0KQo+ID4gPiAgIHsKPiA+ID4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiA+ID4gICAJCXRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOwo+ID4gPiBAQCAtMTMyOSw2ICsxMzMwLDE2IEBAIHN0YXRpYyBib29s IGhkbWlfMTJicGNfcG9zc2libGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp Cj4gPiA+ICAgCWlmIChIQVNfR01DSF9ESVNQTEFZKGRldl9wcml2KSkKPiA+ID4gICAJCXJldHVy biBmYWxzZTsKPiA+ID4gICAKPiA+ID4gKwlpZiAoaGRtaV9vdXQgPT0gRFJNX0hETUlfT1VUUFVU X1lDQkNSNDIyKSB7Cj4gPiA+ICsJCS8qCj4gPiA+ICsJCSAqIEhETUkgc3BlYyBzYXlzIFlDQkNS NDIyIGlzIDEyYnBjLCBidXQgaXRzIG5vdCBhIGRlZXAKPiA+ID4gKwkJICogY29sb3IgZm9ybWF0 LiBTbyByZXNwZWN0IHRoZSBzcGVjLCBhbmQgbm90IGFsbG93IHRoaXMKPiA+ID4gKwkJICogdG8g YmUgZGVlcCBjb2xvcgo+ID4gPiArCQkgKi8KPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiTm90IGFs bG93aW5nIGRlZXAgY29sb3IgZm9yIFlDQkNSNDIyIG91dHB1dFxuIik7Cj4gPiA+ICsJCXJldHVy biBmYWxzZTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+IAo+ID4gSSBzdXBwb3NlIHRoaXMgaXMgYWJv dXQgdGhlIHJlbWFyayBpbiBzZWN0aW9uIDYuMi40IG9mIHRoZSBIRE1JIDEuNCBzcGVjLiBJZiBJ J20KPiA+IGludGVycHJldGluZyB0aGF0IGNvcnJlY3RseSwgdGhlIHJlbGV2YW50IGluZm9ybWF0 aW9uIGZvciB1cyBpcyB0aGF0IHRoZSBUTURTCj4gPiBjbG9jayBkb2Vzbid0IG5lZWQgdG8gYmUg bXVsdGlwbGllZCBieSAxLjUsIHVubGlrZSBvdGhlciAxMiBicGMgc2NlbmFyaW9zLgo+ID4gCj4g PiBUbyBtZSBpdCBzZWVtcyBtaXNsZWFkaW5nIHRvIHNheSAxMiBicGMgaXMgbm90IHBvc3NpYmxl IGluIHRoYXQgY2FzZS4gSSdtCj4gPiB3b25kZXJpbmcgaWYgaXQgbWFrZXMgbW9yZSBzZW5zZSB0 byBzcGxpdCB0aGlzIGluIHR3byBwYXJ0czoKPiA+IAo+ID4gICAoaSkgIFdoYXQgaXMgdGhlIFRN RFMgY2xvY2sgc2NhbGluZyBmb3IgYSBnaXZlbiBvdXRwdXQgZm9ybWF0Pwo+ID4gICAoaWkpIElz IHRoZSBmb3JtYXQgYW5kIHNjYWxlZCBUTURTIGNsb2NrIHN1cHBvcnRlZCBieSB0aGUgc291cmNl IGFuZCB0aGUgc2luaz8KPiAKPiBNeSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgc3BlYyB3YXMgWUNC Q1I0MjIgaXMgYSAxMiBiaXQgZW5jb2Rpbmcgc2NoZW1lLCAKPiBidXQgaXRzIG5vdCBhIGRlZXAg Y29sb3IgbW9kZSAoSSBndWVzcyB0aGF0J3Mgd2hhdCBWaWxsZSBhbHNvIHRob3VnaHQpCgpXaGF0 IGlzIHRoZSBkZWZpbml0aW9uIG9mIGRlZXAgY29sb3I/IFNlY3Rpb24gNi4yLjQgb2YgSERNSSAx LjQgc2F5cyAiWUNCQ1IKNDoyOjIgaXMgYWxzbyAzNi1iaXQgbW9kZSBidXQgZG9lcyBub3QgcmVx dWlyZSB0aGUgZnVydGhlciB1c2Ugb2YgdGhlIERlZXAgQ29sb3IKbW9kZXMgZGVzY3JpYmVkIGlu IHNlY3Rpb24gNi41LjIgYW5kIDYuNS4zLiIgTG9va2luZyBhdCB0aG9zZSBzZWN0aW9ucywgSQpi ZWxpZXZlIHRoZSBvbmx5IHJlbGV2YW50IGJpdCBmb3IgdGhlIGRyaXZlciBpcyB3aGV0aGVyIHRv IGNoYW5nZSB0aGUgVE1EUwpjbG9jay4gSXMgdGhlcmUgc29tZXRoaW5nIEknbSBtaXNzaW5nPwoK PiBJbiBJOTE1LCAxMl9icGMgaXMgYWx3YXlzIGNvbnNpZGVyZWQgYXMgZGVlcCBjb2xvciBtb2Rl IGNhc2UsIHdoZXJlYXMgSSAKPiBoYXZlIHNlZW4gRURJRHMgd2hpY2ggaW5kaWNhdGUgc3VwcG9y dCBmb3IgWUNCQ1I0MjIgYnV0IHRoZXkgZG8gbm90IAo+IGluZGljYXRlIGRlZXAgY29sb3Igc3Vw cG9ydC4KCkkgc2VlIHR3byBpc3N1ZXMgaGVyZS4gT25lIGlzIHRoYXQgd2UgaGF2ZSBhIGZ1bmN0 aW9uIHRoYXQgaXMgY2FsbApoZG1pXzEyYnBjX3Bvc3NpYmxlKCkgYW5kIGl0IHJldHVybnMgZmFs c2UgZm9yIFlDQkNSNDIyIHdpdGggYSBjb21tZW50IHN0YXRpbmcKdGhhdCBpcyBhY3R1YWxseSBh IDEyIGJwYyBtb2RlLiBTaG91bGQgdGhpcyBiZSBjYWxsZWQgaGRtaV9kZWVwX2NvbG9yX3Bvc3Np YmxlKCkKaW5zdGVhZD8KCk5vdyB0aGUgb3RoZXIgaXNzdWUgaXMgaG93IHRoZSByZXR1cm4gdmFs dWUgb2YgdGhhdCBmdW5jdGlvbiBpcyB1c2VkLiBJZiBpdCBpcwp0cnVlIHRoZW4gdGhlIGJwcCBp biBwaXBlIGNvbmZpZyBpcyB1cGRhdGVkIHRvIDM2IGFuZCB0aGUgVE1EUyBjbG9jayBpcyBzY2Fs ZWQKYnkgMS41LgoKV2l0aCB0aGUgY3VycmVudCBjb2RlIG5vbmUgb2YgdGhhdCBpcyBhIHByb2Js ZW0sIGJ1dCBhcyB0aGUgbmV3IGZvcm1hdCBpcwppbnRyb2R1Y2VkIHRoZSBsaW5lcyBnZXQgYmx1 cnJ5LiBTbyB3aGF0IEkgd291bGQgbGlrZSB0byBzZWUgaXMgdGhpcyByZWZhY3RvcmVkCnRvIGFj a25vd2xlZGdlIHRoYXQgZGlmZmVyZW50IGZvcm1hdHMgbWF5IGJlIHN1cHBvcnRlZCBhbmQgdGhh dCB0aGV5IGhhdmUKZGlmZmVyZW50IHJlcXVpcmVtZW50cy4gRm9yIGluc3RhbmNlLCBpZiB3ZSBl dmVyIHN1cHBvcnQgMTYgYnBjLCB0aGUgVE1EUyBjbG9jawpzaG91bGQgYmUgc2NhbGVkIGJ5IDIg aW5zdGVhZCBvZiAxLjUuIEZvciBZQ0JDUjQyMiwgdGhlIHNjYWxlIGZhY3RvciBpcyAxLiBJZiBJ CnVuZGVyc3RhbmQgY29ycmVjdGx5LCBmb3IgWUNCQ1I0MjAgdGhlIHNjYWxpbmcgaXMgMC41LgoK U28gd2hhdCBJIHByb3Bvc2UgaXMgdG8gaGF2ZSBhIGZ1bmN0aW9uIHRoYXQgdGVsbHMgaWYgYSBn aXZlbiBvdXRwdXQgZm9ybWF0IGlzCnN1cHBvcnRlZCwgcGVyaGFwcyByZXR1cm5pbmcgdGhlIFRN RFMgc2NhbGUgZmFjdG9yIGZvciBpdC4gVGhlbiB0aGUgbG9naWMgb2YKY2hvb3NpbmcgdGhlIG91 dHB1dCBmb3JtYXQgY2FuIGJlIHNvbWV3aGF0IGRlY291cGxlZCwganVzdCBjaGVja2luZyBpZiB0 aGUKZGVzaXJlZCBmb3JtYXQgYW5kIGNsb2NrIGlzIHN1cHBvcnRlZCwgd2l0aCBhIGZhbGwgYmFj ayBwZXJoYXBzLiBPciBnbyB0aHJvdWdoIGEKc29ydGVkIGxpc3RlZCBvZiBwcmVmZXJyZWQgZm9y bWF0cy4KCkFuZGVyCgo+IENvbWJpbmluZyB0aGVzZSBpbmZvcm1hdGlvbiBhYm92ZSwgd2UgdGhv dWdodCBpdHMgc2FmZSB0byBjb25zaWRlciB0aGF0IAo+IDQyMiBpcyBub3QgYSBkZWVwIGNvbG9y IG1vZGUsIGFuZCBoZW5jZSB0aGlzIGNhbGwuCj4gPiAKPiA+ID4gICAJLyoKPiA+ID4gICAJICog SERNSSAxMmJwYyBhZmZlY3RzIHRoZSBjbG9ja3MsIHNvIGl0J3Mgb25seSBwb3NzaWJsZQo+ID4g PiAgIAkgKiB3aGVuIG5vdCBjbG9uaW5nIHdpdGggb3RoZXIgZW5jb2RlciB0eXBlcy4KPiA+ID4g QEAgLTEzNDIsNiArMTM1MywxMiBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiAgIAkJaWYgKGNvbm5lY3Rv cl9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMpCj4gPiA+ICAgCQkJY29udGlu dWU7Cj4gPiA+ICAgCj4gPiA+ICsJCWlmIChoZG1pX291dCA9PSBEUk1fSERNSV9PVVRQVVRfWUNC Q1I0MjApIHsKPiA+ID4gKwkJCWlmICghKGluZm8tPmhkbWkueTQyMF9kY19tb2RlcyAmCj4gPiA+ ICsJCQkJCURSTV9FRElEX1lDQkNSNDIwX0RDXzM2KSkKPiA+ID4gKwkJCQlyZXR1cm4gZmFsc2U7 Cj4gPiA+ICsJCX0KPiA+ID4gKwo+ID4gPiAgIAkJaWYgKChpbmZvLT5lZGlkX2hkbWlfZGNfbW9k ZXMgJiBEUk1fRURJRF9IRE1JX0RDXzM2KSA9PSAwKQo+ID4gPiAgIAkJCXJldHVybiBmYWxzZTsK PiA+ID4gICAJfQo+ID4gPiBAQCAtMTM1NCw2ICsxMzcxLDY1IEBAIHN0YXRpYyBib29sIGhkbWlf MTJicGNfcG9zc2libGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiA+ ICAgCXJldHVybiB0cnVlOwo+ID4gPiAgIH0KPiA+ID4gICAKPiA+ID4gK3N0YXRpYyB1OAo+ID4g PiAraW50ZWxfaGRtaV9nZXRfc3JjX291dHB1dF9zdXBwb3J0KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gY29ubmVjdG9yLT5kZXYtPmRldl9wcml2YXRlOwo+ID4gPiArCXU4IHN1cHBvcnRl ZF9vdXRwdXRzID0gRFJNX0NPTE9SX0ZPUk1BVF9SR0I0NDQ7Cj4gPiA+ICsKPiA+ID4gKwlpZiAo ZGV2X3ByaXYtPmluZm8uZ2VuIDwgNykKPiA+ID4gKwkJcmV0dXJuIHN1cHBvcnRlZF9vdXRwdXRz Owo+ID4gPiArCj4gPiA+ICsJLyogR2VuIDcgYW5kIGFib3ZlIHN1cHBvcnQgSERNSSAxLjRiIG91 dHB1dHMgKi8KPiA+ID4gKwlzdXBwb3J0ZWRfb3V0cHV0cyB8PSAoRFJNX0NPTE9SX0ZPUk1BVF9Z Q1JDQjQ0NCB8Cj4gPiA+ICsJCQkJRFJNX0NPTE9SX0ZPUk1BVF9ZQ1JDQjQyMik7Cj4gPiA+ICsK PiA+ID4gKwlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gPiA+ICsJCXN1cHBvcnRlZF9v dXRwdXRzIHw9IERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjA7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1 cm4gc3VwcG9ydGVkX291dHB1dHM7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBlbnVt IGRybV9oZG1pX291dHB1dF90eXBlCj4gPiA+ICtpbnRlbF9oZG1pX2NvbXB1dGVfeWNiY3JfY29u ZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAo+ID4gPiArCQkJICAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsCj4gPiA+ICsJCQkgICAgICAgaW50 ICpjbG9ja18xMmJwYywgaW50ICpjbG9ja184YnBjKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gPiA+ICsJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGU7Cj4gPiA+ICsJZW51bSBkcm1faGRtaV9vdXRwdXRfdHlwZSB0eXBlID0gY29ubl9zdGF0ZS0+ aGRtaV9vdXRwdXQ7Cj4gPiA+ICsJdTggc3JjX291dHB1dF9jYXAgPSBpbnRlbF9oZG1pX2dldF9z cmNfb3V0cHV0X3N1cHBvcnQoY29ubmVjdG9yKTsKPiA+ID4gKwo+ID4gPiArCS8qCj4gPiA+ICsJ ICogQ2FuIHdlIHN1cHBvcnQgYW55IFlDQkNSIG91dHB1dCBiYXNlZCBvbiB0aGVzZSBwYXJhbWV0 ZXJzID8KPiA+ID4gKwkgKiBjdXJyZW50IHNvdXJjZSBjYXBhYmlsaXRpZXMgKwo+ID4gPiArCSAq IGN1cnJlbnQgc2luayBjYXBhYmlsaXRpZXMgKwo+ID4gPiArCSAqIGdpdmVuIHZpZGVvIG1vZGUg Kwo+ID4gPiArCSAqIGN1cnJlbnQgdXNlcidzIGNob2ljZSBmb3IgSERNSSBvdXRwdXQgKGZyb20g Y29ubmVjdG9yIHByb3BlcnR5KQo+ID4gPiArCSAqLwo+ID4gPiArCXR5cGUgPSBkcm1fZmluZF9o ZG1pX291dHB1dF90eXBlKGNvbm5lY3RvciwgbW9kZSwgdHlwZSwgc3JjX291dHB1dF9jYXApOwo+ ID4gPiArCWlmICgodHlwZSA9PSBEUk1fSERNSV9PVVRQVVRfSU5WQUxJRCkgfHwKPiA+IAo+ID4g VW5uZWNlc3NhcnkgcGFyZW50aGVzaXMuCj4gCj4gR290IGl0Cj4gPiAKPiA+ID4gKwkJKHR5cGUg PT0gRFJNX0hETUlfT1VUUFVUX0RFRkFVTFRfUkdCKSkgewo+ID4gCj4gPiBEaXR0bywgcGx1cyB3 cm9uZyBpbmRlbnRhdGlvbi4KPiAKPiBHb3QgaXQKPiA+IAo+ID4gPiArCQlEUk1fREVCVUdfS01T KCJDYW4ndCBzdXBwb3J0IFlDQkNSIG91dHB1dFxuIik7Cj4gPiA+ICsJCXJldHVybiB0eXBlOwo+ ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlmICh0eXBlID09IERSTV9IRE1JX09VVFBVVF9ZQ0JD UjQyMCkgewo+ID4gPiArCj4gPiA+ICsJCS8qIFlDQkNSNDIwIFRNRFMgcmF0ZSByZXF1aXJlbWVu dCBpcyBoYWxmIHRoZSBwaXhlbCBjbG9jayAqLwo+ID4gPiArCQljb25maWctPmhkbWlfb3V0cHV0 ID0gRFJNX0hETUlfT1VUUFVUX1lDQkNSNDIwOwo+ID4gPiArCQljb25maWctPnBvcnRfY2xvY2sg Lz0gMjsKPiA+ID4gKwkJKmNsb2NrXzEyYnBjIC89IDI7Cj4gPiA+ICsJCSpjbG9ja184YnBjIC89 IDI7Cj4gPiA+ICsKPiA+ID4gKwl9Cj4gPiAKPiA+IEkgdGhpbmsgd2l0aCB0aGUgaWRlYSBJIGRl c2NyaWJlZCBhYm92ZSwgdGhpcyBjb3VsZCBiZSBkb25lIGluIGluCj4gPiBpbnRlbF9oZG1pX2Nv bXB1dF9jb25maWcoKS4KPiAKPiBNaWdodCBuZWVkIG1vcmUgZGlzY3Vzc2lvbiBvbiBpZGVhIGFi b3ZlLgo+ID4gPiArCj4gPiA+ICsJLyogRW5jb2RlciBpcyBjYXBhYmxlIG9mIHRoaXMgb3V0cHV0 LCBsZXRzIGNvbW1pdCB0byBDUlRDICovCj4gPiA+ICsJY29uZmlnLT5oZG1pX291dHB1dCA9IHR5 cGU7Cj4gPiA+ICsJRFJNX0RFQlVHX0tNUygiSERNSSBvdXRwdXQ6ICVzXG4iLCBkcm1fZ2V0X2hk bWlfb3V0cHV0X25hbWUodHlwZSkpOwo+ID4gPiArCXJldHVybiB0eXBlOwo+ID4gCj4gPiBDb3Vs ZG4ndCB0aGlzIGZ1bmN0aW9uIGp1c3QgcmV0dXJuIHRydWUgb3IgZmFsc2U/IFRoZSB2YWx1ZSBp cyByZXR1cm5lZCBieQo+ID4gZWRpdGluZyBjb25maWctPmhkbWlfb3V0cHV0LiBOb3QgYSBiaWcg ZmFuIG9mIGhhdmluZyBEUk1fSERNSV9PVVRQVVRfSU5WQUxJRCB0bwo+ID4gbWVhbiB0aGF0IHNv bWV0aGluZyBmYWlsZWQuCj4gCj4gU3VyZSwgQ2FuIGRvIHRoYXQsIEl0cyBlYXNpZXIgdG8gcGFz cyB0aGUgdmFsdWUgY29taW5nIGZyb20gbG93ZXIgCj4gZnVuY3Rpb24sIHRoYXRzIHdoeSBjaG9z ZSBjdXJyZW50IHJldHVybiB0eXBlIDotKQo+ID4gQW5kZXIKPiA+IAo+ID4gPiArfQo+ID4gPiAr Cj4gPiA+ICAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gPiAgIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcsCj4gPiA+ICAgCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlKQo+ID4gPiBAQCAtMTM2MSwxMyArMTQzNywxNSBAQCBib29sIGludGVsX2hk bWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ICAg CXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29k ZXItPmJhc2UpOwo+ID4gPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ID4gICAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ ID4gLQlzdHJ1Y3QgZHJtX3NjZGMgKnNjZGMgPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5kaXNw bGF5X2luZm8uaGRtaS5zY2RjOwo+ID4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gPiA+ICsJc3RydWN0IGRybV9zY2RjICpzY2Rj ID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWkuc2NkYzsKPiA+ID4gICAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KPiA+ID4gICAJ CXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ID4gPiAgIAlp bnQgY2xvY2tfOGJwYyA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9j azsKPiA+ID4gICAJaW50IGNsb2NrXzEyYnBjID0gY2xvY2tfOGJwYyAqIDMgLyAyOwo+ID4gPiAg IAlpbnQgZGVzaXJlZF9icHA7Cj4gPiA+ICAgCWJvb2wgZm9yY2VfZHZpID0gaW50ZWxfY29ubl9z dGF0ZS0+Zm9yY2VfYXVkaW8gPT0gSERNSV9BVURJT19PRkZfRFZJOwo+ID4gPiArCWVudW0gZHJt X2hkbWlfb3V0cHV0X3R5cGUgaGRtaV9vdXQgPSBjb25uX3N0YXRlLT5oZG1pX291dHB1dDsKPiA+ ID4gICAKPiA+ID4gICAJcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgPSAhZm9yY2VfZHZpICYm IGludGVsX2hkbWktPmhhc19oZG1pX3Npbms7Cj4gPiA+ICAgCj4gPiA+IEBAIC0xMzkxLDYgKzE0 NjksMTUgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ID4gPiAgIAkJY2xvY2tfMTJicGMgKj0gMjsKPiA+ID4gICAJfQo+ID4g PiAgIAo+ID4gPiArCS8qIENoZWNrIGlmIFlDQkNSIEhETUkgb3V0cHV0IGhhbmRsaW5nIGlzIHJl cXVpcmVkICovCj4gPiA+ICsJaGRtaV9vdXQgPSBpbnRlbF9oZG1pX2NvbXB1dGVfeWNiY3JfY29u ZmlnKGNvbm5fc3RhdGUsCj4gPiA+ICsJCQkJCSAgIHBpcGVfY29uZmlnLCAmY2xvY2tfMTJicGMs Cj4gPiA+ICsJCQkJCSAgICZjbG9ja184YnBjKTsKPiA+ID4gKwlpZiAoaGRtaV9vdXQgPT0gRFJN X0hETUlfT1VUUFVUX0lOVkFMSUQpIHsKPiA+ID4gKwkJRFJNX0VSUk9SKCJDYW4ndCBzdXBwb3J0 IGRlc2lyZWQgSERNSSBvdXRwdXRcbiIpOwo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsJ fQo+ID4gPiArCj4gPiA+ICAgCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSAmJiAhSEFTX0RE SShkZXZfcHJpdikpCj4gPiA+ICAgCQlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1 ZTsKPiA+ID4gICAKPiA+ID4gQEAgLTE0MTAsNyArMTQ5Nyw3IEBAIGJvb2wgaW50ZWxfaGRtaV9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gICAJICov Cj4gPiA+ICAgCWlmIChwaXBlX2NvbmZpZy0+cGlwZV9icHAgPiA4KjMgJiYgcGlwZV9jb25maWct Pmhhc19oZG1pX3NpbmsgJiYgIWZvcmNlX2R2aSAmJgo+ID4gPiAgIAkgICAgaGRtaV9wb3J0X2Ns b2NrX3ZhbGlkKGludGVsX2hkbWksIGNsb2NrXzEyYnBjLCB0cnVlLCBmb3JjZV9kdmkpID09IE1P REVfT0sgJiYKPiA+ID4gLQkgICAgaGRtaV8xMmJwY19wb3NzaWJsZShwaXBlX2NvbmZpZykpIHsK PiA+ID4gKwkgICAgaGRtaV8xMmJwY19wb3NzaWJsZShwaXBlX2NvbmZpZywgaGRtaV9vdXQpKSB7 Cj4gPiA+ICAgCQlEUk1fREVCVUdfS01TKCJwaWNraW5nIGJwYyB0byAxMiBmb3IgSERNSSBvdXRw dXRcbiIpOwo+ID4gPiAgIAkJZGVzaXJlZF9icHAgPSAxMiozOwo+ID4gPiAgIAo+IAo+IApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK