From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mihail Atanassov Subject: Re: [PATCH] drm/komeda: Adds output-color format/depth support Date: Fri, 20 Sep 2019 10:03:38 +0000 Message-ID: <2379631.WB1HUilIrr@e123338-lin> References: <20190920094329.17513-1-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on0618.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0e::618]) by gabe.freedesktop.org (Postfix) with ESMTPS id B285E6E828 for ; Fri, 20 Sep 2019 10:03:55 +0000 (UTC) In-Reply-To: <20190920094329.17513-1-lowry.li@arm.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Lowry Li (Arm Technology China)" Cc: nd , "airlied@linux.ie" , Liviu Dudau , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , "james qian wang (Arm Technology China)" , "seanpaul@chromium.org" , Ayan Halder List-Id: dri-devel@lists.freedesktop.org SGkgTG93cnksCgpPbiBGcmlkYXksIDIwIFNlcHRlbWJlciAyMDE5IDEwOjQzOjQ3IEJTVCBMb3dy eSBMaSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIHdyb3RlOgo+IEZyb206ICJMb3dyeSBMaSAoQXJt IFRlY2hub2xvZ3kgQ2hpbmEpIiA8TG93cnkuTGlAYXJtLmNvbT4KPiAKPiBTZXRzIGNvbG9yX2Rl cHRoIGFjY29yZGluZyB0byBjb25uZWN0b3ItPmJwYy4KPiBBZGRzIGEgbmV3IG9wdGlvbmFsIERU IGF0dHJpYnV0ZSAiY29sb3ItZm9ybWF0IiB0byByZXByZXNlbnQgYQoKSSBkb24ndCBzZWUgdGhl IGh1bmsgd2l0aCB0aGUgdXBkYXRlZCBkb2MgZm9yIHRoZSBEVCBiaW5kaW5nLgoKPiBwcmVmZXJy ZWQgY29sb3IgZm9ybWF0cyBmb3IgYSBzcGVjaWZpYyBwaXBlbGluZSwgYW5kIHRoZSBzZWxlY3Qg b3JkZXIKPiBpczoKPiAJWUNSQ0I0MjAgPiBZQ1JDQjQyMiA+IFlDUkNCNDQ0ID4gUkdCNDQ0Cj4g VGhlIGNvbG9yLWZvcm1hdCBjYW4gYmUgYW55b25lIG9mIHRoZXNlIDQgZm9ybWF0LCBvbmUgY29s b3ItZm9ybWF0IG5vdAo+IG9ubHkgcmVwcmVzZW50IG9uZSBmb3JtYXQsIGJ1dCBhbHNvIGluY2x1 ZGUgdGhlIGxvd2VyIGZvcm1hdHMsIGxpa2UKPiAKPiBjb2xvci1mb3JtYXQgICAgICAgICBwcmVm ZXJyZWRfY29sb3JfZm9ybWF0cwo+IFlDUkNCNDIwICAgICAgICBZQ1JDQjQyMCA+IFlDUkNCNDIy ID4gWUNSQ0I0NDQgPiBSR0I0NDQKPiBZQ1JDQjQyMiAgICAgICAgWUNSQ0I0MjIgPiBZQ1JDQjQ0 NCA+IFJHQjQ0NAo+IFlDUkNCNDQ0ICAgICAgICBZQ1JDQjQ0NCA+IFJHQjQ0NAo+IFJHQjQ0NCAg ICAgICAgICBSR0I0NDQKPiAKPiBUaGVuIHRoZSBmaW5hbCBjb2xvcl9mb3JtYXQgaXMgY2FsY3Vs YXRlZCBieSAzIHN0ZXBzOgo+IDEuIGNhbGN1bGF0ZSBIVyBhdmFpbGFibGUgZm9ybWF0cy4KPiAg IGF2YWlsX2Zvcm1hdHMgPSBjb25uZWN0b3JfY29sb3JfZm9ybWF0cyAmIGltcHJvYy0+Y29sb3Jf Zm9ybWF0czsKPiAyLiBmaWx0ZXIgb3V0IHVuLXByZWZlcnJlZCBmb3JtYXQuCj4gICBhdmFpbF9m b3JtYXRzICY9IHByZWZlcnJlZF9jb2xvcl9mb3JtYXRzOwo+IDMuIHNlbGVjdCB0aGUgZmluYWwg Zm9ybWF0IGFjY29yZGluZyB0byB0aGUgcHJlZmVycmVkIG9yZGVyLgo+ICAgY29sb3JfZm9ybWF0 ID0gQklUKF9fZmxzKGF2YWxfZm9ybWF0cykpOwo+IAo+IENoYW5nZXMgc2luY2UgdjE6Cj4gUmVi YXNlZCB0byB0aGUgZHJtLW1pc2MtbmV4dCBicmFuY2guCj4gCj4gU2lnbmVkLW9mZi1ieTogTG93 cnkgTGkgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8bG93cnkubGlAYXJtLmNvbT4KPiAtLS0KPiAg Li4uL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jICAgIHwgMTUgKysrKysr KystCj4gIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jICB8IDI3 ICsrKysrKysrKysrKysrKysKPiAgLi4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9kZXYuYyAgIHwgMzIgKysrKysrKysrKysrKysrKysrLQo+ICAuLi4vZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2ttcy5oICAgfCAgMiArKwo+ICAuLi4vZHJtL2FybS9kaXNwbGF5 L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaCAgfCAgMyArKwo+ICAuLi4vZGlzcGxheS9rb21lZGEv a29tZWRhX3BpcGVsaW5lX3N0YXRlLmMgICAgfCAzMSArKysrKysrKysrKysrKysrKysKPiAgLi4u L2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfd2JfY29ubmVjdG9yLmMgIHwgIDUgKysrCj4gIDcg ZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9jb21w b25lbnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9jb21w b25lbnQuYwo+IGluZGV4IGMzZDI5YzBiMDUxYi4uN2IzNzRhM2I5MTFlIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9jb21wb25lbnQuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcxL2Q3MV9jb21wb25l bnQuYwo+IEBAIC05NDQsMTMgKzk0NCwyNiBAQCBzdGF0aWMgdm9pZCBkNzFfaW1wcm9jX3VwZGF0 ZShzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYywKPiAgewo+ICAJc3RydWN0IGtvbWVkYV9pbXBy b2Nfc3RhdGUgKnN0ID0gdG9faW1wcm9jX3N0KHN0YXRlKTsKPiAgCXUzMiBfX2lvbWVtICpyZWcg PSBjLT5yZWc7Cj4gLQl1MzIgaW5kZXg7Cj4gKwl1MzIgaW5kZXgsIG1hc2sgPSAwLCBjdHJsID0g MDsKPiAgCj4gIAlmb3JfZWFjaF9jaGFuZ2VkX2lucHV0KHN0YXRlLCBpbmRleCkKPiAgCQltYWxp ZHBfd3JpdGUzMihyZWcsIEJMS19JTlBVVF9JRDAgKyBpbmRleCAqIDQsCj4gIAkJCSAgICAgICB0 b19kNzFfaW5wdXRfaWQoc3RhdGUsIGluZGV4KSk7Cj4gIAo+ICAJbWFsaWRwX3dyaXRlMzIocmVn LCBCTEtfU0laRSwgSFZfU0laRShzdC0+aHNpemUsIHN0LT52c2l6ZSkpOwo+ICsJbWFsaWRwX3dy aXRlMzIocmVnLCBJUFNfREVQVEgsIHN0LT5jb2xvcl9kZXB0aCk7Cj4gKwo+ICsJbWFzayB8PSBJ UFNfQ1RSTF9ZVVYgfCBJUFNfQ1RSTF9DSEQ0MjIgfCBJUFNfQ1RSTF9DSEQ0MjA7Cj4gKwo+ICsJ LyogY29uZmlnIGNvbG9yIGZvcm1hdCAqLwo+ICsJaWYgKHN0LT5jb2xvcl9mb3JtYXQgPT0gRFJN X0NPTE9SX0ZPUk1BVF9ZQ1JDQjQyMCkKPiArCQljdHJsIHw9IElQU19DVFJMX1lVViB8IElQU19D VFJMX0NIRDQyMiB8IElQU19DVFJMX0NIRDQyMDsKPiArCWVsc2UgaWYgKHN0LT5jb2xvcl9mb3Jt YXQgPT0gRFJNX0NPTE9SX0ZPUk1BVF9ZQ1JDQjQyMikKPiArCQljdHJsIHw9IElQU19DVFJMX1lV ViB8IElQU19DVFJMX0NIRDQyMjsKPiArCWVsc2UgaWYgKHN0LT5jb2xvcl9mb3JtYXQgPT0gRFJN X0NPTE9SX0ZPUk1BVF9ZQ1JDQjQ0NCkKPiArCQljdHJsIHw9IElQU19DVFJMX1lVVjsKPiArCj4g KwltYWxpZHBfd3JpdGUzMl9tYXNrKHJlZywgQkxLX0NPTlRST0wsIG1hc2ssIGN0cmwpOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgdm9pZCBkNzFfaW1wcm9jX2R1bXAoc3RydWN0IGtvbWVkYV9jb21wb25l bnQgKmMsIHN0cnVjdCBzZXFfZmlsZSAqc2YpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYwo+IGluZGV4IDYyNGQyNTdkYTIwZi4uMzhkNWNi MjBlOTA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX2NydGMuYwo+IEBAIC0xOCw2ICsxOCwzMyBAQAo+ICAjaW5jbHVkZSAia29tZWRhX2Rl di5oIgo+ICAjaW5jbHVkZSAia29tZWRhX2ttcy5oIgo+ICAKPiArdm9pZCBrb21lZGFfY3J0Y19n ZXRfY29sb3JfY29uZmlnKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdCwKPiArCQkJCSAg dTMyICpjb2xvcl9kZXB0aHMsIHUzMiAqY29sb3JfZm9ybWF0cykKPiArewo+ICsJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm47Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dDsKPiArCXUzMiBjb25uX2NvbG9yX2Zvcm1hdHMgPSB+MHU7Cj4gKwlpbnQgaSwgbWluX2JwYyA9 IDMxLCBjb25uX2JwYyA9IDA7Cj4gKwo+ICsJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0 ZShjcnRjX3N0LT5zdGF0ZSwgY29ubiwgY29ubl9zdCwgaSkgewo+ICsJCWlmIChjb25uX3N0LT5j cnRjICE9IGNydGNfc3QtPmNydGMpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQljb25uX2JwYyA9 IGNvbm4tPmRpc3BsYXlfaW5mby5icGMgPyBjb25uLT5kaXNwbGF5X2luZm8uYnBjIDogODsKPiAr CQljb25uX2NvbG9yX2Zvcm1hdHMgJj0gY29ubi0+ZGlzcGxheV9pbmZvLmNvbG9yX2Zvcm1hdHM7 Cj4gKwo+ICsJCWlmIChjb25uX2JwYyA8IG1pbl9icGMpCj4gKwkJCW1pbl9icGMgPSBjb25uX2Jw YzsKPiArCX0KPiArCj4gKwkvKiBjb25uZWN0b3IgZG9lc24ndCBjb25maWcgYW55IGNvbG9yX2Zv cm1hdCwgdXNlIFJHQjQ0NCBhcyBkZWZhdWx0ICovCj4gKwlpZiAoY29ubl9jb2xvcl9mb3JtYXRz ID09IDApCj4gKwkJY29ubl9jb2xvcl9mb3JtYXRzID0gRFJNX0NPTE9SX0ZPUk1BVF9SR0I0NDQ7 Cj4gKwo+ICsJKmNvbG9yX2RlcHRocyA9IEdFTk1BU0soY29ubl9icGMsIDApOwo+ICsJKmNvbG9y X2Zvcm1hdHMgPSBjb25uX2NvbG9yX2Zvcm1hdHM7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGtv bWVkYV9jcnRjX3VwZGF0ZV9jbG9ja19yYXRpbyhzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtj cnRjX3N0KQo+ICB7Cj4gIAl1NjQgcHhsY2xrLCBhY2xrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9kZXYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2Rldi5jCj4gaW5kZXggOWNiY2Q1NmU1NGNkLi5i ZWU0NjMzY2RkOWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfZGV2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29t ZWRhL2tvbWVkYV9kZXYuYwo+IEBAIC0xMTMsMTIgKzExMywzNCBAQCBzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZV9ncm91cCBrb21lZGFfc3lzZnNfYXR0cl9ncm91cCA9IHsKPiAgCS5hdHRycyA9IGtv bWVkYV9zeXNmc19lbnRyaWVzLAo+ICB9Owo+ICAKPiArc3RhdGljIGludCB0b19jb2xvcl9mb3Jt YXQoY29uc3QgY2hhciAqc3RyKQo+ICt7Cj4gKwlpbnQgZm9ybWF0Owo+ICsKPiArCWlmICghc3Ry bmNtcChzdHIsICJSR0I0NDQiLCA3KSkgewo+ICsJCWZvcm1hdCA9IERSTV9DT0xPUl9GT1JNQVRf UkdCNDQ0Owo+ICsJfSBlbHNlIGlmICghc3RybmNtcChzdHIsICJZQ1JDQjQ0NCIsIDkpKSB7Cj4g KwkJZm9ybWF0ID0gRFJNX0NPTE9SX0ZPUk1BVF9ZQ1JDQjQ0NDsKPiArCX0gZWxzZSBpZiAoIXN0 cm5jbXAoc3RyLCAiWUNSQ0I0MjIiLCA5KSkgewo+ICsJCWZvcm1hdCA9IERSTV9DT0xPUl9GT1JN QVRfWUNSQ0I0MjI7Cj4gKwl9IGVsc2UgaWYgKCFzdHJuY21wKHN0ciwgIllDUkNCNDIwIiwgOSkp IHsKPiArCQlmb3JtYXQgPSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIwOwo+ICsJfSBlbHNlIHsK PiArCQlEUk1fV0FSTigiaW52YWxpZCBjb2xvcl9mb3JtYXQ6ICVzLCBwbGVhc2Ugc2V0IGl0IHRv IFJHQjQ0NCwgWUNSQ0I0NDQsIFlDUkNCNDIyIG9yIFlDUkNCNDIwXG4iLAo+ICsJCQkgc3RyKTsK PiArCQlmb3JtYXQgPSBEUk1fQ09MT1JfRk9STUFUX1JHQjQ0NDsKPiArCX0KPiArCj4gKwlyZXR1 cm4gZm9ybWF0Owo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGtvbWVkYV9wYXJzZV9waXBlX2R0KHN0 cnVjdCBrb21lZGFfZGV2ICptZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+ICB7Cj4gIAlz dHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlOwo+ICAJc3RydWN0IGNsayAqY2xrOwo+ICAJdTMy IHBpcGVfaWQ7Cj4gLQlpbnQgcmV0ID0gMDsKPiArCWludCByZXQgPSAwLCBjb2xvcl9mb3JtYXQ7 Cj4gKwljb25zdCBjaGFyICpzdHI7Cj4gIAo+ICAJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIo bnAsICJyZWciLCAmcGlwZV9pZCk7Cj4gIAlpZiAocmV0ICE9IDAgfHwgcGlwZV9pZCA+PSBtZGV2 LT5uX3BpcGVsaW5lcykKPiBAQCAtMTMzLDYgKzE1NSwxNCBAQCBzdGF0aWMgaW50IGtvbWVkYV9w YXJzZV9waXBlX2R0KHN0cnVjdCBrb21lZGFfZGV2ICptZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUg Km5wKQo+ICAJfQo+ICAJcGlwZS0+cHhsY2xrID0gY2xrOwo+ICAKPiArCS8qIGZldGNoIERUIGNv bmZpZ3VyZWQgY29sb3ItZm9ybWF0LCBpZiBub3Qgc2V0LCB1c2UgUkdCNDQ0ICovCj4gKwlpZiAo IW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAiY29sb3ItZm9ybWF0IiwgJnN0cikpCj4gKwkJ Y29sb3JfZm9ybWF0ID0gdG9fY29sb3JfZm9ybWF0KHN0cik7Cj4gKwllbHNlCj4gKwkJY29sb3Jf Zm9ybWF0ID0gRFJNX0NPTE9SX0ZPUk1BVF9SR0I0NDQ7Cj4gKwo+ICsJcGlwZS0+aW1wcm9jLT5w cmVmZXJyZWRfY29sb3JfZm9ybWF0cyA9IChjb2xvcl9mb3JtYXQgPDwgMSkgLSAxOwo+ICsKPiAg CS8qIGVudW0gcG9ydHMgKi8KPiAgCXBpcGUtPm9mX291dHB1dF9saW5rc1swXSA9Cj4gIAkJb2Zf Z3JhcGhfZ2V0X3JlbW90ZV9ub2RlKG5wLCBLT01FREFfT0ZfUE9SVF9PVVRQVVQsIDApOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMu aCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oCj4gaW5k ZXggNDVjNDk4ZTE1ZTdhLi40NTZmM2M0MzU3MTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaAo+IEBAIC0xNjYsNiArMTY2LDggQEAg c3RhdGljIGlubGluZSBib29sIGhhc19mbGlwX2godTMyIHJvdCkKPiAgCQlyZXR1cm4gISEocm90 YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpOwo+ICB9Cj4gIAo+ICt2b2lkIGtvbWVkYV9jcnRj X2dldF9jb2xvcl9jb25maWcoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0LAo+ICsJCQkJ ICB1MzIgKmNvbG9yX2RlcHRocywgdTMyICpjb2xvcl9mb3JtYXRzKTsKPiAgdW5zaWduZWQgbG9u ZyBrb21lZGFfY3J0Y19nZXRfYWNsayhzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0 KTsKPiAgCj4gIGludCBrb21lZGFfa21zX3NldHVwX2NydGNzKHN0cnVjdCBrb21lZGFfa21zX2Rl diAqa21zLCBzdHJ1Y3Qga29tZWRhX2RldiAqbWRldik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmggYi9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oCj4gaW5kZXggYTdhODRl NjY1NDlkLi45MTBkMjc5YWU0OGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h cm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgKPiBAQCAtMzE1LDYgKzMxNSw4IEBA IHN0cnVjdCBrb21lZGFfc3BsaXR0ZXJfc3RhdGUgewo+ICBzdHJ1Y3Qga29tZWRhX2ltcHJvYyB7 Cj4gIAlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCBiYXNlOwo+ICAJdTMyIHN1cHBvcnRlZF9jb2xv cl9mb3JtYXRzOyAgLyogRFJNX1JHQi9ZVVY0NDQvWVVWNDIwKi8KPiArCS8qIHRoZSBwcmVmZXJy ZWQgb3JkZXIgaXMgZnJvbSBNU0IgdG8gTFNCIFlVVjQyMCAtLT4gUkdCNDQ0ICovCj4gKwl1MzIg cHJlZmVycmVkX2NvbG9yX2Zvcm1hdHM7Cj4gIAl1MzIgc3VwcG9ydGVkX2NvbG9yX2RlcHRoczsg LyogQklUKDgpIHwgQklUKDEwKSovCj4gIAl1OCBzdXBwb3J0c19kZWdhbW1hIDogMTsKPiAgCXU4 IHN1cHBvcnRzX2NzYyA6IDE7Cj4gQEAgLTMyMyw2ICszMjUsNyBAQCBzdHJ1Y3Qga29tZWRhX2lt cHJvYyB7Cj4gIAo+ICBzdHJ1Y3Qga29tZWRhX2ltcHJvY19zdGF0ZSB7Cj4gIAlzdHJ1Y3Qga29t ZWRhX2NvbXBvbmVudF9zdGF0ZSBiYXNlOwo+ICsJdTggY29sb3JfZm9ybWF0LCBjb2xvcl9kZXB0 aDsKPiAgCXUxNiBoc2l6ZSwgdnNpemU7Cj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0ZS5jIGIvZHJp dmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYwo+ IGluZGV4IGVhMjZiYzljMmQwMC4uNTUyNjczMWY1YTMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0 ZS5jCj4gQEAgLTc0Myw2ICs3NDMsNyBAQCBrb21lZGFfaW1wcm9jX3ZhbGlkYXRlKHN0cnVjdCBr b21lZGFfaW1wcm9jICppbXByb2MsCj4gIAkJICAgICAgIHN0cnVjdCBrb21lZGFfZGF0YV9mbG93 X2NmZyAqZGZsb3cpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGtjcnRjX3N0LT5i YXNlLmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3QgPSAma2NydGNfc3Qt PmJhc2U7Cj4gIAlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudF9zdGF0ZSAqY19zdDsKPiAgCXN0cnVj dCBrb21lZGFfaW1wcm9jX3N0YXRlICpzdDsKPiAgCj4gQEAgLTc1Niw2ICs3NTcsMzYgQEAga29t ZWRhX2ltcHJvY192YWxpZGF0ZShzdHJ1Y3Qga29tZWRhX2ltcHJvYyAqaW1wcm9jLAo+ICAJc3Qt PmhzaXplID0gZGZsb3ctPmluX3c7Cj4gIAlzdC0+dnNpemUgPSBkZmxvdy0+aW5faDsKPiAgCj4g KwlpZiAoZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19zdCkpIHsKPiArCQl1MzIg b3V0cHV0X2RlcHRocywgb3V0cHV0X2Zvcm1hdHM7Cj4gKwkJdTMyIGF2YWlsX2RlcHRocywgYXZh aWxfZm9ybWF0czsKPiArCj4gKwkJa29tZWRhX2NydGNfZ2V0X2NvbG9yX2NvbmZpZyhjcnRjX3N0 LCAmb3V0cHV0X2RlcHRocywKPiArCQkJCQkgICAgICZvdXRwdXRfZm9ybWF0cyk7Cj4gKwo+ICsJ CWF2YWlsX2RlcHRocyA9IG91dHB1dF9kZXB0aHMgJiBpbXByb2MtPnN1cHBvcnRlZF9jb2xvcl9k ZXB0aHM7Cj4gKwkJaWYgKGF2YWlsX2RlcHRocyA9PSAwKSB7Cj4gKwkJCURSTV9ERUJVR19BVE9N SUMoIk5vIGF2YWlsYWJsZSBjb2xvciBkZXB0aHMsIGNvbm4gZGVwdGhzOiAweCV4ICYgZGlzcGxh eTogMHgleFxuIiwKPiArCQkJCQkgb3V0cHV0X2RlcHRocywKPiArCQkJCQkgaW1wcm9jLT5zdXBw b3J0ZWRfY29sb3JfZGVwdGhzKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsKPiAr CQlhdmFpbF9mb3JtYXRzID0gb3V0cHV0X2Zvcm1hdHMgJgo+ICsJCQkJaW1wcm9jLT5zdXBwb3J0 ZWRfY29sb3JfZm9ybWF0cyAmCj4gKwkJCQlpbXByb2MtPnByZWZlcnJlZF9jb2xvcl9mb3JtYXRz Owo+ICsJCWlmIChhdmFpbF9mb3JtYXRzID09IDApIHsKPiArCQkJRFJNX0RFQlVHX0FUT01JQygi Tm8gYXZhaWxhYmxlIGNvbG9yX2Zvcm1hdHMsIGNvbm4gZm9ybWF0cyAweCV4ICYgZGlzcGxheTog MHgleCAmIHByZWZlcnJlZDogMHgleFxuIiwKPiArCQkJCQkgb3V0cHV0X2Zvcm1hdHMsCj4gKwkJ CQkJIGltcHJvYy0+c3VwcG9ydGVkX2NvbG9yX2Zvcm1hdHMsCj4gKwkJCQkJIGltcHJvYy0+cHJl ZmVycmVkX2NvbG9yX2Zvcm1hdHMpOwo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwo+ ICsJCXN0LT5jb2xvcl9kZXB0aCA9IF9fZmxzKGF2YWlsX2RlcHRocyk7Cj4gKwkJc3QtPmNvbG9y X2Zvcm1hdCA9IEJJVChfX2ZscyhhdmFpbF9mb3JtYXRzKSk7Cj4gKwl9Cj4gKwo+ICAJa29tZWRh X2NvbXBvbmVudF9hZGRfaW5wdXQoJnN0LT5iYXNlLCAmZGZsb3ctPmlucHV0LCAwKTsKPiAgCWtv bWVkYV9jb21wb25lbnRfc2V0X291dHB1dCgmZGZsb3ctPmlucHV0LCAmaW1wcm9jLT5iYXNlLCAw KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX3diX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfd2JfY29ubmVjdG9yLmMKPiBpbmRleCA2MTdlMWY3Yjg0NzIuLjQ5ZTU0NjliYTQ4 ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV93Yl9jb25uZWN0b3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX3diX2Nvbm5lY3Rvci5jCj4gQEAgLTE0Miw2ICsxNDIsNyBAQCBzdGF0aWMgaW50 IGtvbWVkYV93Yl9jb25uZWN0b3JfYWRkKHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLAo+ICAJ c3RydWN0IGtvbWVkYV9kZXYgKm1kZXYgPSBrbXMtPmJhc2UuZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1 Y3Qga29tZWRhX3diX2Nvbm5lY3RvciAqa3diX2Nvbm47Cj4gIAlzdHJ1Y3QgZHJtX3dyaXRlYmFj a19jb25uZWN0b3IgKndiX2Nvbm47Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbzsK PiAgCXUzMiAqZm9ybWF0cywgbl9mb3JtYXRzID0gMDsKPiAgCWludCBlcnI7Cj4gIAo+IEBAIC0x NzEsNiArMTcyLDEwIEBAIHN0YXRpYyBpbnQga29tZWRhX3diX2Nvbm5lY3Rvcl9hZGQoc3RydWN0 IGtvbWVkYV9rbXNfZGV2ICprbXMsCj4gIAo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZ3 Yl9jb25uLT5iYXNlLCAma29tZWRhX3diX2Nvbm5faGVscGVyX2Z1bmNzKTsKPiAgCj4gKwlpbmZv ID0gJmt3Yl9jb25uLT5iYXNlLmJhc2UuZGlzcGxheV9pbmZvOwo+ICsJaW5mby0+YnBjID0gX19m bHMoa2NydGMtPm1hc3Rlci0+aW1wcm9jLT5zdXBwb3J0ZWRfY29sb3JfZGVwdGhzKTsKPiArCWlu Zm8tPmNvbG9yX2Zvcm1hdHMgPSBrY3J0Yy0+bWFzdGVyLT5pbXByb2MtPnN1cHBvcnRlZF9jb2xv cl9mb3JtYXRzOwo+ICsKPiAgCWtjcnRjLT53Yl9jb25uID0ga3diX2Nvbm47Cj4gIAo+ICAJcmV0 dXJuIDA7Cj4gCgoKLS0gCk1paGFpbAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=