From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v5 1/5] drm: Helper for lspcon in drm_dp_dual_mode Date: Fri, 14 Oct 2016 14:54:23 +0530 Message-ID: <1476437067-13237-2-git-send-email-shashank.sharma@intel.com> References: <1476437067-13237-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id CAF0E6EBDF for ; Fri, 14 Oct 2016 09:13:48 +0000 (UTC) In-Reply-To: <1476437067-13237-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIGxzcGNvbiBzdXBwb3J0IGluIGRwX2R1YWxfbW9kZSBoZWxwZXIuCmxz cGNvbiBpcyBlc3NlbnRpYWxseSBhIGRwLT5oZG1pIGRvbmdsZSB3aXRoIGR1YWwgcGVyc29uYWxp dHkuCgpMUyBtb2RlOiBJdCB3b3JrcyBhcyBhIHBhc3NpdmUgZG9uZ2xlLCBieSBsZXZlbCBzaGlm dGluZyBEUCsrCnNpZ25hbHMgdG8gSERNSSBzaWduYWxzLCBpbiBMUyBtb2RlLgpQQ09OIG1vZGU6 IEl0IHdvcmtzIGFzIGEgcHJvdG9jb2wgY29udmVydGVyIGFjdGl2ZSBkb25nbGUKaW4gcGNvbiBt b2RlLCBieSBjb252ZXJ0aW5nIERQKysgb3V0cHV0cyB0byBIRE1JIDIuMCBvdXRwdXRzLgoKVGhp cyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGxzcGNvbiBkZXRlY3Rpb24gYW5kIG1vZGUgc2V0CnN3 aXRjaCBvcGVyYXRpb25zLCBhcyBhIGRwIGR1YWwgbW9kZSBkb25nbGUuCgp2MjogQWRkcmVzc2Vk IHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxlCi0gYWRkIGFkYXB0b3IgaWQgZm9yIGxzcGNvbiBk ZXZpY2VzICgweDA4KSwgdXNlIGl0IHRvIGlkZW50aWZ5IGxzcGNvbgotIGNoYW5nZSBmdW5jdGlv biBuYW1lcwogIG9sZDogZHJtX2xzcGNvbl9nZXRfY3VycmVudF9tb2RlL2RybV9sc3Bjb25fY2hh bmdlX21vZGUKICBuZXc6IGRybV9sc3Bjb25fZ2V0X21vZGUvZHJtX2xzcGNvbl9zZXRfbW9kZQot IGNoYW5nZSBkcm1fbHNwY29uX2dldF9tb2RlIHR5cGUgdG8gaW50LCB0byBtYXRjaAogIGRybV9k cF9kdWFsX21vZGVfZ2V0X3RtZHNfb3V0cHV0Ci0gY2hhbmdlICdlcnInIHRvICdyZXQnIHRvIG1h dGNoIHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbnMKLSByZW1vdmUgcG9pbnRsZXNzIHR5cGVjYXN0 aW5nIGR1cmluZyBjYWxsIHRvIGR1YWxfbW9kZV9yZWFkCi0gZml4IHRoZSBidXQgd2hpbGUgc2V0 dGluZyB2YWx1ZSBvZiBkYXRhLCB3aGlsZSB3cml0aW5nIGxzcGNvbiBtb2RlCi0gZml4IGluZGVu dGF0aW9uCi0gY2hhbmdlIG1kZWxheSgxMCkgLT4gbXNsZWVwKDEwKQotIHJldHVybiBFVElNRURP VVQgaW5zdGVhZCBvZiBFRkFVTFQsIHdoZW4gbHNwY29uIG1vZGUgY2hhbmdlIHRpbWVzIG91dAot IEFkZCBhbiBlbXB0eSBsaW5lIHRvIHNlcGFyYXRlIHN0ZCByZWdzIG1hY3JvcyBhbmQgbHNwY29u IHJlZ3MgbWFjcm9zCiAgSW5kZW50IGJpdCBkZWZpbml0aW9uCgp2MzogQWRkcmVzc2VkIHJldmll dyBjb21tZW50cyBmcm9tIFJvZHJpZ28KLSBjaGFuZ2UgbWFjcm8gbmFtZSBmcm9tIERQX0RVQUxf TU9ERV9UWVBFX0xTUENPTiB0bwogIERQX0RVQUxfTU9ERV9UWVBFX0hBU19EUENEIGZvciBiZXR0 ZXIgcmVhZGFiaWxpdHkKLSBjaGFuZ2UgbWFjcm8gbmFtZSBmcm9tIERQX0RVQUxfTU9ERV9MU1BD T05fTU9ERV9QQ09OIHRvCiAgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX1BDT04gZm9yIGJldHRl ciByZWFkYWJpbGl0eQotIGFkZCBjb21tZW50IGZvciBNQ0Egc3BlY2lmaWMgb2Zmc2V0cyBsaWtl IDB4NDAgYW5kIDB4NDEKLSByZW1vdmUgRFBfRFVBTF9NT0RFX1JFVl9UWVBFMiBjaGVjayB3aGls ZSBjaGVja2luZyBsc3Bjb24gYWRhcHRlciBpZAoKdjQ6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVu dHMgZnJvbSBWaWxsZQotIEZpeGVkIGluZGVudGF0aW9uIGF0IGZldyBwbGFjZXMKLSBzL2N1cnJl bnRfbW9kZS9tb2RlCi0gcy9yZXFkX21vZGUvbW9kZQotIHJlbW92ZSB1bm5lY2Vzc2FyeSB2b2lk KiBjYXN0Ci0gcmVtb3ZlIGRybV9lZGlkLmggZnJvbSBpbmNsdWRlcwotIEFkZCBhIGNvbW1lbnQg Zm9yIF9IQVNfRFBDRAotIEZpeCBlbnVtIGRlc2NyaXB0aW9uLCBmb3IgbHNwY29uX21vZGUuCgp2 NTogUmViYXNlCgpTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJt YUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRl bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMgfCAx MDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZHBfZHVh bF9tb2RlX2hlbHBlci5oICAgICB8ICAyNiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMjkg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfZHVhbF9t b2RlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmMK aW5kZXggYTdiMmE3NS4uYTdhZWIxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9k cF9kdWFsX21vZGVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9kdWFsX21v ZGVfaGVscGVyLmMKQEAgLTE0OCw2ICsxNDgsMTQgQEAgc3RhdGljIGJvb2wgaXNfdHlwZTJfYWRh cHRvcih1aW50OF90IGFkYXB0b3JfaWQpCiAJCQkgICAgICBEUF9EVUFMX01PREVfUkVWX1RZUEUy KTsKIH0KIAorYm9vbCBpc19sc3Bjb25fYWRhcHRvcihjb25zdCBjaGFyIGhkbWlfaWRbRFBfRFVB TF9NT0RFX0hETUlfSURfTEVOXSwKKwljb25zdCB1aW50OF90IGFkYXB0b3JfaWQpCit7CisJcmV0 dXJuIGlzX2hkbWlfYWRhcHRvcihoZG1pX2lkKSAmJgorCQkoYWRhcHRvcl9pZCA9PSAoRFBfRFVB TF9NT0RFX1RZUEVfVFlQRTIgfAorCQkgRFBfRFVBTF9NT0RFX1RZUEVfSEFTX0RQQ0QpKTsKK30K KwogLyoqCiAgKiBkcm1fZHBfZHVhbF9tb2RlX2RldGVjdCAtIElkZW50aWZ5IHRoZSBEUCBkdWFs IG1vZGUgYWRhcHRvcgogICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyIGZvciB0aGUgRERDIGJ1cwpA QCAtMjAzLDYgKzIxMSw4IEBAIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIGRybV9kcF9kdWFs X21vZGVfZGV0ZWN0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKIAlyZXQgPSBkcm1fZHBf ZHVhbF9tb2RlX3JlYWQoYWRhcHRlciwgRFBfRFVBTF9NT0RFX0FEQVBUT1JfSUQsCiAJCQkJICAg ICZhZGFwdG9yX2lkLCBzaXplb2YoYWRhcHRvcl9pZCkpOwogCWlmIChyZXQgPT0gMCkgeworCQlp ZiAoaXNfbHNwY29uX2FkYXB0b3IoaGRtaV9pZCwgYWRhcHRvcl9pZCkpCisJCQlyZXR1cm4gRFJN X0RQX0RVQUxfTU9ERV9MU1BDT047CiAJCWlmIChpc190eXBlMl9hZGFwdG9yKGFkYXB0b3JfaWQp KSB7CiAJCQlpZiAoaXNfaGRtaV9hZGFwdG9yKGhkbWlfaWQpKQogCQkJCXJldHVybiBEUk1fRFBf RFVBTF9NT0RFX1RZUEUyX0hETUk7CkBAIC0zNjQsMyArMzc0LDk2IEBAIGNvbnN0IGNoYXIgKmRy bV9kcF9nZXRfZHVhbF9tb2RlX3R5cGVfbmFtZShlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB0 eXBlKQogCX0KIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX2dldF9kdWFsX21vZGVfdHlwZV9uYW1l KTsKKworLyoqCisgKiBkcm1fbHNwY29uX2dldF9tb2RlOiBHZXQgTFNQQ09OJ3MgY3VycmVudCBt b2RlIG9mIG9wZXJhdGlvbiBieQorICogYnkgcmVhZGluZyBvZmZzZXQgKDB4ODAsIDB4NDEpCisg KiBAaTJjX2FkYXB0ZXI6IEkyQy1vdmVyLWF1eCBhZGFwdGVyCisgKiBAY3VycmVudF9tb2RlOiBv dXQgdmFpYWJsZSwgY3VycmVudCBsc3Bjb24gbW9kZSBvZiBvcGVyYXRpb24KKyAqCisgKiBSZXR1 cm5zOgorICogMCBvbiBzdWNjZXNzLCBzZXRzIHRoZSBjdXJyZW50X21vZGUgdmFsdWUgdG8gYXBw cm9wcmlhdGUgbW9kZQorICogLWVycm9yIG9uIGZhaWx1cmUKKyAqLworaW50IGRybV9sc3Bjb25f Z2V0X21vZGUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLAorCQkJZW51bSBkcm1fbHNwY29u X21vZGUgKm1vZGUpCit7CisJdTggZGF0YTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghbW9kZSkg eworCQlEUk1fRVJST1IoIk5VTEwgaW5wdXRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisK KwkvKiBSZWFkIFN0YXR1czogaTJjIG92ZXIgYXV4ICovCisJcmV0ID0gZHJtX2RwX2R1YWxfbW9k ZV9yZWFkKGFkYXB0ZXIsIERQX0RVQUxfTU9ERV9MU1BDT05fQ1VSUkVOVF9NT0RFLAorCQkJCSAg ICAmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1IoIkxT UENPTiByZWFkKDB4ODAsIDB4NDEpIGZhaWxlZFxuIik7CisJCXJldHVybiAtRUZBVUxUOworCX0K KworCWlmIChkYXRhICYgRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX1BDT04pCisJCSptb2RlID0g RFJNX0xTUENPTl9NT0RFX1BDT047CisJZWxzZQorCQkqbW9kZSA9IERSTV9MU1BDT05fTU9ERV9M UzsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2xzcGNvbl9nZXRfbW9kZSk7CisK Ky8qKgorICogZHJtX2xzcGNvbl9jaGFuZ2VfbW9kZTogQ2hhbmdlIExTUENPTidzIG1vZGUgb2Yg b3BlcmF0aW9uIGJ5CisgKiBieSB3cml0aW5nIG9mZnNldCAoMHg4MCwgMHg0MCkKKyAqIEBpMmNf YWRhcHRlcjogSTJDLW92ZXItYXV4IGFkYXB0ZXIKKyAqIEByZXFkX21vZGU6IHJlcXVpcmVkIG1v ZGUgb2Ygb3BlcmF0aW9uCisgKgorICogUmV0dXJuczoKKyAqIDAgb24gc3VjY2VzcywgLWVycm9y IG9uIGZhaWx1cmUvdGltZW91dAorICovCitpbnQgZHJtX2xzcGNvbl9zZXRfbW9kZShzdHJ1Y3Qg aTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCisJCQllbnVtIGRybV9sc3Bjb25fbW9kZSBtb2RlKQorewor CXU4IGRhdGEgPSAwOworCWludCByZXQ7CisJaW50IHRpbWVfb3V0ID0gMjAwOworCWVudW0gZHJt X2xzcGNvbl9tb2RlIGN1cnJlbnRfbW9kZTsKKworCWlmIChtb2RlID09IERSTV9MU1BDT05fTU9E RV9QQ09OKQorCQlkYXRhID0gRFBfRFVBTF9NT0RFX0xTUENPTl9NT0RFX1BDT047CisKKwkvKiBD aGFuZ2UgbW9kZSAqLworCXJldCA9IGRybV9kcF9kdWFsX21vZGVfd3JpdGUoYWRhcHRlciwgRFBf RFVBTF9NT0RFX0xTUENPTl9NT0RFX0NIQU5HRSwKKwkJCQkgICAgICZkYXRhLCBzaXplb2YoZGF0 YSkpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9FUlJPUigiTFNQQ09OIG1vZGUgY2hhbmdlIGZh aWxlZFxuIik7CisJCXJldHVybiByZXQ7CisJfQorCisJLyoKKwkgKiBDb25maXJtIG1vZGUgY2hh bmdlIGJ5IHJlYWRpbmcgdGhlIHN0YXR1cyBiaXQuCisJICogU29tZXRpbWVzLCBpdCB0YWtlcyBh IHdoaWxlIHRvIGNoYW5nZSB0aGUgbW9kZSwKKwkgKiBzbyB3YWl0IGFuZCByZXRyeSB1bnRpbCB0 aW1lIG91dCBvciBkb25lLgorCSAqLworCWRvIHsKKwkJcmV0ID0gZHJtX2xzcGNvbl9nZXRfbW9k ZShhZGFwdGVyLCAmY3VycmVudF9tb2RlKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0VSUk9SKCJj YW4ndCBjb25maXJtIExTUENPTiBtb2RlIGNoYW5nZVxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9 IGVsc2UgeworCQkJaWYgKGN1cnJlbnRfbW9kZSAhPSBtb2RlKSB7CisJCQkJbXNsZWVwKDEwKTsK KwkJCQl0aW1lX291dCAtPSAxMDsKKwkJCX0gZWxzZSB7CisJCQkJRFJNX0RFQlVHX0tNUygiTFNQ Q09OIG1vZGUgY2hhbmdlZCB0byAlc1xuIiwKKwkJCQkJCW1vZGUgPT0gRFJNX0xTUENPTl9NT0RF X0xTID8KKwkJCQkJCSJMUyIgOiAiUENPTiIpOworCQkJCXJldHVybiAwOworCQkJfQorCQl9CisJ fSB3aGlsZSAodGltZV9vdXQpOworCisJRFJNX0VSUk9SKCJMU1BDT04gbW9kZSBjaGFuZ2UgdGlt ZWQgb3V0XG4iKTsKKwlyZXR1cm4gLUVUSU1FRE9VVDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2xz cGNvbl9zZXRfbW9kZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2Rl X2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIuaAppbmRleCBl OGE5ZGZkLi41NTY3NzcwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfZHVhbF9tb2Rl X2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9kcF9kdWFsX21vZGVfaGVscGVyLmgKQEAg LTQwLDYgKzQwLDggQEAKICNkZWZpbmUgIERQX0RVQUxfTU9ERV9SRVZfVFlQRTIgMHgwMAogI2Rl ZmluZSAgRFBfRFVBTF9NT0RFX1RZUEVfTUFTSyAweGYwCiAjZGVmaW5lICBEUF9EVUFMX01PREVf VFlQRV9UWVBFMiAweGEwCisvKiBUaGlzIGZpZWxkIGlzIG1hcmtlZCByZXNlcnZlZCBpbiBkdWFs IG1vZGUgc3BlYywgdXNlZCBpbiBMU1BDT04gKi8KKyNkZWZpbmUgIERQX0RVQUxfTU9ERV9UWVBF X0hBU19EUENEIDB4MDgKICNkZWZpbmUgRFBfRFVBTF9NT0RFX0lFRUVfT1VJIDB4MTEgLyogMTEt MTMqLwogI2RlZmluZSAgRFBfRFVBTF9JRUVFX09VSV9MRU4gMwogI2RlZmluZSBEUF9EVUFMX0RF VklDRV9JRCAweDE0IC8qIDE0LTE5ICovCkBAIC01NSw2ICs1NywxMSBAQAogI2RlZmluZSAgRFBf RFVBTF9NT0RFX0NFQ19FTkFCTEUgMHgwMQogI2RlZmluZSBEUF9EVUFMX01PREVfSTJDX1NQRUVE X0NUUkwgMHgyMgogCisvKiBMU1BDT04gc3BlY2lmaWMgcmVnaXN0ZXJzLCBkZWZpbmVkIGJ5IE1D QSAqLworI2RlZmluZSBEUF9EVUFMX01PREVfTFNQQ09OX01PREVfQ0hBTkdFCQkweDQwCisjZGVm aW5lIERQX0RVQUxfTU9ERV9MU1BDT05fQ1VSUkVOVF9NT0RFCQkweDQxCisjZGVmaW5lICBEUF9E VUFMX01PREVfTFNQQ09OX01PREVfUENPTgkJCTB4MQorCiBzdHJ1Y3QgaTJjX2FkYXB0ZXI7CiAK IHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV9yZWFkKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRl ciwKQEAgLTYzLDYgKzcwLDE5IEBAIHNzaXplX3QgZHJtX2RwX2R1YWxfbW9kZV93cml0ZShzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkgICAgICAgdTggb2Zmc2V0LCBjb25zdCB2b2lk ICpidWZmZXIsIHNpemVfdCBzaXplKTsKIAogLyoqCisqIGVudW0gZHJtX2xzcGNvbl9tb2RlCisq IEBsc3Bjb25fbW9kZV9sczogTGV2ZWwgc2hpZnRlciBtb2RlIG9mIExTUENPTgorKgl3aGljaCBk cml2ZXMgRFArKyB0byBIRE1JIDEuNCBjb252ZXJzaW9uLgorKiBAbHNwY29uX21vZGVfcGNvbjog UHJvdG9jb2wgY29udmVydGVyIG1vZGUgb2YgTFNQQ09OCisqCXdoaWNoIGRyaXZlcyBEUCsrIHRv IEhETUkgMi4wIGFjdGl2ZSBjb252ZXJzaW9uLgorKi8KK2VudW0gZHJtX2xzcGNvbl9tb2RlIHsK KwlEUk1fTFNQQ09OX01PREVfSU5WQUxJRCwKKwlEUk1fTFNQQ09OX01PREVfTFMsCisJRFJNX0xT UENPTl9NT0RFX1BDT04sCit9OworCisvKioKICAqIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBl IC0gVHlwZSBvZiB0aGUgRFAgZHVhbCBtb2RlIGFkYXB0b3IKICAqIEBEUk1fRFBfRFVBTF9NT0RF X05PTkU6IE5vIERQIGR1YWwgbW9kZSBhZGFwdG9yCiAgKiBARFJNX0RQX0RVQUxfTU9ERV9VTktO T1dOOiBDb3VsZCBiZSBlaXRoZXIgbm9uZSBvciB0eXBlIDEgRFZJIGFkYXB0b3IKQEAgLTcwLDYg KzkwLDcgQEAgc3NpemVfdCBkcm1fZHBfZHVhbF9tb2RlX3dyaXRlKHN0cnVjdCBpMmNfYWRhcHRl ciAqYWRhcHRlciwKICAqIEBEUk1fRFBfRFVBTF9NT0RFX1RZUEUxX0hETUk6IFR5cGUgMSBIRE1J IGFkYXB0b3IKICAqIEBEUk1fRFBfRFVBTF9NT0RFX1RZUEUyX0RWSTogVHlwZSAyIERWSSBhZGFw dG9yCiAgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9IRE1JOiBUeXBlIDIgSERNSSBhZGFwdG9y CisgKiBARFJNX0RQX0RVQUxfTU9ERV9UWVBFMl9MU1BDT046IExldmVsIHNoaWZ0ZXIgL3Byb3Rv Y29sIGNvbnZlcnRlcgogICovCiBlbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSB7CiAJRFJNX0RQ X0RVQUxfTU9ERV9OT05FLApAQCAtNzgsNiArOTksNyBAQCBlbnVtIGRybV9kcF9kdWFsX21vZGVf dHlwZSB7CiAJRFJNX0RQX0RVQUxfTU9ERV9UWVBFMV9IRE1JLAogCURSTV9EUF9EVUFMX01PREVf VFlQRTJfRFZJLAogCURSTV9EUF9EVUFMX01PREVfVFlQRTJfSERNSSwKKwlEUk1fRFBfRFVBTF9N T0RFX0xTUENPTiwKIH07CiAKIGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIGRybV9kcF9kdWFs X21vZGVfZGV0ZWN0KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcik7CkBAIC04OSw0ICsxMTEs OCBAQCBpbnQgZHJtX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoZW51bSBkcm1fZHBfZHVh bF9tb2RlX3R5cGUgdHlwZSwKIAkJCQkgICAgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwg Ym9vbCBlbmFibGUpOwogY29uc3QgY2hhciAqZHJtX2RwX2dldF9kdWFsX21vZGVfdHlwZV9uYW1l KGVudW0gZHJtX2RwX2R1YWxfbW9kZV90eXBlIHR5cGUpOwogCitpbnQgZHJtX2xzcGNvbl9nZXRf bW9kZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCisJCQllbnVtIGRybV9sc3Bjb25fbW9k ZSAqY3VycmVudF9tb2RlKTsKK2ludCBkcm1fbHNwY29uX3NldF9tb2RlKHN0cnVjdCBpMmNfYWRh cHRlciAqYWRhcHRlciwKKwkJCWVudW0gZHJtX2xzcGNvbl9tb2RlIHJlcWRfbW9kZSk7CiAjZW5k aWYKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK