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 17:23:23 -0700 Message-ID: <20181102002323.GK3481@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-12-manasi.d.navare@intel.com> <20181101164628.GG9144@intel.com> <20181101235414.GJ3481@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: <20181101235414.GJ3481@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: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMDEsIDIwMTggYXQgMDQ6NTQ6MTRQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBUaGFua3MgZm9yIHJldmlld2luZyB0aGlzIHBhdGNoLiBGaW5kIHNvbWUgY29tbWVu dHMgaW5saW5lCj4gCj4gT24gVGh1LCBOb3YgMDEsIDIwMTggYXQgMDY6NDY6MjhQTSArMDIwMCwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gT24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDM6Mjg6 MjNQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3cm90ZToKPiA+ID4gQWNjb3JkaW5nIHRvIERpc3Bs YXkgU3RyZWFtIGNvbXByZXNzaW9uIHNwZWMgMS4yLCB0aGUgcGljdHVyZQo+ID4gPiBwYXJhbWV0 ZXIgc2V0IG1ldGFkYXRhIGlzIHNlbnQgZnJvbSBzb3VyY2UgdG8gc2luayBkZXZpY2UKPiA+ID4g dXNpbmcgdGhlIERQIFNlY29uZGFyeSBkYXRhIHBhY2tldC4gQW4gaW5mb2ZyYW1lIGlzIGZvcm1l ZAo+ID4gPiBmb3IgdGhlIFBQUyBTRFAgaGVhZGVyIGFuZCBQUFMgU0RQIHBheWxvYWQgYnl0ZXMu Cj4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBoZWxwZXJzIHRvIGZpbGwgdGhlIFBQUyBTRFAgaGVhZGVy Cj4gPiA+IGFuZCBQUFMgU0RQIHBheWxvYWQgYWNjb3JkaW5nIHRvIHRoZSBEU0MgMS4yIHNwZWNp ZmljYXRpb24uCj4gPiA+IAo+ID4gPiB2NjoKPiA+ID4gKiBVc2UgcHJvcGVyIHNlcXVlbmNlIHBv aW50cyBmb3IgYnJlYWtpbmcgZG93biB0aGUKPiA+ID4gYXNzaWdubWVudHMgKENocmlzIFdpbHNv bikKPiA+ID4gKiBVc2UgU1BEWCBpZGVudGlmaWVyCj4gPiA+IHY1Ogo+ID4gPiBEbyBub3QgdXNl IGJpdGZpZWxkcyBmb3IgRFJNIHN0cnVjdHMgKEphbmkgTikKPiA+ID4gdjQ6Cj4gPiA+ICogVXNl IERTQyBjb25zdGFudHMgZm9yIHBhcmFtcyB0aGF0IGRvbnQgY2hhbmdlIGFjcm9zcwo+ID4gPiBj b25maWd1cmF0aW9ucwo+ID4gPiB2MzoKPiA+ID4gKiBBZGQgcmVmZXJlbmNlIHRvIGFkZGVkIGtl cm5lbC1kb2NzIGluIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QKPiA+ID4g KERhbmllbCBWZXR0ZXIpCj4gPiA+IAo+ID4gPiB2MjoKPiA+ID4gKiBBZGQgRVhQT1JUX1NZTUJP TCBmb3IgdGhlIGRybSBmdW5jdGlvbnMgKE1hbmFzaSkKPiA+ID4gCj4gPiA+IENjOiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1 bGFAbGludXguaW50ZWwuY29tPgo+ID4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2 YXRzYUBpbnRlbC5jb20+Cj4gPiA+IENjOiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRA YW1kLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2 YXJlQGludGVsLmNvbT4KPiA+ID4gQWNrZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50 bGFuZEBhbWQuY29tPgo+ID4gPiAtLS0KPiA+ID4gIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMt aGVscGVycy5yc3QgfCAgMTIgKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAg ICAgICAgICAgfCAgIDIgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHNjLmMgICAgICAg ICAgICAgfCAyMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIGluY2x1ZGUvZHJt L2RybV9kc2MuaCAgICAgICAgICAgICAgICAgfCAgMjIgKysrCj4gPiA+ICA0IGZpbGVzIGNoYW5n ZWQsIDI1OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL2RybV9kc2MuYwo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgYi9Eb2N1bWVudGF0aW9uL2dw dS9kcm0ta21zLWhlbHBlcnMucnN0Cj4gPiA+IGluZGV4IDRiNGRjMjM2ZWY2Zi4uYjQyMmViOGVk ZjE2IDEwMDY0NAo+ID4gPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMu cnN0Cj4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QKPiA+ ID4gQEAgLTIzMiw2ICsyMzIsMTggQEAgTUlQSSBEU0kgSGVscGVyIEZ1bmN0aW9ucyBSZWZlcmVu Y2UKPiA+ID4gIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX21pcGlfZHNpLmMK PiA+ID4gICAgIDpleHBvcnQ6Cj4gPiA+ICAKPiA+ID4gK0Rpc3BsYXkgU3RyZWFtIENvbXByZXNz aW9uIEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlCj4gPiA+ICs9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiArCj4gPiA+ICsuLiBrZXJu ZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9kc2MuYwo+ID4gPiArICAgOmRvYzogZHNjIGhl bHBlcnMKPiA+ID4gKwo+ID4gPiArLi4ga2VybmVsLWRvYzo6IGluY2x1ZGUvZHJtL2RybV9kc2Mu aAo+ID4gPiArICAgOmludGVybmFsOgo+ID4gPiArCj4gPiA+ICsuLiBrZXJuZWwtZG9jOjogZHJp dmVycy9ncHUvZHJtL2RybV9kc2MuYwo+ID4gPiArICAgOmV4cG9ydDoKPiA+ID4gKwo+ID4gPiAg T3V0cHV0IFByb2JpbmcgSGVscGVyIEZ1bmN0aW9ucyBSZWZlcmVuY2UKPiA+ID4gID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ ID4gPiBpbmRleCA1NzZiYTk4NWUxMzguLjNhM2U2ZmI2ZDQ3NiAxMDA2NDQKPiA+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtl ZmlsZQo+ID4gPiBAQCAtMzIsNyArMzIsNyBAQCBkcm0tJChDT05GSUdfQUdQKSArPSBkcm1fYWdw c3VwcG9ydC5vCj4gPiA+ICBkcm0tJChDT05GSUdfREVCVUdfRlMpICs9IGRybV9kZWJ1Z2ZzLm8g ZHJtX2RlYnVnZnNfY3JjLm8KPiA+ID4gIGRybS0kKENPTkZJR19EUk1fTE9BRF9FRElEX0ZJUk1X QVJFKSArPSBkcm1fZWRpZF9sb2FkLm8KPiA+ID4gIAo+ID4gPiAtZHJtX2ttc19oZWxwZXIteSA6 PSBkcm1fY3J0Y19oZWxwZXIubyBkcm1fZHBfaGVscGVyLm8gZHJtX3Byb2JlX2hlbHBlci5vIFwK PiA+ID4gK2RybV9rbXNfaGVscGVyLXkgOj0gZHJtX2NydGNfaGVscGVyLm8gZHJtX2RwX2hlbHBl ci5vIGRybV9kc2MubyBkcm1fcHJvYmVfaGVscGVyLm8gXAo+ID4gPiAgCQlkcm1fcGxhbmVfaGVs cGVyLm8gZHJtX2RwX21zdF90b3BvbG9neS5vIGRybV9hdG9taWNfaGVscGVyLm8gXAo+ID4gPiAg CQlkcm1fa21zX2hlbHBlcl9jb21tb24ubyBkcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5vIFwKPiA+ ID4gIAkJZHJtX3NpbXBsZV9rbXNfaGVscGVyLm8gZHJtX21vZGVzZXRfaGVscGVyLm8gXAo+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kc2MuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZHNjLmMKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gaW5kZXggMDAwMDAw MDAwMDAwLi4yMWFlOGQwMTVhZmQKPiA+ID4gLS0tIC9kZXYvbnVsbAo+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RzYy5jCj4gPiA+IEBAIC0wLDAgKzEsMjIzIEBACj4gPiA+ICsvLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gPiA+ICsvKgo+ID4gPiArICogQ29weXJpZ2h0 IMKpIDIwMTggSW50ZWwgQ29ycAo+ID4gPiArICoKPiA+ID4gKyAqIEF1dGhvcjoKPiA+ID4gKyAq IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+ICsgKi8KPiA+ ID4gKwo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ID4gPiArI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KPiA+ID4gKyNpbmNs dWRlIDxsaW51eC9lcnJuby5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fZHBfaGVscGVyLmg+ Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9kc2MuaD4KPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ ICsgKiBET0M6IGRzYyBoZWxwZXJzCj4gPiA+ICsgKgo+ID4gPiArICogVGhlc2UgZnVuY3Rpb25z IGNvbnRhaW4gc29tZSBjb21tb24gbG9naWMgYW5kIGhlbHBlcnMgdG8gZGVhbCB3aXRoIFZFU0EK PiA+ID4gKyAqIERpc3BsYXkgU3RyZWFtIENvbXByZXNzaW9uIHN0YW5kYXJkIHJlcXVpcmVkIGZv ciBEU0Mgb24gRGlzcGxheSBQb3J0L2VEUCBvcgo+ID4gPiArICogTUlQSSBkaXNwbGF5IGludGVy ZmFjZXMuCj4gPiA+ICsgKi8KPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ICsgKiBkcm1fZHNjX2Rw X3Bwc19oZWFkZXJfaW5pdCgpIC0gSW5pdGlhbGl6ZXMgdGhlIFBQUyBIZWFkZXIKPiA+ID4gKyAq IGZvciBEaXNwbGF5UG9ydCBhcyBwZXIgdGhlIERQIDEuNCBzcGVjLgo+ID4gPiArICogQHBwc19z ZHA6IFNlY29uZGFyeSBkYXRhIHBhY2tldCBmb3IgRFNDIFBpY3R1cmUgUGFyYW1ldGVyIFNldAo+ ID4gPiArICovCj4gPiA+ICt2b2lkIGRybV9kc2NfZHBfcHBzX2hlYWRlcl9pbml0KHN0cnVjdCBk cm1fZHNjX3Bwc19pbmZvZnJhbWUgKnBwc19zZHApCj4gPiA+ICt7Cj4gPiA+ICsJbWVtc2V0KCZw cHNfc2RwLT5wcHNfaGVhZGVyLCAwLCBzaXplb2YocHBzX3NkcC0+cHBzX2hlYWRlcikpOwo+ID4g PiArCj4gPiA+ICsJcHBzX3NkcC0+cHBzX2hlYWRlci5IQjEgPSBEUF9TRFBfUFBTOwo+ID4gPiAr CXBwc19zZHAtPnBwc19oZWFkZXIuSEIyID0gRFBfU0RQX1BQU19IRUFERVJfUEFZTE9BRF9CWVRF U19NSU5VU18xOwo+ID4gPiArfQo+ID4gPiArRVhQT1JUX1NZTUJPTChkcm1fZHNjX2RwX3Bwc19o ZWFkZXJfaW5pdCk7Cj4gPiA+ICsKPiA+ID4gKy8qKgo+ID4gPiArICogZHJtX2RzY19wcHNfaW5m b2ZyYW1lX3BhY2soKSAtIFBvcHVsYXRlcyB0aGUgRFNDIFBQUyBpbmZvZnJhbWUKPiA+ID4gKyAq IHVzaW5nIHRoZSBEU0MgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGluIHRoZSBvcmRlciBleHBl Y3RlZAo+ID4gPiArICogYnkgdGhlIERTQyBEaXNwbGF5IFNpbmsgZGV2aWNlLiBGb3IgdGhlIERT QywgdGhlIHNpbmsgZGV2aWNlCj4gPiA+ICsgKiBleHBlY3RzIHRoZSBQUFMgcGF5bG9hZCBpbiB0 aGUgYmlnIGVuZGlhbiBmb3JtYXQgZm9yIHRoZSBmaWVsZHMKPiA+ID4gKyAqIHRoYXQgc3BhbiBt b3JlIHRoYW4gMSBieXRlLgo+ID4gPiArICoKPiA+ID4gKyAqIEBwcHNfc2RwOgo+ID4gPiArICog U2Vjb25kYXJ5IGRhdGEgcGFja2V0IGZvciBEU0MgUGljdHVyZSBQYXJhbWV0ZXIgU2V0Cj4gPiA+ ICsgKiBAZHNjX2NmZzoKPiA+ID4gKyAqIERTQyBDb25maWd1cmF0aW9uIGRhdGEgZmlsbGVkIGJ5 IGRyaXZlcgo+ID4gPiArICovCj4gPiA+ICt2b2lkIGRybV9kc2NfcHBzX2luZm9mcmFtZV9wYWNr KHN0cnVjdCBkcm1fZHNjX3Bwc19pbmZvZnJhbWUgKnBwc19zZHAsCj4gPiA+ICsJCQkJc3RydWN0 IGRybV9kc2NfY29uZmlnICpkc2NfY2ZnKQo+ID4gPiArewo+ID4gPiArCXU4IGkgPSAwOwo+ID4g Cj4gPiBpbnQgaTsKPiAKPiBPayB3aWxsIGRvLAo+IAo+ID4gCj4gPiA+ICsKPiA+ID4gKwltZW1z ZXQoJnBwc19zZHAtPnBwc19wYXlsb2FkLCAwLCBzaXplb2YocHBzX3NkcC0+cHBzX3BheWxvYWQp KTsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyAwICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxv YWQuZHNjX3ZlcnNpb24gPQo+ID4gPiArCQlkc2NfY2ZnLT5kc2NfdmVyc2lvbl9taW5vciB8Cj4g PiA+ICsJCWRzY19jZmctPmRzY192ZXJzaW9uX21ham9yIDw8IERTQ19QUFNfVkVSU0lPTl9NQUpP Ul9TSElGVDsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyAxLCAyIGlzIDAgKi8KPiA+ID4gKwo+ID4g PiArCS8qIFBQUyAzICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQucHBzXzMgPQo+ID4g PiArCQlkc2NfY2ZnLT5saW5lX2J1Zl9kZXB0aCB8Cj4gPiA+ICsJCWRzY19jZmctPmJpdHNfcGVy X2NvbXBvbmVudCA8PCBEU0NfUFBTX0JQQ19TSElGVDsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyA0 ICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQucHBzXzQgPQo+ID4gPiArCQkodTgpKChk c2NfY2ZnLT5iaXRzX3Blcl9waXhlbCAmIERTQ19QUFNfQlBQX0hJR0hfTUFTSykgPj4KPiA+ID4g KwkJICAgICBEU0NfUFBTX01TQl9TSElGVCkgfAo+ID4gPiArCQkodTgpZHNjX2NmZy0+dmJyX2Vu YWJsZSA8PCBEU0NfUFBTX1ZCUl9FTl9TSElGVCB8Cj4gPiA+ICsJCSh1OClkc2NfY2ZnLT5lbmFi bGU0MjIgPDwgRFNDX1BQU19TSU1QTEU0MjJfU0hJRlQgfAo+ID4gPiArCQkodTgpZHNjX2NmZy0+ Y29udmVydF9yZ2IgPDwgRFNDX1BQU19DT05WRVJUX1JHQl9TSElGVCB8Cj4gPiA+ICsJCSh1OClk c2NfY2ZnLT5ibG9ja19wcmVkX2VuYWJsZSA8PCBEU0NfUFBTX0JMT0NLX1BSRURfRU5fU0hJRlQ7 Cj4gPiAKPiA+IFdoYXQncyB3aXRoIGFsbCB0aGUgKHU4KSBjYXN0cz8KPiAKPiBTaW5jZSB3ZSBh cmUgYXNzaWduaW5nIHRvIHU4IHZhbHVlIHdlIGRvbnQgbmVlZCB0eXBlIGNhc3QsIHdpbGwgcmVt b3ZlIGl0Lgo+IAo+ID4gCj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgNSAqLwo+ID4gPiArCXBwc19z ZHAtPnBwc19wYXlsb2FkLmJpdHNfcGVyX3BpeGVsX2xvdyA9Cj4gPiA+ICsJCSh1OCkoZHNjX2Nm Zy0+Yml0c19wZXJfcGl4ZWwgJiBEU0NfUFBTX0xTQl9NQVNLKTsKPiA+ID4gKwo+ID4gPiArCS8q Cj4gPiA+ICsJICogVGhlIERTQyBwYW5lbCBleHBlY3RzIHRoZSBQUFMgcGFja2V0IHRvIGhhdmUg YmlnIGVuZGlhbiBmb3JtYXQKPiA+ID4gKwkgKiBmb3IgZGF0YSBzcGFubmluZyAyIGJ5dGVzLiBV c2UgYSBtYWNybyBjcHVfdG9fYmUxNigpIHRvIGNvbnZlcnQKPiA+ID4gKwkgKiB0byBiaWcgZW5k aWFuIGZvcm1hdC4gSWYgZm9ybWF0IGlzIGxpdHRsZSBlbmRpYW4sIGl0IHdpbGwgc3dhcAo+ID4g PiArCSAqIGJ5dGVzIHRvIGNvbnZlcnQgdG8gQmlnIGVuZGlhbiBlbHNlIGtlZXAgaXQgdW5jaGFu Z2VkLgo+ID4gPiArCSAqLwo+ID4gPiArCj4gPiA+ICsJLyogUFBTIDYsIDcgKi8KPiA+ID4gKwlw cHNfc2RwLT5wcHNfcGF5bG9hZC5waWNfaGVpZ2h0ID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+cGlj X2hlaWdodCk7Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgOCwgOSAqLwo+ID4gPiArCXBwc19zZHAt PnBwc19wYXlsb2FkLnBpY193aWR0aCA9IGNwdV90b19iZTE2KGRzY19jZmctPnBpY193aWR0aCk7 Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgMTAsIDExICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3Bh eWxvYWQuc2xpY2VfaGVpZ2h0ID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2xpY2VfaGVpZ2h0KTsK PiA+ID4gKwo+ID4gPiArCS8qIFBQUyAxMiwgMTMgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5 bG9hZC5zbGljZV93aWR0aCA9IGNwdV90b19iZTE2KGRzY19jZmctPnNsaWNlX3dpZHRoKTsKPiA+ ID4gKwo+ID4gPiArCS8qIFBQUyAxNCwgMTUgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9h ZC5jaHVua19zaXplID0gY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2xpY2VfY2h1bmtfc2l6ZSk7Cj4g PiA+ICsKPiA+ID4gKwkvKiBQUFMgMTYgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5p bml0aWFsX3htaXRfZGVsYXlfaGlnaCA9Cj4gPiA+ICsJCSh1OCkoKGRzY19jZmctPmluaXRpYWxf eG1pdF9kZWxheSAmCj4gPiA+ICsJCSAgICAgIERTQ19QUFNfSU5JVF9YTUlUX0RFTEFZX0hJR0hf TUFTSykgPj4KPiA+ID4gKwkJICAgICBEU0NfUFBTX01TQl9TSElGVCk7Cj4gPiA+ICsKPiA+ID4g KwkvKiBQUFMgMTcgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5pbml0aWFsX3htaXRf ZGVsYXlfbG93ID0KPiA+ID4gKwkJKHU4KShkc2NfY2ZnLT5pbml0aWFsX3htaXRfZGVsYXkgJiBE U0NfUFBTX0xTQl9NQVNLKTsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyAxOCwgMTkgKi8KPiA+ID4g KwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5pbml0aWFsX2RlY19kZWxheSA9Cj4gPiA+ICsJCWNwdV90 b19iZTE2KGRzY19jZmctPmluaXRpYWxfZGVjX2RlbGF5KTsKPiA+ID4gKwo+ID4gPiArCS8qIFBQ UyAyMCBpcyAwICovCj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgMjEgKi8KPiA+ID4gKwlwcHNfc2Rw LT5wcHNfcGF5bG9hZC5pbml0aWFsX3NjYWxlX3ZhbHVlID0KPiA+ID4gKwkJKHU4KWRzY19jZmct PmluaXRpYWxfc2NhbGVfdmFsdWU7Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgMjIsIDIzICovCj4g PiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuc2NhbGVfaW5jcmVtZW50X2ludGVydmFsID0KPiA+ ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2NhbGVfaW5jcmVtZW50X2ludGVydmFsKTsKPiA+ ID4gKwo+ID4gPiArCS8qIFBQUyAyNCAqLwo+ID4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnNj YWxlX2RlY3JlbWVudF9pbnRlcnZhbF9oaWdoID0KPiA+ID4gKwkJKHU4KSgoZHNjX2NmZy0+c2Nh bGVfZGVjcmVtZW50X2ludGVydmFsICYKPiA+ID4gKwkJICAgICAgRFNDX1BQU19TQ0FMRV9ERUNf SU5UX0hJR0hfTUFTSykgPj4KPiA+ID4gKwkJICAgICBEU0NfUFBTX01TQl9TSElGVCk7Cj4gPiA+ ICsKPiA+ID4gKwkvKiBQUFMgMjUgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5zY2Fs ZV9kZWNyZW1lbnRfaW50ZXJ2YWxfbG93ID0KPiA+ID4gKwkJKHU4KShkc2NfY2ZnLT5zY2FsZV9k ZWNyZW1lbnRfaW50ZXJ2YWwgJiBEU0NfUFBTX0xTQl9NQVNLKTsKPiA+ID4gKwo+ID4gPiArCS8q IFBQUyAyNls3OjBdLCBQUFMgMjdbNzo1XSBSRVNFUlZFRCAqLwo+ID4gPiArCj4gPiA+ICsJLyog UFBTIDI3ICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuZmlyc3RfbGluZV9icGdfb2Zm c2V0ID0KPiA+ID4gKwkJKHU4KWRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldDsKPiA+ID4g Kwo+ID4gPiArCS8qIFBQUyAyOCwgMjkgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5u ZmxfYnBnX29mZnNldCA9Cj4gPiA+ICsJCWNwdV90b19iZTE2KGRzY19jZmctPm5mbF9icGdfb2Zm c2V0KTsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyAzMCwgMzEgKi8KPiA+ID4gKwlwcHNfc2RwLT5w cHNfcGF5bG9hZC5zbGljZV9icGdfb2Zmc2V0ID0KPiA+ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2Nm Zy0+c2xpY2VfYnBnX29mZnNldCk7Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgMzIsIDMzICovCj4g PiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuaW5pdGlhbF9vZmZzZXQgPQo+ID4gPiArCQljcHVf dG9fYmUxNihkc2NfY2ZnLT5pbml0aWFsX29mZnNldCk7Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMg MzQsIDM1ICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQuZmluYWxfb2Zmc2V0ID0gY3B1 X3RvX2JlMTYoZHNjX2NmZy0+ZmluYWxfb2Zmc2V0KTsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyAz NiAqLwo+ID4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLmZsYXRuZXNzX21pbl9xcCA9ICh1OClk c2NfY2ZnLT5mbGF0bmVzc19taW5fcXA7Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgMzcgKi8KPiA+ ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5mbGF0bmVzc19tYXhfcXAgPSAodTgpZHNjX2NmZy0+ ZmxhdG5lc3NfbWF4X3FwOwo+ID4gPiArCj4gPiA+ICsJLyogUFBTIDM4LCAzOSAqLwo+ID4gPiAr CXBwc19zZHAtPnBwc19wYXlsb2FkLnJjX21vZGVsX3NpemUgPQo+ID4gPiArCQljcHVfdG9fYmUx NigodTE2KURTQ19SQ19NT0RFTF9TSVpFX0NPTlNUKTsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyA0 MCAqLwo+ID4gPiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnJjX2VkZ2VfZmFjdG9yID0gKHU4KURT Q19SQ19FREdFX0ZBQ1RPUl9DT05TVDsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyA0MSAqLwo+ID4g PiArCXBwc19zZHAtPnBwc19wYXlsb2FkLnJjX3F1YW50X2luY3JfbGltaXQwID0KPiA+ID4gKwkJ KHU4KWRzY19jZmctPnJjX3F1YW50X2luY3JfbGltaXQwOwo+ID4gPiArCj4gPiA+ICsJLyogUFBT IDQyICovCj4gPiA+ICsJcHBzX3NkcC0+cHBzX3BheWxvYWQucmNfcXVhbnRfaW5jcl9saW1pdDEg PQo+ID4gPiArCQkodTgpZHNjX2NmZy0+cmNfcXVhbnRfaW5jcl9saW1pdDE7Cj4gPiA+ICsKPiA+ ID4gKwkvKiBQUFMgNDMgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5yY190Z3Rfb2Zm c2V0ID0gKHU4KURTQ19SQ19UR1RfT0ZGU0VUX0xPX0NPTlNUIHwKPiA+ID4gKwkJKHU4KURTQ19S Q19UR1RfT0ZGU0VUX0hJX0NPTlNUIDw8IERTQ19QUFNfUkNfVEdUX09GRlNFVF9ISV9TSElGVDsK PiA+ID4gKwo+ID4gPiArCS8qIFBQUyA0NCAtIDU3ICovCj4gPiA+ICsJZm9yIChpID0gMDsgaSA8 IERTQ19OVU1fQlVGX1JBTkdFUyAtIDE7IGkrKykKPiA+IAo+ID4gSXMgdGhlIC0xIGNvcnJlY3Q/ IFRoZSBsb29wIGJlbG93IGRvZXNuJ3QgaGF2ZSBpdC4KCkZvcmdvdCB0byBhZGRyZXNzIHRoaXMu IFNvIHRoaXMgLTEgaXMgY29ycmVjdCBzaW5jZSB0aGVyZSBhcmUgb25seSAxNCBSQ19CdWZfdGhy ZXNoIHZhbHVlcwphcyBwZXIgdGhlIERTQyBzcGVjIFRhYmxlIDQtMiBzbyBpdCBpcyAwIC0gMTMu CkRTQ19OVU1fQlVGX1JBTkdFUyBpcyBkZWZpbmVkIGFzIDE1Cgp3aGlsZSByY19yYW5nZV9wYXJh bWV0ZXJzIHRoZXJlIGFyZSAxNSB2YWx1ZXMgc28gdGhlcmUgaXMgbm8gLTEgaW4gYmVsb3cgbG9v cC4KCk1hbmFzaQoKPiA+IAo+ID4gPiArCQlwcHNfc2RwLT5wcHNfcGF5bG9hZC5yY19idWZfdGhy ZXNoW2ldID0KPiA+ID4gKwkJCWRzY19jZmctPnJjX2J1Zl90aHJlc2hbaV07Cj4gPiA+ICsKPiA+ ID4gKwkvKiBQUFMgNTggLSA4NyAqLwo+ID4gPiArCS8qCj4gPiA+ICsJICogRm9yIERTQyBzaW5r IHByb2dyYW1taW5nIHRoZSBSQyBSYW5nZSBwYXJhbWV0ZXIgZmllbGRzCj4gPiA+ICsJICogYXJl IGFzIGZvbGxvd3M6IE1pbl9xcFsxNToxMV0sIG1heF9xcFsxMDo2XSwgb2Zmc2V0WzU6MF0KPiA+ ID4gKwkgKi8KPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwgRFNDX05VTV9CVUZfUkFOR0VTOyBpKysp IHsKPiA+ID4gKwkJcHBzX3NkcC0+cHBzX3BheWxvYWQucmNfcmFuZ2VfcGFyYW1ldGVyc1tpXSA9 Cj4gPiA+ICsJCQkodTE2KSgoZHNjX2NmZy0+cmNfcmFuZ2VfcGFyYW1zW2ldLnJhbmdlX21pbl9x cCA8PAo+ID4gPiArCQkJICAgICAgIERTQ19QUFNfUkNfUkFOR0VfTUlOUVBfU0hJRlQpIHwKPiA+ ID4gKwkJCSAgICAgIChkc2NfY2ZnLT5yY19yYW5nZV9wYXJhbXNbaV0ucmFuZ2VfbWF4X3FwIDw8 Cj4gPiA+ICsJCQkgICAgICAgRFNDX1BQU19SQ19SQU5HRV9NQVhRUF9TSElGVCkgfAo+ID4gPiAr CQkJICAgICAgKGRzY19jZmctPnJjX3JhbmdlX3BhcmFtc1tpXS5yYW5nZV9icGdfb2Zmc2V0KSk7 Cj4gPiA+ICsJCXBwc19zZHAtPnBwc19wYXlsb2FkLnJjX3JhbmdlX3BhcmFtZXRlcnNbaV0gPQo+ ID4gPiArCQkJY3B1X3RvX2JlMTYocHBzX3NkcC0+cHBzX3BheWxvYWQucmNfcmFuZ2VfcGFyYW1l dGVyc1tpXSk7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJLyogUFBTIDg4ICovCj4gPiA+ICsJ cHBzX3NkcC0+cHBzX3BheWxvYWQubmF0aXZlXzQyMl80MjAgPSAodTgpZHNjX2NmZy0+bmF0aXZl XzQyMiB8Cj4gPiA+ICsJCSh1OClkc2NfY2ZnLT5uYXRpdmVfNDIwIDw8IERTQ19QUFNfTkFUSVZF XzQyMF9TSElGVDsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyA4OSAqLwo+ID4gPiArCXBwc19zZHAt PnBwc19wYXlsb2FkLnNlY29uZF9saW5lX2JwZ19vZmZzZXQgPQo+ID4gPiArCQkodTgpZHNjX2Nm Zy0+c2Vjb25kX2xpbmVfYnBnX29mZnNldDsKPiA+ID4gKwo+ID4gPiArCS8qIFBQUyA5MCwgOTEg Ki8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5uc2xfYnBnX29mZnNldCA9Cj4gPiA+ICsJ CWNwdV90b19iZTE2KGRzY19jZmctPm5zbF9icGdfb2Zmc2V0KTsKPiA+ID4gKwo+ID4gPiArCS8q IFBQUyA5MiwgOTMgKi8KPiA+ID4gKwlwcHNfc2RwLT5wcHNfcGF5bG9hZC5zZWNvbmRfbGluZV9v ZmZzZXRfYWRqID0KPiA+ID4gKwkJY3B1X3RvX2JlMTYoZHNjX2NmZy0+c2Vjb25kX2xpbmVfb2Zm c2V0X2Fkaik7Cj4gPiA+ICsKPiA+ID4gKwkvKiBQUFMgOTQgLSAxMjcgYXJlIE8gKi8KPiA+ID4g K30KPiA+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2RzY19wcHNfaW5mb2ZyYW1lX3BhY2spOwo+ID4g PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RzYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2Rz Yy5oCj4gPiA+IGluZGV4IDk4NmY5NjJmMzhkNC4uMGU1ZTMzNjhkNjQ1IDEwMDY0NAo+ID4gPiAt LS0gYS9pbmNsdWRlL2RybS9kcm1fZHNjLmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rz Yy5oCj4gPiA+IEBAIC04LDYgKzgsNyBAQAo+ID4gPiAgI2lmbmRlZiBEUk1fRFNDX0hfCj4gPiA+ ICAjZGVmaW5lIERSTV9EU0NfSF8KPiA+ID4gIAo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2J5dGVv cmRlci9nZW5lcmljLmg+Cj4gPiAKPiA+IFRoaXMgaGVhZGVyIGRvZXNuJ3QgbmVlZCB0aGF0IEFG QUlDUy4KPiA+Cj4gCj4gSSB3aWxsIG1vdmUgdGhhdCB0byBkcm1fZHNjLmMKPiAKPiBNYW5hc2kK PiAgCj4gPiA+ICAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KPiA+ID4gIAo+ID4gPiAg LyogVkVTQSBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiBEU0MgMS4yIGNvbnN0YW50cyAqLwo+ ID4gPiBAQCAtMjQsNiArMjUsMjMgQEAKPiA+ID4gICNkZWZpbmUgRFNDX1JDX1RHVF9PRkZTRVRf SElfQ09OU1QJICAgIDMKPiA+ID4gICNkZWZpbmUgRFNDX1JDX1RHVF9PRkZTRVRfTE9fQ09OU1QJ ICAgIDMKPiA+ID4gIAo+ID4gPiArLyogRFNDIFBQUyBjb25zdGFudHMgYW5kIG1hY3JvcyAqLwo+ ID4gPiArI2RlZmluZSBEU0NfUFBTX1ZFUlNJT05fTUFKT1JfU0hJRlQJCTQKPiA+ID4gKyNkZWZp bmUgRFNDX1BQU19CUENfU0hJRlQJCQk0Cj4gPiA+ICsjZGVmaW5lIERTQ19QUFNfTVNCX1NISUZU CQkJOAo+ID4gPiArI2RlZmluZSBEU0NfUFBTX0xTQl9NQVNLCQkJKDB4RkYgPDwgMCkKPiA+ID4g KyNkZWZpbmUgRFNDX1BQU19CUFBfSElHSF9NQVNLCQkJKDB4MyA8PCA4KQo+ID4gPiArI2RlZmlu ZSBEU0NfUFBTX1ZCUl9FTl9TSElGVAkJCTIKPiA+ID4gKyNkZWZpbmUgRFNDX1BQU19TSU1QTEU0 MjJfU0hJRlQJCQkzCj4gPiA+ICsjZGVmaW5lIERTQ19QUFNfQ09OVkVSVF9SR0JfU0hJRlQJCTQK PiA+ID4gKyNkZWZpbmUgRFNDX1BQU19CTE9DS19QUkVEX0VOX1NISUZUCQk1Cj4gPiA+ICsjZGVm aW5lIERTQ19QUFNfSU5JVF9YTUlUX0RFTEFZX0hJR0hfTUFTSwkoMHgzIDw8IDgpCj4gPiA+ICsj ZGVmaW5lIERTQ19QUFNfU0NBTEVfREVDX0lOVF9ISUdIX01BU0sJCSgweEYgPDwgOCkKPiA+ID4g KyNkZWZpbmUgRFNDX1BQU19SQ19UR1RfT0ZGU0VUX0hJX1NISUZUCQk0Cj4gPiA+ICsjZGVmaW5l IERTQ19QUFNfUkNfUkFOR0VfTUlOUVBfU0hJRlQJCTExCj4gPiA+ICsjZGVmaW5lIERTQ19QUFNf UkNfUkFOR0VfTUFYUVBfU0hJRlQJCTYKPiA+ID4gKyNkZWZpbmUgRFNDX1BQU19OQVRJVkVfNDIw X1NISUZUCQkxCj4gPiA+ICsKPiA+ID4gIC8qIENvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIFJh dGUgQ29udHJvbCBtb2RlbCByYW5nZSAqLwo+ID4gPiAgc3RydWN0IGRzY19yY19yYW5nZV9wYXJh bWV0ZXJzIHsKPiA+ID4gIAkvKiBNaW4gUXVhbnRpemF0aW9uIFBhcmFtZXRlcnMgYWxsb3dlZCBm b3IgdGhpcyByYW5nZSAqLwo+ID4gPiBAQCAtNDYzLDQgKzQ4MSw4IEBAIHN0cnVjdCBkcm1fZHNj X3Bwc19pbmZvZnJhbWUgewo+ID4gPiAgCXN0cnVjdCBwaWN0dXJlX3BhcmFtZXRlcl9zZXQgcHBz X3BheWxvYWQ7Cj4gPiA+ICB9IF9fcGFja2VkOwo+ID4gPiAgCj4gPiA+ICt2b2lkIGRybV9kc2Nf ZHBfcHBzX2hlYWRlcl9pbml0KHN0cnVjdCBkcm1fZHNjX3Bwc19pbmZvZnJhbWUgKnBwc19zZHAp Owo+ID4gPiArdm9pZCBkcm1fZHNjX3Bwc19pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgZHJtX2RzY19w cHNfaW5mb2ZyYW1lICpwcHNfc2RwLAo+ID4gPiArCQkJCXN0cnVjdCBkcm1fZHNjX2NvbmZpZyAq ZHNjX2NmZyk7Cj4gPiA+ICsKPiA+ID4gICNlbmRpZiAvKiBfRFJNX0RTQ19IXyAqLwo+ID4gPiAt LSAKPiA+ID4gMi4xOC4wCj4gPiAKPiA+IC0tIAo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJbnRl bAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJp LWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK