From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCH 3/5] drm: introduce pipe color correction properties Date: Fri, 26 Feb 2016 00:36:12 +0000 Message-ID: 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" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456397929-27406-4-git-send-email-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lionel Landwerlin Cc: "intel-gfx@lists.freedesktop.org" , Kumar@freedesktop.org, kiran.s.kumar@intel.com, ML dri-devel , Kausal Malladi List-Id: dri-devel@lists.freedesktop.org SGkgTGlvbmVsLAoKQSBidW5jaCBvZiBzdWdnZXN0aW9ucyAtIGZlZWwgZnJlZSB0byB0YWtlIG9y IGlnbm9yZSB0aGVtIDotKQoKT24gMjUgRmVicnVhcnkgMjAxNiBhdCAxMDo1OCwgTGlvbmVsIExh bmR3ZXJsaW4KPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPiB3cm90ZToKPiBQYXRjaCBi YXNlZCBvbiBhIHByZXZpb3VzIHNlcmllcyBieSBTaGFzaGFuayBTaGFybWEuCj4KPiBUaGlzIGlu dHJvZHVjZXMgb3B0aW9uYWwgcHJvcGVydGllcyB0byBlbmFibGUgY29sb3IgY29ycmVjdGlvbiBh dCB0aGUKPiBwaXBlIGxldmVsLiBJdCByZWxpZXMgb24gMyB0cmFuc2Zvcm1hdGlvbnMgYXBwbGll ZCB0byBldmVyeSBwaXhlbHMKPiBkaXNwbGF5ZWQuIEZpcnN0IGEgbG9va3VwIGludG8gYSBkZWdh bW1hIHRhYmxlLCB0aGVuIGEgbXVsdGlwbGljYXRpb24KPiBvZiB0aGUgcmdiIGNvbXBvbmVudHMg YnkgYSAzeDMgbWF0cml4IGFuZCBmaW5hbGx5IGFub3RoZXIgbG9va3VwIGludG8KPiBhIGdhbW1h IHRhYmxlLgo+Cj4gVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCB0byBhIHBp cGUgOgo+ICAgLSBERUdBTU1BX0xVVCA6IGJsb2IgY29udGFpbmluZyBkZWdhbW1hIExVVAo+ICAg LSBERUdBTU1BX0xVVF9TSVpFIDogbnVtYmVyIG9mIGVsZW1lbnRzIGluIERFR0FNTUFfTFVUCj4g ICAtIENUTSA6IHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBhcHBsaWVkIGFmdGVyIHRoZSBkZWdhbW1h IExVVAo+ICAgLSBHQU1NQV9MVVQgOiBibG9iIGNvbnRhaW5pbmcgZ2FtbWEgTFVUCj4gICAtIEdB TU1BX0xVVF9TSVpFIDogbnVtYmVyIG9mIGVsZW1lbnRzIGluIEdBTU1BX0xVVAo+Cj4gREVHQU1N QV9MVVRfU0laRSBhbmQgR0FNTUFfTFVUX1NJWkUgYXJlIHJlYWQgb25seSBwcm9wZXJ0aWVzLCBz ZXQgYnkKPiB0aGUgZHJpdmVyIHRvIHRlbGwgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyB3aGF0IHNp emVzIHNob3VsZCBiZSB0aGUKPiBsb29rdXAgdGFibGVzIGluIERFR0FNTUFfTFVUIGFuZCBHQU1N QV9MVVQuCj4KPiBBIGhlbHBlciBpcyBhbHNvIHByb3ZpZGVkIHNvIGxlZ2FjeSBnYW1tYSBjb3Jy ZWN0aW9uIGlzIHJlZGlyZWN0ZWQKPiB0aHJvdWdoIHRoZXNlIG5ldyBwcm9wZXJ0aWVzLgo+Cj4g djI6IFJlZ2lzdGVyIExVVCBzaXplIHByb3BlcnRpZXMgYXMgcmFuZ2UKPgo+IHYzOiBGaXggcm91 bmQgaW4gZHJtX2NvbG9yX2x1dF9nZXRfdmFsdWUoKSBoZWxwZXIKPiAgICAgTW9yZSBkb2NzIG9u IGhvdyBkZWdhbW1hL2dhbW1hIHByb3BlcnRpZXMgYXJlIHVzZWQKPgo+IHY0OiBVcGRhdGUgY29u dHJpYnV0b3JzCj4KPiB2NTogUmVuYW1lIENUTV9NQVRSSVggcHJvcGVydHkgdG8gQ1RNIChEb2gh KQo+ICAgICBBZGQgbGVnYWN5IGdhbW1hX3NldCBhdG9taWMgaGVscGVyCj4gICAgIERlc2NyaWJl IENUTS9MVVQgYWNyb255bXMgaW4gdGhlIGtlcm5lbCBkb2MKPgo+IFNpZ25lZC1vZmYtYnk6IFNo YXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogS3VtYXIsIEtpcmFuIFMgPGtpcmFuLnMua3VtYXJAaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEthdXNhbCBNYWxsYWRpIDxrYXVzYWxtYWxsYWRpQGdtYWlsLmNvbT4KVGhl IGFib3ZlIHNob3VsZCBiZSBrZXB0IGluIHRoZSBvcmRlciBvZiB3aGljaCBwZW9wbGUgd29ya2Vk IG9uIHRoZW0uCgo+IFJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50 ZWwuY29tPgoKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwoKPiBAQCAtMzc2LDYgKzM3Nyw1NyBAQCBpbnQgZHJt X2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUsCj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKTsK Pgo+ICAvKioKPiArICogZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2IgLSByZXBsYWNl IGEgYmxvYiBwcm9wZXJ0eQo+ICsgKiBAYmxvYjogYSBwb2ludGVyIHRvIHRoZSBtZW1iZXIgYmxv YiB0byBiZSByZXBsYWNlZAo+ICsgKiBAbmV3X2Jsb2I6IHRoZSBuZXcgYmxvYiB0byByZXBsYWNl IHdpdGgKPiArICogQGV4cGVjdGVkX3NpemU6IHRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBuZXcg YmxvYgo+ICsgKiBAcmVwbGFjZWQ6IHdoZXRoZXIgdGhlIGJsb2IgaGFzIGJlZW4gcmVwbGFjZWQK PiArICoKPiArICogUkVUVVJOUzoKPiArICogWmVybyBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9u IGZhaWx1cmUKPiArICovCj4gK3N0YXRpYyBpbnQKPiArZHJtX2F0b21pY19yZXBsYWNlX3Byb3Bl cnR5X2Jsb2Ioc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoqYmxvYiwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKm5ld19ibG9iLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKnJlcGxhY2VkKQoiUmVwbGFj ZWQiIGhlcmUgYW5kIHRob3VnaCB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggaXMgdXNlZCBhcyAiY2hh bmdlZCIuCldvcnRoIG5hbWluZyBpdCB0aGF0IHdheSA/Cgo+ICt7Cj4gKyAgICAgICBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKm9sZF9ibG9iID0gKmJsb2I7Cj4gKwo+ICsgICAgICAgaWYgKG9s ZF9ibG9iID09IG5ld19ibG9iKQo+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiArCj4gKyAg ICAgICBpZiAob2xkX2Jsb2IpCj4gKyAgICAgICAgICAgICAgIGRybV9wcm9wZXJ0eV91bnJlZmVy ZW5jZV9ibG9iKG9sZF9ibG9iKTsKPiArICAgICAgIGlmIChuZXdfYmxvYikKPiArICAgICAgICAg ICAgICAgZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKG5ld19ibG9iKTsKPiArICAgICAgICpi bG9iID0gbmV3X2Jsb2I7Cj4gKyAgICAgICAqcmVwbGFjZWQgPSB0cnVlOwo+ICsKPiArICAgICAg IHJldHVybiAwOwpUaGUgZnVuY3Rpb24gYWx3YXlzIHN1Y2NlZWRzIC0gZHJvcCB0aGUgcmV0dXJu IHZhbHVlID8KCj4gK30KPiArCj4gK3N0YXRpYyBpbnQKPiArZHJtX2F0b21pY19yZXBsYWNlX3By b3BlcnR5X2Jsb2JfZnJvbV9pZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKipi bG9iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qg YmxvYl9pZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzaXpl X3QgZXhwZWN0ZWRfc2l6ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgKnJlcGxhY2VkKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Yy0+ZGV2Owo+ICsgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpuZXdfYmxv YiA9IE5VTEw7Cj4gKwo+ICsgICAgICAgaWYgKGJsb2JfaWQgIT0gMCkgewo+ICsgICAgICAgICAg ICAgICBuZXdfYmxvYiA9IGRybV9wcm9wZXJ0eV9sb29rdXBfYmxvYihkZXYsIGJsb2JfaWQpOwo+ ICsgICAgICAgICAgICAgICBpZiAobmV3X2Jsb2IgPT0gTlVMTCkKPiArICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiArICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkX3Np emUgPiAwICYmIGV4cGVjdGVkX3NpemUgIT0gbmV3X2Jsb2ItPmxlbmd0aCkKPiArICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiArICAgICAgIH0KPiArCkhhdmluZyBhIGxv b2sgYXQgZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKCkgSSB0aGluayBJIGNhbgpz cG90IGEgYnVnIC0gaXQgc2hvdWxkbid0IGRyb3AvdW5yZWYgdGhlIG9sZCBibG9iIGluIGNhc2Ug b2YgYW4gZXJyb3IuCkEgY2FzZSB5b3UgaGFuZGxlIG5pY2VseSBoZXJlLiBQZXJoYXBzIGl0J3Mg d29ydGggdXNpbmcgdGhlCmRybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iKCkgaW4gdGhl cmUgPwoKCj4gQEAgLTM5Nyw2ICs0NDksNyBAQCBpbnQgZHJtX2F0b21pY19jcnRjX3NldF9wcm9w ZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIHsKPiAgICAgICAgIHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gICAgICAgICBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpj b25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArICAgICAgIGJvb2wgcmVwbGFjZWQgPSBmYWxz ZTsKPiAgICAgICAgIGludCByZXQ7Cj4KPiAgICAgICAgIGlmIChwcm9wZXJ0eSA9PSBjb25maWct PnByb3BfYWN0aXZlKQo+IEBAIC00MDcsOCArNDYwLDMxIEBAIGludCBkcm1fYXRvbWljX2NydGNf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgICAgICAgICAgICAgICAgcmV0 ID0gZHJtX2F0b21pY19zZXRfbW9kZV9wcm9wX2Zvcl9jcnRjKHN0YXRlLCBtb2RlKTsKPiAgICAg ICAgICAgICAgICAgZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IobW9kZSk7Cj4gICAgICAg ICAgICAgICAgIHJldHVybiByZXQ7Cj4gLSAgICAgICB9Cj4gLSAgICAgICBlbHNlIGlmIChjcnRj LT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkKPiArICAgICAgIH0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5kZWdhbW1hX2x1dF9wcm9wZXJ0eSkgewo+ICsgICAgICAgICAgICAgICBy ZXQgPSBkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKGNydGMsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZS0+ZGVnYW1tYV9sdXQs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZyZXBsYWNlZCk7Cj4gKyAgICAgICAgICAgICAgIHN0YXRl LT5jb2xvcl9tZ210X2NoYW5nZWQgPSByZXBsYWNlZDsKPiArICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKCj4gKyAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Z2FtbWFfbHV0 X3Byb3BlcnR5KSB7Cj4gKyAgICAgICAgICAgICAgIHJldCA9IGRybV9hdG9taWNfcmVwbGFjZV9w cm9wZXJ0eV9ibG9iX2Zyb21faWQoY3J0YywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnN0YXRlLT5nYW1tYV9sdXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhbCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLTEsCldvbmRlcmluZyBpZiB0aGVzZSAiLTEiIHNob3VsZG4ndCBiZSBkZXJpdmVkL3Jl cGxhY2VkIHdpdGggdGhlCmNvbnRlbnRzIG9mIHRoZSByZXNwZWN0aXZlIF9zaXplIHByb3Blcmx5 ID8KCgo+IEBAIC00NDQsNiArNTIwLDEyIEBAIGRybV9hdG9taWNfY3J0Y19nZXRfcHJvcGVydHko c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgICAgICAgICAgICAgICAqdmFsID0gc3RhdGUtPmFj dGl2ZTsKPiAgICAgICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9tb2RlX2lk KQo+ICAgICAgICAgICAgICAgICAqdmFsID0gKHN0YXRlLT5tb2RlX2Jsb2IpID8gc3RhdGUtPm1v ZGVfYmxvYi0+YmFzZS5pZCA6IDA7Cj4gKyAgICAgICBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25m aWctPmRlZ2FtbWFfbHV0X3Byb3BlcnR5KQo+ICsgICAgICAgICAgICAgICAqdmFsID0gKHN0YXRl LT5kZWdhbW1hX2x1dCkgPyBzdGF0ZS0+ZGVnYW1tYV9sdXQtPmJhc2UuaWQgOiAwOwo+ICsgICAg ICAgZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5jdG1fcHJvcGVydHkpCj4gKyAgICAgICAg ICAgICAgICp2YWwgPSAoc3RhdGUtPmN0bSkgPyBzdGF0ZS0+Y3RtLT5iYXNlLmlkIDogMDsKPiAr ICAgICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Z2FtbWFfbHV0X3Byb3BlcnR5KQo+ ICsgICAgICAgICAgICAgICAqdmFsID0gKHN0YXRlLT5nYW1tYV9sdXQpID8gc3RhdGUtPmdhbW1h X2x1dC0+YmFzZS5pZCA6IDA7Cj4gICAgICAgICBlbHNlIGlmIChjcnRjLT5mdW5jcy0+YXRvbWlj X2dldF9wcm9wZXJ0eSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuIGNydGMtPmZ1bmNzLT5hdG9t aWNfZ2V0X3Byb3BlcnR5KGNydGMsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiAgICAgICAgIGVs c2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IGluZGV4IDRkYTRmMmEuLjdhYjgw NDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwoKPiBAQCAtMjU1Nyw2ICsy NTY0LDkgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gICAgICAgICBkcm1f cHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKPiArICAgICAgIGRy bV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5kZWdhbW1hX2x1dCk7Cj4gKyAgICAg ICBkcm1fcHJvcGVydHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+Y3RtKTsKPiArICAgICAgIGRy bV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKHN0YXRlLT5nYW1tYV9sdXQpOwpNaWdodCB3YW50 IHRvIGtlZXAgdGhlIGR0b3IgaW4gcmV2ZXJzZSBvcmRlciBjb21wYXJpbmcgdG8gdGhlIGN0b3Ig LQpkdXBsaWNhdGVfc3RhdGUoKQoKCj4gQEAgLTI4NzAsMyArMjg4MCw5NiBAQCB2b2lkIGRybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gICAgICAgICBrZnJlZShzdGF0ZSk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJP TChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSk7Cj4gKwo+ICsvKioK PiArICogZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldCAtIHNldCB0aGUgbGVnYWN5 IGdhbW1hIGNvcnJlY3Rpb24gdGFibGUKPiArICogQGNydGM6IENSVEMgb2JqZWN0Cj4gKyAqIEBy ZWQ6IHJlZCBjb3JyZWN0aW9uIHRhYmxlCj4gKyAqIEBncmVlbjogZ3JlZW4gY29ycmVjdGlvbiB0 YWJsZQo+ICsgKiBAYmx1ZTogZ3JlZW4gY29ycmVjdGlvbiB0YWJsZQo+ICsgKiBAc3RhcnQ6Cj4g KyAqIEBzaXplOiBzaXplIG9mIHRoZSB0YWJsZXMKPiArICoKPiArICogSW1wbGVtZW50cyBzdXBw b3J0IGZvciBsZWdhY3kgZ2FtbWEgY29ycmVjdGlvbiB0YWJsZSBmb3IgZHJpdmVycwo+ICsgKiB0 aGF0IHN1cHBvcnQgY29sb3IgbWFuYWdlbWVudCB0aHJvdWdoIHRoZSBERUdBTU1BX0xVVC9HQU1N QV9MVVQKPiArICogcHJvcGVydGllcy4KPiArICovCj4gK3ZvaWQgZHJtX2F0b21pY19oZWxwZXJf bGVnYWN5X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUxNiAqcmVkLCB1MTYgKmdyZWVuLCB1MTYgKmJsdWUs Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHN0YXJ0 LCB1aW50MzJfdCBzaXplKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y3J0Yy0+ZGV2Owo+ICsgICAgICAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRl di0+bW9kZV9jb25maWc7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7 Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKyAgICAgICBz dHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBOVUxMOwo+ICsgICAgICAgc3RydWN0IGRy bV9jb2xvcl9sdXQgKmJsb2JfZGF0YTsKPiArICAgICAgIGludCBpLCByZXQgPSAwOwo+ICsKPiAr ICAgICAgIHN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhjcnRjLT5kZXYpOwo+ICsgICAg ICAgaWYgKCFzdGF0ZSkKPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ICsKPiArICAgICAgIGJs b2IgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2IoZGV2LAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICogc2l6ZSwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cj4gKwpUbyBr ZWVwIHRoZSBicmluZ3VwL3RlYXJkb3duIHNpbXBsZXIgKGFuZCBjb21wbGV0ZSk6Ck1vdmUgY3Jl YXRlX2Jsb2IoKSBiZWZvcmUgdG8gc3RhdGVfYWxsb2MoKSBhbmQgbnVsbCBjaGVjayBibG9iCmlt bWVkaWF0ZWx5LiBPbmUgd291bGQgbmVlZCB0byBhZGQgdW5yZWZfYmxvYigpIHdoZW4gc3RhdGVf YWxsb2MoKQpmYWlscy4KCj4gKyAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHggPSBjcnRjLT5kZXYt Pm1vZGVfY29uZmlnLmFjcXVpcmVfY3R4Owo+ICtyZXRyeToKPiArICAgICAgIGNydGNfc3RhdGUg PSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiArICAgICAgIGlmIChJ U19FUlIoY3J0Y19zdGF0ZSkpIHsKPiArICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihjcnRj X3N0YXRlKTsKPiArICAgICAgICAgICAgICAgZ290byBmYWlsOwo+ICsgICAgICAgfQo+ICsKPiAr ICAgICAgIC8qIFJlc2V0IERFR0FNTUFfTFVUIGFuZCBDVE0gcHJvcGVydGllcy4gKi8KPiArICAg ICAgIHJldCA9IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoY3J0YywgY3J0Y19zdGF0ZSwK PiArICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmRlZ2FtbWFfbHV0X3Byb3BlcnR5LCAw KTsKPiArICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKQWRkIG5l dyBibGFuayBsaW5lIHBsZWFzZS4KCj4gKyAgICAgICByZXQgPSBkcm1fYXRvbWljX2NydGNfc2V0 X3Byb3BlcnR5KGNydGMsIGNydGNfc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29u ZmlnLT5jdG1fcHJvcGVydHksIDApOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAg ICAgZ290byBmYWlsOwo+ICsKPiArICAgICAgIC8qIFNldCBHQU1NQV9MVVQgd2l0aCBsZWdhY3kg dmFsdWVzLiAqLwo+ICsgICAgICAgaWYgKGJsb2IgPT0gTlVMTCkgewo+ICsgICAgICAgICAgICAg ICByZXQgPSAtRU5PTUVNOwo+ICsgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gKyAgICAgICB9 Cj4gKwo+ICsgICAgICAgYmxvYl9kYXRhID0gKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopIGJsb2It PmRhdGE7Cj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Cj4gKyAgICAgICAg ICAgICAgIGJsb2JfZGF0YVtpXS5yZWQgPSByZWRbaV07Cj4gKyAgICAgICAgICAgICAgIGJsb2Jf ZGF0YVtpXS5ncmVlbiA9IGdyZWVuW2ldOwo+ICsgICAgICAgICAgICAgICBibG9iX2RhdGFbaV0u Ymx1ZSA9IGJsdWVbaV07Cj4gKyAgICAgICB9Cj4gKwpNb3ZlIHRoaXMgbG9vcCBhZnRlciBjcmVh dGVfYmxvYigpCgo+ICsgICAgICAgcmV0ID0gZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eShj cnRjLCBjcnRjX3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+Z2FtbWFf bHV0X3Byb3BlcnR5LCBibG9iLT5iYXNlLmlkKTsKPiArICAgICAgIGlmIChyZXQpCj4gKyAgICAg ICAgICAgICAgIGdvdG8gZmFpbDsKPiArCj4gKyAgICAgICByZXQgPSBkcm1fYXRvbWljX2NvbW1p dChzdGF0ZSk7Cj4gKyAgICAgICBpZiAocmV0ICE9IDApClBsZWFzZSBjaGVjayBpbiBhIGNvbnNp c3RlbnQgd2F5LiBDdXJyZW50bHkgd2UgaGF2ZSByZXQgIT0gMCB2cyByZXQKYW5kIGZvbyA9PSBO VUxMIHZzICFmb28uCgo+ICsgICAgICAgICAgICAgICBnb3RvIGZhaWw7Cj4gKwo+ICsgICAgICAg ZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2IoYmxvYik7Cj4gKwo+ICsgICAgICAgLyogRHJp dmVyIHRha2VzIG93bmVyc2hpcCBvZiBzdGF0ZSBvbiBzdWNjZXNzZnVsIGNvbW1pdC4gKi8KTW92 ZSB0aGUgY29tbWVudCBiZWZvcmUgdW5yZWZlcmVuY2VfYmxvYigpLCBzbyB0aGF0IGl0J3MgY2xv c2VyIHRvCmF0b21pY19jb21taXQoKSA/CgoKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gQEAgLTE1NTQsNiArMTU1 NCw0MSBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ ICAgICAgICAgZGV2LT5tb2RlX2NvbmZpZy5wcm9wX21vZGVfaWQgPSBwcm9wOwo+Cj4gKyAgICAg ICBwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkZXYsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgRFJNX01PREVfUFJPUF9CTE9CLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICJERUdBTU1B X0xVVCIsIDApOwoKSnVzdCB3b25kZXJpbmcgLSAgZG9uJ3Qgd2Ugd2FudCB0aGlzIGFuZCB0aGUg cmVtYWluaW5nIHByb3BlcnRpZXMgdG8KYmUgYXRvbWljIG9ubHkgPyBJIGRvdWJ0IHdlIGhhdmUg dXNlcnNwYWNlIHRoYXQgW3dpbGwgYmUgdXBkYXRlZCB0b10KaGFuZGxlIHRoZXNlLCB5ZXQgbGFj a3MgYXRvbWljLgoKCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4gQEAgLTEwNzUsMyArMTA3 NSwzNiBAQCBpbnQgZHJtX2hlbHBlcl9jcnRjX21vZGVfc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLCBpbnQgeCwgaW50IHksCj4gICAgICAgICByZXR1cm4gZHJtX3BsYW5lX2hlbHBlcl9j b21taXQocGxhbmUsIHBsYW5lX3N0YXRlLCBvbGRfZmIpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0wo ZHJtX2hlbHBlcl9jcnRjX21vZGVfc2V0X2Jhc2UpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9oZWxw ZXJfY3J0Y19lbmFibGVfY29sb3JfbWdtdCAtIGVuYWJsZSBjb2xvciBtYW5hZ2VtZW50IHByb3Bl cnRpZXMKPiArICogQGNydGM6IERSTSBDUlRDCj4gKyAqIEBkZWdhbW1hX2x1dF9zaXplOiB0aGUg c2l6ZSBvZiB0aGUgZGVnYW1tYSBsdXQgKGJlZm9yZSBDU0MpCj4gKyAqIEBnYW1tYV9sdXRfc2l6 ZTogdGhlIHNpemUgb2YgdGhlIGdhbW1hIGx1dCAoYWZ0ZXIgQ1NDKQo+ICsgKgo+ICsgKiBUaGlz IGZ1bmN0aW9uIGxldHMgdGhlIGRyaXZlciBlbmFibGUgdGhlIGNvbG9yIGNvcnJlY3Rpb24gcHJv cGVydGllcyBvbiBhCj4gKyAqIENSVEMuIFRoaXMgaW5jbHVkZXMgMyBkZWdhbW1hLCBjc2MgYW5k IGdhbW1hIHByb3BlcnRpZXMgdGhhdCB1c2Vyc3BhY2UgY2FuCj4gKyAqIHNldCBhbmQgMiBzaXpl IHByb3BlcnRpZXMgdG8gaW5mb3JtIHRoZSB1c2Vyc3BhY2Ugb2YgdGhlIGx1dCBzaXplcy4KPiAr ICovCj4gK3ZvaWQgZHJtX2hlbHBlcl9jcnRjX2VuYWJsZV9jb2xvcl9tZ210KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg ZGVnYW1tYV9sdXRfc2l6ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgZ2FtbWFfbHV0X3NpemUpCj4gK3sKPiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjLT5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcg PSAmZGV2LT5tb2RlX2NvbmZpZzsKPiArCj4gKyAgICAgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9w ZXJ0eSgmY3J0Yy0+YmFzZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bmZpZy0+ZGVnYW1tYV9sdXRfcHJvcGVydHksIDApOwo+ICsgICAgICAgZHJtX29iamVjdF9hdHRh Y2hfcHJvcGVydHkoJmNydGMtPmJhc2UsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25maWctPmN0bV9wcm9wZXJ0eSwgMCk7Cj4gKyAgICAgICBkcm1fb2JqZWN0X2F0dGFj aF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbmZpZy0+Z2FtbWFfbHV0X3Byb3BlcnR5LCAwKTsKPiArCj4gKyAgICAgICBkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbmZpZy0+ZGVnYW1tYV9sdXRfc2l6ZV9wcm9wZXJ0eSwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZ2FtbWFfbHV0X3NpemUpOwo+ICsgICAgICAg ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25maWctPmdhbW1hX2x1dF9zaXplX3Byb3BlcnR5LAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FtbWFfbHV0X3NpemUpOwpXb25kZXJp bmcgaWYgd2UgY2Fubm90IGhhdmUgdGhlc2UgbGlzdGVkIGxpa2UgZWxzZXdoZXJlIGluIHRoZSBw YXRjaC4KSS5lLiBoYXZlIHRoZSBfc2l6ZSBwcm9wZXJ0eSBqdXN0IGFmdGVyIGl0cyByZXNwZWN0 aXZlIGNvdW50ZXJwYXJ0LgoKUmVnYXJkcywKRW1pbApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK