From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 03/11] drm: parse ycbcr420 cmdb block Date: Tue, 30 May 2017 19:27:02 +0300 Message-ID: <20170530162702.GE12629@intel.com> References: <1496146430-11430-1-git-send-email-shashank.sharma@intel.com> <1496146430-11430-4-git-send-email-shashank.sharma@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: <1496146430-11430-4-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Shashank Sharma Cc: intel-gfx@lists.freedesktop.org, Jose Abreu , Emil Velikov , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXkgMzAsIDIwMTcgYXQgMDU6NDM6NDJQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IEhETUkgMi4wIHNwZWMgYWRkcyBzdXBwb3J0IGZvciB5Y2JjcjQyMCBzdWItc2Ft cGxlZCBvdXRwdXQuCj4gQ0VBLTg2MS1GIGFkZHMgdHdvIG5ldyBibG9ja3MgaW4gRURJRCwgdG8g cHJvdmlkZSBpbmZvcm1hdGlvbgo+IGFib3V0IHNpbmsncyBzdXBwb3J0IGZvciB5Y2JjcjQyMCBv dXRwdXQuCj4gCj4gT25lIG9mIHRoZXNlIG5ldyBibG9ja3MgaXM6IHljYmNyNDIwY21kYih5Y2Jj ciA0MjAgY2FwYWJpbGl0eQo+IG1hcCBkYXRhIGJsb2NrKS4gVGhpcyBnaXZlcyBpbmZvcm1hdGlv biBhYm91dCB2aWRlbyBtb2RlcyB3aGljaAo+IGNhbiBzdXBwb3J0IHljYmNyNDIwIG91dHB1dCBt b2RlIGFsc28gKGFsb25nIHdpdGggUkdCLFlDQkNSNDQ0Lwo+IDQyMiBldGMpCj4gCj4gVGhpcyBi bG9jayBjb250YWlucyBhIGJpdG1hcCBpbmRleCBvZiBub3JtYWwgc3ZkIHZpZGVvbW9kZXMsIHdo aWNoIGNhbgo+IHN1cHBvcnQgeWNiY3I0MjAgb3V0cHV0IHRvby4KPiBTbyBpZiBiaXQgMCBmcm9t IGZpcnN0IHZjYiBieXRlIGlzIHNldCxmaXJzdCB2aWRlbyBtb2RlIGluIHRoZSBzdmQgbGlzdAo+ IGNhbiBzdXBwb3J0IHljYmNyNDIwIG91dHB1dCB0b28uIEJpdCAyIG1lYW5zIHNlY29uZCB2aWRl byBtb2RlIGZyb20gc3ZkCj4gbGlzdCBjYW4gc3VwcG9ydCB5Y2JjcjQyMCBvdXRwdXQgdG9vLCBh bmQgc28gb24uCj4gCj4gVGhpcyBwYXRjaCBhZGRzIHBhcnNpbmcgYW5kIGhhbmRsaW5nIG9mIHlj YmNyNDIwLWNtZGIgaW4gdGhlIERSTSBsYXllci4KPiAKPiBDYzogVmlsbGUgU3lyamFsYSA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IEpvc2UgQWJyZXUgPGpvYWJyZXVAc3lu b3BzeXMuY29tPgo+IENjOiBFbWlsIFZlbGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT4K PiAKPiBWMjogQWRkcmVzc2VkCj4gICAgIFJldmlldyBjb21tZW50cyBmcm9tIEVtaWw6Cj4gICAg IC0gVXNlIDFVTEw8PGkgaW5zdGVhZCBvZiAxPDxpIHRvIG1ha2Ugc3VyZSB0aGUgb3V0cHV0IGlz IDY0Yml0Lgo+ICAgICAtIFVzZSB0aGUgc3VnZ2VzdGVkIG1ldGhvZCBmb3IgdXBkYXRpbmcgZGJt YXAuCj4gICAgIC0gQWRkIGRvY3VtZW50YXRpb24gZm9yIHljYmNyNDIwX3ZjYl9tYXAgdG8gZml4 IGtidWlsZCB3YXJuaW5nLgo+IAo+ICAgICBSZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZToKPiAg ICAgLSBEbyBub3QgZXhwb3NlIHRoZSB5Y2JjcjQyMCBmbGFncyBpbiB1YWJpIGxheWVyLCBrZWVw IGl0IGludGVybmFsLgo+ICAgICAtIFNhdmUgYSBtYXAgb2YgeWNiY3I0MjAgbW9kZXMgZm9yIGZ1 dHVyZSByZWZlcmVuY2UuCj4gICAgIC0gQ2hlY2sgZGIgbGVuZ3RoIGJlZm9yZSB0cnlpbmcgdG8g cGFyc2UgZXh0ZW5kZWQgdGFnLgo+ICAgICAtIEFkZCBhIHdhcm5pbmcgaWYgdGhlcmUgYXJlID4g NjQgbW9kZXMgaW4gY2FwYWJpbGl0eSBtYXAgYmxvY2suCj4gICAgIC0gVXNlIHk0MjBjbWRiIGlu IGZ1bmN0aW9uIG5hbWVzIGFuZCBtYWNyb3Mgd2hpbGUgZGVhbGluZyB3aXRoIHZjYgo+ICAgICAg IHRvIGJlIGFsaWduZWQgd2l0aCBzcGVjLgo+ICAgICAtIE1vdmUgdGhlIGRpc3BsYXkgaW5mb3Jt YXRpb24gcGFyc2luZyBibG9jayBhaGVhZCBvZiBtb2RlIHBhcnNpbmcKPiAgICAgICBibG9ja3Mu Cj4gCj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50 ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyAgfCAxMTggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPiAgaW5jbHVkZS9kcm0vZHJt X2Nvbm5lY3Rvci5oIHwgIDEyICsrKysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiBpbmRleCBjM2ZhM2ExLi5j ZTg2NTI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiBAQCAtMjc4MSw3ICsyNzgxLDkgQEAgYWRkX2Rl dGFpbGVkX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBlZGlk ICplZGlkLAo+ICAjZGVmaW5lIFZJREVPX0JMT0NLICAgICAweDAyCj4gICNkZWZpbmUgVkVORE9S X0JMT0NLICAgIDB4MDMKPiAgI2RlZmluZSBTUEVBS0VSX0JMT0NLCTB4MDQKPiAtI2RlZmluZSBW SURFT19DQVBBQklMSVRZX0JMT0NLCTB4MDcKPiArI2RlZmluZSBWSURFT19DQVBBQklMSVRZX0JM T0NLIDB4MDcKPiArI2RlZmluZSBWSURFT19EQVRBX0JMT0NLXzQyMAkweDBFCj4gKyNkZWZpbmUg VklERU9fQ0FQX0JMT0NLX1k0MjBDTURCIDB4MEYKPiAgI2RlZmluZSBFRElEX0JBU0lDX0FVRElP CSgxIDw8IDYpCj4gICNkZWZpbmUgRURJRF9DRUFfWUNSQ0I0NDQJKDEgPDwgNSkKPiAgI2RlZmlu ZSBFRElEX0NFQV9ZQ1JDQjQyMgkoMSA8PCA0KQo+IEBAIC0zMTQzLDE1ICszMTQ1LDUwIEBAIGRy bV9kaXNwbGF5X21vZGVfZnJvbV92aWNfaW5kZXgoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiAgCXJldHVybiBuZXdtb2RlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtkcm1f YWRkX3ZjYl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCB2aWMpCj4g K3sKPiArCXUzMiAqbWFwOwo+ICsJdTggaW5kZXggPSAwOwo+ICsJc3RydWN0IGRybV9oZG1pX2lu Zm8gKmhkbWkgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaTsKPiArCj4gKwkvKiBWSUNz IGFyZSAxIHRvIDEyNygxMDcgZGVmaW5lZCB0aWxsIENFQS04NjEtRikgKi8KPiArCXZpYyAmPSAx Mjc7Cj4gKwo+ICsJLyoKPiArCSAqIHljYmNyNDIwX3ZjYl9tb2RlcyBpcyBhIGZpeCBwb3NpdGlv biAxMjggYml0IGJpdG1hcC4gVGhpcyBpbmRpY2F0ZXMKPiArCSAqIHN1cHBvcnQgZm9yIHljYmNy NDIwIG91dHB1dCBwZXIgVklDLiBBcnJhbmdlbWVudCBpcyBiaXRbbl0gaW5kaWNhdGVzCj4gKwkg KiBpZiB2aWNbbisxXSBzdXBwb3J0cyB5Y2JjcjQyMCBvdXRwdXQuCj4gKwkgKiB5Y2JjcjQyMF92 Y2JfbW9kZXNbMF0gPSB8VklDPTMyIHxWSUM9MzEgfC4uLi4uLi4uLi4uLnxWSUM9MiB8VklDPTEg fAo+ICsJICogeWNiY3I0MjBfdmNiX21vZGVzWzFdID0gfFZJQz02NCB8VklDPTYzIHwuLi4uLi4u Li4uLi58VklDPTM0fFZJQz0zM3wKPiArCSAqIHljYmNyNDIwX3ZjYl9tb2Rlc1syXSA9IHxWSUM9 OTYgfFZJQz05NSB8Li4uLi4uLi4uLi4ufFZJQz02NnxWSUM9NjV8Cj4gKwkgKiB5Y2JjcjQyMF92 Y2JfbW9kZXNbM10gPSB8VklDPTEyOHxWSUM9MTI3fC4uLi4uLi4uLi4uLnxWSUM9MzR8VklDPTk3 fAo+ICsJICovCj4gKwltYXAgPSAmKGhkbWktPnljYmNyNDIwX3ZjYl9tb2Rlc1sodmljIC0gMSkg LyAzMl0pOwo+ICsJaW5kZXggPSAodmljIC0gMSkgJSAzMjsKPiArCSptYXAgfD0gKDEgPDwgaW5k ZXgpOwoKdW5zaWduZWQgbG9uZyB3aGF0ZXZlcltCSVRTX1RPX0xPTkdTKG5yKV07CgpfX3NldF9i aXQoKSwgdGVzdF9iaXQoKSwgZXRjLgoKCj4gK30KPiArCj4gIHN0YXRpYyBpbnQKPiAgZG9fY2Vh X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGNvbnN0IHU4ICpkYiwgdTgg bGVuKQo+ICB7Cj4gIAlpbnQgaSwgbW9kZXMgPSAwOwo+ICsJc3RydWN0IGRybV9oZG1pX2luZm8g KmhkbWkgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaTsKPiArCXU2NCBoZG1pX3ZjYl9t YXAgPSBoZG1pLT55Y2JjcjQyMF92Y2JfbWFwOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBsZW47 IGkrKykgewo+ICAJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ICAJCW1vZGUgPSBk cm1fZGlzcGxheV9tb2RlX2Zyb21fdmljX2luZGV4KGNvbm5lY3RvciwgZGIsIGxlbiwgaSk7Cj4g IAkJaWYgKG1vZGUpIHsKPiArCQkJLyoKPiArCQkJICogeWNiY3I0MjAgY2FwYWJpbGl0eSBibG9j ayBjb250YWlucyBhIGJpdG1hcCB3aGljaAo+ICsJCQkgKiBnaXZlcyB0aGUgaW5kZXggb2Ygc3Vj aCBDRUEgbW9kZXMgaW4gVkRCLCB3aGljaCBjYW4KPiArCQkJICogc3VwcG9ydCB5Y2JjcjQyMCBz YW1wbGluZyBvdXRwdXQgYWxzby4KPiArCQkJICogRm9yIGV4YW1wbGUsIGlmIHRoZSBiaXQgMCBp biBiaXRtYXAgaXMgc2V0LAo+ICsJCQkgKiBmaXJzdCBtb2RlIGluIFZEQiBjYW4gc3VwcG9ydCB5 Y2JjcjQyMCBvdXRwdXQgdG9vLgo+ICsJCQkgKi8KPiArCQkJaWYgKGhkbWlfdmNiX21hcCAmICgx IDw8IGkpKQo+ICsJCQkJZHJtX2FkZF92Y2JfbW9kZXMoY29ubmVjdG9yLCBkYltpXSk7Cj4gIAkJ CWRybV9tb2RlX3Byb2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlKTsKPiAgCQkJbW9kZXMrKzsKPiAg CQl9Cj4gQEAgLTM0MjcsNiArMzQ2NCwxMiBAQCBkb19oZG1pX3ZzZGJfbW9kZXMoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwgY29uc3QgdTggKmRiLCB1OCBsZW4sCj4gIH0KPiAgCj4g IHN0YXRpYyBpbnQKPiArY2VhX2RiX2V4dGVuZGVkX3RhZyhjb25zdCB1OCAqZGIpCj4gK3sKPiAr CXJldHVybiBkYlsxXTsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ICBjZWFfZGJfcGF5bG9hZF9s ZW4oY29uc3QgdTggKmRiKQo+ICB7Cj4gIAlyZXR1cm4gZGJbMF0gJiAweDFmOwo+IEBAIC0zNDg3 LDkgKzM1MzAsNzAgQEAgc3RhdGljIGJvb2wgY2VhX2RiX2lzX2hkbWlfZm9ydW1fdnNkYihjb25z dCB1OCAqZGIpCj4gIAlyZXR1cm4gb3VpID09IEhETUlfRk9SVU1fSUVFRV9PVUk7Cj4gIH0KPiAg Cj4gK3N0YXRpYyBib29sIGNlYV9kYl9pc195NDIwY21kYihjb25zdCB1OCAqZGIpCj4gK3sKPiAr CXU4IGxlbiA9IGNlYV9kYl9wYXlsb2FkX2xlbihkYik7Cj4gKwo+ICsJaWYgKGNlYV9kYl90YWco ZGIpICE9IFZJREVPX0NBUEFCSUxJVFlfQkxPQ0spCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiAr CWlmICghbGVuKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAoY2VhX2RiX2V4dGVuZGVk X3RhZyhkYikgIT0gVklERU9fQ0FQX0JMT0NLX1k0MjBDTURCKQo+ICsJCXJldHVybiBmYWxzZTsK PiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiAgI2RlZmluZSBmb3JfZWFjaF9jZWFfZGIo Y2VhLCBpLCBzdGFydCwgZW5kKSBcCj4gIAlmb3IgKChpKSA9IChzdGFydCk7IChpKSA8IChlbmQp ICYmIChpKSArIGNlYV9kYl9wYXlsb2FkX2xlbigmKGNlYSlbKGkpXSkgPCAoZW5kKTsgKGkpICs9 IGNlYV9kYl9wYXlsb2FkX2xlbigmKGNlYSlbKGkpXSkgKyAxKQo+ICAKPiArc3RhdGljIHZvaWQg ZHJtX3BhcnNlX3k0MjBjbWRiX2JpdG1hcChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+ICsJCQkJICAgICBjb25zdCB1OCAqZGIpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9p bmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICsJc3RydWN0IGRybV9oZG1p X2luZm8gKmhkbWkgPSAmaW5mby0+aGRtaTsKPiArCXU4IG1hcF9sZW4gPSBjZWFfZGJfcGF5bG9h ZF9sZW4oZGIpIC0gMTsKPiArCXU4IGNvdW50Owo+ICsJdTY0IG1hcCA9IDA7Cj4gKwo+ICsJaWYg KCFkYikKPiArCQlyZXR1cm47Cj4gKwo+ICsJaWYgKG1hcF9sZW4gPT0gMCkgewo+ICsJCS8qIEFs bCBDRUEgbW9kZXMgc3VwcG9ydCB5Y2JjcjQyMCBzYW1wbGluZyBhbHNvLiovCj4gKwkJaGRtaS0+ eWNiY3I0MjBfdmNiX21hcCA9IFU2NF9NQVg7Cj4gKwkJaW5mby0+Y29sb3JfZm9ybWF0cyB8PSBE Uk1fQ09MT1JfRk9STUFUX1lDUkNCNDIwOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwkvKgo+ ICsJICogVGhpcyBtYXAgaW5kaWNhdGVzIHdoaWNoIG9mIHRoZSBleGlzdGluZyBDRUEgYmxvY2sg bW9kZXMKPiArCSAqIGZyb20gVkRCIGNhbiBzdXBwb3J0IFlDQkNSNDIwIG91dHB1dCB0b28uIFNv IGlmIGJpdD0wIGlzCj4gKwkgKiBzZXQsIGZpcnN0IG1vZGUgZnJvbSBWREIgY2FuIHN1cHBvcnQg WUNCQ1I0MjAgb3V0cHV0IHRvby4KPiArCSAqIFdlIHdpbGwgcGFyc2UgYW5kIGtlZXAgdGhpcyBt YXAsIGJlZm9yZSBwYXJzaW5nIFZEQiBpdHNlbGYKPiArCSAqIHRvIGF2b2lkIGdvaW5nIHRocm91 Z2ggdGhlIHNhbWUgYmxvY2sgYWdhaW4gYW5kIGFnYWluLgo+ICsJICoKPiArCSAqIFNwZWMgaXMg bm90IGNsZWFyIGFib3V0IG1heCBwb3NzaWJsZSBzaXplIG9mIHRoaXMgYmxvY2suCj4gKwkgKiBD bGFtcGluZyBtYXggYml0bWFwIGJsb2NrIHNpemUgYXQgOCBieXRlcy4gRXZlcnkgYnl0ZSBjYW4K PiArCSAqIGFkZHJlc3MgOCBDRUEgbW9kZXMsIGluIHRoaXMgd2F5IHRoaXMgbWFwIGNhbiBhZGRy ZXNzCj4gKwkgKiA4KjggPSBmaXJzdCA2NCBTVkRzLgo+ICsJICovCj4gKwlpZiAoV0FSTl9PTl9P TkNFKG1hcF9sZW4gPiA4KSkKPiArCQltYXBfbGVuID0gODsKPiArCj4gKwlmb3IgKGNvdW50ID0g MDsgY291bnQgPCBtYXBfbGVuOyBjb3VudCsrKQo+ICsJCW1hcCB8PSAodTY0KWRiWzIgKyBjb3Vu dF0gPDwgKDggKiBjb3VudCk7Cj4gKwo+ICsJaWYgKG1hcCkgewo+ICsJCURSTV9ERUJVR19LTVMo IlNpbmsgc3VwcG9ydHMgeWNiY3IgNDIwXG4iKTsKPiArCQlpbmZvLT5jb2xvcl9mb3JtYXRzIHw9 IERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjA7Cj4gKwl9Cj4gKwo+ICsJaGRtaS0+eWNiY3I0MjBf dmNiX21hcCA9IG1hcDsKPiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBhZGRfY2VhX21vZGVzKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdCBlZGlkICplZGlkKQo+ICB7Cj4g QEAgLTQxOTYsNiArNDMwMCw4IEBAIHN0YXRpYyB2b2lkIGRybV9wYXJzZV9jZWFfZXh0KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCWRybV9wYXJzZV9oZG1pX3ZzZGJfdmlk ZW8oY29ubmVjdG9yLCBkYik7Cj4gIAkJaWYgKGNlYV9kYl9pc19oZG1pX2ZvcnVtX3ZzZGIoZGIp KQo+ICAJCQlkcm1fcGFyc2VfaGRtaV9mb3J1bV92c2RiKGNvbm5lY3RvciwgZGIpOwo+ICsJCWlm IChjZWFfZGJfaXNfeTQyMGNtZGIoZGIpKQo+ICsJCQlkcm1fcGFyc2VfeTQyMGNtZGJfYml0bWFw KGNvbm5lY3RvciwgZGIpOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC00NDMwLDYgKzQ1MzYsMTMgQEAg aW50IGRybV9hZGRfZWRpZF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBz dHJ1Y3QgZWRpZCAqZWRpZCkKPiAgCXF1aXJrcyA9IGVkaWRfZ2V0X3F1aXJrcyhlZGlkKTsKPiAg Cj4gIAkvKgo+ICsJICogQ0VBLTg2MS1GIGFkZHMgeWNiY3IgY2FwYWJpbGl0eSBtYXAgYmxvY2ss IGZvciBIRE1JIDIuMCBzaW5rcy4KPiArCSAqIFRvIGF2b2lkIG11bHRpcGxlIHBhcnNpbmcgb2Yg c2FtZSBibG9jaywgbGV0cyBnZXQgdGhlIHNpbmsgaW5mbwo+ICsJICogYmVmb3JlIHBhcnNpbmcg Q0VBIG1vZGVzLgo+ICsJICovCj4gKwlkcm1fYWRkX2Rpc3BsYXlfaW5mbyhjb25uZWN0b3IsIGVk aWQpOwo+ICsKPiArCS8qCj4gIAkgKiBFRElEIHNwZWMgc2F5cyBtb2RlcyBzaG91bGQgYmUgcHJl ZmVycmVkIGluIHRoaXMgb3JkZXI6Cj4gIAkgKiAtIHByZWZlcnJlZCBkZXRhaWxlZCBtb2RlCj4g IAkgKiAtIG90aGVyIGRldGFpbGVkIG1vZGVzIGZyb20gYmFzZSBibG9jawo+IEBAIC00NDUwLDE0 ICs0NTYzLDEzIEBAIGludCBkcm1fYWRkX2VkaWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3Rvciwgc3RydWN0IGVkaWQgKmVkaWQpCj4gIAludW1fbW9kZXMgKz0gYWRkX2NlYV9t b2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ICAJbnVtX21vZGVzICs9IGFkZF9hbHRlcm5hdGVfY2Vh X21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gIAludW1fbW9kZXMgKz0gYWRkX2Rpc3BsYXlpZF9k ZXRhaWxlZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ICsKPiAgCWlmIChlZGlkLT5mZWF0dXJl cyAmIERSTV9FRElEX0ZFQVRVUkVfREVGQVVMVF9HVEYpCj4gIAkJbnVtX21vZGVzICs9IGFkZF9p bmZlcnJlZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ICAKPiAgCWlmIChxdWlya3MgJiAoRURJ RF9RVUlSS19QUkVGRVJfTEFSR0VfNjAgfCBFRElEX1FVSVJLX1BSRUZFUl9MQVJHRV83NSkpCj4g IAkJZWRpZF9maXh1cF9wcmVmZXJyZWQoY29ubmVjdG9yLCBxdWlya3MpOwo+ICAKPiAtCWRybV9h ZGRfZGlzcGxheV9pbmZvKGNvbm5lY3RvciwgZWRpZCk7Cj4gLQo+ICAJaWYgKHF1aXJrcyAmIEVE SURfUVVJUktfRk9SQ0VfNkJQQykKPiAgCQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5icGMgPSA2 Owo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gaW5kZXggMmZlMDljMS4uMDdiMTBhYiAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKPiBAQCAtMTM3LDYgKzEzNywxNyBAQCBzdHJ1Y3QgZHJtX3NjZGMgewo+ICBz dHJ1Y3QgZHJtX2hkbWlfaW5mbyB7Cj4gIAkvKiogQHNjZGM6IHNpbmsncyBzY2RjIHN1cHBvcnQg YW5kIGNhcGFiaWxpdGllcyAqLwo+ICAJc3RydWN0IGRybV9zY2RjIHNjZGM7Cj4gKwo+ICsJLyoq Cj4gKwkgKiBAeWNiY3I0MjBfdmNiX21vZGVzOiBiaXRtYXAgb2YgbW9kZXMgd2hpY2ggY2FuIHN1 cHBvcnQgeWNiY3I0MjAKPiArCSAqIG91dHB1dCBhbHNvIGFsb25nIHdpdGggbm9ybWFsIG91dHB1 dHMuIFRoZXJlIGFyZSB0b3RhbCAxMDcgVklDcwo+ICsJICogZGVmaW5lZCBieSBDRUEtODYxLUYg c3BlYywgc28gdGhlIHNpemUgaXMgMTI4Yml0cyB0byBtYXAgdXB0byAxMjgKPiArCSAqIFZJQ3M7 Cj4gKwkgKi8KPiArCXUzMiB5Y2JjcjQyMF92Y2JfbW9kZXNbNF07Cj4gKwo+ICsJLyoqIEB5Y2Jj cjQyMF92Y2JfbWFwOiBiaXRtYXAgb2YgU1ZEIGluZGV4LCB0byBleHRyYXh0IHZjYiBtb2RlcyAq Lwo+ICsJdTY0IHljYmNyNDIwX3ZjYl9tYXA7Cj4gIH07Cj4gIAo+ICAvKioKPiBAQCAtMjAwLDYg KzIxMSw3IEBAIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvIHsKPiAgI2RlZmluZSBEUk1fQ09MT1Jf Rk9STUFUX1JHQjQ0NAkJKDE8PDApCj4gICNkZWZpbmUgRFJNX0NPTE9SX0ZPUk1BVF9ZQ1JDQjQ0 NAkoMTw8MSkKPiAgI2RlZmluZSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIyCSgxPDwyKQo+ICsj ZGVmaW5lIERSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjAJKDE8PDMpCj4gIAo+ICAJLyoqCj4gIAkg KiBAY29sb3JfZm9ybWF0czogSERNSSBDb2xvciBmb3JtYXRzLCBzZWxlY3RzIGJldHdlZW4gUkdC IGFuZCBZQ3JDYgo+IC0tIAo+IDIuNy40CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK