From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 4/6] drm/edid: detect SCDC support in HF-VSDB Date: Wed, 1 Mar 2017 16:58:40 +0200 Message-ID: <20170301145840.GV31595@intel.com> References: <1488271150-7423-1-git-send-email-shashank.sharma@intel.com> <1488271150-7423-5-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: <1488271150-7423-5-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: jose.abreu@synopsys.com, ander.conselvan.de.oliveira@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel.vetter@intel.com, treding@nvidia.com List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjgsIDIwMTcgYXQgMDI6MDk6MDhQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IFRoaXMgcGF0Y2ggZG9lcyBmb2xsb3dpbmc6Cj4gLSBBZGRzIGEgbmV3IHN0cnVj dHVyZSAoZHJtX2hkbWlfaW5mbykgaW4gZHJtX2Rpc3BsYXlfaW5mby4KPiAgIFRoaXMgc3RydWN0 dXJlIHdpbGwgYmUgdXNlZCB0byBzYXZlIGFuZCBpbmRpY2F0ZSBpZiBzaW5rCj4gICBzdXBwb3J0 cyBhZHZhbmNlZCBIRE1JIDIuMCBmZWF0dXJlcwo+IC0gQWRkcyBhbm90aGVyIHN0cnVjdHVyZSBk cm1fc2NkYyB3aXRoaW4gZHJtX2hkbWlfaW5mbywgdG8KPiAgIHJlZmxlY3Qgc2NkYyBzdXBwb3J0 IGFuZCBjYXBhYmlsaXRpZXMgaW4gY29ubmVjdGVkIEhETUkgMi4wIHNpbmsuCj4gLSBDaGVja3Mg dGhlIEhGLVZTREIgYmxvY2sgZm9yIHByZXNlbmNlIG9mIFNDREMsIGFuZCBtYXJrcyBpdAo+ICAg aW4gc2NkYyBzdHJ1Y3R1cmUKPiAtIElmIFNDREMgaXMgcHJlc2VudCwgY2hlY2tzIGlmIHNpbmsg aXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nCj4gICBTQ0RDIHJlYWQgcmVxdWVzdCwgYW5kIG1hcmtz IGl0IGluIHNjZGMgc3RydWN0dXJlLgo+IAo+IFYyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRz Cj4gICBUaGllcnJ5Ogo+ICAgLSBGaXggdHlwb3MgaW4gY29tbWl0IG1lc3NhZ2UgYW5kIG1ha2Ug YWJicmV2aWF0aW9uIGNvbnNpc3RlbnQKPiAgICAgYWNyb3NzIHRoZSBjb21taXQgbWVzc2FnZS4K PiAgIC0gQ2hhbmdlIHN0cnVjdHVyZSBvYmplY3QgbmFtZSBmcm9tIGhkbWlfaW5mbyAtPiBoZG1p Cj4gICAtIEZpeCB0eXBvcyBhbmQgYWJicmV2aWF0aW9ucyBpbiBkZXNjcmlwdGlvbiBvZiBzdHJ1 Y3R1cmUgZHJtX2hkbWlfaW5mbwo+ICAgICBlbmQgdGhlIGRlc2NyaXB0aW9uIHdpdGggYSBmdWxs IHN0b3AuCj4gICAtIENyZWF0ZSBhIHN0cnVjdHVyZSBkcm1fc2NkYywgYW5kIGtlZXAgYWxsIGlu Zm9ybWF0aW9uIHJlbGF0ZWQgdG8gU0NEQwo+ICAgICByZWdpc3RlciBzZXQgKHN1cHBvcnRlZCwg cmVhZCByZXF1ZXN0IHN1cHBvcnRlZCkgZXRjIGluIGl0Lgo+IAo+ICAgVmlsbGU6Cj4gICAtIENo YW5nZSByciAtPiByZWFkX3JlcXVlc3QKPiAgIC0gQ2FsbCBkcm1fZGV0ZWN0X3NjcmFtYmxpbmcg ZnVuY3Rpb24gZHJtX3BhcnNlX2hmX3ZzZGIgc28gdGhhdCBhbGwKPiAgICAgb2YgSEYtVlNEQiBw YXJzaW5nIGNhbiBiZSBrZXB0IGluIHNhbWUgZnVuY3Rpb24sIGluIGluY3JlbWVudGFsCj4gICAg IHBhdGNoZXMuCj4gCj4gVjM6IFJlYmFzZS4KPiBWNDogUmViYXNlLgo+IFY1OiBSZWJhc2UuCj4g Cj4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwu Y29tPgo+IFJldmlld2VkLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyAgICAgICAgfCAgMzMgKysrKysrKysr KystCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYyB8IDExMSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmggICAgICAgfCAgMTkgKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fZWRpZC5oICAgICAgICAg ICAgfCAgIDYgKystCj4gIGluY2x1ZGUvZHJtL2RybV9zY2RjX2hlbHBlci5oICAgICB8ICAyNyAr KysrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTk0IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiBpbmRleCAwODgxMTA4Li5lODRjNWFiIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMKPiBAQCAtMzcsNiArMzcsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9lZGlk Lmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1f ZGlzcGxheWlkLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVyLmg+Cj4gIAo+ICAj aW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKPiAgCj4gQEAgLTM4MTcsMTMgKzM4MTgsNDMg QEAgZW51bSBoZG1pX3F1YW50aXphdGlvbl9yYW5nZQo+ICBzdGF0aWMgdm9pZCBkcm1fcGFyc2Vf aGRtaV9mb3J1bV92c2RiKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkg Y29uc3QgdTggKmhmX3ZzZGIpCj4gIHsKPiAtCXN0cnVjdCBkcm1faGRtaV9pbmZvICpoZG1pID0g JmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWk7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5m byAqZGlzcGxheSA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKPiArCXN0cnVjdCBkcm1faGRt aV9pbmZvICpoZG1pID0gJmRpc3BsYXktPmhkbWk7Cj4gIAo+ICAJaWYgKGhmX3ZzZGJbNl0gJiAw eDgwKSB7Cj4gIAkJaGRtaS0+c2NkYy5zdXBwb3J0ZWQgPSB0cnVlOwo+ICAJCWlmIChoZl92c2Ri WzZdICYgMHg0MCkKPiAgCQkJaGRtaS0+c2NkYy5yZWFkX3JlcXVlc3QgPSB0cnVlOwo+ICAJfQo+ ICsKPiArCS8qCj4gKwkgKiBBbGwgSERNSSAyLjAgbW9uaXRvcnMgbXVzdCBzdXBwb3J0IHNjcmFt YmxpbmcgYXQgcmF0ZXMgPiAzNDAgTUh6Lgo+ICsJICogQW5kIGFzIHBlciB0aGUgc3BlYywgdGhy ZWUgZmFjdG9ycyBjb25maXJtIHRoaXM6Cj4gKwkgKiAqIEF2YWlsYWJpbGl0eSBvZiBhIEhGLVZT REIgYmxvY2sgaW4gRURJRCAoY2hlY2spCj4gKwkgKiAqIE5vbiB6ZXJvIE1heF9UTURTX0NoYXJf UmF0ZSBmaWxlZCBpbiBIRi1WU0RCIChsZXQncyBjaGVjaykKPiArCSAqICogU0NEQyBzdXBwb3J0 IGF2YWlsYWJsZSAobGV0J3MgY2hlY2spCj4gKwkgKiBMZXRzIGNoZWNrIGl0IG91dC4KPiArCSAq Lwo+ICsKPiArCWlmIChoZl92c2RiWzVdKSB7Cj4gKwkJLyogbWF4IGNsb2NrIGlzIDUwMDAgS0h6 IHRpbWVzIGJsb2NrIHZhbHVlICovCj4gKwkJdTMyIG1heF90bWRzX2Nsb2NrID0gaGZfdnNkYls1 XSAqIDUwMDA7Cj4gKwkJc3RydWN0IGRybV9zY2RjICpzY2RjID0gJmhkbWktPnNjZGM7Cj4gKwo+ ICsJCWlmIChtYXhfdG1kc19jbG9jayA+IDM0MDAwMCkgewo+ICsJCQlkaXNwbGF5LT5tYXhfdG1k c19jbG9jayA9IG1heF90bWRzX2Nsb2NrOwo+ICsJCQlEUk1fREVCVUdfS01TKCJIRi1WU0RCOiBt YXggVE1EUyBjbG9jayAlZCBrSHpcbiIsCj4gKwkJCQlkaXNwbGF5LT5tYXhfdG1kc19jbG9jayk7 Cj4gKwkJfQo+ICsKPiArCQlpZiAoc2NkYy0+c3VwcG9ydGVkKSB7Cj4gKwkJCXNjZGMtPnNjcmFt Ymxpbmcuc3VwcG9ydGVkID0gdHJ1ZTsKPiArCj4gKwkJCS8qIEZldyBzaW5rcyBzdXBwb3J0IHNj cmFtYmxpbmcgZm9yIGNsb2tzIDwgMzQwTSAqLwo+ICsJCQlpZiAoKGhmX3ZzZGJbNl0gJiAweDgp KQo+ICsJCQkJc2NkYy0+c2NyYW1ibGluZy5sb3dfcmF0ZXMgPSB0cnVlOwo+ICsJCX0KPiArCX0K PiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZHJtX3BhcnNlX2hkbWlfZGVlcF9jb2xvcl9pbmZvKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fc2NkY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIu Ywo+IGluZGV4IGMyZGQzM2YuLjE4MGE3Y2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9zY2RjX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBl ci5jCj4gQEAgLTIyLDggKzIyLDEwIEBACj4gICAqLwo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L3Ns YWIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gIAo+ICAjaW5jbHVkZSA8ZHJtL2Ry bV9zY2RjX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiAgCj4gIC8qKgo+ICAg KiBET0M6IHNjZGMgaGVscGVycwo+IEBAIC0xMjEsMyArMTIzLDExMiBAQCBzc2l6ZV90IGRybV9z Y2RjX3dyaXRlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgdTggb2Zmc2V0LAo+ICAJcmV0 dXJuIDA7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fc2NkY193cml0ZSk7Cj4gKwo+ICsvKioK PiArICogZHJtX3NjZGNfY2hlY2tfc2NyYW1ibGluZ19zdGF0dXMgLSB3aGF0IGlzIHN0YXR1cyBv ZiBzY3JhbWJsaW5nPwo+ICsgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBjaGFubmVs Cj4gKyAqCj4gKyAqIFJlYWRzIHRoZSBzY3JhbWJsZXIgc3RhdHVzIG92ZXIgU0NEQywgYW5kIGNo ZWNrcyB0aGUKPiArICogc2NyYW1ibGluZyBzdGF0dXMuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4g KyAqIFRydWUgaWYgdGhlIHNjcmFtYmxpbmcgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLgo+ ICsgKi8KPiArCj4gK2Jvb2wgZHJtX3NjZGNfZ2V0X3NjcmFtYmxpbmdfc3RhdHVzKHN0cnVjdCBp MmNfYWRhcHRlciAqYWRhcHRlcikKPiArewo+ICsJdTggc3RhdHVzOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlyZXQgPSBkcm1fc2NkY19yZWFkYihhZGFwdGVyLCBTQ0RDX1NDUkFNQkxFUl9TVEFUVVMs ICZzdGF0dXMpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBy ZWFkIHNjcmFtYmxpbmcgc3RhdHVzLCBlcnJvciAlZFxuIiwgcmV0KTsKPiArCQlyZXR1cm4gZmFs c2U7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHN0YXR1cyAmIFNDRENfU0NSQU1CTElOR19TVEFUVVM7 Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fc2NkY19nZXRfc2NyYW1ibGluZ19zdGF0dXMpOwo+ ICsKPiArLyoqCj4gKyAqIGRybV9zY2RjX3NldF9zY3JhbWJsaW5nIC0gZW5hYmxlIHNjcmFtYmxp bmcKPiArICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyIGZvciBEREMgY2hhbm5lbAo+ICsgKiBAZW5h YmxlOiBib29sIHRvIGluZGljYXRlIGlmIHNjcmFtYmxpbmcgaXMgdG8gYmUgZW5hYmxlZC9kaXNh YmxlZAo+ICsgKgo+ICsgKiBXcml0ZXMgdGhlIFRNRFMgY29uZmlnIHJlZ2lzdGVyIG92ZXIgU0NE QyBjaGFubmVsLCBhbmQ6Cj4gKyAqIGVuYWJsZXMgc2NyYW1ibGluZyB3aGVuIGVuYWJsZSA9IDEK PiArICogZGlzYWJsZXMgc2NyYW1ibGluZyB3aGVuIGVuYWJsZSA9IDAKPiArICoKPiArICogUmV0 dXJuczoKPiArICogVHJ1ZSBpZiBzY3JhbWJsaW5nIGlzIHNldC9yZXNldCBzdWNjZXNzZnVsbHks IGZhbHNlIG90aGVyd2lzZS4KPiArICovCj4gKwo+ICtib29sIGRybV9zY2RjX3NldF9zY3JhbWJs aW5nKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGUpCj4gK3sKPiArCXU4 IGNvbmZpZzsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gZHJtX3NjZGNfcmVhZGIoYWRhcHRl ciwgU0NEQ19UTURTX0NPTkZJRywgJmNvbmZpZyk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCURS TV9FUlJPUigiRmFpbGVkIHRvIHJlYWQgdG1kcyBjb25maWcsIGVycj0lZFxuIiwgcmV0KTsKPiAr CQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJaWYgKGVuYWJsZSkKPiArCQljb25maWcgfD0g U0NEQ19TQ1JBTUJMSU5HX0VOQUJMRTsKPiArCWVsc2UKPiArCQljb25maWcgJj0gflNDRENfU0NS QU1CTElOR19FTkFCTEU7Cj4gKwo+ICsJcmV0ID0gZHJtX3NjZGNfd3JpdGViKGFkYXB0ZXIsIFND RENfVE1EU19DT05GSUcsIGNvbmZpZyk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCURSTV9FUlJP UigiRmFpbGVkIHRvIGVuYWJsZSBzY3JhbWJsaW5nLCBlcnJvciAlZFxuIiwgcmV0KTsKPiArCQly ZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArRVhQT1JUX1NZ TUJPTChkcm1fc2NkY19zZXRfc2NyYW1ibGluZyk7Cj4gKwo+ICsvKioKPiArICogZHJtX3NjZGNf c2V0X2hpZ2hfdG1kc19jbG9ja19yYXRpbyAtIHNldCBUTURTIGNsb2NrIHJhdGlvCj4gKyAqIEBh ZGFwdGVyOiBJMkMgYWRhcHRlciBmb3IgRERDIGNoYW5uZWwKPiArICogQHNldDogcmV0IG9yIHJl c2V0IHRoZSBoaWdoIGNsb2NrIHJhdGlvCj4gKyAqCj4gKyAqIFdyaXRlcyB0byB0aGUgVE1EUyBj b25maWcgcmVnaXN0ZXIgb3ZlciBTQ0RDIGNoYW5uZWwsIGFuZDoKPiArICogc2V0cyBUTURTIGNs b2NrIHJhdGlvIHRvIDEvNDAgd2hlbiBzZXQgPSAxCj4gKyAqIHNldHMgVE1EUyBjbG9jayByYXRp byB0byAxLzEwIHdoZW4gc2V0ID0gMAoKVGhlIDEvMTAgYW5kIDEvNDAgcmF0aW9zIGNvbmZ1c2Ug bWUgYSBsaXR0bGUgc2luY2Ugd2UgbmV2ZXIgcmVhbGx5IGRlYWwKd2l0aCB0aGUgYml0cmF0ZSBp biB0aGUgZHJpdmVyLiBJbnN0ZWFkIHdlIGFsd2F5cyBkZWFsIHdpdGggZWl0aGVyIHBpeGVsCmNs b2NrLCBjaGFyYWN0ZXIgY2xvY2sgb3IgVE1EUyBjbG9jayAod2VsbCBwcmlvciB0byB0aGlzIFRN RFMgY2xvY2sgPT0KY2hhcmFjdGVyIGNsb2NrKS4gU28gdGhlIGZhY3RvciAxMCBuZXZlciBlbnRl cnMgdGhlIHBpY3R1cmUgZWxzZXdoZXJlLgpTbyBJIHdvdWxkIHByZWZlciB0byBzcGVjaWZ5IHRo ZXNlIGluIHRob3NlIHRlcm1zIGFzIHdlbGwuCgpBbiBlbnVtIGZvciB0aGUgcmF0aW9zIG1pZ2h0 IGFsc28gaGVscCBpbiBtYWtpbmcgdGhpcyBhIGJpdCBsZXNzCmNyeXB0aWMuCgo+ICsgKgo+ICsg KiBSZXR1cm5zOgo+ICsgKiBUcnVlIGlmIHdyaXRlIGlzIHN1Y2Nlc3NmdWwsIGZhbHNlIG90aGVy d2lzZS4KPiArICovCj4gK2Jvb2wgZHJtX3NjZGNfc2V0X2hpZ2hfdG1kc19jbG9ja19yYXRpbyhz dHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgc2V0KQo+ICt7Cj4gKwl1OCBjb25maWc7 Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIsIFNDRENf VE1EU19DT05GSUcsICZjb25maWcpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlEUk1fRVJST1Io IkZhaWxlZCB0byByZWFkIHRtZHMgY29uZmlnLCBlcnI9JWRcbiIsIHJldCk7Cj4gKwkJcmV0dXJu IGZhbHNlOwo+ICsJfQo+ICsKPiArCWlmIChzZXQpCj4gKwkJY29uZmlnIHw9IFNDRENfVE1EU19C SVRfQ0xPQ0tfUkFUSU9fQllfNDA7Cj4gKwllbHNlCj4gKwkJY29uZmlnICY9IH5TQ0RDX1RNRFNf QklUX0NMT0NLX1JBVElPX0JZXzQwOwo+ICsKPiArCXJldCA9IGRybV9zY2RjX3dyaXRlYihhZGFw dGVyLCBTQ0RDX1RNRFNfQ09ORklHLCBjb25maWcpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBzZXQgVE1EUyBjbG9jayByYXRpbywgZXJyb3IgJWRcbiIsIHJl dCk7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCS8qCj4gKwkgKiBUaGUgc3BlYyBz YXlzIHRoYXQgYSBzb3VyY2Ugc2hvdWxkIHdhaXQgbWluaW11bSAxbXMgYW5kIG1heGltdW0KPiAr CSAqIDEwMG1zIGFmdGVyIHdyaXRpbmcgdGhlIFRNRFMgY29uZmlnIGZvciBjbG9jayByYXRpby4g TGV0cyBhbGxvdyBhCj4gKwkgKiB3YWl0IG9mIHVwdG8gMm1zIGhlcmUuCj4gKwkgKi8KPiArCXVz bGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gK0VYUE9SVF9T WU1CT0woZHJtX3NjZGNfc2V0X2hpZ2hfdG1kc19jbG9ja19yYXRpbyk7Cj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+IGluZGV4IDZkNTMwNGUuLjc4NjE4MzA4IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IEBAIC05 MCw2ICs5MCwyMCBAQCBlbnVtIHN1YnBpeGVsX29yZGVyIHsKPiAgCj4gIH07Cj4gIAo+ICsvKioK PiArICogc3RydWN0IGRybV9zY3JhbWJsaW5nOiBzaW5rJ3Mgc2NyYW1ibGluZyBzdXBwb3J0Lgo+ ICsgKi8KPiArc3RydWN0IGRybV9zY3JhbWJsaW5nIHsKPiArCS8qKgo+ICsJICogQHN1cHBvcnRl ZDogc2NyYW1ibGluZyBzdXBwb3J0ZWQgZm9yIHJhdGVzID4gMzQwIE1oei4KPiArCSAqLwo+ICsJ Ym9vbCBzdXBwb3J0ZWQ7Cj4gKwkvKioKPiArCSAqIEBsb3dfcmF0ZXM6IHNjcmFtYmxpbmcgc3Vw cG9ydGVkIGZvciByYXRlcyA8PSAzNDAgTWh6Lgo+ICsJICovCj4gKwlib29sIGxvd19yYXRlczsK PiArfTsKPiArCj4gIC8qCj4gICAqIHN0cnVjdCBkcm1fc2NkYyAtIEluZm9ybWF0aW9uIGFib3V0 IHNjZGMgY2FwYWJpbGl0aWVzIG9mIGEgSERNSSAyLjAgc2luawo+ICAgKgo+IEBAIC0xMDUsOCAr MTE5LDEzIEBAIHN0cnVjdCBkcm1fc2NkYyB7Cj4gIAkgKiBAcmVhZF9yZXF1ZXN0OiBzaW5rIGlz IGNhcGFibGUgb2YgZ2VuZXJhdGluZyBzY2RjIHJlYWQgcmVxdWVzdC4KPiAgCSAqLwo+ICAJYm9v bCByZWFkX3JlcXVlc3Q7Cj4gKwkvKioKPiArCSAqIEBzY3JhbWJsaW5nOiBzaW5rJ3Mgc2NyYW1i bGluZyBjYXBhYmlsaXRpZXMKPiArCSAqLwo+ICsJc3RydWN0IGRybV9zY3JhbWJsaW5nIHNjcmFt Ymxpbmc7Cj4gIH07Cj4gIAo+ICsKPiAgLyoqCj4gICAqIHN0cnVjdCBkcm1faGRtaV9pbmZvIC0g cnVudGltZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29ubmVjdGVkIEhETUkgc2luawo+ICAgKgo+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Vk aWQuaAo+IGluZGV4IDNlYWQ4NGQuLmY0YTkxZTAgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0v ZHJtX2VkaWQuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKPiBAQCAtNDc2LDUgKzQ3 Niw5IEBAIHZvaWQgZHJtX2VkaWRfZ2V0X21vbml0b3JfbmFtZShzdHJ1Y3QgZWRpZCAqZWRpZCwg Y2hhciAqbmFtZSwKPiAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9tb2RlX2ZpbmRfZG10 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAgaW50IGhzaXplLCBpbnQgdnNpemUs IGludCBmcmVzaCwKPiAgCQkJCQkgICBib29sIHJiKTsKPiAtCj4gK2Jvb2wgZHJtX2VuYWJsZV9z Y3JhbWJsaW5nKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQlzdHJ1Y3Qg aTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZm9yY2UpOwo+ICtib29sIGRybV9kaXNhYmxlX3Nj cmFtYmxpbmcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCXN0cnVjdCBp MmNfYWRhcHRlciAqYWRhcHRlciwgYm9vbCBmb3JjZSk7Cj4gK2Jvb2wgZHJtX2NoZWNrX3NjcmFt Ymxpbmdfc3RhdHVzKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcik7CgpPbGQgbGVmdG92ZXJz PwoKPiAgI2VuZGlmIC8qIF9fRFJNX0VESURfSF9fICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9zY2RjX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX3NjZGNfaGVscGVyLmgKPiBp bmRleCA5YzUyZGViLi5hYjZiY2ZiIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9zY2Rj X2hlbHBlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3NjZGNfaGVscGVyLmgKPiBAQCAtMTI5 LDQgKzEyOSwzMSBAQCBzdGF0aWMgaW5saW5lIGludCBkcm1fc2NkY193cml0ZWIoc3RydWN0IGky Y19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQsCj4gIAlyZXR1cm4gZHJtX3NjZGNfd3JpdGUo YWRhcHRlciwgb2Zmc2V0LCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOwo+ICB9Cj4gIAo+ICsvKioK PiArICogZHJtX3NjZGNfc2V0X3NjcmFtYmxpbmcgLSBlbmFibGUgc2NyYW1ibGluZwo+ICsgKiBA YWRhcHRlcjogSTJDIGFkYXB0ZXIgZm9yIEREQyBjaGFubmVsCj4gKyAqIEBlbmFibGU6IGJvb2wg dG8gaW5kaWNhdGUgaWYgc2NyYW1ibGluZyBpcyB0byBiZSBlbmFibGVkL2Rpc2FibGVkCj4gKyAq Cj4gKyAqIFdyaXRlcyB0aGUgVE1EUyBjb25maWcgcmVnaXN0ZXIgb3ZlciBTQ0RDIGNoYW5uZWws IGFuZDoKPiArICogZW5hYmxlcyBzY3JhbWJsaW5nIHdoZW4gZW5hYmxlID0gMQo+ICsgKiBkaXNh YmxlcyBzY3JhbWJsaW5nIHdoZW4gZW5hYmxlID0gMAo+ICsgKgo+ICsgKiBSZXR1cm5zOgo+ICsg KiBUcnVlIGlmIHNjcmFtYmxpbmcgaXMgc2V0L3Jlc2V0IHN1Y2Nlc3NmdWxseSwgZmFsc2Ugb3Ro ZXJ3aXNlLgo+ICsgKi8KPiArYm9vbCBkcm1fc2NkY19zZXRfc2NyYW1ibGluZyhzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlKTsKPiArCj4gKy8qKgo+ICsgKiBkcm1fc2Nk Y19zZXRfaGlnaF90bWRzX2Nsb2NrX3JhdGlvIC0gc2V0IFRNRFMgY2xvY2sgcmF0aW8KPiArICog QGFkYXB0ZXI6IEkyQyBhZGFwdGVyIGZvciBEREMgY2hhbm5lbAo+ICsgKiBAc2V0OiByZXQgb3Ig cmVzZXQgdGhlIGhpZ2ggY2xvY2sgcmF0aW8KPiArICoKPiArICogV3JpdGVzIHRvIHRoZSBUTURT IGNvbmZpZyByZWdpc3RlciBvdmVyIFNDREMgY2hhbm5lbCwgYW5kOgo+ICsgKiBzZXRzIFRNRFMg Y2xvY2sgcmF0aW8gdG8gMS80MCB3aGVuIHNldCA9IDEKPiArICogc2V0cyBUTURTIGNsb2NrIHJh dGlvIHRvIDEvMTAgd2hlbiBzZXQgPSAwCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIFRydWUg aWYgd3JpdGUgaXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlLgo+ICsgKi8KPiArYm9vbCBk cm1fc2NkY19zZXRfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRh cHRlciwgYm9vbCBzZXQpOwo+ICAjZW5kaWYKPiAtLSAKPiAxLjkuMQoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==