From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v10 1/3] drm: Add HDMI colorspace property Date: Fri, 1 Feb 2019 20:50:11 +0200 Message-ID: <20190201185011.GB20097@intel.com> References: <1548852866-32349-1-git-send-email-uma.shankar@intel.com> <1548852866-32349-2-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1548852866-32349-2-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Uma Shankar Cc: intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com, maarten.lankhorst@intel.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMzAsIDIwMTkgYXQgMDY6MjQ6MjRQTSArMDUzMCwgVW1hIFNoYW5rYXIgd3Jv dGU6Cj4gQ3JlYXRlIGEgbmV3IGNvbm5lY3RvciBwcm9wZXJ0eSB0byBwcm9ncmFtIGNvbG9yc3Bh Y2UgdG8gc2luawo+IGRldmljZXMuIE1vZGVybiBzaW5rIGRldmljZXMgc3VwcG9ydCBtb3JlIHRo YW4gMSB0eXBlIG9mCj4gY29sb3JzcGFjZSBsaWtlIDYwMSwgNzA5LCBCVDIwMjAgZXRjLiBUaGlz IGhlbHBzIHRvIHN3aXRjaAo+IGJhc2VkIG9uIGNvbnRlbnQgdHlwZSB3aGljaCBpcyB0byBiZSBk aXNwbGF5ZWQuIFRoZSBkZWNpc2lvbgo+IGxpZXMgd2l0aCBjb21wb3NpdG9ycyBhcyB0byBpbiB3 aGljaCBzY2VuYXJpb3MsIGEgcGFydGljdWxhcgo+IGNvbG9yc3BhY2Ugd2lsbCBiZSBwaWNrZWQu Cj4gCj4gVGhpcyB3aWxsIGJlIGhlbHBmdWwgbW9zdGx5IHRvIHN3aXRjaCB0byBoaWdoZXIgZ2Ft dXQgY29sb3JzcGFjZXMKPiBsaWtlIEJUMjAyMCB3aGVuIHRoZSBtZWRpYSBjb250ZW50IGlzIGVu Y29kZWQgYXMgQlQyMDIwLiBUaGVyZWJ5Cj4gZ2l2aW5nIGEgZ29vZCB2aXN1YWwgZXhwZXJpZW5j ZSB0byB1c2Vycy4KPiAKPiBUaGUgZXhwZWN0YXRpb24gZnJvbSB1c2Vyc3BhY2UgaXMgdGhhdCBp dCBzaG91bGQgcGFyc2UgdGhlIEVESUQKPiBhbmQgZ2V0IHN1cHBvcnRlZCBjb2xvcnNwYWNlcy4g VXNlIHRoaXMgcHJvcGVydHkgYW5kIHN3aXRjaCB0byB0aGUKPiBvbmUgc3VwcG9ydGVkLiBTaW5r IHN1cHBvcnRlZCBjb2xvcnNwYWNlcyBzaG91bGQgYmUgcmV0cmlldmVkIGJ5Cj4gdXNlcnNwYWNl IGZyb20gRURJRCBhbmQgZHJpdmVyIHdpbGwgbm90IGV4cGxpY2l0bHkgZXhwb3NlIHRoZW0uCj4g Cj4gQmFzaWNhbGx5IHRoZSBleHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpczoKPiAgLSBTZXQg dXAgQ1JUQyBERUdBTU1BL0NUTS9HQU1NQSB0byBjb252ZXJ0IHRvIHNvbWUgc2luawo+ICAgIGNv bG9yc3BhY2UKPiAgLSBTZXQgdGhpcyBuZXcgcHJvcGVydHkgdG8gbGV0IHRoZSBzaW5rIGtub3cg d2hhdCBpdAo+ICAgIGNvbnZlcnRlZCB0aGUgQ1JUQyBvdXRwdXQgdG8uCj4gCj4gdjI6IEFkZHJl c3NlZCBNYWFydGVuIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cy4gRW5oYW5jZWQKPiB0aGUg Y29sb3JzcGFjZSBlbnVtIHRvIGluY29ycG9yYXRlIGJvdGggSERNSSBhbmQgRFAgc3VwcG9ydGVk Cj4gY29sb3JzcGFjZXMuIEFsc28sIGFkZGVkIGEgZGVmYXVsdCBvcHRpb24gZm9yIGNvbG9yc3Bh Y2UuCj4gCj4gdjM6IFJlbW92ZWQgQWRvYmUgcmVmZXJlbmNlcyBmcm9tIGVudW0gZGVmaW5pdGlv bnMgYXMgcGVyCj4gVmlsbGUsIEhhbnMgVmVya3VpbCBhbmQgSm9uYXMgS2FybG1hbiBzdWdnZXN0 aW9ucy4gQ2hhbmdlZAo+IERlZmF1bHQgdG8gYW4gdW5zZXQgc3RhdGUgd2hlcmUgZHJpdmVyIHdp bGwgYXNzaWduIHRoZSBjb2xvcnNwYWNlCj4gaXMgbm90IGNob3NlbiBieSB1c2VyLCBzdWdnZXN0 ZWQgYnkgVmlsbGUgYW5kIE1hYXJ0ZW4uIEFkZHJlc3NlZAo+IG90aGVyIG1pc2MgcmV2aWV3IGNv bW1lbnRzIGZyb20gTWFhcnRlbi4gU3BsaXQgdGhlIGNoYW5nZXMgdG8KPiBoYXZlIHNlcGFyYXRl IGNvbG9yc3BhY2UgcHJvcGVydHkgZm9yIERQIGFuZCBIRE1JLgo+IAo+IHY0OiBBZGRyZXNzZWQg Q2hyaXMgYW5kIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzLCBhbmQgY3JlYXRlZCBhCj4gY29tbW9u IGNvbG9yc3BhY2UgcHJvcGVydHkgZm9yIERQIGFuZCBIRE1JLCBmaWx0ZXJlZCB0aGUgbGlzdAo+ IGJhc2VkIG9uIHRoZSBjb2xvcnNwYWNlcyBzdXBwb3J0ZWQgYnkgdGhlIHJlc3BlY3RpdmUgcHJv dG9jb2wKPiBzdGFuZGFyZC4KPiAKPiB2NTogTWFkZSB0aGUgcHJvcGVydHkgY3JlYXRpb24gaGVs cGVyIGFjY2VwdCBlbnVtIGxpc3QgYmFzZWQgb24KPiBwbGF0Zm9ybSBjYXBhYmlsdGllcyBhcyBz dWdnZXN0ZWQgYnkgU2hhc2hhbmsuIENvbnNvbGlkYXRlZCBIRE1JCj4gYW5kIERQIHByb3BlcnR5 IGNyZWF0aW9uIGluIHRoZSBjb21tb24gaGVscGVyLgo+IAo+IHY2OiBBZGRyZXNzZWQgU2hhc2hh bmsncyByZXZpZXcgY29tbWVudHMuCj4gCj4gdjc6IEFkZGVkIGRlZmluZXMgaW5zdGVhZCBvZiBl bnVtIGluIHVhcGkgYXMgcGVyIEJyaWFuIFN0YXJrZXkncwo+IHN1Z2dlc3Rpb24gaW4gb3JkZXIg dG8gZ28gd2l0aCBzdHJpbmcgbWF0Y2hpbmcgYXQgdXNlcnNwYWNlLiBVcGRhdGVkCj4gdGhlIGNv bW1pdCBtZXNzYWdlIHRvIGFkZCBtb3JlIGRldGFpbHMgYXMgd2VsbCBrZXJuZWwgZG9jcy4KPiAK PiB2ODogQWRkcmVzc2VkIE1hYXJ0ZW4ncyByZXZpZXcgY29tbWVudHMuCj4gCj4gdjk6IFJlbW92 ZWQgbWFjcm8gZGVmaW5lcyBmcm9tIHVhcGkgYXMgcGVyIEJyaWFuIFN0YXJrZXkgYW5kIERhbmll bAo+IFN0b25lJ3MgY29tbWVudHMgYW5kIG1vdmVkIHRvIGRybSBpbmNsdWRlIGZpbGUuIE1vdmVk IGJhY2sgdG8gb2xkZXIKPiBkZXNpZ24gd2l0aCBleHBvc2luZyBhbGwgSERNSSBjb2xvcnNwYWNl cyB0byB1c2Vyc3BhY2Ugc2luY2UgaW5mb2ZyYW1lCj4gY2FwYWJpbGl0eSBpcyB0aGVyZSBldmVu IG9uIGxlZ2FjeSBwbGF0Zm9ybXMsIGFzIHBlciBWaWxsZSdzIHJldmlldwo+IGNvbW1lbnRzLgo+ IAo+IHYxMDogRml4ZWQgc3BhcnNlIHdhcm5pbmdzLCB1cGRhdGVkIHRoZSBSQiBmcm9tIE1hYXJ0 ZW4gYW5kIEphbmkncyBhY2suCj4gCj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KPiBBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFA aW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5r aG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y191YXBpLmMgfCAgNCArKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgIHwg NzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJt L2RybV9jb25uZWN0b3IuaCAgICAgICB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrKwo+ICAz IGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X3VhcGkuYwo+IGluZGV4IDlhMWY0MWEuLjliNWQ0NGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfdWFwaS5jCj4gQEAgLTc0Niw2ICs3NDYsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29u bmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJ CQlyZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gIAkJc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9 IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5jb2xvcnNwYWNlX3By b3BlcnR5KSB7Cj4gKwkJc3RhdGUtPmNvbG9yc3BhY2UgPSB2YWw7Cj4gIAl9IGVsc2UgaWYgKHBy b3BlcnR5ID09IGNvbmZpZy0+d3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5KSB7Cj4gIAkJc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgTlVMTCwg dmFsKTsKPiAgCQlpbnQgcmV0ID0gZHJtX2F0b21pY19zZXRfd3JpdGViYWNrX2ZiX2Zvcl9jb25u ZWN0b3Ioc3RhdGUsIGZiKTsKPiBAQCAtODE0LDYgKzgxNiw4IEBAIHN0YXRpYyBpbnQgZHJtX2F0 b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gIAkJKnZhbCA9IHN0YXRlLT5waWN0dXJlX2FzcGVjdF9yYXRpbzsKPiAgCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29uZmlnLT5jb250ZW50X3R5cGVfcHJvcGVydHkpIHsKPiAgCQkqdmFs ID0gc3RhdGUtPmNvbnRlbnRfdHlwZTsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29ubmVj dG9yLT5jb2xvcnNwYWNlX3Byb3BlcnR5KSB7Cj4gKwkJKnZhbCA9IHN0YXRlLT5jb2xvcnNwYWNl Owo+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPnNjYWxpbmdfbW9kZV9wcm9w ZXJ0eSkgewo+ICAJCSp2YWwgPSBzdGF0ZS0+c2NhbGluZ19tb2RlOwo+ICAJfSBlbHNlIGlmIChw cm9wZXJ0eSA9PSBjb25uZWN0b3ItPmNvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSkgewo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYwo+IGluZGV4IDg0NzUzOTYuLmVkMTBkZDkgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY29ubmVjdG9yLmMKPiBAQCAtODI2LDYgKzgyNiwzMCBAQCBpbnQgZHJtX2Rpc3BsYXlf aW5mb19zZXRfYnVzX2Zvcm1hdHMoc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8sCj4gIH07 Cj4gIERSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9jb250ZW50X3Byb3RlY3Rpb25fbmFtZSwgZHJt X2NwX2VudW1fbGlzdCkKPiAgCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9s aXN0IGhkbWlfY29sb3JzcGFjZXNbXSA9IHsKPiArCS8qIEZvciBEZWZhdWx0IGNhc2UsIGRyaXZl ciB3aWxsIHNldCB0aGUgY29sb3JzcGFjZSAqLwo+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9E RUZBVUxULCAiRGVmYXVsdCIgfSwKPiArCS8qIFN0YW5kYXJkIERlZmluaXRpb24gQ29sb3JpbWV0 cnkgYmFzZWQgb24gQ0VBIDg2MSAqLwo+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9JVFVfNjAx LCAiSVRVXzYwMSIgfSwKClRoZSBzcGVjIG5vIGxvbmdlciBoYXMgdGhlIEJULjYwMSBub3RlIGhl cmUuIFdoaWNoIEkgZ3Vlc3MgbWFrZXMgc2Vuc2UKc2luY2UgQlQuNjAxIGRpZG4ndCBldmVuIHNw ZWNpZnkgYW55IGNvbG9yIHByaW1hcmllcyBpbml0aWFsbHkuIExhdGVyCnZlcnNpb25zIGRvIGJ5 IHRoZXkgaGF2ZSBkaXN0aW5jdCBwcmltYXJpZXMgZm9yIE5UU0MgdnMuIFBBTC4gVGhlIHNwZWMK Y2FsbHMgdGhpcyBqdXN0IFNNUFRFIDE3ME0gbm93LCBzbyBJIHRoaW5rIHdlIHNob3VsZCBkbyB0 aGUgc2FtZS4KCj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0lUVV83MDksICJJVFVfNzA5IiB9 LAo+ICsJLyogU3RhbmRhcmQgRGVmaW5pdGlvbiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5 NjYtMi00ICovCj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1hWX1lDQ182MDEsICJYVl9ZQ0Nf NjAxIiB9LAo+ICsJLyogSGlnaCBEZWZpbml0aW9uIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2 MTk2Ni0yLTQgKi8KPiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfWFZfWUNDXzcwOSwgIlhWX1lD Q183MDkiIH0sCj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi0xL0FtZW5k bWVudCAxICovCj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1NfWUNDXzYwMSwgIlNfWUNDXzYw MSIgfSwKPiArCS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2Ni0yLTUgWzMzXSAqLwo+ ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9PUFlDQ182MDEsICJvcFlDQ182MDEiIH0sCgpUaGUg c3BlbGxpbmcgaXMgcmF0aGVyIGluY29uc2lzdGVudCBoZXJlLiBYVl8gdnMuIFNfIHZzLiBvcC4g V2h5IG5vdCB1c2UKdGhlIHNhbWUgc3BlbGxpbmcgc3R5bGUgZm9yIGFsbD8KCj4gKwkvKiBDb2xv cmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi01ICovCj4gKwl7IERSTV9NT0RFX0NPTE9SSU1F VFJZX09QUkdCLCAib3BSR0IiIH0sCj4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJVFUtUiBC VC4yMDIwICovCj4gKwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0JUMjAyMF9SR0IsICJCVDIwMjBf UkdCIiB9LAo+ICsJLyogQ29sb3JpbWV0cnkgYmFzZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+ICsJ eyBEUk1fTU9ERV9DT0xPUklNRVRSWV9CVDIwMjBfWUNDLCAiQlQyMDIwX1lDQyIgfSwKPiArCS8q IENvbG9yaW1ldHJ5IGJhc2VkIG9uIElUVS1SIEJULjIwMjAgKi8KPiArCXsgRFJNX01PREVfQ09M T1JJTUVUUllfQlQyMDIwX0NZQ0MsICJCVDIwMjBfQ1lDQyIgfSwKCiJCVDIwMjAiIHZzLiAiSVRV XzcwOSIgaXMgcmF0aGVyIGluY29uc2lzdGVudCBhcyB3ZWxsLgoKV2UgYWxzbyBzZWVtIHRvIGJl IG1pc3NpbmcgdGhlIHR3byBEQ0ktUDMgdGhpbmdzIGhlcmUuCgo+ICt9Owo+ICsKPiAgLyoqCj4g ICAqIERPQzogc3RhbmRhcmQgY29ubmVjdG9yIHByb3BlcnRpZXMKPiAgICoKPiBAQCAtMTU0OCw2 ICsxNTcyLDU3IEBAIGludCBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY3JlYXRlX2Fz cGVjdF9yYXRpb19wcm9wZXJ0eSk7Cj4gIAo+ICAvKioKPiArICogRE9DOiBzdGFuZGFyZCBjb25u ZWN0b3IgcHJvcGVydGllcwo+ICsgKgo+ICsgKiBDb2xvcnNwYWNlOgo+ICsgKiAgICAgZHJtX21v ZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJvcGVydHkgLSBjcmVhdGUgY29sb3JzcGFjZSBwcm9wZXJ0 eQo+ICsgKiAgICAgVGhpcyBwcm9wZXJ0eSBoZWxwcyBzZWxlY3QgYSBzdWl0YWJsZSBjb2xvcnNw YWNlIGJhc2VkIG9uIHRoZSBzaW5rCj4gKyAqICAgICBjYXBhYmlsaXR5LiBNb2Rlcm4gc2luayBk ZXZpY2VzIHN1cHBvcnQgd2lkZXIgZ2FtdXQgbGlrZSBCVDIwMjAuCj4gKyAqICAgICBUaGlzIGhl bHBzIHN3aXRjaCB0byBCVDIwMjAgbW9kZSBpZiB0aGUgQlQyMDIwIGVuY29kZWQgdmlkZW8gc3Ry ZWFtCj4gKyAqICAgICBpcyBiZWluZyBwbGF5ZWQgYnkgdGhlIHVzZXIsIHNhbWUgZm9yIGFueSBv dGhlciBjb2xvcnNwYWNlLiBUaGVyZWJ5Cj4gKyAqICAgICBnaXZpbmcgYSBnb29kIHZpc3VhbCBl eHBlcmllbmNlIHRvIHVzZXJzLgo+ICsgKgo+ICsgKiAgICAgVGhlIGV4cGVjdGF0aW9uIGZyb20g dXNlcnNwYWNlIGlzIHRoYXQgaXQgc2hvdWxkIHBhcnNlIHRoZSBFRElECj4gKyAqICAgICBhbmQg Z2V0IHN1cHBvcnRlZCBjb2xvcnNwYWNlcy4gVXNlIHRoaXMgcHJvcGVydHkgYW5kIHN3aXRjaCB0 byB0aGUKPiArICogICAgIG9uZSBzdXBwb3J0ZWQuIFNpbmsgc3VwcG9ydGVkIGNvbG9yc3BhY2Vz IHNob3VsZCBiZSByZXRyaWV2ZWQgYnkKPiArICogICAgIHVzZXJzcGFjZSBmcm9tIEVESUQgYW5k IGRyaXZlciB3aWxsIG5vdCBleHBsaWNpdGx5IGV4cG9zZSB0aGVtLgo+ICsgKgo+ICsgKiAgICAg QmFzaWNhbGx5IHRoZSBleHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpczoKPiArICogICAgICAt IFNldCB1cCBDUlRDIERFR0FNTUEvQ1RNL0dBTU1BIHRvIGNvbnZlcnQgdG8gc29tZSBzaW5rCj4g KyAqICAgICAgICBjb2xvcnNwYWNlCj4gKyAqICAgICAgLSBTZXQgdGhpcyBuZXcgcHJvcGVydHkg dG8gbGV0IHRoZSBzaW5rIGtub3cgd2hhdCBpdAo+ICsgKiAgICAgICAgY29udmVydGVkIHRoZSBD UlRDIG91dHB1dCB0by4KPiArICogICAgICAtIFRoaXMgcHJvcGVydHkgaXMganVzdCB0byBpbmZv cm0gc2luayB3aGF0IGNvbG9yc3BhY2UKPiArICogICAgICAgIHNvdXJjZSBpcyB0cnlpbmcgdG8g ZHJpdmUuCj4gKyAqCj4gKyAqIENhbGxlZCBieSBhIGRyaXZlciB0aGUgZmlyc3QgdGltZSBpdCdz IG5lZWRlZCwgbXVzdCBiZSBhdHRhY2hlZCB0byBkZXNpcmVkCj4gKyAqIGNvbm5lY3RvcnMuCj4g KyAqLwo+ICtpbnQgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJvcGVydHkoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+ZGV2Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCj4gKwlp ZiAoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUEg fHwKPiArCSAgICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RP Ul9IRE1JQikgewo+ICsJCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2LCBEUk1f TU9ERV9QUk9QX0VOVU0sCj4gKwkJCQkJCSJDb2xvcnNwYWNlIiwKPiArCQkJCQkJaGRtaV9jb2xv cnNwYWNlcywKPiArCQkJCQkJQVJSQVlfU0laRShoZG1pX2NvbG9yc3BhY2VzKSk7Cj4gKwkJaWYg KCFwcm9wKQo+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiArCX0gZWxzZSB7Cj4gKwkJRFJNX0RFQlVH X0tNUygiQ29sb3JzcGFjZSBwcm9wZXJ0eSBub3Qgc3VwcG9ydGVkXG4iKTsKPiArCQlyZXR1cm4g MDsKPiArCX0KPiArCj4gKwljb25uZWN0b3ItPmNvbG9yc3BhY2VfcHJvcGVydHkgPSBwcm9wOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX21vZGVfY3JlYXRlX2Nv bG9yc3BhY2VfcHJvcGVydHkpOwo+ICsKPiArLyoqCj4gICAqIGRybV9tb2RlX2NyZWF0ZV9jb250 ZW50X3R5cGVfcHJvcGVydHkgLSBjcmVhdGUgY29udGVudCB0eXBlIHByb3BlcnR5Cj4gICAqIEBk ZXY6IERSTSBkZXZpY2UKPiAgICoKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5l Y3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggOTk0MTYxMy4uMjk0 OTViMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiArKysgYi9p bmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiBAQCAtMjUzLDYgKzI1MywzOCBAQCBlbnVtIGRy bV9wYW5lbF9vcmllbnRhdGlvbiB7Cj4gIAlEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9SSUdI VF9VUCwKPiAgfTsKPiAgCj4gKy8qCj4gKyAqIFRoaXMgaXMgYSBjb25zb2xpZGF0ZWQgY29sb3Jp bWV0cnkgbGlzdCBzdXBwb3J0ZWQgYnkgSERNSSBhbmQKPiArICogRFAgcHJvdG9jb2wgc3RhbmRh cmQuIFRoZSByZXNwZWN0aXZlIGNvbm5lY3RvcnMgd2lsbCByZWdpc3Rlcgo+ICsgKiBhIHByb3Bl cnR5IHdpdGggdGhlIHN1YnNldCBvZiB0aGlzIGxpc3QgKHN1cHBvcnRlZCBieSB0aGF0Cj4gKyAq IHJlc3BlY3RpdmUgcHJvdG9jb2wpLiBVc2Vyc3BhY2Ugd2lsbCBzZXQgdGhlIGNvbG9yc3BhY2Ug dGhyb3VnaAo+ICsgKiBhIGNvbG9yc3BhY2UgcHJvcGVydHkgd2hpY2ggd2lsbCBiZSBjcmVhdGVk IGFuZCBleHBvc2VkIHRvCj4gKyAqIHVzZXJzcGFjZS4KPiArICovCj4gKwo+ICsvKiBGb3IgRGVm YXVsdCBjYXNlLCBkcml2ZXIgd2lsbCBzZXQgdGhlIGNvbG9yc3BhY2UgKi8KPiArI2RlZmluZSBE Uk1fTU9ERV9DT0xPUklNRVRSWV9ERUZBVUxUCQkJMAo+ICsvKiBDRUEgODYxIE5vcm1hbCBDb2xv cmltZXRyeSBvcHRpb25zICovCj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfSVRVXzYw MQkJCTEKPiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9JVFVfNzA5CQkJMgo+ICsvKiBD RUEgODYxIEV4dGVuZGVkIENvbG9yaW1ldHJ5IE9wdGlvbnMgKi8KPiArI2RlZmluZSBEUk1fTU9E RV9DT0xPUklNRVRSWV9YVl9ZQ0NfNjAxCQkJMwo+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1F VFJZX1hWX1lDQ183MDkJCQk0Cj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfU19ZQ0Nf NjAxCQkJNQo+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX09QWUNDXzYwMQkJCTYKPiAr I2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9PUFJHQgkJCTcKPiArI2RlZmluZSBEUk1fTU9E RV9DT0xPUklNRVRSWV9CVDIwMjBfUkdCCQkJOAo+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1F VFJZX0JUMjAyMF9ZQ0MJCQk5Cj4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfQlQyMDIw X0NZQ0MJCTEwCj4gKy8qIERQIE1TQSBDb2xvcmltZXRyeSBPcHRpb25zICovCj4gKyNkZWZpbmUg RFJNX01PREVfRFBfQ09MT1JJTUVUUllfWV9DQkNSX0lUVV82MDEJCTExCj4gKyNkZWZpbmUgRFJN X01PREVfRFBfQ09MT1JJTUVUUllfWV9DQkNSX0lUVV83MDkJCTEyCj4gKyNkZWZpbmUgRFJNX01P REVfRFBfQ09MT1JJTUVUUllfU1JHQgkJCTEzCj4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJ TUVUUllfUkdCX1dJREVfR0FNVVQJCTE0Cj4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVU UllfU0NSR0IJCQkxNQo+ICsjZGVmaW5lIERSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX0RDSV9QMwkJ CTE2Cj4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfQ1VTVE9NX0NPTE9SX1BST0ZJ TEUJMTcKCkkgdGhpbmsgc29tZSBraW5kIG9mIG1hY3JvIHRvIGRlZmluZSB0aGVzZSB3b3VsZCBi ZSBnb29kLiBBc3N1bWluZyB3ZSdyZQp0cnlpbmcgZGlyZWN0bHkgaW50ZXJwcmV0IHRoZXNlIGFz IHRoZSBDL0VDL0FDRSBiaXRzLiBJIGNhbid0IHJlbWVtYmVyCmlmIG11bHRpcGxlIGVudW0gdmFs dWVzIGNhbiBoYXZlIHRoZSBzYW1lIGludGVnZXIgdmFsdWUuIElmIG5vdCB3ZSdkCmFsc28gbmVl ZCBhIFlDYkNyIHZzLiBSR0IgYml0IGluIHRoZXJlIHNvbWV3aGVyZS4gQXNzdW1pbmcgd2Ugd2Fu dCB0bwprZWVwIFJHQiBhbmQgWUNiQ3Igc2VwYXJhdGUuIEN1cnJlbnRseSBvbmx5IEJULjIwMjAg aGFzIGEgY29uZmxpY3QKYmV0d2VlbiB0aGUgdHdvLgoKPiArCj4gIC8qKgo+ICAgKiBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfaW5mbyAtIHJ1bnRpbWUgZGF0YSBhYm91dCB0aGUgY29ubmVjdGVkIHNpbmsK PiAgICoKPiBAQCAtNTAzLDYgKzUzNSwxMyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7 Cj4gIAl1bnNpZ25lZCBpbnQgY29udGVudF9wcm90ZWN0aW9uOwo+ICAKPiAgCS8qKgo+ICsJICog QGNvbG9yc3BhY2U6IFN0YXRlIHZhcmlhYmxlIGZvciBDb25uZWN0b3IgcHJvcGVydHkgdG8gcmVx dWVzdAo+ICsJICogY29sb3JzcGFjZSBjaGFuZ2Ugb24gU2luay4gVGhpcyBpcyBtb3N0IGNvbW1v bmx5IHVzZWQgdG8gc3dpdGNoCj4gKwkgKiB0byB3aWRlciBjb2xvciBnYW11dHMgbGlrZSBCVDIw MjAuCj4gKwkgKi8KPiArCXUzMiBjb2xvcnNwYWNlOwo+ICsKPiArCS8qKgo+ICAJICogQHdyaXRl YmFja19qb2I6IFdyaXRlYmFjayBqb2IgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzCj4gIAkgKgo+ ICAJICogSG9sZHMgdGhlIGZyYW1lYnVmZmVyIGFuZCBvdXQtZmVuY2UgZm9yIGEgd3JpdGViYWNr IGNvbm5lY3Rvci4gQXMKPiBAQCAtOTk1LDYgKzEwMzQsMTIgQEAgc3RydWN0IGRybV9jb25uZWN0 b3Igewo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5 Owo+ICAKPiAgCS8qKgo+ICsJICogQGNvbG9yc3BhY2VfcHJvcGVydHk6IENvbm5lY3RvciBwcm9w ZXJ0eSB0byBzZXQgdGhlIHN1aXRhYmxlCj4gKwkgKiBjb2xvcnNwYWNlIHN1cHBvcnRlZCBieSB0 aGUgc2luay4KPiArCSAqLwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29sb3JzcGFjZV9wcm9w ZXJ0eTsKPiArCj4gKwkvKioKPiAgCSAqIEBwYXRoX2Jsb2JfcHRyOgo+ICAJICoKPiAgCSAqIERS TSBibG9iIHByb3BlcnR5IGRhdGEgZm9yIHRoZSBEUCBNU1QgcGF0aCBwcm9wZXJ0eS4gVGhpcyBz aG91bGQgb25seQo+IEBAIC0xMjY5LDYgKzEzMTQsNyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRh Y2hfdnJyX2NhcGFibGVfcHJvcGVydHkoCj4gIGludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250 ZW50X3Byb3RlY3Rpb25fcHJvcGVydHkoCj4gIAkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3Rvcik7Cj4gIGludCBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwo+ICtpbnQgZHJtX21vZGVfY3JlYXRlX2NvbG9yc3BhY2VfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gIGludCBkcm1fbW9kZV9j cmVhdGVfY29udGVudF90eXBlX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2 b2lkIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfY29udGVudF90eXBlKHN0cnVjdCBoZG1pX2F2aV9p bmZvZnJhbWUgKmZyYW1lLAo+ICAJCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSk7Cj4gLS0gCj4gMS45LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==