From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH 3/5] drm: introduce pipe color correction properties Date: Fri, 26 Feb 2016 15:43:59 +0000 Message-ID: <56D072BF.9090600@intel.com> References: <1456397929-27406-1-git-send-email-lionel.g.landwerlin@intel.com> <1456397929-27406-4-git-send-email-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: 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: Emil Velikov Cc: "intel-gfx@lists.freedesktop.org" , Kumar@freedesktop.org, ML dri-devel , Kausal Malladi List-Id: dri-devel@lists.freedesktop.org T24gMjYvMDIvMTYgMDA6MzYsIEVtaWwgVmVsaWtvdiB3cm90ZToKPiBIaSBMaW9uZWwsCj4KPiBB IGJ1bmNoIG9mIHN1Z2dlc3Rpb25zIC0gZmVlbCBmcmVlIHRvIHRha2Ugb3IgaWdub3JlIHRoZW0g Oi0pCj4KPiBPbiAyNSBGZWJydWFyeSAyMDE2IGF0IDEwOjU4LCBMaW9uZWwgTGFuZHdlcmxpbgo+ IDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4gd3JvdGU6Cj4+IFBhdGNoIGJhc2VkIG9u IGEgcHJldmlvdXMgc2VyaWVzIGJ5IFNoYXNoYW5rIFNoYXJtYS4KPj4KPj4gVGhpcyBpbnRyb2R1 Y2VzIG9wdGlvbmFsIHByb3BlcnRpZXMgdG8gZW5hYmxlIGNvbG9yIGNvcnJlY3Rpb24gYXQgdGhl Cj4+IHBpcGUgbGV2ZWwuIEl0IHJlbGllcyBvbiAzIHRyYW5zZm9ybWF0aW9ucyBhcHBsaWVkIHRv IGV2ZXJ5IHBpeGVscwo+PiBkaXNwbGF5ZWQuIEZpcnN0IGEgbG9va3VwIGludG8gYSBkZWdhbW1h IHRhYmxlLCB0aGVuIGEgbXVsdGlwbGljYXRpb24KPj4gb2YgdGhlIHJnYiBjb21wb25lbnRzIGJ5 IGEgM3gzIG1hdHJpeCBhbmQgZmluYWxseSBhbm90aGVyIGxvb2t1cCBpbnRvCj4+IGEgZ2FtbWEg dGFibGUuCj4+Cj4+IFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBjYW4gYmUgYWRkZWQgdG8gYSBw aXBlIDoKPj4gICAgLSBERUdBTU1BX0xVVCA6IGJsb2IgY29udGFpbmluZyBkZWdhbW1hIExVVAo+ PiAgICAtIERFR0FNTUFfTFVUX1NJWkUgOiBudW1iZXIgb2YgZWxlbWVudHMgaW4gREVHQU1NQV9M VVQKPj4gICAgLSBDVE0gOiB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggYXBwbGllZCBhZnRlciB0aGUg ZGVnYW1tYSBMVVQKPj4gICAgLSBHQU1NQV9MVVQgOiBibG9iIGNvbnRhaW5pbmcgZ2FtbWEgTFVU Cj4+ICAgIC0gR0FNTUFfTFVUX1NJWkUgOiBudW1iZXIgb2YgZWxlbWVudHMgaW4gR0FNTUFfTFVU Cj4+Cj4+IERFR0FNTUFfTFVUX1NJWkUgYW5kIEdBTU1BX0xVVF9TSVpFIGFyZSByZWFkIG9ubHkg cHJvcGVydGllcywgc2V0IGJ5Cj4+IHRoZSBkcml2ZXIgdG8gdGVsbCB1c2Vyc3BhY2UgYXBwbGlj YXRpb25zIHdoYXQgc2l6ZXMgc2hvdWxkIGJlIHRoZQo+PiBsb29rdXAgdGFibGVzIGluIERFR0FN TUFfTFVUIGFuZCBHQU1NQV9MVVQuCj4+Cj4+IEEgaGVscGVyIGlzIGFsc28gcHJvdmlkZWQgc28g bGVnYWN5IGdhbW1hIGNvcnJlY3Rpb24gaXMgcmVkaXJlY3RlZAo+PiB0aHJvdWdoIHRoZXNlIG5l dyBwcm9wZXJ0aWVzLgo+Pgo+PiB2MjogUmVnaXN0ZXIgTFVUIHNpemUgcHJvcGVydGllcyBhcyBy YW5nZQo+Pgo+PiB2MzogRml4IHJvdW5kIGluIGRybV9jb2xvcl9sdXRfZ2V0X3ZhbHVlKCkgaGVs cGVyCj4+ICAgICAgTW9yZSBkb2NzIG9uIGhvdyBkZWdhbW1hL2dhbW1hIHByb3BlcnRpZXMgYXJl IHVzZWQKPj4KPj4gdjQ6IFVwZGF0ZSBjb250cmlidXRvcnMKPj4KPj4gdjU6IFJlbmFtZSBDVE1f TUFUUklYIHByb3BlcnR5IHRvIENUTSAoRG9oISkKPj4gICAgICBBZGQgbGVnYWN5IGdhbW1hX3Nl dCBhdG9taWMgaGVscGVyCj4+ICAgICAgRGVzY3JpYmUgQ1RNL0xVVCBhY3JvbnltcyBpbiB0aGUg a2VybmVsIGRvYwo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5r LnNoYXJtYUBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IExpb25lbCBMYW5kd2VybGluIDxs aW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogS3VtYXIsIEtp cmFuIFMgPGtpcmFuLnMua3VtYXJAaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBLYXVzYWwg TWFsbGFkaSA8a2F1c2FsbWFsbGFkaUBnbWFpbC5jb20+Cj4gVGhlIGFib3ZlIHNob3VsZCBiZSBr ZXB0IGluIHRoZSBvcmRlciBvZiB3aGljaCBwZW9wbGUgd29ya2VkIG9uIHRoZW0uCj4KPj4gUmV2 aWV3ZWQtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwo+PiBAQCAtMzc2LDYgKzM3Nyw1NyBAQCBpbnQgZHJtX2F0b21pY19zZXRfbW9k ZV9wcm9wX2Zvcl9jcnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCj4+ICAgRVhQT1JU X1NZTUJPTChkcm1fYXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2NydGMpOwo+Pgo+PiAgIC8qKgo+ PiArICogZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2IgLSByZXBsYWNlIGEgYmxvYiBw cm9wZXJ0eQo+PiArICogQGJsb2I6IGEgcG9pbnRlciB0byB0aGUgbWVtYmVyIGJsb2IgdG8gYmUg cmVwbGFjZWQKPj4gKyAqIEBuZXdfYmxvYjogdGhlIG5ldyBibG9iIHRvIHJlcGxhY2Ugd2l0aAo+ PiArICogQGV4cGVjdGVkX3NpemU6IHRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBuZXcgYmxvYgo+ PiArICogQHJlcGxhY2VkOiB3aGV0aGVyIHRoZSBibG9iIGhhcyBiZWVuIHJlcGxhY2VkCj4+ICsg Kgo+PiArICogUkVUVVJOUzoKPj4gKyAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBm YWlsdXJlCj4+ICsgKi8KPj4gK3N0YXRpYyBpbnQKPj4gK2RybV9hdG9taWNfcmVwbGFjZV9wcm9w ZXJ0eV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqKmJsb2IsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbmV3X2Jsb2Is Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKnJlcGxhY2VkKQo+ICJS ZXBsYWNlZCIgaGVyZSBhbmQgdGhvdWdoIHRoZSByZXN0IG9mIHRoZSBwYXRjaCBpcyB1c2VkIGFz ICJjaGFuZ2VkIi4KPiBXb3J0aCBuYW1pbmcgaXQgdGhhdCB3YXkgPwpJIHRoaW5rIHRoZSBmb3Jt ZXIgZGVzY3JpYmVzIHRoZSBhY3Rpb24sIHRoZSBsYXRlciB0aGUgc3RhdGUuCgo+Cj4+ICt7Cj4+ ICsgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpvbGRfYmxvYiA9ICpibG9iOwo+PiAr Cj4+ICsgICAgICAgaWYgKG9sZF9ibG9iID09IG5ld19ibG9iKQo+PiArICAgICAgICAgICAgICAg cmV0dXJuIDA7Cj4+ICsKPj4gKyAgICAgICBpZiAob2xkX2Jsb2IpCj4+ICsgICAgICAgICAgICAg ICBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihvbGRfYmxvYik7Cj4+ICsgICAgICAgaWYg KG5ld19ibG9iKQo+PiArICAgICAgICAgICAgICAgZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9i KG5ld19ibG9iKTsKPj4gKyAgICAgICAqYmxvYiA9IG5ld19ibG9iOwo+PiArICAgICAgICpyZXBs YWNlZCA9IHRydWU7Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gMDsKPiBUaGUgZnVuY3Rpb24gYWx3 YXlzIHN1Y2NlZWRzIC0gZHJvcCB0aGUgcmV0dXJuIHZhbHVlID8KV2VsbCBzcG90dGVkLCBkcm9w cGluZy4KCj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQKPj4gK2RybV9hdG9taWNfcmVwbGFjZV9w cm9wZXJ0eV9ibG9iX2Zyb21faWQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq KmJsb2IsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgYmxvYl9pZCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz c2l6ZV90IGV4cGVjdGVkX3NpemUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCAqcmVwbGFjZWQpCj4+ICt7Cj4+ICsgICAgICAgc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig Km5ld19ibG9iID0gTlVMTDsKPj4gKwo+PiArICAgICAgIGlmIChibG9iX2lkICE9IDApIHsKPj4g KyAgICAgICAgICAgICAgIG5ld19ibG9iID0gZHJtX3Byb3BlcnR5X2xvb2t1cF9ibG9iKGRldiwg YmxvYl9pZCk7Cj4+ICsgICAgICAgICAgICAgICBpZiAobmV3X2Jsb2IgPT0gTlVMTCkKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsgICAgICAgICAgICAgICBp ZiAoZXhwZWN0ZWRfc2l6ZSA+IDAgJiYgZXhwZWN0ZWRfc2l6ZSAhPSBuZXdfYmxvYi0+bGVuZ3Ro KQo+PiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKyAgICAgICB9 Cj4+ICsKPiBIYXZpbmcgYSBsb29rIGF0IGRybV9hdG9taWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0 YygpIEkgdGhpbmsgSSBjYW4KPiBzcG90IGEgYnVnIC0gaXQgc2hvdWxkbid0IGRyb3AvdW5yZWYg dGhlIG9sZCBibG9iIGluIGNhc2Ugb2YgYW4gZXJyb3IuCj4gQSBjYXNlIHlvdSBoYW5kbGUgbmlj ZWx5IGhlcmUuIFBlcmhhcHMgaXQncyB3b3J0aCB1c2luZyB0aGUKPiBkcm1fYXRvbWljX3JlcGxh Y2VfcHJvcGVydHlfYmxvYigpIGluIHRoZXJlID8KCkknbSBub3Qgc3VyZSBpdCBtYXR0ZXJzIGFz IHRoZSBkcm1fY3J0Y19zdGF0ZSB5b3UncmUgc2V0IHByb3BlcnRpZXMgb24gCndpbGwgYmUgZGlz Y2FyZGVkIGlmIHRoZXJlIGlzIGFuIGVycm9yLgpUaGUgY3VycmVudCBkcm1fY3J0Y19zdGF0ZSB0 aGF0IGhhcyBiZWVuIGFwcGxpZWQgb250byB0aGUgaGFyZHdhcmUgCnNob3VsZCBiZSB1bnRvdWNo ZWQuCgo+Cj4+IEBAIC0zOTcsNiArNDQ5LDcgQEAgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJv cGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAgIHsKPj4gICAgICAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPj4gICAgICAgICAgc3RydWN0IGRybV9tb2RlX2Nv bmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4+ICsgICAgICAgYm9vbCByZXBsYWNl ZCA9IGZhbHNlOwo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiAgICAgICAgICBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5wcm9wX2FjdGl2ZSkKPj4gQEAgLTQwNyw4ICs0NjAsMzEgQEAgaW50IGRy bV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAgICAg ICAgICAgICAgICAgIHJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0YyhzdGF0 ZSwgbW9kZSk7Cj4+ICAgICAgICAgICAgICAgICAgZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Js b2IobW9kZSk7Cj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gLSAgICAgICB9Cj4+ IC0gICAgICAgZWxzZSBpZiAoY3J0Yy0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpCj4+ICsg ICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmRlZ2FtbWFfbHV0X3Byb3BlcnR5 KSB7Cj4+ICsgICAgICAgICAgICAgICByZXQgPSBkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVydHlf YmxvYl9mcm9tX2lkKGNydGMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmc3RhdGUtPmRlZ2FtbWFfbHV0LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmFsLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLTEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVwbGFj ZWQpOwo+PiArICAgICAgICAgICAgICAgc3RhdGUtPmNvbG9yX21nbXRfY2hhbmdlZCA9IHJlcGxh Y2VkOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gKyAgICAgICB9IGVsc2UgaWYg KHByb3BlcnR5ID09IGNvbmZpZy0+Z2FtbWFfbHV0X3Byb3BlcnR5KSB7Cj4+ICsgICAgICAgICAg ICAgICByZXQgPSBkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKGNydGMs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhdGUtPmdhbW1h X2x1dCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAo+IFdvbmRlcmluZyBp ZiB0aGVzZSAiLTEiIHNob3VsZG4ndCBiZSBkZXJpdmVkL3JlcGxhY2VkIHdpdGggdGhlCj4gY29u dGVudHMgb2YgdGhlIHJlc3BlY3RpdmUgX3NpemUgcHJvcGVybHkgPwoKVGhpcyBpcyBiZWNhdXNl IHdlIGFjY2VwdCBtb3JlIHRoYW4gb25lIHNpemUgb2YgZGVnYW1tYS9nYW1tYSBMVVQgCihsZWdh Y3kgLT4gMjU2IGVsZW1lbnRzLCBuZXcgTFVUIC0+IChkZSlnYW1tYV9sdXRfc2l6ZSBlbGVtZW50 cykuCkl0J3MgdXAgZm9yIHRoZSBkcml2ZXIgdGhlIGNoZWNrIHRoZSBzaXplIGFuZCByYWlzZSBh biBlcnJvciBpbiBpdHMgCmF0b21pY19jaGVjaygpIHZmdW5jLgoKPgo+Cj4+IEBAIC00NDQsNiAr NTIwLDEyIEBAIGRybV9hdG9taWNfY3J0Y19nZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpj cnRjLAo+PiAgICAgICAgICAgICAgICAgICp2YWwgPSBzdGF0ZS0+YWN0aXZlOwo+PiAgICAgICAg ICBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3BfbW9kZV9pZCkKPj4gICAgICAgICAg ICAgICAgICAqdmFsID0gKHN0YXRlLT5tb2RlX2Jsb2IpID8gc3RhdGUtPm1vZGVfYmxvYi0+YmFz ZS5pZCA6IDA7Cj4+ICsgICAgICAgZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kZWdhbW1h X2x1dF9wcm9wZXJ0eSkKPj4gKyAgICAgICAgICAgICAgICp2YWwgPSAoc3RhdGUtPmRlZ2FtbWFf bHV0KSA/IHN0YXRlLT5kZWdhbW1hX2x1dC0+YmFzZS5pZCA6IDA7Cj4+ICsgICAgICAgZWxzZSBp ZiAocHJvcGVydHkgPT0gY29uZmlnLT5jdG1fcHJvcGVydHkpCj4+ICsgICAgICAgICAgICAgICAq dmFsID0gKHN0YXRlLT5jdG0pID8gc3RhdGUtPmN0bS0+YmFzZS5pZCA6IDA7Cj4+ICsgICAgICAg ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5nYW1tYV9sdXRfcHJvcGVydHkpCj4+ICsgICAg ICAgICAgICAgICAqdmFsID0gKHN0YXRlLT5nYW1tYV9sdXQpID8gc3RhdGUtPmdhbW1hX2x1dC0+ YmFzZS5pZCA6IDA7Cj4+ICAgICAgICAgIGVsc2UgaWYgKGNydGMtPmZ1bmNzLT5hdG9taWNfZ2V0 X3Byb3BlcnR5KQo+PiAgICAgICAgICAgICAgICAgIHJldHVybiBjcnRjLT5mdW5jcy0+YXRvbWlj X2dldF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4+ICAgICAgICAgIGVs c2UKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4gaW5kZXggNGRhNGYyYS4uN2Fi ODA0MCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4gQEAgLTI1NTcs NiArMjU2NCw5IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUo c3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+PiAgIHsKPj4gICAg ICAgICAgZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPm1vZGVfYmxvYik7Cj4+ ICsgICAgICAgZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPmRlZ2FtbWFfbHV0 KTsKPj4gKyAgICAgICBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+Y3RtKTsK Pj4gKyAgICAgICBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+Z2FtbWFfbHV0 KTsKPiBNaWdodCB3YW50IHRvIGtlZXAgdGhlIGR0b3IgaW4gcmV2ZXJzZSBvcmRlciBjb21wYXJp bmcgdG8gdGhlIGN0b3IgLQo+IGR1cGxpY2F0ZV9zdGF0ZSgpCj4KPgo+PiBAQCAtMjg3MCwzICsy ODgwLDk2IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gICAgICAgICAga2ZyZWUoc3RhdGUp Owo+PiAgIH0KPj4gICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9k ZXN0cm95X3N0YXRlKTsKPj4gKwo+PiArLyoqCj4+ICsgKiBkcm1fYXRvbWljX2hlbHBlcl9sZWdh Y3lfZ2FtbWFfc2V0IC0gc2V0IHRoZSBsZWdhY3kgZ2FtbWEgY29ycmVjdGlvbiB0YWJsZQo+PiAr ICogQGNydGM6IENSVEMgb2JqZWN0Cj4+ICsgKiBAcmVkOiByZWQgY29ycmVjdGlvbiB0YWJsZQo+ PiArICogQGdyZWVuOiBncmVlbiBjb3JyZWN0aW9uIHRhYmxlCj4+ICsgKiBAYmx1ZTogZ3JlZW4g Y29ycmVjdGlvbiB0YWJsZQo+PiArICogQHN0YXJ0Ogo+PiArICogQHNpemU6IHNpemUgb2YgdGhl IHRhYmxlcwo+PiArICoKPj4gKyAqIEltcGxlbWVudHMgc3VwcG9ydCBmb3IgbGVnYWN5IGdhbW1h IGNvcnJlY3Rpb24gdGFibGUgZm9yIGRyaXZlcnMKPj4gKyAqIHRoYXQgc3VwcG9ydCBjb2xvciBt YW5hZ2VtZW50IHRocm91Z2ggdGhlIERFR0FNTUFfTFVUL0dBTU1BX0xVVAo+PiArICogcHJvcGVy dGllcy4KPj4gKyAqLwo+PiArdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHUxNiAqcmVkLCB1MTYgKmdyZWVuLCB1MTYgKmJsdWUsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6 ZSkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ PiArICAgICAgIHN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29u ZmlnOwo+PiArICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPj4gKyAgICAg ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+ICsgICAgICAgc3RydWN0IGRy bV9wcm9wZXJ0eV9ibG9iICpibG9iID0gTlVMTDsKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2NvbG9y X2x1dCAqYmxvYl9kYXRhOwo+PiArICAgICAgIGludCBpLCByZXQgPSAwOwo+PiArCj4+ICsgICAg ICAgc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGNydGMtPmRldik7Cj4+ICsgICAgICAg aWYgKCFzdGF0ZSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgICAgIGJs b2IgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2IoZGV2LAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSAqIHNpemUs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKPj4gKwo+ IFRvIGtlZXAgdGhlIGJyaW5ndXAvdGVhcmRvd24gc2ltcGxlciAoYW5kIGNvbXBsZXRlKToKPiBN b3ZlIGNyZWF0ZV9ibG9iKCkgYmVmb3JlIHRvIHN0YXRlX2FsbG9jKCkgYW5kIG51bGwgY2hlY2sg YmxvYgo+IGltbWVkaWF0ZWx5LiBPbmUgd291bGQgbmVlZCB0byBhZGQgdW5yZWZfYmxvYigpIHdo ZW4gc3RhdGVfYWxsb2MoKQo+IGZhaWxzLgpNb3ZpbmcgdGhlIGlmIChibG9iID09IE5VTEwpIHJp Z2h0IGFmdGVyIHRoZSBibG9iIGFsbG9jYXRpb24gdG8gbWFrZSBpdCAKc2ltcGxlci4KCldoYXQg YWJvdXQgY29tcGxldGVuZXNzPyBJcyB0aGVyZSBzb21ldGhpbmcgaW5oZXJlbnRseSB3cm9uZyBo ZXJlPwo+Cj4+ICsgICAgICAgc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3J0Yy0+ZGV2LT5tb2RlX2Nv bmZpZy5hY3F1aXJlX2N0eDsKPj4gK3JldHJ5Ogo+PiArICAgICAgIGNydGNfc3RhdGUgPSBkcm1f YXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPj4gKyAgICAgICBpZiAoSVNfRVJS KGNydGNfc3RhdGUpKSB7Cj4+ICsgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJSKGNydGNfc3Rh dGUpOwo+PiArICAgICAgICAgICAgICAgZ290byBmYWlsOwo+PiArICAgICAgIH0KPj4gKwo+PiAr ICAgICAgIC8qIFJlc2V0IERFR0FNTUFfTFVUIGFuZCBDVE0gcHJvcGVydGllcy4gKi8KPj4gKyAg ICAgICByZXQgPSBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5KGNydGMsIGNydGNfc3RhdGUs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+ZGVnYW1tYV9sdXRfcHJvcGVydHks IDApOwo+PiArICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4g QWRkIG5ldyBibGFuayBsaW5lIHBsZWFzZS4KClN1cmUuCj4KPj4gKyAgICAgICByZXQgPSBkcm1f YXRvbWljX2NydGNfc2V0X3Byb3BlcnR5KGNydGMsIGNydGNfc3RhdGUsCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIGNvbmZpZy0+Y3RtX3Byb3BlcnR5LCAwKTsKPj4gKyAgICAgICBpZiAocmV0 KQo+PiArICAgICAgICAgICAgICAgZ290byBmYWlsOwo+PiArCj4+ICsgICAgICAgLyogU2V0IEdB TU1BX0xVVCB3aXRoIGxlZ2FjeSB2YWx1ZXMuICovCj4+ICsgICAgICAgaWYgKGJsb2IgPT0gTlVM TCkgewo+PiArICAgICAgICAgICAgICAgcmV0ID0gLUVOT01FTTsKPj4gKyAgICAgICAgICAgICAg IGdvdG8gZmFpbDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICBibG9iX2RhdGEgPSAoc3Ry dWN0IGRybV9jb2xvcl9sdXQgKikgYmxvYi0+ZGF0YTsKPj4gKyAgICAgICBmb3IgKGkgPSAwOyBp IDwgc2l6ZTsgaSsrKSB7Cj4+ICsgICAgICAgICAgICAgICBibG9iX2RhdGFbaV0ucmVkID0gcmVk W2ldOwo+PiArICAgICAgICAgICAgICAgYmxvYl9kYXRhW2ldLmdyZWVuID0gZ3JlZW5baV07Cj4+ ICsgICAgICAgICAgICAgICBibG9iX2RhdGFbaV0uYmx1ZSA9IGJsdWVbaV07Cj4+ICsgICAgICAg fQo+PiArCj4gTW92ZSB0aGlzIGxvb3AgYWZ0ZXIgY3JlYXRlX2Jsb2IoKQpUaGFua3MsIGluZGVl ZCBubyBuZWVkIHRvIHJlZmlsbCBpdCBpbiBjYXNlIG9mIHJldHJ5LgoKPgo+PiArICAgICAgIHJl dCA9IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoY3J0YywgY3J0Y19zdGF0ZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5nYW1tYV9sdXRfcHJvcGVydHksIGJsb2ItPmJh c2UuaWQpOwo+PiArICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAgICBnb3RvIGZhaWw7 Cj4+ICsKPj4gKyAgICAgICByZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4+ICsgICAg ICAgaWYgKHJldCAhPSAwKQo+IFBsZWFzZSBjaGVjayBpbiBhIGNvbnNpc3RlbnQgd2F5LiBDdXJy ZW50bHkgd2UgaGF2ZSByZXQgIT0gMCB2cyByZXQKPiBhbmQgZm9vID09IE5VTEwgdnMgIWZvby4K ClN1cmUuCgo+Cj4+ICsgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4+ICsKPj4gKyAgICAgICBk cm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihibG9iKTsKPj4gKwo+PiArICAgICAgIC8qIERy aXZlciB0YWtlcyBvd25lcnNoaXAgb2Ygc3RhdGUgb24gc3VjY2Vzc2Z1bCBjb21taXQuICovCj4g TW92ZSB0aGUgY29tbWVudCBiZWZvcmUgdW5yZWZlcmVuY2VfYmxvYigpLCBzbyB0aGF0IGl0J3Mg Y2xvc2VyIHRvCj4gYXRvbWljX2NvbW1pdCgpID8KClN1cmUuCj4KPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPj4g QEAgLTE1NTQsNiArMTU1NCw0MSBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFy ZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgICAgICAgICAgICAgICAg cmV0dXJuIC1FTk9NRU07Cj4+ICAgICAgICAgIGRldi0+bW9kZV9jb25maWcucHJvcF9tb2RlX2lk ID0gcHJvcDsKPj4KPj4gKyAgICAgICBwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkZXYsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9NT0RFX1BST1BfQkxPQiwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIkRFR0FNTUFfTFVUIiwgMCk7Cj4gSnVzdCB3b25kZXJpbmcgLSAgZG9u J3Qgd2Ugd2FudCB0aGlzIGFuZCB0aGUgcmVtYWluaW5nIHByb3BlcnRpZXMgdG8KPiBiZSBhdG9t aWMgb25seSA/IEkgZG91YnQgd2UgaGF2ZSB1c2Vyc3BhY2UgdGhhdCBbd2lsbCBiZSB1cGRhdGVk IHRvXQo+IGhhbmRsZSB0aGVzZSwgeWV0IGxhY2tzIGF0b21pYy4KVGhpcyB3YXMgcG9pbnRlZCBv dXQgYnkgTWF0dCBhbHJlYWR5LiBIZXJlIGlzIERhbmllbCBTdG9uZSdzIHJlc3BvbnNlIDoKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvaW50ZWwtZ2Z4LzIwMTYtSmFudWFy eS8wODYxMjAuaHRtbAoKSSB0aGluayBpdCdzIGZpbmUgdG8gaGF2ZSB0aGVzZSBwcm9wZXJ0aWVz IG5vdCBhdG9taWMgYmVjYXVzZSBpdCdzIG5vdCAKcmVhbGx5IHNvbWV0aGluZyB5b3UgdXBkYXRl IHZlcnkgb2Z0ZW4gKG1heWJlIGp1c3Qgd2hlbiBzdGFydGluZyB5b3VyIFVJKS4KVGhhdCdzIGFj dHVhbGx5IGhvdyB3ZSB3b3VsZCBsaWtlIHRvIHVzZSB0aGVtIGluIENocm9taXVtT1MgYXMgYSBm aXJzdCAKc3RlcCwgdW50aWwgZXZlbnR1YWxseSBDaHJvbWl1bU9TIHN3aXRjaGVzIHRvIGF0b21p Yy4KCj4KPgo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4+IEBAIC0xMDc1LDMgKzEwNzUs MzYgQEAgaW50IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgaW50IHgsIGludCB5LAo+PiAgICAgICAgICByZXR1cm4gZHJtX3BsYW5lX2hlbHBlcl9j b21taXQocGxhbmUsIHBsYW5lX3N0YXRlLCBvbGRfZmIpOwo+PiAgIH0KPj4gICBFWFBPUlRfU1lN Qk9MKGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNlKTsKPj4gKwo+PiArLyoqCj4+ICsgKiBk cm1faGVscGVyX2NydGNfZW5hYmxlX2NvbG9yX21nbXQgLSBlbmFibGUgY29sb3IgbWFuYWdlbWVu dCBwcm9wZXJ0aWVzCj4+ICsgKiBAY3J0YzogRFJNIENSVEMKPj4gKyAqIEBkZWdhbW1hX2x1dF9z aXplOiB0aGUgc2l6ZSBvZiB0aGUgZGVnYW1tYSBsdXQgKGJlZm9yZSBDU0MpCj4+ICsgKiBAZ2Ft bWFfbHV0X3NpemU6IHRoZSBzaXplIG9mIHRoZSBnYW1tYSBsdXQgKGFmdGVyIENTQykKPj4gKyAq Cj4+ICsgKiBUaGlzIGZ1bmN0aW9uIGxldHMgdGhlIGRyaXZlciBlbmFibGUgdGhlIGNvbG9yIGNv cnJlY3Rpb24gcHJvcGVydGllcyBvbiBhCj4+ICsgKiBDUlRDLiBUaGlzIGluY2x1ZGVzIDMgZGVn YW1tYSwgY3NjIGFuZCBnYW1tYSBwcm9wZXJ0aWVzIHRoYXQgdXNlcnNwYWNlIGNhbgo+PiArICog c2V0IGFuZCAyIHNpemUgcHJvcGVydGllcyB0byBpbmZvcm0gdGhlIHVzZXJzcGFjZSBvZiB0aGUg bHV0IHNpemVzLgo+PiArICovCj4+ICt2b2lkIGRybV9oZWxwZXJfY3J0Y19lbmFibGVfY29sb3Jf bWdtdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBkZWdhbW1hX2x1dF9zaXplLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgZ2FtbWFfbHV0X3NpemUpCj4+ICt7Cj4+ICsgICAgICAg c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPj4gKyAgICAgICBzdHJ1Y3QgZHJt X21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPj4gKwo+PiArICAgICAg IGRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjcnRjLT5iYXNlLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+ZGVnYW1tYV9sdXRfcHJvcGVydHksIDApOwo+ PiArICAgICAgIGRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjcnRjLT5iYXNlLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+Y3RtX3Byb3BlcnR5LCAwKTsK Pj4gKyAgICAgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmdhbW1hX2x1dF9wcm9wZXJ0 eSwgMCk7Cj4+ICsKPj4gKyAgICAgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+ YmFzZSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmRlZ2Ft bWFfbHV0X3NpemVfcHJvcGVydHksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGVnYW1tYV9sdXRfc2l6ZSk7Cj4+ICsgICAgICAgZHJtX29iamVjdF9hdHRhY2hfcHJvcGVy dHkoJmNydGMtPmJhc2UsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u ZmlnLT5nYW1tYV9sdXRfc2l6ZV9wcm9wZXJ0eSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnYW1tYV9sdXRfc2l6ZSk7Cj4gV29uZGVyaW5nIGlmIHdlIGNhbm5vdCBoYXZl IHRoZXNlIGxpc3RlZCBsaWtlIGVsc2V3aGVyZSBpbiB0aGUgcGF0Y2guCj4gSS5lLiBoYXZlIHRo ZSBfc2l6ZSBwcm9wZXJ0eSBqdXN0IGFmdGVyIGl0cyByZXNwZWN0aXZlIGNvdW50ZXJwYXJ0Lgo+ Cj4gUmVnYXJkcywKPiBFbWlsCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=