From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH RFC v2 2/2] drm: Add YCBCR_DECODE_CSC and YCBCR_CSC_PREOFFSET properties to drm_plane Date: Fri, 5 May 2017 13:45:22 +0300 Message-ID: <20170505104522.GF12629@intel.com> References: <24ec5f778bf658c11561d36b416523ac2b978f7c.1493881618.git.jsarha@ti.com> <20170504132245.rkcjjiwuz22ajvj3@phenom.ffwll.local> <20170504145145.GZ12629@intel.com> <20170505065817.w4vutbsfyuab232m@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A5FB6E5CA for ; Fri, 5 May 2017 10:45:27 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170505065817.w4vutbsfyuab232m@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: laurent.pinchart@ideasonboard.com, Liviu.Dudau@arm.com, dri-devel@lists.freedesktop.org, tomi.valkeinen@ti.com, Jyri Sarha List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXkgMDUsIDIwMTcgYXQgMDg6NTg6MTdBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIE1heSAwNCwgMjAxNyBhdCAwNTo1MTo0NVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUaHUsIE1heSAwNCwgMjAxNyBhdCAwMzoyMjo0NVBNICsw MjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBUaHUsIE1heSAwNCwgMjAxNyBhdCAx MDoxNDoyNkFNICswMzAwLCBKeXJpIFNhcmhhIHdyb3RlOgo+ID4gPiA+IEFkZCBzdGFuZGFyZCBv cHRpbmFsIHByb3BlcnR5IGJsb2JzIGZvciBZQ2JDciB0byBSR0IgY29udmVyc2lvbiBDU0MKPiA+ ID4gPiBtYXRyaXggYW5kIFlDYkNyIHByZW9mZnNldCB2ZWN0b3IgaW4gRFJNIHBsYW5lcy4gTmV3 IGVudW1zIGFyZSBkZWZpbmVkCj4gPiA+ID4gdG8gWUNCQ1JfRU5DT0RJTkcgcHJvcGVydHkgdG8g YWN0aXZhdGUgdGhlIENTQyBhbmQgcHJlb2Zmc2V0Cj4gPiA+ID4gcHJvcGVydGllcy4gRm9yIHNp bXBsaWNpdHkgdGhlIG5ldyBwcm9wZXJ0aWVzIGFyZSBzdG9yZWQgaW4gdGhlCj4gPiA+ID4gZHJt X3BsYW5lIG9iamVjdCwgYmVjYXVzZSB0aGUgWUNCQ1JfRU5DT0RJTkcgaXMgYWxyZWFkeSB0aGVy ZS4gVGhlCj4gPiA+ID4gYmxvYiBjb250ZW50cyBhcmUgZGVmaW5lZCBpbiB0aGUgdWFwaS9kcm0v ZHJtX21vZGUuaCBoZWFkZXIuCj4gPiA+ID4gCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSnlyaSBT YXJoYSA8anNhcmhhQHRpLmNvbT4KPiA+ID4gCj4gPiA+IE5vdCBzdXJlIHdlIHdhbnQgdG8gbWFr ZSB0aGlzIHl1djJyZ2Igc3BlY2lmaWMsIHBsZW50eSBvZiBwbGFuZXMgaGF2ZQo+ID4gPiBnZW5l cmljIGRlZ2FtbWEvb2Zmc2V0LCBjc2MsIGdhbW1lL29mZnNldCBody4gSSB0aGluayB3aGF0IHdl IHdhbnQgaW5zdGVhZAo+ID4gPiBpcyB0aGUgZ2VuZXJpYyBjc2Mgc3VwcG9ydCwgcGx1cyBhIHlj YmNyMnJnYiBtb2RlIG9mICJieXBhc3MiLgo+ID4gCj4gPiBNeSBpZGVhIGlzIHRvIG5vdCBleHBv c2UgdGhpcy4gQW5kIGluc3RlYWQganVzdCBleHBvc2UgYSBub3JtYWwKPiA+IGN0bSwgYW5kIHRo ZW4ganVzdCByZWZ1c2UgYW55IGNvbWJpbmF0aW9uIG9mIFlDYkNyLT5SR0IvZGVnYW1tYS9jdG0K PiA+IHRoYXQgY2FuJ3QgYmUgZG9uZSBieSB0aGUgaHcuCj4gCj4gQnV0IHRoYXQgbWVhbnMgd2Un ZCBuZWVkIHRvIGhhdmUgYSBiaXQtcGVyZmVjdCBtYXRjaCB3aXRoIGEgY2Fub25pY2FsCj4gY29u dmVyc2lvbiBtYXRyaXggKGV2ZW4gaWYgbWF5YmUgdGhlIGh3IGhhcyBhIHJvdW5kaW5nIGJ1ZyBh bmQgaW1wbGVtZW50cwo+IHNvbWV0aGluZyBzbGlnaHRseSBkaWZmZXJlbnQgdGhhbiB0aGUgc3Rh bmRhcmQpLgoKSSBkb24ndCBzZWUgd2hhdCB0aGlzIGhhcyB0byBkbyB3aXRoIGJpdCBjb3JyZWN0 bmVzcy4gRGlmZmVyZW50IGh3IGlzCmxpa2VseSB0byB1c2UgZGlmZmVyZW50IHByZWNpc2lvbiBm b3IgdGhpcyBzdHVmZiBhbnl3YXksIHNvIEknbSAxMDAlCnN1cmUgd2UnbGwgbm90IGdldCB0aGUg c2FtZSByZXN1bHRzIGZyb20gYWxsIGhhcmR3YXJlLiBBbmQgcmVhbGx5LApnZXR0aW5nIDEwMCUg c2FtZSBvdXRwdXQgZG9lc24ndCBzZWVtIGFsbCB0aGF0IGltcG9ydGFudCBoZXJlCmFueXdheS4K CkFueXdheSwgYWxsIEknbSBzYXlpbmcgaXMgdGhhdCB3ZSBzaG91bGQgZXhwb3NlIGEgc3RhbmRh cmQgcGlwZWxpbmU6CnljYmNyLT5yZ2IgLT4gZGVnYW1tYSAtPiBjdG0gLT4gZ2FtbWEKCkFuZCBl YWNoIGRyaXZlciBjYW4gdGhlbiBleHBvc2Ugd2hhdGV2ZXIgcGFydHMgb2YgdGhhdCB0aGV5IHdp c2guIElmIHlvdQp3YW50IHRvIGV4cG9lIGEgcHJvZ3JhbW1hYmxlIG1hdHJpeCB5b3UgZXhwb3Nl IGl0IGFzIHRoZSBjdG0uIEkgZG9uJ3QKdGhpbmsgaGF2aW5nIGEgcHJvZ3JhbW1hYmxlIG1hdHJp eCBhcyBib3RoIHljYmNyLT5yZ2IgYW5kIGN0bSB3b3VsZApyZWFsbHkgYmVuZWZpdCB1cy4KCj4g VGhhdCBzZWVtcyBhIGJpdCBhbgo+IGF3a3dhcmQgaW50ZXJmYWNlLiBPciBpcyB5b3VyIGlkZWEg dGhhdCBodyB3aXRoIGEgY3RtIHdvdWxkIHNpbXBseSBub3QKPiBleHBvc2UgdGhlIGNvbG9yc3Bh Y2UgZW51bSwgaWYgaXQgZG9lc24ndCBhbHNvIGhhdmUgZml4ZWQtZnVuY3Rpb24gYml0cyBvbgo+ IHRvcCBvZiB0aGUgY3RtPwo+IC1EYW5pZWwKPiAKPiA+IAo+ID4gPiAKPiA+ID4gQW5kIGFzIHVz dWFsLCB0aGlzIG5lZWRzIHNvbWUgdXNlcnNwYWNlIGNvbXBvc2l0b3Igd2hpY2ggYWN0dWFsbHkg dXNlcyBpdAo+ID4gPiAobm90IGp1c3QgYSBkZW1vLCBzaW5jZSB0aGVyZSdzIGEgaHVnZSBkaWZm ZXJlbmNlIGJldHdlZW4gYSBkZW1vIGFuZAo+ID4gPiBzb21ldGhpbmcgdGhhdCBoYXMgdG8gSnVz dCBXb3JrIGxpa2UgYSByZWFsIGNvbXBvc2l0b3IpLgo+ID4gPiAtRGFuaWVsCj4gPiA+IAo+ID4g PiA+IC0tLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDE5 ICsrKysrKysrKysrKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMgfCAgOSArKysrKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMg ICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gPiA+ID4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAgICAgIHwgIDYgKysrKwo+ID4gPiA+ICBpbmNs dWRlL2RybS9kcm1fY29sb3JfbWdtdC5oICAgICAgICB8ICAzICsrCj4gPiA+ID4gIGluY2x1ZGUv ZHJtL2RybV9wbGFuZS5oICAgICAgICAgICAgIHwgIDQgKysrCj4gPiA+ID4gIGluY2x1ZGUvdWFw aS9kcm0vZHJtX21vZGUuaCAgICAgICAgIHwgMTIgKysrKysrKysKPiA+ID4gPiAgNyBmaWxlcyBj aGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiA+ID4gPiAKPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gPiBpbmRleCBiY2VmOTNkLi44N2EyZDU1IDEwMDY0NAo+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiA+ID4gQEAgLTczMyw2ICs3MzMsNyBAQCBp bnQgZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiA+ID4gPiAg CXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ID4g PiA+ICAJaW50IHJldDsKPiA+ID4gPiArCWJvb2wgZHVtbXk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJ aWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9mYl9pZCkgewo+ID4gPiA+ICAJCXN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiID0gZHJtX2ZyYW1lYnVmZmVyX2xvb2t1cChkZXYsIHZhbCk7Cj4g PiA+ID4gQEAgLTc3Nyw2ICs3NzgsMTggQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3Bl cnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ICAJCXN0YXRlLT56cG9zID0gdmFs Owo+ID4gPiA+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+eWNiY3JfZW5jb2Rpbmdf cHJvcGVydHkpIHsKPiA+ID4gPiAgCQlzdGF0ZS0+eWNiY3JfZW5jb2RpbmcgPSB2YWw7Cj4gPiA+ ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT55Y2Jjcl9kZWNvZGVfY3NjX3Byb3Bl cnR5KSB7Cj4gPiA+ID4gKwkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2Jf ZnJvbV9pZChkZXYsCj4gPiA+ID4gKwkJCQkmc3RhdGUtPnljYmNyX2RlY29kZV9jc2MsIHZhbCwK PiA+ID4gPiArCQkJCXNpemVvZihzdHJ1Y3QgZHJtX3ljYmNyX2RlY29kZV9jc2MpLAo+ID4gPiA+ ICsJCQkJJmR1bW15KTsKPiA+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiA+ICsJfSBlbHNlIGlm IChwcm9wZXJ0eSA9PSBwbGFuZS0+eWNiY3JfY3NjX3ByZW9mZnNldF9wcm9wZXJ0eSkgewo+ID4g PiA+ICsJCXJldCA9IGRybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iX2Zyb21faWQoZGV2 LAo+ID4gPiA+ICsJCQkJJnN0YXRlLT55Y2Jjcl9jc2NfcHJlb2Zmc2V0LCB2YWwsCj4gPiA+ID4g KwkJCQlzaXplb2Yoc3RydWN0IGRybV95Y2Jjcl9jc2NfcHJlb2Zmc2V0KSwKPiA+ID4gPiArCQkJ CSZkdW1teSk7Cj4gPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gPiAgCX0gZWxzZSBpZiAocGxh bmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4gPiA+ID4gIAkJcmV0dXJuIHBsYW5l LT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsCj4gPiA+ID4gIAkJCQlw cm9wZXJ0eSwgdmFsKTsKPiA+ID4gPiBAQCAtODM5LDYgKzg1MiwxMiBAQCBpbnQgZHJtX2F0b21p Y19wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+ID4gIAkJ KnZhbCA9IHN0YXRlLT56cG9zOwo+ID4gPiA+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFu ZS0+eWNiY3JfZW5jb2RpbmdfcHJvcGVydHkpIHsKPiA+ID4gPiAgCQkqdmFsID0gc3RhdGUtPnlj YmNyX2VuY29kaW5nOwo+ID4gPiA+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+eWNi Y3JfZGVjb2RlX2NzY19wcm9wZXJ0eSkgewo+ID4gPiA+ICsJCSp2YWwgPSBzdGF0ZS0+eWNiY3Jf ZGVjb2RlX2NzYyA/Cj4gPiA+ID4gKwkJCXN0YXRlLT55Y2Jjcl9kZWNvZGVfY3NjLT5iYXNlLmlk IDogMDsKPiA+ID4gPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnljYmNyX2NzY19w cmVvZmZzZXRfcHJvcGVydHkpIHsKPiA+ID4gPiArCQkqdmFsID0gc3RhdGUtPnljYmNyX2NzY19w cmVvZmZzZXQgPwo+ID4gPiA+ICsJCQlzdGF0ZS0+eWNiY3JfY3NjX3ByZW9mZnNldC0+YmFzZS5p ZCA6IDA7Cj4gPiA+ID4gIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9w ZXJ0eSkgewo+ID4gPiA+ICAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVy dHkocGxhbmUsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiA+ID4gPiAgCX0gZWxzZSB7Cj4gPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+ID4gPiBpbmRleCA4YmU5NzE5Li42 ZWNjMzJmIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK PiA+ID4gPiBAQCAtMzIzOCw2ICszMjM4LDEyIEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+ID4gIHsK PiA+ID4gPiAgCW1lbWNweShzdGF0ZSwgcGxhbmUtPnN0YXRlLCBzaXplb2YoKnN0YXRlKSk7Cj4g PiA+ID4gIAo+ID4gPiA+ICsJaWYgKHN0YXRlLT55Y2Jjcl9kZWNvZGVfY3NjKQo+ID4gPiA+ICsJ CWRybV9wcm9wZXJ0eV9ibG9iX2dldChzdGF0ZS0+eWNiY3JfZGVjb2RlX2NzYyk7Cj4gPiA+ID4g Kwo+ID4gPiA+ICsJaWYgKHN0YXRlLT55Y2Jjcl9jc2NfcHJlb2Zmc2V0KQo+ID4gPiA+ICsJCWRy bV9wcm9wZXJ0eV9ibG9iX2dldChzdGF0ZS0+eWNiY3JfY3NjX3ByZW9mZnNldCk7Cj4gPiA+ID4g Kwo+ID4gPiA+ICAJaWYgKHN0YXRlLT5mYikKPiA+ID4gPiAgCQlkcm1fZnJhbWVidWZmZXJfZ2V0 KHN0YXRlLT5mYik7Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC0zMjc4LDYgKzMyODQsOSBAQCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICoKPiA+ID4gPiAgICovCj4gPiA+ID4gIHZvaWQgX19kcm1fYXRv bWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0 YXRlKQo+ID4gPiA+ICB7Cj4gPiA+ID4gKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoc3RhdGUtPnlj YmNyX2RlY29kZV9jc2MpOwo+ID4gPiA+ICsJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0YXRlLT55 Y2Jjcl9jc2NfcHJlb2Zmc2V0KTsKPiA+ID4gPiArCj4gPiA+ID4gIAlpZiAoc3RhdGUtPmZiKQo+ ID4gPiA+ICAJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoc3RhdGUtPmZiKTsKPiA+ID4gPiAgCj4gPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMKPiA+ID4gPiBpbmRleCAyNDViMTRhLi4zMTllZDQ2 IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jCj4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMKPiA+ID4gPiBAQCAt OTUsOCArOTUsMjMgQEAKPiA+ID4gPiAgICoKPiA+ID4gPiAgICogIllDQkNSX0VOQ09ESU5HIgo+ ID4gPiA+ICAgKiAJT3B0aW9uYWwgcGxhbmUgZW51bSBwcm9wZXJ0eSB0byBjb250cm9sIFlDYkNy IHRvIFJHQgo+ID4gPiA+IC0gKiAJY29udmVyc2lvbi4gVGhlIGRyaXZlciBwcm92aWRlcyBhIHN1 YnNldCBvZiBzdGFuZGFyZAo+ID4gPiA+IC0gKgllbnVtIHZhbHVlcyBzdXBwb3J0ZWQgYnkgdGhl IERSTSBwbGFuZS4KPiA+ID4gPiArICogCWNvbnZlcnNpb24uIFRoZSBkcml2ZXIgcHJvdmlkZXMg YSBzdWJzZXQgb2Ygc3RhbmRhcmQgZW51bQo+ID4gPiA+ICsgKiAJdmFsdWVzIHN1cHBvcnRlZCBi eSB0aGUgRFJNIHBsYW5lLiBUaGUgcG9zc2libGUgZW5jb2RpbmdzCj4gPiA+ID4gKyAqIAlpbmNs dWRlIHRoZSBzdGFuZGFyZCBjb252ZXJzaW9ucyBhbmQgYSBwb3NzaWJpbGl0eSB0byBzZWxlY3Qg YQo+ID4gPiA+ICsgKiAJY3VzdG9tIGNvbnZlcnNpb24gbWF0cml4IGFuZCBwcmVvZmZzZXQgdmVj dG9yLgo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiAiWUNCQ1JfREVDT0RFX0NTQyIKPiA+ID4gPiAr ICoJT3B0aW9uYWwgcGxhbmUgcHJvcGVydHkgYmxvYiB0byBzZXQgWUNiQ3IgdG8gUkdCIGNvbnZl cnNpb24KPiA+ID4gPiArICoJbWF0cml4LiBUaGUgYmxvYiBjb250YWlucyBzdHJ1Y3QgZHJtX3lj YmNyX3RvX3JnYl9jc2Mgd2hpY2ggaXMKPiA+ID4gPiArICoJZGVmaW5lZCBpbiB1YXBpL2RybS9k cm1fbW9kZS5oLiBXaGV0aGVyIHRoaXMgcHJvcGVydHkgaXMKPiA+ID4gPiArICoJdXNlZCBkZXBl bmRzIG9uIHRoZSB2YWx1ZSBvZiBZQ0JDUl9FTkNPRElORyBwcm9wZXJ0eS4KPiA+ID4gPiArICoK PiA+ID4gPiArICogIllDQkNSX0NTQ19QUkVPRkZTRVQiCj4gPiA+ID4gKyAqCU9wdGlvbmFsIHBs YW5lIHByb3BlcnR5IGJsb2IgdG8gY29uZmlndXJlIFlDYkNyIG9mZnNldCBiZWZvcmUKPiA+ID4g PiArICoJWUNiQ3IgdG8gUkdCIENTQyBpcyBhcHBsaWVkLiBUaGUgYmxvYiBjb250YWlucyBzdHJ1 Y3QKPiA+ID4gPiArICoJZHJtX3ljYmNyX2NzY19wcmVvZmZzZXQgd2hpY2ggaXMgZGVmaW5lZCBp bgo+ID4gPiA+ICsgKgl1YXBpL2RybS9kcm1fbW9kZS5oLiBXaGV0aGVyIHRoaXMgcHJvcGVydHkg aXMgdXNlZCBkZXBlbmRzIG9uCj4gPiA+ID4gKyAqCXRoZSB2YWx1ZSBvZiBZQ0JDUl9FTkNPRElO RyBwcm9wZXJ0eS4KPiA+ID4gPiAgICovCj4gPiA+ID4gIAo+ID4gPiA+ICAvKioKPiA+ID4gPiBA QCAtMzUxLDYgKzM2Niw5IEBAIGludCBkcm1fbW9kZV9nYW1tYV9nZXRfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiA+ID4gPiAgCVtEUk1fUExBTkVfWUNCQ1JfQlQ2MDFfTElNSVRFRF9S QU5HRV0gPSAiQlQuNjAxIGxpbWl0ZWQgcmFuZ2UiLAo+ID4gPiA+ICAJW0RSTV9QTEFORV9ZQ0JD Ul9CVDcwOV9MSU1JVEVEX1JBTkdFXSA9ICJCVC43MDkgbGltaXRlZCByYW5nZSIsCj4gPiA+ID4g IAlbRFJNX1BMQU5FX1lDQkNSX0JUMjAyMF9MSU1JVEVEX1JBTkdFXSA9ICJCVC4yMDIwIGxpbWl0 ZWQgcmFuZ2UiLAo+ID4gPiA+ICsJW0RSTV9QTEFORV9ZQ0JDUl9DU0NfRlVMTF9SQU5HRV0gPSAi WUNiQ3IgQ1NDIGZ1bGwgcmFuZ2UiLAo+ID4gPiA+ICsJW0RSTV9QTEFORV9ZQ0JDUl9DU0NfTElN SVRFRF9SQU5HRV0gPSAiWUNiQ3IgQ1NDIGxpbWl0ZWQgcmFuZ2UiLAo+ID4gPiA+ICsJW0RSTV9Q TEFORV9ZQ0JDUl9DU0NfUFJFT0ZGU0VUXSA9ICJZQ2JDciBDU0MgYW5kIHByZW9mZnNldCB2ZWN0 b3IiLAo+ID4gPiA+ICB9Owo+ID4gPiA+ICAKPiA+ID4gPiAgLyoqCj4gPiA+ID4gQEAgLTM2Myw2 ICszODEsOCBAQCBpbnQgZHJtX21vZGVfZ2FtbWFfZ2V0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gPiA+ID4gICAqIGRybV9wbGFuZSBvYmplY3QuIFRoZSBzdXBwb3J0ZWQgZW5jb2Rp bmdzIHNob3VsZCBiZSBwcm92aWRlZCBpbiB0aGUKPiA+ID4gPiAgICogZW51bV9saXN0IHBhcmFt ZXRlci4gVGhlIGVudW1fbGlzdCBwYXJhbWV0ZXIgc2hvdWxkIG5vdCBjb250YWluIHRoZQo+ID4g PiA+ICAgKiBlbnVtIG5hbWVzLCBiZWNhdXNlIHRoZSBzdGFuZGFyZCBuYW1lcyBhcmUgYWRkZWQg YnkgdGhpcyBmdW5jdGlvbi4KPiA+ID4gPiArICogWUNCQ1JfREVDT0RFX0NTQyBhbmQgWUNCQ1Jf Q1NDX1BSRU9GRlNFVCBwcm9wZXJ0aWVzIGFyZSBjcmVhdGVkCj4gPiA+ID4gKyAqIGJhc2VkIG9u IHRoZSBwcm92aWRlZCBlbnVtX2xpc3QuCj4gPiA+ID4gICAqLwo+ID4gPiA+ICBpbnQgZHJtX3Bs YW5lX2NyZWF0ZV95Y2Jjcl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4g PiA+ICAJCQlzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0ICplbnVtX2xpc3QsCj4gPiA+ID4gQEAg LTM3MSw2ICszOTEsOCBAQCBpbnQgZHJtX3BsYW5lX2NyZWF0ZV95Y2Jjcl9wcm9wZXJ0aWVzKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ICB7Cj4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiA+ID4gPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnBy b3A7Cj4gPiA+ID4gKwlib29sIHljYmNyX2RlY29kZV9jc2NfY3JlYXRlID0gZmFsc2U7Cj4gPiA+ ID4gKwlib29sIHljYmNyX2NzY19wcmVvZmZzZXRfY3JlYXRlID0gZmFsc2U7Cj4gPiA+ID4gIAl1 bnNpZ25lZCBpbnQgaTsKPiA+ID4gPiAgCj4gPiA+ID4gIAlpZiAoV0FSTl9PTihwbGFuZS0+eWNi Y3JfZW5jb2RpbmdfcHJvcGVydHkgIT0gTlVMTCkpCj4gPiA+ID4gQEAgLTM4MCw2ICs0MDIsMTUg QEAgaW50IGRybV9wbGFuZV9jcmVhdGVfeWNiY3JfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiA+ID4gPiAgCQllbnVtIGRybV9wbGFuZV95Y2Jjcl9lbmNvZGluZyBlbmNvZGlu ZyA9IGVudW1fbGlzdFtpXS50eXBlOwo+ID4gPiA+ICAKPiA+ID4gPiAgCQllbnVtX2xpc3RbaV0u bmFtZSA9IHljYmNyX2VuY29kaW5nX25hbWVbZW5jb2RpbmddOwo+ID4gPiA+ICsKPiA+ID4gPiAr CQlpZiAoZW5jb2RpbmcgPT0gRFJNX1BMQU5FX1lDQkNSX0NTQ19GVUxMX1JBTkdFIHx8Cj4gPiA+ ID4gKwkJICAgIGVuY29kaW5nID09IERSTV9QTEFORV9ZQ0JDUl9DU0NfTElNSVRFRF9SQU5HRSkK PiA+ID4gPiArCQkJeWNiY3JfZGVjb2RlX2NzY19jcmVhdGUgPSB0cnVlOwo+ID4gPiA+ICsKPiA+ ID4gPiArCQlpZiAoZW5jb2RpbmcgPT0gRFJNX1BMQU5FX1lDQkNSX0NTQ19QUkVPRkZTRVQpIHsK PiA+ID4gPiArCQkJeWNiY3JfZGVjb2RlX2NzY19jcmVhdGUgPSB0cnVlOwo+ID4gPiA+ICsJCQl5 Y2Jjcl9jc2NfcHJlb2Zmc2V0X2NyZWF0ZSA9IHRydWU7Cj4gPiA+ID4gKwkJfQo+ID4gPiA+ICAJ fQo+ID4gPiA+ICAKPiA+ID4gPiAgCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2 LCBEUk1fTU9ERV9QUk9QX0FUT01JQywKPiA+ID4gPiBAQCAtMzkwLDUgKzQyMSwyNSBAQCBpbnQg ZHJtX3BsYW5lX2NyZWF0ZV95Y2Jjcl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ID4gPiA+ICAJcGxhbmUtPnljYmNyX2VuY29kaW5nX3Byb3BlcnR5ID0gcHJvcDsKPiA+ID4g PiAgCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgZGVmYXVs dF9tb2RlKTsKPiA+ID4gPiAgCj4gPiA+ID4gKwlpZiAoeWNiY3JfZGVjb2RlX2NzY19jcmVhdGUp IHsKPiA+ID4gPiArCQlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkZXYsIERSTV9NT0RFX1BS T1BfQVRPTUlDIHwKPiA+ID4gPiArCQkJCQkgICBEUk1fTU9ERV9QUk9QX0JMT0IsCj4gPiA+ID4g KwkJCQkJICAgIllDQkNSX0RFQ09ERV9DU0MiLCAwKTsKPiA+ID4gPiArCQlpZiAoIXByb3ApCj4g PiA+ID4gKwkJCXJldHVybiAtRU5PTUVNOwo+ID4gPiA+ICsJCXBsYW5lLT55Y2Jjcl9kZWNvZGVf Y3NjX3Byb3BlcnR5ID0gcHJvcDsKPiA+ID4gPiArCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgmcGxhbmUtPmJhc2UsIHByb3AsIDApOwo+ID4gPiA+ICsJfQo+ID4gPiA+ICsKPiA+ID4gPiAr CWlmICh5Y2Jjcl9jc2NfcHJlb2Zmc2V0X2NyZWF0ZSkgewo+ID4gPiA+ICsJCXByb3AgPSBkcm1f cHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMgfAo+ID4gPiA+ICsJCQkJ CSAgIERSTV9NT0RFX1BST1BfQkxPQiwKPiA+ID4gPiArCQkJCQkgICAiWUNCQ1JfQ1NDX1BSRU9G RlNFVCIsIDApOwo+ID4gPiA+ICsJCWlmICghcHJvcCkKPiA+ID4gPiArCQkJcmV0dXJuIC1FTk9N RU07Cj4gPiA+ID4gKwkJcGxhbmUtPnljYmNyX2NzY19wcmVvZmZzZXRfcHJvcGVydHkgPSBwcm9w Owo+ID4gPiA+ICsJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJv cCwgMCk7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4g IH0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCj4gPiA+ID4gaW5kZXggMDA3YzRkNy4uZDEwYzk0MiAx MDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiA+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiA+ID4gPiBAQCAtMjQ3LDYgKzI0Nywx MiBAQCB2b2lkIGRybV9wbGFuZV9jbGVhbnVwKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ID4g PiA+ICAJaWYgKHBsYW5lLT55Y2Jjcl9lbmNvZGluZ19wcm9wZXJ0eSkKPiA+ID4gPiAgCQlkcm1f cHJvcGVydHlfZGVzdHJveShkZXYsIHBsYW5lLT55Y2Jjcl9lbmNvZGluZ19wcm9wZXJ0eSk7Cj4g PiA+ID4gIAo+ID4gPiA+ICsJaWYgKHBsYW5lLT55Y2Jjcl9kZWNvZGVfY3NjX3Byb3BlcnR5KQo+ ID4gPiA+ICsJCWRybV9wcm9wZXJ0eV9kZXN0cm95KGRldiwgcGxhbmUtPnljYmNyX2RlY29kZV9j c2NfcHJvcGVydHkpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChwbGFuZS0+eWNiY3JfY3NjX3By ZW9mZnNldF9wcm9wZXJ0eSkKPiA+ID4gPiArCQlkcm1fcHJvcGVydHlfZGVzdHJveShkZXYsIHBs YW5lLT55Y2Jjcl9jc2NfcHJlb2Zmc2V0X3Byb3BlcnR5KTsKPiA+ID4gPiArCj4gPiA+ID4gIAlt ZW1zZXQocGxhbmUsIDAsIHNpemVvZigqcGxhbmUpKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICBFWFBP UlRfU1lNQk9MKGRybV9wbGFuZV9jbGVhbnVwKTsKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2NvbG9yX21nbXQuaCBiL2luY2x1ZGUvZHJtL2RybV9jb2xvcl9tZ210LmgKPiA+ ID4gPiBpbmRleCAxNzcxMzk0Li5iZGZkMzdlIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2luY2x1ZGUv ZHJtL2RybV9jb2xvcl9tZ210LmgKPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY29sb3Jf bWdtdC5oCj4gPiA+ID4gQEAgLTQ0LDYgKzQ0LDkgQEAgZW51bSBkcm1fcGxhbmVfeWNiY3JfZW5j b2Rpbmcgewo+ID4gPiA+ICAJRFJNX1BMQU5FX1lDQkNSX0JUNjAxX0xJTUlURURfUkFOR0UsCj4g PiA+ID4gIAlEUk1fUExBTkVfWUNCQ1JfQlQ3MDlfTElNSVRFRF9SQU5HRSwKPiA+ID4gPiAgCURS TV9QTEFORV9ZQ0JDUl9CVDIwMjBfTElNSVRFRF9SQU5HRSwKPiA+ID4gPiArCURSTV9QTEFORV9Z Q0JDUl9DU0NfRlVMTF9SQU5HRSwKPiA+ID4gPiArCURSTV9QTEFORV9ZQ0JDUl9DU0NfTElNSVRF RF9SQU5HRSwKPiA+ID4gPiArCURSTV9QTEFORV9ZQ0JDUl9DU0NfUFJFT0ZGU0VULAo+ID4gPiA+ ICB9Owo+ID4gPiA+ICAKPiA+ID4gPiAgaW50IGRybV9wbGFuZV9jcmVhdGVfeWNiY3JfcHJvcGVy dGllcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ID4gPiA+IGluZGV4 IDRkMDUxMGYuLjYzYjFlMGMgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3Bs YW5lLmgKPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ID4gPiA+IEBAIC0x MTUsNiArMTE1LDggQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7Cj4gPiA+ID4gIAo+ID4gPiA+ ICAJLyogWUNiQ3IgdG8gUkdCIGNvbnZlcnNpb24gKi8KPiA+ID4gPiAgCWVudW0gZHJtX3BsYW5l X3ljYmNyX2VuY29kaW5nIHljYmNyX2VuY29kaW5nOwo+ID4gPiA+ICsJc3RydWN0IGRybV9wcm9w ZXJ0eV9ibG9iICp5Y2Jjcl9kZWNvZGVfY3NjOwo+ID4gPiA+ICsJc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICp5Y2Jjcl9jc2NfcHJlb2Zmc2V0Owo+ID4gPiA+ICAKPiA+ID4gPiAgCS8qIENsaXBw ZWQgY29vcmRpbmF0ZXMgKi8KPiA+ID4gPiAgCXN0cnVjdCBkcm1fcmVjdCBzcmMsIGRzdDsKPiA+ ID4gPiBAQCAtNTI5LDYgKzUzMSw4IEBAIHN0cnVjdCBkcm1fcGxhbmUgewo+ID4gPiA+ICAJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqcm90YXRpb25fcHJvcGVydHk7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJ c3RydWN0IGRybV9wcm9wZXJ0eSAqeWNiY3JfZW5jb2RpbmdfcHJvcGVydHk7Cj4gPiA+ID4gKwlz dHJ1Y3QgZHJtX3Byb3BlcnR5ICp5Y2Jjcl9kZWNvZGVfY3NjX3Byb3BlcnR5Owo+ID4gPiA+ICsJ c3RydWN0IGRybV9wcm9wZXJ0eSAqeWNiY3JfY3NjX3ByZW9mZnNldF9wcm9wZXJ0eTsKPiA+ID4g PiAgfTsKPiA+ID4gPiAgCj4gPiA+ID4gICNkZWZpbmUgb2JqX3RvX3BsYW5lKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgZHJtX3BsYW5lLCBiYXNlKQo+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvZHJtL2RybV9tb2RlLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiA+ ID4gPiBpbmRleCA4YzY3ZmMwLi44Yzk1NjhkIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2luY2x1ZGUv dWFwaS9kcm0vZHJtX21vZGUuaAo+ID4gPiA+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21v ZGUuaAo+ID4gPiA+IEBAIC01NDMsNiArNTQzLDE4IEBAIHN0cnVjdCBkcm1fY29sb3JfbHV0IHsK PiA+ID4gPiAgCV9fdTE2IHJlc2VydmVkOwo+ID4gPiA+ICB9Owo+ID4gPiA+ICAKPiA+ID4gPiAr c3RydWN0IGRybV95Y2Jjcl9kZWNvZGVfY3NjIHsKPiA+ID4gPiArCS8qIENvbnZlcnNpb24gbWF0 cml4IGluIDItY29tcGxlbWVudCBzMzIuMzIgZm9ybWF0LiAqLwo+ID4gPiA+ICsJX19zNjQgcnks IHJjYiwgcmNyOwo+ID4gPiA+ICsJX19zNjQgZ3ksIGdjYiwgZ2NyOwo+ID4gPiA+ICsJX19zNjQg YnksIGJjYiwgYmNyOwo+ID4gPiA+ICt9Owo+ID4gPiA+ICsKPiA+ID4gPiArc3RydWN0IGRybV95 Y2Jjcl9jc2NfcHJlb2Zmc2V0IHsKPiA+ID4gPiArCS8qIE9mZnNldCB2ZWN0b3IgaW4gMi1jb21w bGVtZW50IHMuMzIgZm9ybWF0LiAqLwo+ID4gPiA+ICsJX19zMzIgeSwgY2IsIGNyOwo+ID4gPiA+ ICt9Owo+ID4gPiA+ICsKPiA+ID4gPiAgI2RlZmluZSBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQg MHgwMQo+ID4gPiA+ICAjZGVmaW5lIERSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQyAweDAyCj4gPiA+ ID4gICNkZWZpbmUgRFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9BQlNPTFVURSAweDQKPiA+ID4g PiAtLSAKPiA+ID4gPiAxLjkuMQo+ID4gPiA+IAo+ID4gPiAKPiA+ID4gLS0gCj4gPiA+IERhbmll bCBWZXR0ZXIKPiA+ID4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiA+ IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gPiAKPiA+IC0tIAo+ID4gVmlsbGUgU3lyasOkbMOkCj4g PiBJbnRlbCBPVEMKPiAKPiAtLSAKPiBEYW5pZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApWaWxsZSBTeXJq w6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=