From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v6 11/28] drm/dsc: Add helpers for DSC picture parameter set infoframes Date: Thu, 1 Nov 2018 16:54:14 -0700 Message-ID: <20181101235414.GJ3481@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-12-manasi.d.navare@intel.com> <20181101164628.GG9144@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: <20181101164628.GG9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Anusha Srivatsa , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzIGZvciByZXZpZXdpbmcgdGhpcyBwYXRjaC4gRmluZCBzb21lIGNvbW1lbnRzIGlubGlu ZQoKT24gVGh1LCBOb3YgMDEsIDIwMTggYXQgMDY6NDY6MjhQTSArMDIwMCwgVmlsbGUgU3lyasOk bMOkIHdyb3RlOgo+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDAzOjI4OjIzUE0gLTA3MDAsIE1h bmFzaSBOYXZhcmUgd3JvdGU6Cj4gPiBBY2NvcmRpbmcgdG8gRGlzcGxheSBTdHJlYW0gY29tcHJl c3Npb24gc3BlYyAxLjIsIHRoZSBwaWN0dXJlCj4gPiBwYXJhbWV0ZXIgc2V0IG1ldGFkYXRhIGlz IHNlbnQgZnJvbSBzb3VyY2UgdG8gc2luayBkZXZpY2UKPiA+IHVzaW5nIHRoZSBEUCBTZWNvbmRh cnkgZGF0YSBwYWNrZXQuIEFuIGluZm9mcmFtZSBpcyBmb3JtZWQKPiA+IGZvciB0aGUgUFBTIFNE UCBoZWFkZXIgYW5kIFBQUyBTRFAgcGF5bG9hZCBieXRlcy4KPiA+IFRoaXMgcGF0Y2ggYWRkcyBo ZWxwZXJzIHRvIGZpbGwgdGhlIFBQUyBTRFAgaGVhZGVyCj4gPiBhbmQgUFBTIFNEUCBwYXlsb2Fk IGFjY29yZGluZyB0byB0aGUgRFNDIDEuMiBzcGVjaWZpY2F0aW9uLgo+ID4gCj4gPiB2NjoKPiA+ ICogVXNlIHByb3BlciBzZXF1ZW5jZSBwb2ludHMgZm9yIGJyZWFraW5nIGRvd24gdGhlCj4gPiBh c3NpZ25tZW50cyAoQ2hyaXMgV2lsc29uKQo+ID4gKiBVc2UgU1BEWCBpZGVudGlmaWVyCj4gPiB2 NToKPiA+IERvIG5vdCB1c2UgYml0ZmllbGRzIGZvciBEUk0gc3RydWN0cyAoSmFuaSBOKQo+ID4g djQ6Cj4gPiAqIFVzZSBEU0MgY29uc3RhbnRzIGZvciBwYXJhbXMgdGhhdCBkb250IGNoYW5nZSBh Y3Jvc3MKPiA+IGNvbmZpZ3VyYXRpb25zCj4gPiB2MzoKPiA+ICogQWRkIHJlZmVyZW5jZSB0byBh ZGRlZCBrZXJuZWwtZG9jcyBpbiBEb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0 Cj4gPiAoRGFuaWVsIFZldHRlcikKPiA+IAo+ID4gdjI6Cj4gPiAqIEFkZCBFWFBPUlRfU1lNQk9M IGZvciB0aGUgZHJtIGZ1bmN0aW9ucyAoTWFuYXNpKQo+ID4gCj4gPiBDYzogZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51 eC5pbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4gPiBDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwu Y29tPgo+ID4gQ2M6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgo+ID4g U2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4K PiA+IEFja2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4KPiA+ IC0tLQo+ID4gIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgfCAgMTIgKysK PiA+ICBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAgICAgIHwgICAyICstCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9kc2MuYyAgICAgICAgICAgICB8IDIyMyArKysrKysrKysrKysr KysrKysrKysrKysrKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9kc2MuaCAgICAgICAgICAgICAgICAg fCAgMjIgKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2RzYy5j Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMu cnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAo+ID4gaW5kZXggNGI0 ZGMyMzZlZjZmLi5iNDIyZWI4ZWRmMTYgMTAwNjQ0Cj4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dw dS9kcm0ta21zLWhlbHBlcnMucnN0Cj4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0Cj4gPiBAQCAtMjMyLDYgKzIzMiwxOCBAQCBNSVBJIERTSSBIZWxwZXIgRnVu Y3Rpb25zIFJlZmVyZW5jZQo+ID4gIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJt X21pcGlfZHNpLmMKPiA+ICAgICA6ZXhwb3J0Ogo+ID4gIAo+ID4gK0Rpc3BsYXkgU3RyZWFtIENv bXByZXNzaW9uIEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlCj4gPiArPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ICsKPiA+ICsuLiBrZXJu ZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9kc2MuYwo+ID4gKyAgIDpkb2M6IGRzYyBoZWxw ZXJzCj4gPiArCj4gPiArLi4ga2VybmVsLWRvYzo6IGluY2x1ZGUvZHJtL2RybV9kc2MuaAo+ID4g KyAgIDppbnRlcm5hbDoKPiA+ICsKPiA+ICsuLiBrZXJuZWwtZG9jOjogZHJpdmVycy9ncHUvZHJt L2RybV9kc2MuYwo+ID4gKyAgIDpleHBvcnQ6Cj4gPiArCj4gPiAgT3V0cHV0IFByb2JpbmcgSGVs cGVyIEZ1bmN0aW9ucyBSZWZlcmVuY2UKPiA+ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtl ZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ID4gaW5kZXggNTc2YmE5ODVlMTM4Li4z YTNlNmZiNmQ0NzYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ID4gQEAgLTMyLDcgKzMyLDcgQEAgZHJt LSQoQ09ORklHX0FHUCkgKz0gZHJtX2FncHN1cHBvcnQubwo+ID4gIGRybS0kKENPTkZJR19ERUJV R19GUykgKz0gZHJtX2RlYnVnZnMubyBkcm1fZGVidWdmc19jcmMubwo+ID4gIGRybS0kKENPTkZJ R19EUk1fTE9BRF9FRElEX0ZJUk1XQVJFKSArPSBkcm1fZWRpZF9sb2FkLm8KPiA+ICAKPiA+IC1k cm1fa21zX2hlbHBlci15IDo9IGRybV9jcnRjX2hlbHBlci5vIGRybV9kcF9oZWxwZXIubyBkcm1f cHJvYmVfaGVscGVyLm8gXAo+ID4gK2RybV9rbXNfaGVscGVyLXkgOj0gZHJtX2NydGNfaGVscGVy Lm8gZHJtX2RwX2hlbHBlci5vIGRybV9kc2MubyBkcm1fcHJvYmVfaGVscGVyLm8gXAo+ID4gIAkJ ZHJtX3BsYW5lX2hlbHBlci5vIGRybV9kcF9tc3RfdG9wb2xvZ3kubyBkcm1fYXRvbWljX2hlbHBl ci5vIFwKPiA+ICAJCWRybV9rbXNfaGVscGVyX2NvbW1vbi5vIGRybV9kcF9kdWFsX21vZGVfaGVs cGVyLm8gXAo+ID4gIAkJZHJtX3NpbXBsZV9rbXNfaGVscGVyLm8gZHJtX21vZGVzZXRfaGVscGVy Lm8gXAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHNjLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2RzYy5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAw MDAwMDAwMDAwLi4yMWFlOGQwMTVhZmQKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHNjLmMKPiA+IEBAIC0wLDAgKzEsMjIzIEBACj4gPiArLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IMKpIDIwMTgg SW50ZWwgQ29ycAo+ID4gKyAqCj4gPiArICogQXV0aG9yOgo+ID4gKyAqIE1hbmFzaSBOYXZhcmUg PG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiArICovCj4gPiArCj4gPiArI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiA+ICsjaW5j bHVkZSA8bGludXgvaW5pdC5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+ID4gKyNp bmNsdWRlIDxkcm0vZHJtX2RwX2hlbHBlci5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2RzYy5o Pgo+ID4gKwo+ID4gKy8qKgo+ID4gKyAqIERPQzogZHNjIGhlbHBlcnMKPiA+ICsgKgo+ID4gKyAq IFRoZXNlIGZ1bmN0aW9ucyBjb250YWluIHNvbWUgY29tbW9uIGxvZ2ljIGFuZCBoZWxwZXJzIHRv IGRlYWwgd2l0aCBWRVNBCj4gPiArICogRGlzcGxheSBTdHJlYW0gQ29tcHJlc3Npb24gc3RhbmRh cmQgcmVxdWlyZWQgZm9yIERTQyBvbiBEaXNwbGF5IFBvcnQvZURQIG9yCj4gPiArICogTUlQSSBk aXNwbGF5IGludGVyZmFjZXMuCj4gPiArICovCj4gPiArCj4gPiArLyoqCj4gPiArICogZHJtX2Rz Y19kcF9wcHNfaGVhZGVyX2luaXQoKSAtIEluaXRpYWxpemVzIHRoZSBQUFMgSGVhZGVyCj4gPiAr ICogZm9yIERpc3BsYXlQb3J0IGFzIHBlciB0aGUgRFAgMS40IHNwZWMuCj4gPiArICogQHBwc19z ZHA6IFNlY29uZGFyeSBkYXRhIHBhY2tldCBmb3IgRFNDIFBpY3R1cmUgUGFyYW1ldGVyIFNldAo+ ID4gKyAqLwo+ID4gK3ZvaWQgZHJtX2RzY19kcF9wcHNfaGVhZGVyX2luaXQoc3RydWN0IGRybV9k c2NfcHBzX2luZm9mcmFtZSAqcHBzX3NkcCkKPiA+ICt7Cj4gPiArCW1lbXNldCgmcHBzX3NkcC0+ cHBzX2hlYWRlciwgMCwgc2l6ZW9mKHBwc19zZHAtPnBwc19oZWFkZXIpKTsKPiA+ICsKPiA+ICsJ cHBzX3NkcC0+cHBzX2hlYWRlci5IQjEgPSBEUF9TRFBfUFBTOwo+ID4gKwlwcHNfc2RwLT5wcHNf aGVhZGVyLkhCMiA9IERQX1NEUF9QUFNfSEVBREVSX1BBWUxPQURfQllURVNfTUlOVVNfMTsKPiA+ ICt9Cj4gPiArRVhQT1JUX1NZTUJPTChkcm1fZHNjX2RwX3Bwc19oZWFkZXJfaW5pdCk7Cj4gPiAr Cj4gPiArLyoqCj4gPiArICogZHJtX2RzY19wcHNfaW5mb2ZyYW1lX3BhY2soKSAtIFBvcHVsYXRl cyB0aGUgRFNDIFBQUyBpbmZvZnJhbWUKPiA+ICsgKiB1c2luZyB0aGUgRFNDIGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVycyBpbiB0aGUgb3JkZXIgZXhwZWN0ZWQKPiA+ICsgKiBieSB0aGUgRFNDIERp c3BsYXkgU2luayBkZXZpY2UuIEZvciB0aGUgRFNDLCB0aGUgc2luayBkZXZpY2UKPiA+ICsgKiBl eHBlY3RzIHRoZSBQUFMgcGF5bG9hZCBpbiB0aGUgYmlnIGVuZGlhbiBmb3JtYXQgZm9yIHRoZSBm aWVsZHMKPiA+ICsgKiB0aGF0IHNwYW4gbW9yZSB0aGFuIDEgYnl0ZS4KPiA+ICsgKgo+ID4gKyAq IEBwcHNfc2RwOgo+ID4gKyAqIFNlY29uZGFyeSBkYXRhIHBhY2tldCBmb3IgRFNDIFBpY3R1cmUg UGFyYW1ldGVyIFNldAo+ID4gKyAqIEBkc2NfY2ZnOgo+ID4gKyAqIERTQyBDb25maWd1cmF0aW9u IGRhdGEgZmlsbGVkIGJ5IGRyaXZlcgo+ID4gKyAqLwo+ID4gK3ZvaWQgZHJtX2RzY19wcHNfaW5m b2ZyYW1lX3BhY2soc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZSAqcHBzX3NkcCwKPiA+ICsJ CQkJc3RydWN0IGRybV9kc2NfY29uZmlnICpkc2NfY2ZnKQo+ID4gK3sKPiA+ICsJdTggaSA9IDA7 Cj4gCj4gaW50IGk7CgpPayB3aWxsIGRvLAoKPiAKPiA+ICsKPiA+ICsJbWVtc2V0KCZwcHNfc2Rw LT5wcHNfcGF5bG9hZCwgMCwgc2l6ZW9mKHBwc19zZHAtPnBwc19wYXlsb2FkKSk7Cj4gPiArCj4g PiArCS8qIFBQUyAwICovCj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLmRzY192ZXJzaW9uID0K PiA+ICsJCWRzY19jZmctPmRzY192ZXJzaW9uX21pbm9yIHwKPiA+ICsJCWRzY19jZmctPmRzY192 ZXJzaW9uX21ham9yIDw8IERTQ19QUFNfVkVSU0lPTl9NQUpPUl9TSElGVDsKPiA+ICsKPiA+ICsJ LyogUFBTIDEsIDIgaXMgMCAqLwo+ID4gKwo+ID4gKwkvKiBQUFMgMyAqLwo+ID4gKwlwcHNfc2Rw LT5wcHNfcGF5bG9hZC5wcHNfMyA9Cj4gPiArCQlkc2NfY2ZnLT5saW5lX2J1Zl9kZXB0aCB8Cj4g PiArCQlkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQgPDwgRFNDX1BQU19CUENfU0hJRlQ7Cj4g PiArCj4gPiArCS8qIFBQUyA0ICovCj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnBwc180ID0K PiA+ICsJCSh1OCkoKGRzY19jZmctPmJpdHNfcGVyX3BpeGVsICYgRFNDX1BQU19CUFBfSElHSF9N QVNLKSA+Pgo+ID4gKwkJICAgICBEU0NfUFBTX01TQl9TSElGVCkgfAo+ID4gKwkJKHU4KWRzY19j ZmctPnZicl9lbmFibGUgPDwgRFNDX1BQU19WQlJfRU5fU0hJRlQgfAo+ID4gKwkJKHU4KWRzY19j ZmctPmVuYWJsZTQyMiA8PCBEU0NfUFBTX1NJTVBMRTQyMl9TSElGVCB8Cj4gPiArCQkodTgpZHNj X2NmZy0+Y29udmVydF9yZ2IgPDwgRFNDX1BQU19DT05WRVJUX1JHQl9TSElGVCB8Cj4gPiArCQko dTgpZHNjX2NmZy0+YmxvY2tfcHJlZF9lbmFibGUgPDwgRFNDX1BQU19CTE9DS19QUkVEX0VOX1NI SUZUOwo+IAo+IFdoYXQncyB3aXRoIGFsbCB0aGUgKHU4KSBjYXN0cz8KClNpbmNlIHdlIGFyZSBh c3NpZ25pbmcgdG8gdTggdmFsdWUgd2UgZG9udCBuZWVkIHR5cGUgY2FzdCwgd2lsbCByZW1vdmUg aXQuCgo+IAo+ID4gKwo+ID4gKwkvKiBQUFMgNSAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9h ZC5iaXRzX3Blcl9waXhlbF9sb3cgPQo+ID4gKwkJKHU4KShkc2NfY2ZnLT5iaXRzX3Blcl9waXhl bCAmIERTQ19QUFNfTFNCX01BU0spOwo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBUaGUgRFNDIHBh bmVsIGV4cGVjdHMgdGhlIFBQUyBwYWNrZXQgdG8gaGF2ZSBiaWcgZW5kaWFuIGZvcm1hdAo+ID4g KwkgKiBmb3IgZGF0YSBzcGFubmluZyAyIGJ5dGVzLiBVc2UgYSBtYWNybyBjcHVfdG9fYmUxNigp IHRvIGNvbnZlcnQKPiA+ICsJICogdG8gYmlnIGVuZGlhbiBmb3JtYXQuIElmIGZvcm1hdCBpcyBs aXR0bGUgZW5kaWFuLCBpdCB3aWxsIHN3YXAKPiA+ICsJICogYnl0ZXMgdG8gY29udmVydCB0byBC aWcgZW5kaWFuIGVsc2Uga2VlcCBpdCB1bmNoYW5nZWQuCj4gPiArCSAqLwo+ID4gKwo+ID4gKwkv KiBQUFMgNiwgNyAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5waWNfaGVpZ2h0ID0gY3B1 X3RvX2JlMTYoZHNjX2NmZy0+cGljX2hlaWdodCk7Cj4gPiArCj4gPiArCS8qIFBQUyA4LCA5ICov Cj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnBpY193aWR0aCA9IGNwdV90b19iZTE2KGRzY19j ZmctPnBpY193aWR0aCk7Cj4gPiArCj4gPiArCS8qIFBQUyAxMCwgMTEgKi8KPiA+ICsJcHBzX3Nk cC0+cHBzX3BheWxvYWQuc2xpY2VfaGVpZ2h0ID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2xpY2Vf aGVpZ2h0KTsKPiA+ICsKPiA+ICsJLyogUFBTIDEyLCAxMyAqLwo+ID4gKwlwcHNfc2RwLT5wcHNf cGF5bG9hZC5zbGljZV93aWR0aCA9IGNwdV90b19iZTE2KGRzY19jZmctPnNsaWNlX3dpZHRoKTsK PiA+ICsKPiA+ICsJLyogUFBTIDE0LCAxNSAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5j aHVua19zaXplID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSk7Cj4gPiAr Cj4gPiArCS8qIFBQUyAxNiAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5pbml0aWFsX3ht aXRfZGVsYXlfaGlnaCA9Cj4gPiArCQkodTgpKChkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkg Jgo+ID4gKwkJICAgICAgRFNDX1BQU19JTklUX1hNSVRfREVMQVlfSElHSF9NQVNLKSA+Pgo+ID4g KwkJICAgICBEU0NfUFBTX01TQl9TSElGVCk7Cj4gPiArCj4gPiArCS8qIFBQUyAxNyAqLwo+ID4g KwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5pbml0aWFsX3htaXRfZGVsYXlfbG93ID0KPiA+ICsJCSh1 OCkoZHNjX2NmZy0+aW5pdGlhbF94bWl0X2RlbGF5ICYgRFNDX1BQU19MU0JfTUFTSyk7Cj4gPiAr Cj4gPiArCS8qIFBQUyAxOCwgMTkgKi8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuaW5pdGlh bF9kZWNfZGVsYXkgPQo+ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+aW5pdGlhbF9kZWNfZGVs YXkpOwo+ID4gKwo+ID4gKwkvKiBQUFMgMjAgaXMgMCAqLwo+ID4gKwo+ID4gKwkvKiBQUFMgMjEg Ki8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuaW5pdGlhbF9zY2FsZV92YWx1ZSA9Cj4gPiAr CQkodTgpZHNjX2NmZy0+aW5pdGlhbF9zY2FsZV92YWx1ZTsKPiA+ICsKPiA+ICsJLyogUFBTIDIy LCAyMyAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5zY2FsZV9pbmNyZW1lbnRfaW50ZXJ2 YWwgPQo+ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFs KTsKPiA+ICsKPiA+ICsJLyogUFBTIDI0ICovCj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnNj YWxlX2RlY3JlbWVudF9pbnRlcnZhbF9oaWdoID0KPiA+ICsJCSh1OCkoKGRzY19jZmctPnNjYWxl X2RlY3JlbWVudF9pbnRlcnZhbCAmCj4gPiArCQkgICAgICBEU0NfUFBTX1NDQUxFX0RFQ19JTlRf SElHSF9NQVNLKSA+Pgo+ID4gKwkJICAgICBEU0NfUFBTX01TQl9TSElGVCk7Cj4gPiArCj4gPiAr CS8qIFBQUyAyNSAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5zY2FsZV9kZWNyZW1lbnRf aW50ZXJ2YWxfbG93ID0KPiA+ICsJCSh1OCkoZHNjX2NmZy0+c2NhbGVfZGVjcmVtZW50X2ludGVy dmFsICYgRFNDX1BQU19MU0JfTUFTSyk7Cj4gPiArCj4gPiArCS8qIFBQUyAyNls3OjBdLCBQUFMg MjdbNzo1XSBSRVNFUlZFRCAqLwo+ID4gKwo+ID4gKwkvKiBQUFMgMjcgKi8KPiA+ICsJcHBzX3Nk cC0+cHBzX3BheWxvYWQuZmlyc3RfbGluZV9icGdfb2Zmc2V0ID0KPiA+ICsJCSh1OClkc2NfY2Zn LT5maXJzdF9saW5lX2JwZ19vZmZzZXQ7Cj4gPiArCj4gPiArCS8qIFBQUyAyOCwgMjkgKi8KPiA+ ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQubmZsX2JwZ19vZmZzZXQgPQo+ID4gKwkJY3B1X3RvX2Jl MTYoZHNjX2NmZy0+bmZsX2JwZ19vZmZzZXQpOwo+ID4gKwo+ID4gKwkvKiBQUFMgMzAsIDMxICov Cj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnNsaWNlX2JwZ19vZmZzZXQgPQo+ID4gKwkJY3B1 X3RvX2JlMTYoZHNjX2NmZy0+c2xpY2VfYnBnX29mZnNldCk7Cj4gPiArCj4gPiArCS8qIFBQUyAz MiwgMzMgKi8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuaW5pdGlhbF9vZmZzZXQgPQo+ID4g KwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+aW5pdGlhbF9vZmZzZXQpOwo+ID4gKwo+ID4gKwkvKiBQ UFMgMzQsIDM1ICovCj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLmZpbmFsX29mZnNldCA9IGNw dV90b19iZTE2KGRzY19jZmctPmZpbmFsX29mZnNldCk7Cj4gPiArCj4gPiArCS8qIFBQUyAzNiAq Lwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5mbGF0bmVzc19taW5fcXAgPSAodTgpZHNjX2Nm Zy0+ZmxhdG5lc3NfbWluX3FwOwo+ID4gKwo+ID4gKwkvKiBQUFMgMzcgKi8KPiA+ICsJcHBzX3Nk cC0+cHBzX3BheWxvYWQuZmxhdG5lc3NfbWF4X3FwID0gKHU4KWRzY19jZmctPmZsYXRuZXNzX21h eF9xcDsKPiA+ICsKPiA+ICsJLyogUFBTIDM4LCAzOSAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5 bG9hZC5yY19tb2RlbF9zaXplID0KPiA+ICsJCWNwdV90b19iZTE2KCh1MTYpRFNDX1JDX01PREVM X1NJWkVfQ09OU1QpOwo+ID4gKwo+ID4gKwkvKiBQUFMgNDAgKi8KPiA+ICsJcHBzX3NkcC0+cHBz X3BheWxvYWQucmNfZWRnZV9mYWN0b3IgPSAodTgpRFNDX1JDX0VER0VfRkFDVE9SX0NPTlNUOwo+ ID4gKwo+ID4gKwkvKiBQUFMgNDEgKi8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQucmNfcXVh bnRfaW5jcl9saW1pdDAgPQo+ID4gKwkJKHU4KWRzY19jZmctPnJjX3F1YW50X2luY3JfbGltaXQw Owo+ID4gKwo+ID4gKwkvKiBQUFMgNDIgKi8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQucmNf cXVhbnRfaW5jcl9saW1pdDEgPQo+ID4gKwkJKHU4KWRzY19jZmctPnJjX3F1YW50X2luY3JfbGlt aXQxOwo+ID4gKwo+ID4gKwkvKiBQUFMgNDMgKi8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQu cmNfdGd0X29mZnNldCA9ICh1OClEU0NfUkNfVEdUX09GRlNFVF9MT19DT05TVCB8Cj4gPiArCQko dTgpRFNDX1JDX1RHVF9PRkZTRVRfSElfQ09OU1QgPDwgRFNDX1BQU19SQ19UR1RfT0ZGU0VUX0hJ X1NISUZUOwo+ID4gKwo+ID4gKwkvKiBQUFMgNDQgLSA1NyAqLwo+ID4gKwlmb3IgKGkgPSAwOyBp IDwgRFNDX05VTV9CVUZfUkFOR0VTIC0gMTsgaSsrKQo+IAo+IElzIHRoZSAtMSBjb3JyZWN0PyBU aGUgbG9vcCBiZWxvdyBkb2Vzbid0IGhhdmUgaXQuCj4gCj4gPiArCQlwcHNfc2RwLT5wcHNfcGF5 bG9hZC5yY19idWZfdGhyZXNoW2ldID0KPiA+ICsJCQlkc2NfY2ZnLT5yY19idWZfdGhyZXNoW2ld Owo+ID4gKwo+ID4gKwkvKiBQUFMgNTggLSA4NyAqLwo+ID4gKwkvKgo+ID4gKwkgKiBGb3IgRFND IHNpbmsgcHJvZ3JhbW1pbmcgdGhlIFJDIFJhbmdlIHBhcmFtZXRlciBmaWVsZHMKPiA+ICsJICog YXJlIGFzIGZvbGxvd3M6IE1pbl9xcFsxNToxMV0sIG1heF9xcFsxMDo2XSwgb2Zmc2V0WzU6MF0K PiA+ICsJICovCj4gPiArCWZvciAoaSA9IDA7IGkgPCBEU0NfTlVNX0JVRl9SQU5HRVM7IGkrKykg ewo+ID4gKwkJcHBzX3NkcC0+cHBzX3BheWxvYWQucmNfcmFuZ2VfcGFyYW1ldGVyc1tpXSA9Cj4g PiArCQkJKHUxNikoKGRzY19jZmctPnJjX3JhbmdlX3BhcmFtc1tpXS5yYW5nZV9taW5fcXAgPDwK PiA+ICsJCQkgICAgICAgRFNDX1BQU19SQ19SQU5HRV9NSU5RUF9TSElGVCkgfAo+ID4gKwkJCSAg ICAgIChkc2NfY2ZnLT5yY19yYW5nZV9wYXJhbXNbaV0ucmFuZ2VfbWF4X3FwIDw8Cj4gPiArCQkJ ICAgICAgIERTQ19QUFNfUkNfUkFOR0VfTUFYUVBfU0hJRlQpIHwKPiA+ICsJCQkgICAgICAoZHNj X2NmZy0+cmNfcmFuZ2VfcGFyYW1zW2ldLnJhbmdlX2JwZ19vZmZzZXQpKTsKPiA+ICsJCXBwc19z ZHAtPnBwc19wYXlsb2FkLnJjX3JhbmdlX3BhcmFtZXRlcnNbaV0gPQo+ID4gKwkJCWNwdV90b19i ZTE2KHBwc19zZHAtPnBwc19wYXlsb2FkLnJjX3JhbmdlX3BhcmFtZXRlcnNbaV0pOwo+ID4gKwl9 Cj4gPiArCj4gPiArCS8qIFBQUyA4OCAqLwo+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5uYXRp dmVfNDIyXzQyMCA9ICh1OClkc2NfY2ZnLT5uYXRpdmVfNDIyIHwKPiA+ICsJCSh1OClkc2NfY2Zn LT5uYXRpdmVfNDIwIDw8IERTQ19QUFNfTkFUSVZFXzQyMF9TSElGVDsKPiA+ICsKPiA+ICsJLyog UFBTIDg5ICovCj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnNlY29uZF9saW5lX2JwZ19vZmZz ZXQgPQo+ID4gKwkJKHU4KWRzY19jZmctPnNlY29uZF9saW5lX2JwZ19vZmZzZXQ7Cj4gPiArCj4g PiArCS8qIFBQUyA5MCwgOTEgKi8KPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQubnNsX2JwZ19v ZmZzZXQgPQo+ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+bnNsX2JwZ19vZmZzZXQpOwo+ID4g Kwo+ID4gKwkvKiBQUFMgOTIsIDkzICovCj4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnNlY29u ZF9saW5lX29mZnNldF9hZGogPQo+ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2Vjb25kX2xp bmVfb2Zmc2V0X2Fkaik7Cj4gPiArCj4gPiArCS8qIFBQUyA5NCAtIDEyNyBhcmUgTyAqLwo+ID4g K30KPiA+ICtFWFBPUlRfU1lNQk9MKGRybV9kc2NfcHBzX2luZm9mcmFtZV9wYWNrKTsKPiA+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHNjLmggYi9pbmNsdWRlL2RybS9kcm1fZHNjLmgK PiA+IGluZGV4IDk4NmY5NjJmMzhkNC4uMGU1ZTMzNjhkNjQ1IDEwMDY0NAo+ID4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2RzYy5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZHNjLmgKPiA+IEBA IC04LDYgKzgsNyBAQAo+ID4gICNpZm5kZWYgRFJNX0RTQ19IXwo+ID4gICNkZWZpbmUgRFJNX0RT Q19IXwo+ID4gIAo+ID4gKyNpbmNsdWRlIDxsaW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5oPgo+IAo+ IFRoaXMgaGVhZGVyIGRvZXNuJ3QgbmVlZCB0aGF0IEFGQUlDUy4KPgoKSSB3aWxsIG1vdmUgdGhh dCB0byBkcm1fZHNjLmMKCk1hbmFzaQogCj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVy Lmg+Cj4gPiAgCj4gPiAgLyogVkVTQSBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiBEU0MgMS4y IGNvbnN0YW50cyAqLwo+ID4gQEAgLTI0LDYgKzI1LDIzIEBACj4gPiAgI2RlZmluZSBEU0NfUkNf VEdUX09GRlNFVF9ISV9DT05TVAkgICAgMwo+ID4gICNkZWZpbmUgRFNDX1JDX1RHVF9PRkZTRVRf TE9fQ09OU1QJICAgIDMKPiA+ICAKPiA+ICsvKiBEU0MgUFBTIGNvbnN0YW50cyBhbmQgbWFjcm9z ICovCj4gPiArI2RlZmluZSBEU0NfUFBTX1ZFUlNJT05fTUFKT1JfU0hJRlQJCTQKPiA+ICsjZGVm aW5lIERTQ19QUFNfQlBDX1NISUZUCQkJNAo+ID4gKyNkZWZpbmUgRFNDX1BQU19NU0JfU0hJRlQJ CQk4Cj4gPiArI2RlZmluZSBEU0NfUFBTX0xTQl9NQVNLCQkJKDB4RkYgPDwgMCkKPiA+ICsjZGVm aW5lIERTQ19QUFNfQlBQX0hJR0hfTUFTSwkJCSgweDMgPDwgOCkKPiA+ICsjZGVmaW5lIERTQ19Q UFNfVkJSX0VOX1NISUZUCQkJMgo+ID4gKyNkZWZpbmUgRFNDX1BQU19TSU1QTEU0MjJfU0hJRlQJ CQkzCj4gPiArI2RlZmluZSBEU0NfUFBTX0NPTlZFUlRfUkdCX1NISUZUCQk0Cj4gPiArI2RlZmlu ZSBEU0NfUFBTX0JMT0NLX1BSRURfRU5fU0hJRlQJCTUKPiA+ICsjZGVmaW5lIERTQ19QUFNfSU5J VF9YTUlUX0RFTEFZX0hJR0hfTUFTSwkoMHgzIDw8IDgpCj4gPiArI2RlZmluZSBEU0NfUFBTX1ND QUxFX0RFQ19JTlRfSElHSF9NQVNLCQkoMHhGIDw8IDgpCj4gPiArI2RlZmluZSBEU0NfUFBTX1JD X1RHVF9PRkZTRVRfSElfU0hJRlQJCTQKPiA+ICsjZGVmaW5lIERTQ19QUFNfUkNfUkFOR0VfTUlO UVBfU0hJRlQJCTExCj4gPiArI2RlZmluZSBEU0NfUFBTX1JDX1JBTkdFX01BWFFQX1NISUZUCQk2 Cj4gPiArI2RlZmluZSBEU0NfUFBTX05BVElWRV80MjBfU0hJRlQJCTEKPiA+ICsKPiA+ICAvKiBD b25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSBSYXRlIENvbnRyb2wgbW9kZWwgcmFuZ2UgKi8KPiA+ ICBzdHJ1Y3QgZHNjX3JjX3JhbmdlX3BhcmFtZXRlcnMgewo+ID4gIAkvKiBNaW4gUXVhbnRpemF0 aW9uIFBhcmFtZXRlcnMgYWxsb3dlZCBmb3IgdGhpcyByYW5nZSAqLwo+ID4gQEAgLTQ2Myw0ICs0 ODEsOCBAQCBzdHJ1Y3QgZHJtX2RzY19wcHNfaW5mb2ZyYW1lIHsKPiA+ICAJc3RydWN0IHBpY3R1 cmVfcGFyYW1ldGVyX3NldCBwcHNfcGF5bG9hZDsKPiA+ICB9IF9fcGFja2VkOwo+ID4gIAo+ID4g K3ZvaWQgZHJtX2RzY19kcF9wcHNfaGVhZGVyX2luaXQoc3RydWN0IGRybV9kc2NfcHBzX2luZm9m cmFtZSAqcHBzX3NkcCk7Cj4gPiArdm9pZCBkcm1fZHNjX3Bwc19pbmZvZnJhbWVfcGFjayhzdHJ1 Y3QgZHJtX2RzY19wcHNfaW5mb2ZyYW1lICpwcHNfc2RwLAo+ID4gKwkJCQlzdHJ1Y3QgZHJtX2Rz Y19jb25maWcgKmRzY19jZmcpOwo+ID4gKwo+ID4gICNlbmRpZiAvKiBfRFJNX0RTQ19IXyAqLwo+ ID4gLS0gCj4gPiAyLjE4LjAKPiAKPiAtLSAKPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK