From mboxrd@z Thu Jan 1 00:00:00 1970 From: Animesh Manna Subject: [RFC 1/7] drm/dp: get/set phy compliance pattern Date: Fri, 15 Nov 2019 20:55:43 +0530 Message-ID: <20191115152549.23047-2-animesh.manna@intel.com> References: <20191115152549.23047-1-animesh.manna@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE0906E8B4 for ; Fri, 15 Nov 2019 15:35:06 +0000 (UTC) In-Reply-To: <20191115152549.23047-1-animesh.manna@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com, nidhi1.gupta@intel.com List-Id: intel-gfx@lists.freedesktop.org RHVyaW5nIHBoeSBjb21wbGFpbmNlIGF1dG8gdGVzdCBtb2RlIHNvdXJjZSBuZWVkIHRvIHJlYWQK cmVxdWVzdGVkIHRlc3QgcGF0dGVybiBmcm9tIHNpbmsgdGhyb3VnaCBEUENELiBBZnRlciBwcm9j ZXNzaW5nCnRoZSByZXF1ZXN0IHNvdXJjZSBuZWVkIHRvIHNldCB0aGUgcGF0dGVybi4gU28gc2V0 L2dldCBtZXRob2QKYWRkZWQgaW4gZHJtIGxheWVyIGFzIGl0IGlzIERQIHByb3RvY29sLgoKU2ln bmVkLW9mZi1ieTogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyB8IDk3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oICAgICB8IDM0ICsrKysr KysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCmluZGV4IDJjNzg3MGFlZjQ2OS4uN2QwZjk5ODZhOTVh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKQEAgLTEzNzEsMyArMTM3MSwxMDAgQEAgaW50IGRy bV9kcF9kc2Nfc2lua19zdXBwb3J0ZWRfaW5wdXRfYnBjcyhjb25zdCB1OCBkc2NfZHBjZFtEUF9E U0NfUkVDRUlWRVJfQ0FQX1MKIAlyZXR1cm4gbnVtX2JwYzsKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2RwX2RzY19zaW5rX3N1cHBvcnRlZF9pbnB1dF9icGNzKTsKKworLyoqCisgKiBkcm1fZHBfZ2V0 X3BoeV90ZXN0X3BhdHRlcm4oKSAtIGdldCB0aGUgcmVxdWVzdGVkIHBhdHRlcm4gZnJvbSB0aGUg c2luay4KKyAqIEBhdXg6IERpc3BsYXlQb3J0IEFVWCBjaGFubmVsCisgKiBAZGF0YTogRFAgcGh5 IGNvbXBsaWFuY2UgdGVzdCBwYXJhbWV0ZXJzLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNz IG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX2dl dF9waHlfdGVzdF9wYXR0ZXJuKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkJc3RydWN0IGRy bV9kcF9waHlfdGVzdF9wYXJhbXMgKmRhdGEpCit7CisJaW50IGVycjsKKwl1OCByYXRlLCBsYW5l czsKKworCWVyciA9IGRybV9kcF9kcGNkX3JlYWRiKGF1eCwgRFBfRFBDRF9SRVYsICZkYXRhLT5k cF9yZXYpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gZHJtX2RwX2Rw Y2RfcmVhZGIoYXV4LCBEUF9URVNUX0xJTktfUkFURSwgJnJhdGUpOworCWlmIChlcnIgPCAwKQor CQlyZXR1cm4gZXJyOworCWRhdGEtPmxpbmtfcmF0ZSA9IGRybV9kcF9id19jb2RlX3RvX2xpbmtf cmF0ZShyYXRlKTsKKworCWVyciA9IGRybV9kcF9kcGNkX3JlYWRiKGF1eCwgRFBfVEVTVF9MQU5F X0NPVU5ULCAmbGFuZXMpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCWRhdGEtPm51 bV9sYW5lcyA9IGxhbmVzICYgRFBfTUFYX0xBTkVfQ09VTlRfTUFTSzsKKworCWlmIChsYW5lcyAm IERQX0VOSEFOQ0VEX0ZSQU1FX0NBUCkKKwkJZGF0YS0+ZW5haGFuY2VkX2ZyYW1lX2NhcCA9IHRy dWU7CisKKwllcnIgPSBkcm1fZHBfZHBjZF9yZWFkYihhdXgsIERQX1BIWV9URVNUX1BBVFRFUk4s ICZkYXRhLT5waHlfcGF0dGVybik7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlz d2l0Y2ggKGRhdGEtPnBoeV9wYXR0ZXJuKSB7CisJY2FzZSBEUF9QSFlfVEVTVF9QQVRURVJOXzgw QklUX0NVU1RPTToKKwkJZXJyID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIERQX1RFU1RfODBCSVRf Q1VTVE9NX1BBVFRFUk5fN18wLAorCQkJCSAgICAgICAmZGF0YS0+Y3VzdG9tODAsIDEwKTsKKwkJ aWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCisJCWJyZWFrOworCWNhc2UgRFBfUEhZX1RF U1RfUEFUVEVSTl9DUDI1MjA6CisJCWVyciA9IGRybV9kcF9kcGNkX3JlYWQoYXV4LCBEUF9URVNU X0hCUjJfU0NSQU1CTEVSX1JFU0VULAorCQkJCSAgICAgICAmZGF0YS0+aGJyMl9yZXNldCwgMik7 CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VY UE9SVF9TWU1CT0woZHJtX2RwX2dldF9waHlfdGVzdF9wYXR0ZXJuKTsKKworLyoqCisgKiBkcm1f ZHBfc2V0X3BoeV90ZXN0X3BhdHRlcm4oKSAtIHNldCB0aGUgcGF0dGVybiB0byB0aGUgc2luay4K KyAqIEBhdXg6IERpc3BsYXlQb3J0IEFVWCBjaGFubmVsCisgKiBAZGF0YTogRFAgcGh5IGNvbXBs aWFuY2UgdGVzdCBwYXJhbWV0ZXJzLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX3NldF9waHlf dGVzdF9wYXR0ZXJuKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkJc3RydWN0IGRybV9kcF9w aHlfdGVzdF9wYXJhbXMgKmRhdGEpCit7CisJaW50IGVyciwgaTsKKwl1OCBsaW5rX2NvbmZpZ1sy XTsKKwl1OCB0ZXN0X3BhdHRlcm47CisKKwlsaW5rX2NvbmZpZ1swXSA9IGRybV9kcF9saW5rX3Jh dGVfdG9fYndfY29kZShkYXRhLT5saW5rX3JhdGUpOworCWxpbmtfY29uZmlnWzFdID0gZGF0YS0+ bnVtX2xhbmVzOworCWlmIChkYXRhLT5lbmFoYW5jZWRfZnJhbWVfY2FwKQorCQlsaW5rX2NvbmZp Z1sxXSB8PSBEUF9MQU5FX0NPVU5UX0VOSEFOQ0VEX0ZSQU1FX0VOOworCWVyciA9IGRybV9kcF9k cGNkX3dyaXRlKGF1eCwgRFBfTElOS19CV19TRVQsIGxpbmtfY29uZmlnLCAyKTsKKwlpZiAoZXJy IDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXRlc3RfcGF0dGVybiA9IGRhdGEtPnBoeV9wYXR0ZXJu OworCWlmIChkYXRhLT5kcF9yZXYgPCAweDEyKSB7CisJCXRlc3RfcGF0dGVybiA9ICh0ZXN0X3Bh dHRlcm4gPDwgMikgJgorCQkJICAgICAgIERQX0xJTktfUVVBTF9QQVRURVJOXzExX01BU0s7CisJ CWVyciA9IGRybV9kcF9kcGNkX3dyaXRlYihhdXgsIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VULAor CQkJCQkgdGVzdF9wYXR0ZXJuKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0g ZWxzZSB7CisJCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5udW1fbGFuZXM7IGkrKykgeworCQkJZXJy ID0gZHJtX2RwX2RwY2Rfd3JpdGViKGF1eCwKKwkJCQkJCSBEUF9MSU5LX1FVQUxfTEFORTBfU0VU ICsgaSwKKwkJCQkJCSB0ZXN0X3BhdHRlcm4pOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJu IGVycjsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfc2V0 X3BoeV90ZXN0X3BhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCmluZGV4IDUxZWNiNTExMmVmOC4uNjI4 ZTQ4NDMxOGU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKKysrIGIv aW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCkBAIC02OTksNyArNjk5LDE2IEBACiAjIGRlZmlu ZSBEUF9URVNUX0NSQ19TVVBQT1JURUQJCSAgICAoMSA8PCA1KQogIyBkZWZpbmUgRFBfVEVTVF9D T1VOVF9NQVNLCQkgICAgMHhmCiAKLSNkZWZpbmUgRFBfVEVTVF9QSFlfUEFUVEVSTiAgICAgICAg ICAgICAgICAgMHgyNDgKKyNkZWZpbmUgRFBfUEhZX1RFU1RfUEFUVEVSTiAgICAgICAgICAgICAg ICAgMHgyNDgKKyMgZGVmaW5lIERQX1BIWV9URVNUX1BBVFRFUk5fU0VMX01BU0sgICAgICAgMHg3 CisjIGRlZmluZSBEUF9QSFlfVEVTVF9QQVRURVJOX05PTkUgICAgICAgICAgIDB4MAorIyBkZWZp bmUgRFBfUEhZX1RFU1RfUEFUVEVSTl9EMTBfMiAgICAgICAgICAweDEKKyMgZGVmaW5lIERQX1BI WV9URVNUX1BBVFRFUk5fRVJST1JfQ09VTlQgICAgMHgyCisjIGRlZmluZSBEUF9QSFlfVEVTVF9Q QVRURVJOX1BSQlM3ICAgICAgICAgIDB4MworIyBkZWZpbmUgRFBfUEhZX1RFU1RfUEFUVEVSTl84 MEJJVF9DVVNUT00gICAweDQKKyMgZGVmaW5lIERQX1BIWV9URVNUX1BBVFRFUk5fQ1AyNTIwICAg ICAgICAgMHg1CisKKyNkZWZpbmUgRFBfVEVTVF9IQlIyX1NDUkFNQkxFUl9SRVNFVCAgICAgICAg MHgyNEEKICNkZWZpbmUgRFBfVEVTVF84MEJJVF9DVVNUT01fUEFUVEVSTl83XzAgICAgMHgyNTAK ICNkZWZpbmUJRFBfVEVTVF84MEJJVF9DVVNUT01fUEFUVEVSTl8xNV84ICAgMHgyNTEKICNkZWZp bmUJRFBfVEVTVF84MEJJVF9DVVNUT01fUEFUVEVSTl8yM18xNiAgMHgyNTIKQEAgLTE1NjgsNCAr MTU3NywyNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2RwX2NlY191bnNldF9lZGlkKHN0cnVj dCBkcm1fZHBfYXV4ICphdXgpCiAKICNlbmRpZgogCisvKioKKyAqIHN0cnVjdCBkcm1fZHBfcGh5 X3Rlc3RfcGFyYW1zIC0gRFAgUGh5IENvbXBsaWFuY2UgcGFyYW1ldGVycworICogQGxpbms6IExp bmsgaW5mb3JtYXRpb24uCisgKiBAcGh5X3BhdHRlcm46IERQIFBoeSB0ZXN0IHBhdHRlcm4gZnJv bSBEUENEIDB4MjQ4IChzaW5rKQorICogQGhiMl9yZXNldDogRFAgSEJSMl9DT01QTElBTkNFX1ND UkFNQkxFUl9SRVNFVCBmcm9tIERDUEQKKyAqICAgICAgICAgICAgMHgyNEEgYW5kIDB4MjRCIChz aW5rKQorICogQGN1c3RvbTgwOiBEUCBUZXN0XzgwQklUX0NVU1RPTV9QQVRURVJOIGZyb20gRFBD RHMgMHgyNTAKKyAqICAgICAgICAgICAgICAgdGhyb3VnaCAweDI1OS4KKyAqLworc3RydWN0IGRy bV9kcF9waHlfdGVzdF9wYXJhbXMgeworCXU4IGRwX3JldjsKKwl1OCBwaHlfcGF0dGVybjsKKwl1 OCBoYnIyX3Jlc2V0WzJdOworCXU4IGN1c3RvbTgwWzEwXTsKKwl1MzIgbGlua19yYXRlOworCXUz MiBudW1fbGFuZXM7CisJYm9vbCBlbmFoYW5jZWRfZnJhbWVfY2FwOworfTsKKworaW50IGRybV9k cF9nZXRfcGh5X3Rlc3RfcGF0dGVybihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAorCQkJCXN0cnVj dCBkcm1fZHBfcGh5X3Rlc3RfcGFyYW1zICpkYXRhKTsKK2ludCBkcm1fZHBfc2V0X3BoeV90ZXN0 X3BhdHRlcm4oc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQlzdHJ1Y3QgZHJtX2RwX3BoeV90 ZXN0X3BhcmFtcyAqZGF0YSk7CiAjZW5kaWYgLyogX0RSTV9EUF9IRUxQRVJfSF8gKi8KLS0gCjIu MjIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 15D82C432C3 for ; Fri, 15 Nov 2019 15:35:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EB1D820715 for ; Fri, 15 Nov 2019 15:35:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EB1D820715 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 97CCC6E8A0; Fri, 15 Nov 2019 15:35:07 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE0906E8B4 for ; Fri, 15 Nov 2019 15:35:06 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2019 07:35:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,308,1569308400"; d="scan'208";a="195420795" Received: from amanna.iind.intel.com ([10.223.74.216]) by orsmga007.jf.intel.com with ESMTP; 15 Nov 2019 07:35:03 -0800 From: Animesh Manna To: intel-gfx@lists.freedesktop.org Date: Fri, 15 Nov 2019 20:55:43 +0530 Message-Id: <20191115152549.23047-2-animesh.manna@intel.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20191115152549.23047-1-animesh.manna@intel.com> References: <20191115152549.23047-1-animesh.manna@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [RFC 1/7] drm/dp: get/set phy compliance pattern X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jani.nikula@intel.com, nidhi1.gupta@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191115152543.i86172AhZWyi73l97ymchF6U6WmGgcxyywOgzN_l-3Y@z> RHVyaW5nIHBoeSBjb21wbGFpbmNlIGF1dG8gdGVzdCBtb2RlIHNvdXJjZSBuZWVkIHRvIHJlYWQK cmVxdWVzdGVkIHRlc3QgcGF0dGVybiBmcm9tIHNpbmsgdGhyb3VnaCBEUENELiBBZnRlciBwcm9j ZXNzaW5nCnRoZSByZXF1ZXN0IHNvdXJjZSBuZWVkIHRvIHNldCB0aGUgcGF0dGVybi4gU28gc2V0 L2dldCBtZXRob2QKYWRkZWQgaW4gZHJtIGxheWVyIGFzIGl0IGlzIERQIHByb3RvY29sLgoKU2ln bmVkLW9mZi1ieTogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyB8IDk3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oICAgICB8IDM0ICsrKysr KysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCmluZGV4IDJjNzg3MGFlZjQ2OS4uN2QwZjk5ODZhOTVh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKQEAgLTEzNzEsMyArMTM3MSwxMDAgQEAgaW50IGRy bV9kcF9kc2Nfc2lua19zdXBwb3J0ZWRfaW5wdXRfYnBjcyhjb25zdCB1OCBkc2NfZHBjZFtEUF9E U0NfUkVDRUlWRVJfQ0FQX1MKIAlyZXR1cm4gbnVtX2JwYzsKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2RwX2RzY19zaW5rX3N1cHBvcnRlZF9pbnB1dF9icGNzKTsKKworLyoqCisgKiBkcm1fZHBfZ2V0 X3BoeV90ZXN0X3BhdHRlcm4oKSAtIGdldCB0aGUgcmVxdWVzdGVkIHBhdHRlcm4gZnJvbSB0aGUg c2luay4KKyAqIEBhdXg6IERpc3BsYXlQb3J0IEFVWCBjaGFubmVsCisgKiBAZGF0YTogRFAgcGh5 IGNvbXBsaWFuY2UgdGVzdCBwYXJhbWV0ZXJzLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNz IG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX2dl dF9waHlfdGVzdF9wYXR0ZXJuKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkJc3RydWN0IGRy bV9kcF9waHlfdGVzdF9wYXJhbXMgKmRhdGEpCit7CisJaW50IGVycjsKKwl1OCByYXRlLCBsYW5l czsKKworCWVyciA9IGRybV9kcF9kcGNkX3JlYWRiKGF1eCwgRFBfRFBDRF9SRVYsICZkYXRhLT5k cF9yZXYpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gZHJtX2RwX2Rw Y2RfcmVhZGIoYXV4LCBEUF9URVNUX0xJTktfUkFURSwgJnJhdGUpOworCWlmIChlcnIgPCAwKQor CQlyZXR1cm4gZXJyOworCWRhdGEtPmxpbmtfcmF0ZSA9IGRybV9kcF9id19jb2RlX3RvX2xpbmtf cmF0ZShyYXRlKTsKKworCWVyciA9IGRybV9kcF9kcGNkX3JlYWRiKGF1eCwgRFBfVEVTVF9MQU5F X0NPVU5ULCAmbGFuZXMpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCWRhdGEtPm51 bV9sYW5lcyA9IGxhbmVzICYgRFBfTUFYX0xBTkVfQ09VTlRfTUFTSzsKKworCWlmIChsYW5lcyAm IERQX0VOSEFOQ0VEX0ZSQU1FX0NBUCkKKwkJZGF0YS0+ZW5haGFuY2VkX2ZyYW1lX2NhcCA9IHRy dWU7CisKKwllcnIgPSBkcm1fZHBfZHBjZF9yZWFkYihhdXgsIERQX1BIWV9URVNUX1BBVFRFUk4s ICZkYXRhLT5waHlfcGF0dGVybik7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlz d2l0Y2ggKGRhdGEtPnBoeV9wYXR0ZXJuKSB7CisJY2FzZSBEUF9QSFlfVEVTVF9QQVRURVJOXzgw QklUX0NVU1RPTToKKwkJZXJyID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIERQX1RFU1RfODBCSVRf Q1VTVE9NX1BBVFRFUk5fN18wLAorCQkJCSAgICAgICAmZGF0YS0+Y3VzdG9tODAsIDEwKTsKKwkJ aWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCisJCWJyZWFrOworCWNhc2UgRFBfUEhZX1RF U1RfUEFUVEVSTl9DUDI1MjA6CisJCWVyciA9IGRybV9kcF9kcGNkX3JlYWQoYXV4LCBEUF9URVNU X0hCUjJfU0NSQU1CTEVSX1JFU0VULAorCQkJCSAgICAgICAmZGF0YS0+aGJyMl9yZXNldCwgMik7 CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VY UE9SVF9TWU1CT0woZHJtX2RwX2dldF9waHlfdGVzdF9wYXR0ZXJuKTsKKworLyoqCisgKiBkcm1f ZHBfc2V0X3BoeV90ZXN0X3BhdHRlcm4oKSAtIHNldCB0aGUgcGF0dGVybiB0byB0aGUgc2luay4K KyAqIEBhdXg6IERpc3BsYXlQb3J0IEFVWCBjaGFubmVsCisgKiBAZGF0YTogRFAgcGh5IGNvbXBs aWFuY2UgdGVzdCBwYXJhbWV0ZXJzLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX3NldF9waHlf dGVzdF9wYXR0ZXJuKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkJc3RydWN0IGRybV9kcF9w aHlfdGVzdF9wYXJhbXMgKmRhdGEpCit7CisJaW50IGVyciwgaTsKKwl1OCBsaW5rX2NvbmZpZ1sy XTsKKwl1OCB0ZXN0X3BhdHRlcm47CisKKwlsaW5rX2NvbmZpZ1swXSA9IGRybV9kcF9saW5rX3Jh dGVfdG9fYndfY29kZShkYXRhLT5saW5rX3JhdGUpOworCWxpbmtfY29uZmlnWzFdID0gZGF0YS0+ bnVtX2xhbmVzOworCWlmIChkYXRhLT5lbmFoYW5jZWRfZnJhbWVfY2FwKQorCQlsaW5rX2NvbmZp Z1sxXSB8PSBEUF9MQU5FX0NPVU5UX0VOSEFOQ0VEX0ZSQU1FX0VOOworCWVyciA9IGRybV9kcF9k cGNkX3dyaXRlKGF1eCwgRFBfTElOS19CV19TRVQsIGxpbmtfY29uZmlnLCAyKTsKKwlpZiAoZXJy IDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXRlc3RfcGF0dGVybiA9IGRhdGEtPnBoeV9wYXR0ZXJu OworCWlmIChkYXRhLT5kcF9yZXYgPCAweDEyKSB7CisJCXRlc3RfcGF0dGVybiA9ICh0ZXN0X3Bh dHRlcm4gPDwgMikgJgorCQkJICAgICAgIERQX0xJTktfUVVBTF9QQVRURVJOXzExX01BU0s7CisJ CWVyciA9IGRybV9kcF9kcGNkX3dyaXRlYihhdXgsIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VULAor CQkJCQkgdGVzdF9wYXR0ZXJuKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0g ZWxzZSB7CisJCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5udW1fbGFuZXM7IGkrKykgeworCQkJZXJy ID0gZHJtX2RwX2RwY2Rfd3JpdGViKGF1eCwKKwkJCQkJCSBEUF9MSU5LX1FVQUxfTEFORTBfU0VU ICsgaSwKKwkJCQkJCSB0ZXN0X3BhdHRlcm4pOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJu IGVycjsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfc2V0 X3BoeV90ZXN0X3BhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCmluZGV4IDUxZWNiNTExMmVmOC4uNjI4 ZTQ4NDMxOGU0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKKysrIGIv aW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCkBAIC02OTksNyArNjk5LDE2IEBACiAjIGRlZmlu ZSBEUF9URVNUX0NSQ19TVVBQT1JURUQJCSAgICAoMSA8PCA1KQogIyBkZWZpbmUgRFBfVEVTVF9D T1VOVF9NQVNLCQkgICAgMHhmCiAKLSNkZWZpbmUgRFBfVEVTVF9QSFlfUEFUVEVSTiAgICAgICAg ICAgICAgICAgMHgyNDgKKyNkZWZpbmUgRFBfUEhZX1RFU1RfUEFUVEVSTiAgICAgICAgICAgICAg ICAgMHgyNDgKKyMgZGVmaW5lIERQX1BIWV9URVNUX1BBVFRFUk5fU0VMX01BU0sgICAgICAgMHg3 CisjIGRlZmluZSBEUF9QSFlfVEVTVF9QQVRURVJOX05PTkUgICAgICAgICAgIDB4MAorIyBkZWZp bmUgRFBfUEhZX1RFU1RfUEFUVEVSTl9EMTBfMiAgICAgICAgICAweDEKKyMgZGVmaW5lIERQX1BI WV9URVNUX1BBVFRFUk5fRVJST1JfQ09VTlQgICAgMHgyCisjIGRlZmluZSBEUF9QSFlfVEVTVF9Q QVRURVJOX1BSQlM3ICAgICAgICAgIDB4MworIyBkZWZpbmUgRFBfUEhZX1RFU1RfUEFUVEVSTl84 MEJJVF9DVVNUT00gICAweDQKKyMgZGVmaW5lIERQX1BIWV9URVNUX1BBVFRFUk5fQ1AyNTIwICAg ICAgICAgMHg1CisKKyNkZWZpbmUgRFBfVEVTVF9IQlIyX1NDUkFNQkxFUl9SRVNFVCAgICAgICAg MHgyNEEKICNkZWZpbmUgRFBfVEVTVF84MEJJVF9DVVNUT01fUEFUVEVSTl83XzAgICAgMHgyNTAK ICNkZWZpbmUJRFBfVEVTVF84MEJJVF9DVVNUT01fUEFUVEVSTl8xNV84ICAgMHgyNTEKICNkZWZp bmUJRFBfVEVTVF84MEJJVF9DVVNUT01fUEFUVEVSTl8yM18xNiAgMHgyNTIKQEAgLTE1NjgsNCAr MTU3NywyNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2RwX2NlY191bnNldF9lZGlkKHN0cnVj dCBkcm1fZHBfYXV4ICphdXgpCiAKICNlbmRpZgogCisvKioKKyAqIHN0cnVjdCBkcm1fZHBfcGh5 X3Rlc3RfcGFyYW1zIC0gRFAgUGh5IENvbXBsaWFuY2UgcGFyYW1ldGVycworICogQGxpbms6IExp bmsgaW5mb3JtYXRpb24uCisgKiBAcGh5X3BhdHRlcm46IERQIFBoeSB0ZXN0IHBhdHRlcm4gZnJv bSBEUENEIDB4MjQ4IChzaW5rKQorICogQGhiMl9yZXNldDogRFAgSEJSMl9DT01QTElBTkNFX1ND UkFNQkxFUl9SRVNFVCBmcm9tIERDUEQKKyAqICAgICAgICAgICAgMHgyNEEgYW5kIDB4MjRCIChz aW5rKQorICogQGN1c3RvbTgwOiBEUCBUZXN0XzgwQklUX0NVU1RPTV9QQVRURVJOIGZyb20gRFBD RHMgMHgyNTAKKyAqICAgICAgICAgICAgICAgdGhyb3VnaCAweDI1OS4KKyAqLworc3RydWN0IGRy bV9kcF9waHlfdGVzdF9wYXJhbXMgeworCXU4IGRwX3JldjsKKwl1OCBwaHlfcGF0dGVybjsKKwl1 OCBoYnIyX3Jlc2V0WzJdOworCXU4IGN1c3RvbTgwWzEwXTsKKwl1MzIgbGlua19yYXRlOworCXUz MiBudW1fbGFuZXM7CisJYm9vbCBlbmFoYW5jZWRfZnJhbWVfY2FwOworfTsKKworaW50IGRybV9k cF9nZXRfcGh5X3Rlc3RfcGF0dGVybihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAorCQkJCXN0cnVj dCBkcm1fZHBfcGh5X3Rlc3RfcGFyYW1zICpkYXRhKTsKK2ludCBkcm1fZHBfc2V0X3BoeV90ZXN0 X3BhdHRlcm4oc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQlzdHJ1Y3QgZHJtX2RwX3BoeV90 ZXN0X3BhcmFtcyAqZGF0YSk7CiAjZW5kaWYgLyogX0RSTV9EUF9IRUxQRVJfSF8gKi8KLS0gCjIu MjIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4