From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/4] drm: add generic zpos property Date: Thu, 12 May 2016 14:51:55 +0300 Message-ID: <20160512115155.GJ4329@intel.com> References: <1463048902-9388-1-git-send-email-benjamin.gaignard@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1463048902-9388-1-git-send-email-benjamin.gaignard@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Benjamin Gaignard Cc: Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, Laurent Pinchart , Bartlomiej Zolnierkiewicz , Seung-Woo Kim , dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Andrzej Hajda , Tobias Jakobi , fabien.dessenne@st.com, vincent.abriou@st.com, Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org T24gVGh1LCBNYXkgMTIsIDIwMTYgYXQgMTI6Mjg6MTlQTSArMDIwMCwgQmVuamFtaW4gR2FpZ25h cmQgd3JvdGU6Cj4gRnJvbTogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcu Y29tPgo+IAo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBnZW5lcmljIHBsYW5lJ3MgenBv cyBwcm9wZXJ0eSBwcm9wZXJ0eSB3aXRoCj4gd2VsbC1kZWZpbmVkIHNlbWFudGljczoKPiAtIGFk ZGVkIHpwb3MgcHJvcGVydGllcyB0byBwbGFuZSBhbmQgcGxhbmUgc3RhdGUgc3RydWN0dXJlcwo+ IC0gYWRkZWQgaGVscGVycyBmb3Igbm9ybWFsaXppbmcgenBvcyBwcm9wZXJ0aWVzIG9mIGdpdmVu IHNldCBvZiBwbGFuZXMKPiAtIHdlbGwgZGVmaW5lZCBzZW1hbnRpY3M6IHBsYW5lcyBhcmUgc29y dGVkIGJ5IHpwb3MgdmFsdWVzIGFuZCB0aGVuIHBsYW5lCj4gICBpZCB2YWx1ZSBpZiB6cG9zIGVx dWFscwo+IAo+IE5vcm1hbGl6ZWQgenBvcyB2YWx1ZXMgYXJlIGNhbGN1bGF0ZWQgYXV0b21hdGlj YWxseSB3aGVuIGdlbmVyaWMKPiBtdXR0YWJsZSB6cG9zIHByb3BlcnR5IGhhcyBiZWVuIGluaXRp YWxpemVkLiBEcml2ZXJzIGNhbiBzaW1wbHkgdXNlCj4gcGxhbmVfc3RhdGUtPm5vcm1hbGl6ZWRf enBvcyBpbiB0aGVpciBhdG9taWNfY2hlY2sgYW5kL29yIHBsYW5lX3VwZGF0ZQo+IGNhbGxiYWNr cyB3aXRob3V0IGFueSBhZGRpdGlvbmFsIGNhbGxzIHRvIERSTSBjb3JlLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IE1hcmVrIFN6eXByb3dza2kgPG0uc3p5cHJvd3NraUBzYW1zdW5nLmNvbT4KPiAKPiBD b21wYXJlIHRvIE1hcmVrJ3Mgb3JpZ2luYWwgcGF0Y2ggenBvcyBwcm9wZXJ0eSBpcyBub3cgc3Bl Y2lmaWMgdG8gZWFjaAo+IHBsYW5lIGFuZCBubyBtb3JlIHRvIHRoZSBjb3JlLgo+IE5vcm1hbGl6 ZSBmdW5jdGlvbiB0YWtlIGNhcmUgb2YgdGhlIHJhbmdlIG9mIHBlciBwbGFuZSBkZWZpbmVkIHJh bmdlCj4gYmVmb3JlIHNldCBub3JtYWxpemVkX3pwb3MuCj4gCj4gU2lnbmVkLW9mZi1ieTogQmVu amFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQGxpbmFyby5vcmc+Cj4gCj4gQ2M6IElu a2kgRGFlIDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVs QGZmd2xsLmNoPgo+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiBDYzogSm9vbnlvdW5nIFNoaW0gPGp5MDkyMi5zaGltQHNhbXN1bmcuY29tPgo+IENj OiBTZXVuZy1Xb28gS2ltIDxzdzAzMTIua2ltQHNhbXN1bmcuY29tPgo+IENjOiBBbmRyemVqIEhh amRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+IENjOiBLcnp5c3p0b2YgS296bG93c2tpIDxrLmtv emxvd3NraUBzYW1zdW5nLmNvbT4KPiBDYzogQmFydGxvbWllaiBab2xuaWVya2lld2ljeiA8Yi56 b2xuaWVya2llQHNhbXN1bmcuY29tPgo+IENjOiBUb2JpYXMgSmFrb2JpIDx0amFrb2JpQG1hdGgu dW5pLWJpZWxlZmVsZC5kZT4KPiBDYzogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvQHBhZG92YW4u b3JnPgo+IENjOiB2aW5jZW50LmFicmlvdUBzdC5jb20KPiBDYzogZmFiaWVuLmRlc3Nlbm5lQHN0 LmNvbQo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2Fy ZC5jb20+Cj4gLS0tCj4gIERvY3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1wbCAgICAgIHwgIDEw ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgIHwgICAyICstCj4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwgICA0ICsKPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgIDYgKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Js ZW5kLmMgICAgICAgICB8IDIyOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmggfCAgIDMgKwo+ICBpbmNsdWRl L2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICB8ICAyOCArKysrKwo+ICA3IGZpbGVzIGNoYW5n ZWQsIDI4MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRh dGlvbi9Eb2NCb29rL2dwdS50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsCj4g aW5kZXggOWRkNDhmNy4uMGRmNmFiYiAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jv b2svZ3B1LnRtcGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKPiBAQCAt MjE1MSw2ICsyMTUxLDE2IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCQl0aGUgdW5kZXJseWluZyBoYXJkd2FyZSkuPC90ZD4KPiAgCTwvdHI+Cj4gIAk8 dHI+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID4gInpwb3MiIDwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0 b3AiID5SQU5HRTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5NaW49IGRyaXZlciBkZXBlbmRl bnQsIE1heD0gZHJpdmVyIGRlcGVuZGVudDwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5QbGFu ZTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5QbGFuZSdzICd6JyBwb3NpdGlvbiBkdXJpbmcg YmxlbmRpbmcgb3BlcmF0aW9uICgwIGZvciBiYWNrZ3JvdW5kLCBoaWdoZXN0IGZvciBmcm9udG1v c3QpLgo+ICsJCUlmIHR3byBwbGFuZXMgYXNzaWduZWQgdG8gc2FtZSBDUlRDIGhhdmUgZXF1YWwg enBvcyB2YWx1ZXMsIHRoZSBwbGFuZSB3aXRoIGhpZ2hlciBwbGFuZQo+ICsJCWlkIGlzIHRyZWF0 ZWQgYXMgY2xvc2VyIHRvIGZyb250LiBDYW4gYmUgSU1NVVRBQkxFIGlmIGRyaXZlciBkb2Vzbid0 IHN1cHBvcnQgY2hhbmdpbmcKPiArCQlwbGFuZXMnIG9yZGVyLiBFeGFjdCB2YWx1ZSByYW5nZSBp cyBkcml2ZXIgZGVwZW5kZW50LjwvdGQ+Cj4gKwk8L3RyPgo+ICsJPHRyPgo+ICAJPHRkIHJvd3Nw YW49IjIwIiB2YWxpZ249InRvcCIgPmk5MTU8L3RkPgo+ICAJPHRkIHJvd3NwYW49IjIiIHZhbGln bj0idG9wIiA+R2VuZXJpYzwvdGQ+Cj4gIAk8dGQgdmFsaWduPSJ0b3AiID4iQnJvYWRjYXN0IFJH QiI8L3RkPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vTWFrZWZpbGUKPiBpbmRleCAyYmQzZTVhLi5kZjg4MjUzIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmls ZQo+IEBAIC0yLDcgKzIsNyBAQAo+ICAjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2 ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKPiAgIyBEaXJlY3QgUmVu ZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4K PiAgCj4gLWRybS15ICAgICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMubyBkcm1fY2FjaGUubyBc Cj4gK2RybS15ICAgICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMubyBkcm1fYmxlbmQubyBkcm1f Y2FjaGUubyBcCj4gIAkJZHJtX2NvbnRleHQubyBkcm1fZG1hLm8gXAo+ICAJCWRybV9mb3BzLm8g ZHJtX2dlbS5vIGRybV9pb2N0bC5vIGRybV9pcnEubyBcCj4gIAkJZHJtX2xvY2subyBkcm1fbWVt b3J5Lm8gZHJtX2Rydi5vIGRybV92bS5vIFwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBpbmRleCA4NmU4 OWRiLi5iZDQ1N2NhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAgLTcwMCw2ICs3MDAsOCBA QCBpbnQgZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAkJc3RhdGUtPnNyY19oID0gdmFsOwo+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBj b25maWctPnJvdGF0aW9uX3Byb3BlcnR5KSB7Cj4gIAkJc3RhdGUtPnJvdGF0aW9uID0gdmFsOwo+ ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+enBvc19wcm9wZXJ0eSkgewo+ICsJCXN0 YXRlLT56cG9zID0gdmFsOwo+ICAJfSBlbHNlIGlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRf cHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5 KHBsYW5lLCBzdGF0ZSwKPiAgCQkJCXByb3BlcnR5LCB2YWwpOwo+IEBAIC03NTYsNiArNzU4LDgg QEAgZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gIAkJKnZhbCA9IHN0YXRlLT5zcmNfaDsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+ICAJCSp2YWwgPSBzdGF0ZS0+cm90YXRpb247Cj4g Kwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4gKwkJKnZh bCA9IHN0YXRlLT56cG9zOwo+ICAJfSBlbHNlIGlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRf cHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5 KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gIAl9IGVsc2Ugewo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggOTk3ZmQyMS4uZjEwNjUyZiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTMyLDYgKzMyLDggQEAKPiAgI2luY2x1ZGUg PGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KPiAg Cj4gKyNpbmNsdWRlICJkcm1fY3J0Y19pbnRlcm5hbC5oIgo+ICsKPiAgLyoqCj4gICAqIERPQzog b3ZlcnZpZXcKPiAgICoKPiBAQCAtNTg3LDYgKzU4OSwxMCBAQCBkcm1fYXRvbWljX2hlbHBlcl9j aGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlOwo+ICAJaW50IGksIHJldCA9IDA7Cj4gIAo+ICsJcmV0ID0gZHJt X2F0b21pY19oZWxwZXJfbm9ybWFsaXplX3pwb3MoZGV2LCBzdGF0ZSk7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiByZXQ7Cj4gKwo+ICAJZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBs YW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ICAJCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVy X2Z1bmNzICpmdW5jczsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxl bmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMC4uZWVmNTliYgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2JsZW5kLmMKPiBAQCAtMCwwICsxLDIyOSBAQAo+ICsvKgo+ICsgKiBDb3B5 cmlnaHQgKEMpIDIwMTYgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby5MdGQKPiArICogQXV0aG9yczoK PiArICoJTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPgo+ICsgKgo+ ICsgKiBEUk0gY29yZSBwbGFuZSBibGVuZGluZyByZWxhdGVkIGZ1bmN0aW9ucwo+ICsgKgo+ICsg KiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmlidXRlLCBhbmQgc2VsbCB0 aGlzIHNvZnR3YXJlIGFuZCBpdHMKPiArICogZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2Ug aXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKPiArICogdGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQgYm90aCB0 aGF0IGNvcHlyaWdodAo+ICsgKiBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBw ZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kCj4gKyAqIHRoYXQgdGhlIG5hbWUg b2YgdGhlIGNvcHlyaWdodCBob2xkZXJzIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yCj4g KyAqIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUg d2l0aG91dCBzcGVjaWZpYywKPiArICogd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgVGhlIGNv cHlyaWdodCBob2xkZXJzIG1ha2Ugbm8gcmVwcmVzZW50YXRpb25zCj4gKyAqIGFib3V0IHRoZSBz dWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0IGlzIHByb3Zp ZGVkICJhcwo+ICsgKiBpcyIgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCj4g KyAqCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUyBESVNDTEFJTSBBTEwgV0FSUkFOVElFUyBX SVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAo+ICsgKiBJTkNMVURJTkcgQUxMIElNUExJRUQg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MsIElOIE5PCj4gKyAqIEVW RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFM LCBJTkRJUkVDVCBPUgo+ICsgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMg V0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwKPiArICogREFUQSBPUiBQUk9G SVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhF Ugo+ICsgKiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFCj4gKyAqIE9GIFRISVMgU09GVFdBUkUuCj4gKyAq Lwo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5o Pgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+ICsjaW5jbHVkZSA8bGludXgvc29ydC5oPgo+ ICsKPiArI2luY2x1ZGUgImRybV9pbnRlcm5hbC5oIgo+ICsKPiArLyoqCj4gKyAqIGRybV9wbGFu ZV9jcmVhdGVfenBvc19wcm9wZXJ0eSAtIGNyZWF0ZSBtdXRhYmxlIHpwb3MgcHJvcGVydHkKPiAr ICogQHBsYW5lOiBkcm0gcGxhbmUKPiArICogQG1pbjogbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBv ZiB6cG9zIHByb3BlcnR5Cj4gKyAqIEBtYXg6IG1heGltYWwgcG9zc2libGUgdmFsdWUgb2YgenBv cyBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGdlbmVyaWMg bXV0YWJsZSB6cG9zIHByb3BlcnR5IGFuZCBlbmFibGVzIHN1cHBvcnQKPiArICogZm9yIGl0IGlu IGRybSBjb3JlLiBEcml2ZXJzIGNhbiB0aGVuIGF0dGFjaCB0aGlzIHByb3BlcnR5IHRvIHBsYW5l cyB0byBlbmFibGUKPiArICogc3VwcG9ydCBmb3IgY29uZmlndXJhYmxlIHBsYW5lcyBhcnJhbmdl bWVudCBkdXJpbmcgYmxlbmRpbmcgb3BlcmF0aW9uLgo+ICsgKiBPbmNlIG11dGFibGUgenBvcyBw cm9wZXJ0eSBoYXMgYmVlbiBlbmFibGVkLCB0aGUgRFJNIGNvcmUgd2lsbCBhdXRvbWF0aWNhbGx5 Cj4gKyAqIGNhbGN1bGF0ZSBkcm1fcGxhbmVfc3RhdGUtPm5vcm1hbGl6ZWRfenBvcyB2YWx1ZXMu IFVzdWFsbHkgbWluIHNob3VsZCBiZSBzZXQKPiArICogdG8gMCBhbmQgbWF4IHRvIG1heGltYWwg bnVtYmVyIG9mIHBsYW5lcyBmb3IgZ2l2ZW4gY3J0YyAtIDEuCj4gKyAqCj4gKyAqIElmIHpwb3Mg b2Ygc29tZSBwbGFuZXMgY2Fubm90IGJlIGNoYW5nZWQgKGxpa2UgZml4ZWQgYmFja2dyb3VuZCBv cgo+ICsgKiBjdXJzb3IvdG9wbW9zdCBwbGFuZXMpLCBkcml2ZXIgc2hvdWxkIGFkanVzdCBtaW4v bWF4IHZhbHVlcyBhbmQgYXNzaWduIHRob3NlCj4gKyAqIHBsYW5lcyBpbW11dGFibGUgenBvcyBw cm9wZXJ0eSB3aXRoIGxvd2VyIG9yIGhpZ2hlciB2YWx1ZXMgKGZvciBtb3JlCj4gKyAqIGluZm9y bWF0aW9uLCBzZWUgZHJtX21vZGVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KCkgZnVu Y3Rpb24pLiBJbiBzdWNoCj4gKyAqIGNhc2UgZHJpdmVyIHNob3VsZCBhbHNvIGFzc2lnbiBwcm9w ZXIgaW5pdGlhbCB6cG9zIHZhbHVlcyBmb3IgYWxsIHBsYW5lcyBpbgo+ICsgKiBpdHMgcGxhbmVf cmVzZXQoKSBjYWxsYmFjaywgc28gdGhlIHBsYW5lcyB3aWxsIGJlIGFsd2F5cyBzb3J0ZWQgcHJv cGVybHkuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRp dmUgZXJybm8gb24gZmFpbHVyZS4KPiArICovCj4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX3pwb3Nf cHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkgICB1bnNpZ25lZCBpbnQg bWluLCB1bnNpZ25lZCBpbnQgbWF4KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w Owo+ICsKPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKHBsYW5lLT5kZXYsIDAs ICJ6cG9zIiwgbWluLCBtYXgpOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgbWlu KTsKPiArCj4gKwlwbGFuZS0+enBvc19wcm9wZXJ0eSA9IHByb3A7Cj4gKwlyZXR1cm4gMDsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eSk7Cj4gKwo+ ICsvKioKPiArICogZHJtX3BsYW5lX2NyZWF0ZV96cG9zX2ltbXV0YWJsZV9wcm9wZXJ0eSAtIGNy ZWF0ZSBpbW11dHRhYmxlIHpwb3MgcHJvcGVydHkKPiArICogQHBsYW5lOiBkcm0gcGxhbmUKPiAr ICogQG1pbjogbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBvZiB6cG9zIHByb3BlcnR5Cj4gKyAqIEBt YXg6IG1heGltYWwgcG9zc2libGUgdmFsdWUgb2YgenBvcyBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBU aGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGdlbmVyaWMgaW1tdXRhYmxlIHpwb3MgcHJvcGVydHkg YW5kIGVuYWJsZXMKPiArICogc3VwcG9ydCBmb3IgaXQgaW4gZHJtIGNvcmUuIFVzaW5nIHRoaXMg cHJvcGVydHkgZHJpdmVyIGxldHMgdXNlcnNwYWNlCj4gKyAqIHRvIGdldCB0aGUgYXJyYW5nZW1l bnQgb2YgdGhlIHBsYW5lcyBmb3IgYmxlbmRpbmcgb3BlcmF0aW9uIGFuZCBub3RpZmllcwo+ICsg KiBpdCB0aGF0IHRoZSBoYXJkd2FyZSAob3IgZHJpdmVyKSBkb2Vzbid0IHN1cHBvcnQgY2hhbmdp bmcgb2YgdGhlIHBsYW5lcycKPiArICogb3JkZXIuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAq IFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KPiArICovCj4gK2lu dCBkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICsJCQkJCSAgICAgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1h eCkKPiArewo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCj4gKwlwcm9wID0gZHJt X3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShwbGFuZS0+ZGV2LCBEUk1fTU9ERV9QUk9QX0lNTVVUQUJM RSwKPiArCQkJCQkgInpwb3MiLCBtaW4sIG1heCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJu IC1FTk9NRU07Cj4gKwo+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNl LCBwcm9wLCBtaW4pOwo+ICsKPiArCXBsYW5lLT56cG9zX3Byb3BlcnR5ID0gcHJvcDsKPiArCXJl dHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2NyZWF0ZV96cG9zX2ltbXV0 YWJsZV9wcm9wZXJ0eSk7Cj4gKwo+ICtzdGF0aWMgaW50IGRybV9hdG9taWNfc3RhdGVfenBvc19j bXAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKPiArewo+ICsJY29uc3Qgc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc2EgPSAqKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKiopYTsKPiArCWNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnNiID0gKihzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICoqKWI7Cj4gKwo+ICsJaWYgKHNhLT56cG9zICE9IHNiLT56cG9zKQo+ICsJCXJldHVybiBzYS0+ enBvcyAtIHNiLT56cG9zOwo+ICsJZWxzZQo+ICsJCXJldHVybiBzYS0+cGxhbmUtPmJhc2UuaWQg LSBzYi0+cGxhbmUtPmJhc2UuaWQ7Cj4gK30KClN0aWxsIG5vdCByZWFsbHkgY29udmluY2VkIHRo aXMgbm9ybWFsaXphdGlvbiBpcyBhIGdvb2QgaWRlYSB3aGVuIHdlCmhhdmUgYXRvbWljLiBJdCBt YWRlIHNlbnNlIGJlZm9yZSBhdG9taWMgc2luY2Ugb3RoZXJ3aXNlIHlvdSBtaWdodCBub3QgYmUK YWJsZSB0byBzd2FwIHRoZSB6cG9zIG9mIHR3byBwbGFuZXMgd2l0aG91dCBzaHV0dGluZyBvbmUg b2YgdGhlbSBkb3duLApidXQgaXQgbWFrZXMgaW50ZXJwcmV0aW5nIHRoZSB6cG9zIHByb3AgdmFs dWVzIG1vcmUgY29uZnVzaW5nLiBBbmQgd2l0aAphdG9taWMgd2UgZG9uJ3QgYWN0dWFsbHkgbmVl ZCBpdCBBRkFJQ1MuIE9yIGRvIHdlIGhhdmUgYW4gYWN0dWFsIHVzZSBjYXNlCmZvciB0aGlzIGJl aGF2aW91cj8KCj4gKwo+ICsvKioKPiArICogZHJtX2F0b21pY19oZWxwZXJfY3J0Y19ub3JtYWxp emVfenBvcyAtIGNhbGN1bGF0ZSBub3JtYWxpemVkIHpwb3MgdmFsdWVzCj4gKyAqIEBjcnRjOiBj cnRjIHdpdGggcGxhbmVzLCB3aGljaCBoYXZlIHRvIGJlIGNvbnNpZGVyZWQgZm9yIG5vcm1hbGl6 YXRpb24KPiArICogQGNydGNfc3RhdGU6IG5ldyBhdG9taWMgc3RhdGUgdG8gYXBwbHkKPiArICoK PiArICogVGhpcyBmdW5jdGlvbiBjaGVja3MgbmV3IHN0YXRlcyBvZiBhbGwgcGxhbmVzIGFzc2ln bmVkIHRvIGdpdmVuIGNydGMgYW5kCj4gKyAqIGNhbGN1bGF0ZXMgbm9ybWFsaXplZCB6cG9zIHZh bHVlIGZvciB0aGVtLiBQbGFuZXMgYXJlIGNvbXBhcmVkIGZpcnN0IGJ5IHRoZWlyCj4gKyAqIHpw b3MgdmFsdWVzLCB0aGVuIGJ5IHBsYW5lIGlkIChpZiB6cG9zIGVxdWFscykuIFBsYW5lIHdpdGgg bG93ZXN0IHpwb3MgdmFsdWUKPiArICogaXMgYXQgdGhlIGJvdHRvbS4gVGhlIHBsYW5lX3N0YXRl LT5ub3JtYWxpemVkX3pwb3MgaXMgdGhlbiBmaWxsZWQgd2l0aCB1bmlxdWUKPiArICogdmFsdWVz IGZyb20gMCB0byBudW1iZXIgb2YgYWN0aXZlIHBsYW5lcyBpbiBjcnRjIG1pbnVzIG9uZS4KPiAr ICoKPiArICogUkVUVVJOUwo+ICsgKiBaZXJvIGZvciBzdWNjZXNzIG9yIC1lcnJubwo+ICsgKi8K PiAraW50IGRybV9hdG9taWNfaGVscGVyX2NydGNfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICsJCQkJCSAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5zdGF0 ZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlpbnQgdG90YWxf cGxhbmVzID0gZGV2LT5tb2RlX2NvbmZpZy5udW1fdG90YWxfcGxhbmU7Cj4gKwlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICoqc3RhdGVzOwo+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gKwlp bnQgaSwgenBvcywgbiA9IDA7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlEUk1fREVCVUdfQVRP TUlDKCJbQ1JUQzolZDolc10gY2FsY3VsYXRpbmcgbm9ybWFsaXplZCB6cG9zIHZhbHVlc1xuIiwK PiArCQkJIGNydGMtPmJhc2UuaWQsIGNydGMtPm5hbWUpOwo+ICsKPiArCXN0YXRlcyA9IGttYWxs b2ModG90YWxfcGxhbmVzICogc2l6ZW9mKCpzdGF0ZXMpLCBHRlBfS0VSTkVMKTsKCmttYWxsb2Nf YXJyYXkoLi4uLCBHRlBfVEVNUE9SQVJZKTsKCj4gKwlpZiAoIXN0YXRlcykKPiArCQlyZXR1cm4g LUVOT01FTTsKPiArCj4gKwkvKgo+ICsJICogTm9ybWFsaXphdGlvbiBwcm9jZXNzIG1pZ2h0IGNy ZWF0ZSBuZXcgc3RhdGVzIGZvciBwbGFuZXMgd2hpY2gKPiArCSAqIG5vcm1hbGl6ZWRfenBvcyBo YXMgdG8gYmUgcmVjYWxjdWxhdGVkLgo+ICsJICovCj4gKwlkcm1fZm9yX2VhY2hfcGxhbmVfbWFz ayhwbGFuZSwgZGV2LCBjcnRjX3N0YXRlLT5wbGFuZV9tYXNrKSB7Cj4gKwkJc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQo+ICsJCQlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0 ZShzdGF0ZSwgcGxhbmUpOwo+ICsJCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7Cj4gKwkJCXJl dCA9IFBUUl9FUlIocGxhbmVfc3RhdGUpOwo+ICsJCQlnb3RvIGRvbmU7Cj4gKwkJfQoKSG1tLiBT byBpZiB3ZSBjaGFuZ2UgdGhlIHpwb3MgZm9yIGFueSBwbGFuZSwgd2UgZ2V0IHRvIHJlLWNoZWNr IGV2ZXJ5CnBsYW5lLiBOb3QgdGhlIG1vc3QgZWZmaWNpZW50IHRoaW5nIHBlcmhhcHMsIHNpbmNl IG9uIHNvbWUgaGFyZHdhcmUKeW91IG1pZ2h0IG9ubHkgaGF2ZSBhIHN1YnNldCBvZiBwbGFuZXMg dGhhdCBjYW4gZXZlbiBjaGFuZ2UgdGhlaXIKenBvcy4gT1RPSCBJIHN1cHBvc2UgaXQgZG9lcyBt YWtlIGxpZmUgYSBiaXQgc2ltcGxlciB3aGVuIHlvdSBkb24ndApoYXZlIHRvIHRoaW5rIHdoaWNo IHBsYW5lcyBtaWdodCBiZSBhZmZlY3RlZCwgc28gSSBndWVzcyBpdCdzIGZpbmUuCgo+ICsJCXN0 YXRlc1tuKytdID0gcGxhbmVfc3RhdGU7Cj4gKwkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVk OiVzXSBwcm9jZXNzaW5nIHpwb3MgdmFsdWUgJWRcbiIsCj4gKwkJCQkgcGxhbmUtPmJhc2UuaWQs IHBsYW5lLT5uYW1lLAo+ICsJCQkJIHBsYW5lX3N0YXRlLT56cG9zKTsKPiArCX0KPiArCj4gKwlz b3J0KHN0YXRlcywgbiwgc2l6ZW9mKCpzdGF0ZXMpLCBkcm1fYXRvbWljX3N0YXRlX3pwb3NfY21w LCBOVUxMKTsKPiArCj4gKwlmb3IgKGkgPSAwLCB6cG9zID0gMDsgaSA8IG47IGkrKywgenBvcysr KSB7Cj4gKwkJcGxhbmUgPSBzdGF0ZXNbaV0tPnBsYW5lOwo+ICsKPiArCQl6cG9zID0gbWF4X3Qo aW50LCB6cG9zLCBzdGF0ZXNbaV0tPnpwb3MpOwo+ICsKPiArCQlzdGF0ZXNbaV0tPm5vcm1hbGl6 ZWRfenBvcyA9IHpwb3M7Cj4gKwkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVkOiVzXSBub3Jt YWxpemVkIHpwb3MgdmFsdWUgJWRcbiIsCj4gKwkJCQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5u YW1lLCB6cG9zKTsKPiArCX0KPiArCWNydGNfc3RhdGUtPnpwb3NfY2hhbmdlZCA9IHRydWU7Cj4g Kwo+ICtkb25lOgo+ICsJa2ZyZWUoc3RhdGVzKTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX25vcm1hbGl6ZV96cG9zKTsKPiArCj4g Ky8qKgo+ICsgKiBkcm1fYXRvbWljX2hlbHBlcl9ub3JtYWxpemVfenBvcyAtIGNhbGN1bGF0ZSBu b3JtYWxpemVkIHpwb3MgdmFsdWVzIGZvciBhbGwKPiArICoJCQkJICAgICAgY3J0Y3MKPiArICog QGRldjogRFJNIGRldmljZQo+ICsgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZSBvZiBEUk0gZGV2aWNl Cj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBub3JtYWxpemVkIHpwb3MgdmFs dWUgZm9yIGFsbCBtb2RpZmllZCBwbGFuZXMgaW4KPiArICogdGhlIHByb3ZpZGVkIGF0b21pYyBz dGF0ZSBvZiBEUk0gZGV2aWNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCj4gKyAqIGRybV9h dG9taWNfaGVscGVyX2NydGNfbm9ybWFsaXplX3pwb3MoKSBmdW5jdGlvbi4KPiArICoKPiArICog UkVUVVJOUwo+ICsgKiBaZXJvIGZvciBzdWNjZXNzIG9yIC1lcnJubwo+ICsgKi8KPiAraW50IGRy bV9hdG9taWNfaGVscGVyX25vcm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g KwkJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZTsKPiArCWludCBpLCByZXQgPSAwOwo+ICsKPiArCWZvcl9lYWNoX3BsYW5lX2lu X3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKPiArCQljcnRjID0gcGxhbmVf c3RhdGUtPmNydGM7Cj4gKwkJaWYgKCFjcnRjKQo+ICsJCQljb250aW51ZTsKPiArCQlpZiAocGxh bmUtPnN0YXRlLT56cG9zICE9IHBsYW5lX3N0YXRlLT56cG9zKSB7Cj4gKwkJCWNydGNfc3RhdGUg PQo+ICsJCQkJZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7 Cj4gKwkJCWNydGNfc3RhdGUtPnpwb3NfY2hhbmdlZCA9IHRydWU7Cj4gKwkJfQo+ICsJfQo+ICsK PiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsK PiArCQlpZiAoY3J0Y19zdGF0ZS0+cGxhbmVfbWFzayAhPSBjcnRjLT5zdGF0ZS0+cGxhbmVfbWFz ayB8fAo+ICsJCSAgICBjcnRjX3N0YXRlLT56cG9zX2NoYW5nZWQpIHsKPiArCQkJcmV0ID0gZHJt X2F0b21pY19oZWxwZXJfY3J0Y19ub3JtYWxpemVfenBvcyhjcnRjLAo+ICsJCQkJCQkJCSAgICBj cnRjX3N0YXRlKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4gKwkJfQo+ICsJ fQo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9u b3JtYWxpemVfenBvcyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19p bnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgKPiBpbmRleCBh NzhjMTM4Li4zN2Q5MDY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19p bnRlcm5hbC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgKPiBA QCAtNDIsMyArNDIsNiBAQCBpbnQgZHJtX2F0b21pY19nZXRfcHJvcGVydHkoc3RydWN0IGRybV9t b2RlX29iamVjdCAqb2JqLAo+ICBpbnQgZHJtX21vZGVfYXRvbWljX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAkJCSAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwo+ICAKPiArLyogZHJtX2JsZW5kLmMgKi8KPiAraW50IGRybV9hdG9taWNfaGVscGVyX25v cm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCQkgICAgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9j cnRjLmggYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gaW5kZXggZDE1NTljZC4uOTIxYzkzZiAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2NydGMuaAo+IEBAIC0zMDUsNiArMzA1LDcgQEAgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJf ZnVuY3M7Cj4gICAqIEBtb2RlX2NoYW5nZWQ6IGNydGNfc3RhdGUtPm1vZGUgb3IgY3J0Y19zdGF0 ZS0+ZW5hYmxlIGhhcyBiZWVuIGNoYW5nZWQKPiAgICogQGFjdGl2ZV9jaGFuZ2VkOiBjcnRjX3N0 YXRlLT5hY3RpdmUgaGFzIGJlZW4gdG9nZ2xlZC4KPiAgICogQGNvbm5lY3RvcnNfY2hhbmdlZDog Y29ubmVjdG9ycyB0byB0aGlzIGNydGMgaGF2ZSBiZWVuIHVwZGF0ZWQKPiArICogQHpwb3NfY2hh bmdlZDogenBvcyB2YWx1ZXMgb2YgcGxhbmVzIG9uIHRoaXMgY3J0YyBoYXZlIGJlZW4gdXBkYXRl ZAo+ICAgKiBAY29sb3JfbWdtdF9jaGFuZ2VkOiBjb2xvciBtYW5hZ2VtZW50IHByb3BlcnRpZXMg aGF2ZSBjaGFuZ2VkIChkZWdhbW1hIG9yCj4gICAqCWdhbW1hIExVVCBvciBDU0MgbWF0cml4KQo+ ICAgKiBAcGxhbmVfbWFzazogYml0bWFzayBvZiAoMSA8PCBkcm1fcGxhbmVfaW5kZXgocGxhbmUp KSBvZiBhdHRhY2hlZCBwbGFuZXMKPiBAQCAtMzQwLDYgKzM0MSw3IEBAIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSB7Cj4gIAlib29sIG1vZGVfY2hhbmdlZCA6IDE7Cj4gIAlib29sIGFjdGl2ZV9jaGFu Z2VkIDogMTsKPiAgCWJvb2wgY29ubmVjdG9yc19jaGFuZ2VkIDogMTsKPiArCWJvb2wgenBvc19j aGFuZ2VkIDogMTsKPiAgCWJvb2wgY29sb3JfbWdtdF9jaGFuZ2VkIDogMTsKPiAgCj4gIAkvKiBh dHRhY2hlZCBwbGFuZXMgYml0bWFzazoKPiBAQCAtMTI2Myw2ICsxMjY1LDkgQEAgc3RydWN0IGRy bV9jb25uZWN0b3Igewo+ICAgKglwbGFuZSAoaW4gMTYuMTYpCj4gICAqIEBzcmNfdzogd2lkdGgg b2YgdmlzaWJsZSBwb3J0aW9uIG9mIHBsYW5lIChpbiAxNi4xNikKPiAgICogQHNyY19oOiBoZWln aHQgb2YgdmlzaWJsZSBwb3J0aW9uIG9mIHBsYW5lIChpbiAxNi4xNikKPiArICogQHpwb3M6IHBy aW9yaXR5IG9mIHRoZSBnaXZlbiBwbGFuZSBvbiBjcnRjIChvcHRpb25hbCkKPiArICogQG5vcm1h bGl6ZWRfenBvczogbm9ybWFsaXplZCB2YWx1ZSBvZiB6cG9zOiB1bmlxdWUsIHJhbmdlIGZyb20g MCB0byBOLTEKPiArICoJIGZvciBnaXZlbiBjcnRjCj4gICAqIEBzdGF0ZTogYmFja3BvaW50ZXIg dG8gZ2xvYmFsIGRybV9hdG9taWNfc3RhdGUKPiAgICovCj4gIHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgewo+IEBAIC0xMjgzLDYgKzEyODgsMTAgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7Cj4g IAkvKiBQbGFuZSByb3RhdGlvbiAqLwo+ICAJdW5zaWduZWQgaW50IHJvdGF0aW9uOwo+ICAKPiAr CS8qIFBsYW5lIHpwb3MgKi8KPiArCXVuc2lnbmVkIGludCB6cG9zOwo+ICsJdW5zaWduZWQgaW50 IG5vcm1hbGl6ZWRfenBvczsKPiArCj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 Cj4gIH07Cj4gIAo+IEBAIC0xNTE2LDYgKzE1MjUsNyBAQCBlbnVtIGRybV9wbGFuZV90eXBlIHsK PiAgICogQHByb3BlcnRpZXM6IHByb3BlcnR5IHRyYWNraW5nIGZvciB0aGlzIHBsYW5lCj4gICAq IEB0eXBlOiB0eXBlIG9mIHBsYW5lIChvdmVybGF5LCBwcmltYXJ5LCBjdXJzb3IpCj4gICAqIEBz dGF0ZTogY3VycmVudCBhdG9taWMgc3RhdGUgZm9yIHRoaXMgcGxhbmUKPiArICogQHpwb3NfcHJv cGVydHk6IHpwb3MgcHJvcGVydHkgZm9yIHRoaXMgcGxhbmUKPiAgICovCj4gIHN0cnVjdCBkcm1f cGxhbmUgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiBAQCAtMTU0Niw2ICsxNTU2LDgg QEAgc3RydWN0IGRybV9wbGFuZSB7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9m dW5jcyAqaGVscGVyX3ByaXZhdGU7Cj4gIAo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3Rh dGU7Cj4gKwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqenBvc19wcm9wZXJ0eTsKPiAgfTsKPiAg Cj4gIC8qKgo+IEBAIC0yNTU0LDYgKzI1NjYsMjIgQEAgZXh0ZXJuIHN0cnVjdCBkcm1fcHJvcGVy dHkgKmRybV9tb2RlX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZQo+ ICBleHRlcm4gdW5zaWduZWQgaW50IGRybV9yb3RhdGlvbl9zaW1wbGlmeSh1bnNpZ25lZCBpbnQg cm90YXRpb24sCj4gIAkJCQkJICB1bnNpZ25lZCBpbnQgc3VwcG9ydGVkX3JvdGF0aW9ucyk7Cj4g IAo+ICtpbnQgZHJtX3BsYW5lX2F0b21pY19zZXRfenBvc19wcm9wZXJ0eShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwK PiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiArCQkJCSAgICAg ICB1aW50NjRfdCB2YWwpOwo+ICsKPiAraW50IGRybV9wbGFuZV9hdG9taWNfZ2V0X3pwb3NfcHJv cGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkgICAgICAgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0 eSAqcHJvcGVydHksCj4gKwkJCQkgICAgICAgdWludDY0X3QgKnZhbCk7Cj4gKwo+ICtpbnQgZHJt X3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJ CQkJICAgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1heCk7Cj4gK2ludCBkcm1fcGxh bmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ICsJCQkJCSAgICAgdW5zaWduZWQgaW50IG1pbiwKPiArCQkJCQkgICAgIHVuc2lnbmVkIGlu dCBtYXgpOwo+ICsKPiAgLyogSGVscGVycyAqLwo+ICAKPiAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg ZHJtX3BsYW5lICpkcm1fcGxhbmVfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0tIAo+ IDEuOS4xCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK