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=-12.8 required=3.0 tests=BAYES_00, 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 A2B46C4363D for ; Thu, 24 Sep 2020 18:48:57 +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 666422311E for ; Thu, 24 Sep 2020 18:48:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 666422311E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B61D06EB48; Thu, 24 Sep 2020 18:48:56 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 70F8A6EB48; Thu, 24 Sep 2020 18:48:55 +0000 (UTC) IronPort-SDR: uA3o+ClszuyKHpJUNiCPdTIl5a1lxdTNTsYJCwDRjfreO5koHf7waDT1OxXjTfafBTEOBjG7TN W9BdxsbbWqbQ== X-IronPort-AV: E=McAfee;i="6000,8403,9754"; a="158658003" X-IronPort-AV: E=Sophos;i="5.77,298,1596524400"; d="scan'208";a="158658003" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 11:48:54 -0700 IronPort-SDR: ASQv0OGUTcBT9dXJICUALhOMDDxVvUKiCcdhwBJZ8NTwD/PMBdFF98GbKTn3zTmh8+uNlmlRhV TFdZgDht2qjA== X-IronPort-AV: E=Sophos;i="5.77,298,1596524400"; d="scan'208";a="455469260" Received: from ideak-desk.fi.intel.com (HELO localhost) ([10.237.68.141]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 11:48:53 -0700 From: Imre Deak To: intel-gfx@lists.freedesktop.org Subject: [PATCH v2 4/6] drm/dp: Add LTTPR helpers Date: Thu, 24 Sep 2020 21:48:03 +0300 Message-Id: <20200924184805.294493-5-imre.deak@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200924184805.294493-1-imre.deak@intel.com> References: <20200924184805.294493-1-imre.deak@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWRkIHRoZSBoZWxwZXJzIGFuZCByZWdpc3RlciBkZWZpbml0aW9ucyBuZWVkZWQgdG8gcmVhZCBv dXQgdGhlIGNvbW1vbgphbmQgcGVyLVBIWSBMVFRQUiBjYXBhYmlsaXRpZXMgYW5kIHBlcmZvcm0g bGluayB0cmFpbmluZyBpbiB0aGUgTFRUUFIKbm9uLXRyYW5zcGFyZW50IG1vZGUuCgp2MjoKLSBB ZGQgZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0dXMoKSBhbmQgRFBfUEhZX0xUVFBSKCkg aGVyZSBpbnN0ZWFkCiAgb2YgYWRkaW5nIHRoZXNlIHRvIGk5MTUuIChWaWxsZSkKCkNjOiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVh a0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyB8IDI0NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBl ci5oICAgICB8ICA2MiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzMDIgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwppbmRleCA0NzhkZDUxZjcz OGQuLjYwMTRjODU4YjA2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxw ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCkBAIC0xNTAsMTEgKzE1 MCw4IEBAIHZvaWQgZHJtX2RwX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkoY29uc3Qg dTggZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV0pCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9s aW5rX3RyYWluX2Nsb2NrX3JlY292ZXJ5X2RlbGF5KTsKIAotdm9pZCBkcm1fZHBfbGlua190cmFp bl9jaGFubmVsX2VxX2RlbGF5KGNvbnN0IHU4IGRwY2RbRFBfUkVDRUlWRVJfQ0FQX1NJWkVdKQor c3RhdGljIHZvaWQgX19kcm1fZHBfbGlua190cmFpbl9jaGFubmVsX2VxX2RlbGF5KHVuc2lnbmVk IGxvbmcgcmRfaW50ZXJ2YWwpCiB7Ci0JdW5zaWduZWQgbG9uZyByZF9pbnRlcnZhbCA9IGRwY2Rb RFBfVFJBSU5JTkdfQVVYX1JEX0lOVEVSVkFMXSAmCi0JCQkJCSBEUF9UUkFJTklOR19BVVhfUkRf TUFTSzsKLQogCWlmIChyZF9pbnRlcnZhbCA+IDQpCiAJCURSTV9ERUJVR19LTVMoIkFVWCBpbnRl cnZhbCAlbHUsIG91dCBvZiByYW5nZSAobWF4IDQpXG4iLAogCQkJICAgICAgcmRfaW50ZXJ2YWwp OwpAQCAtMTY2LDggKzE2MywzNSBAQCB2b2lkIGRybV9kcF9saW5rX3RyYWluX2NoYW5uZWxfZXFf ZGVsYXkoY29uc3QgdTggZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV0pCiAKIAl1c2xlZXBfcmFu Z2UocmRfaW50ZXJ2YWwsIHJkX2ludGVydmFsICogMik7CiB9CisKK3ZvaWQgZHJtX2RwX2xpbmtf dHJhaW5fY2hhbm5lbF9lcV9kZWxheShjb25zdCB1OCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpF XSkKK3sKKwlfX2RybV9kcF9saW5rX3RyYWluX2NoYW5uZWxfZXFfZGVsYXkoZHBjZFtEUF9UUkFJ TklOR19BVVhfUkRfSU5URVJWQUxdICYKKwkJCQkJICAgICBEUF9UUkFJTklOR19BVVhfUkRfTUFT Syk7Cit9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9saW5rX3RyYWluX2NoYW5uZWxfZXFfZGVsYXkp OwogCit2b2lkIGRybV9kcF9sdHRwcl9saW5rX3RyYWluX2Nsb2NrX3JlY292ZXJ5X2RlbGF5KHZv aWQpCit7CisJdXNsZWVwX3JhbmdlKDEwMCwgMjAwKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2Rw X2x0dHByX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkpOworCitzdGF0aWMgdTggZHBf bHR0cHJfcGh5X2NhcChjb25zdCB1OCBwaHlfY2FwW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0sIGlu dCByKQoreworCXJldHVybiBwaHlfY2FwW3IgLSBEUF9UUkFJTklOR19BVVhfUkRfSU5URVJWQUxf UEhZX1JFUEVBVEVSMV07Cit9CisKK3ZvaWQgZHJtX2RwX2x0dHByX2xpbmtfdHJhaW5fY2hhbm5l bF9lcV9kZWxheShjb25zdCB1OCBwaHlfY2FwW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0pCit7CisJ dTggaW50ZXJ2YWwgPSBkcF9sdHRwcl9waHlfY2FwKHBoeV9jYXAsCisJCQkJICAgICAgIERQX1RS QUlOSU5HX0FVWF9SRF9JTlRFUlZBTF9QSFlfUkVQRUFURVIxKSAmCisJCSAgICAgIERQX1RSQUlO SU5HX0FVWF9SRF9NQVNLOworCisJX19kcm1fZHBfbGlua190cmFpbl9jaGFubmVsX2VxX2RlbGF5 KGludGVydmFsKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX2x0dHByX2xpbmtfdHJhaW5fY2hh bm5lbF9lcV9kZWxheSk7CisKIHU4IGRybV9kcF9saW5rX3JhdGVfdG9fYndfY29kZShpbnQgbGlu a19yYXRlKQogewogCS8qIFNwZWMgc2F5cyBsaW5rX2J3ID0gbGlua19yYXRlIC8gMC4yN0dicHMg Ki8KQEAgLTM2Myw2ICszODcsNzEgQEAgaW50IGRybV9kcF9kcGNkX3JlYWRfbGlua19zdGF0dXMo c3RydWN0IGRybV9kcF9hdXggKmF1eCwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX2RwY2RfcmVh ZF9saW5rX3N0YXR1cyk7CiAKKy8qKgorICogZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0 dXMgLSBnZXQgdGhlIGxpbmsgc3RhdHVzIGluZm9ybWF0aW9uIGZvciBhIERQIFBIWQorICogQGF1 eDogRGlzcGxheVBvcnQgQVVYIGNoYW5uZWwKKyAqIEBkcF9waHk6IHRoZSBEUCBQSFkgdG8gZ2V0 IHRoZSBsaW5rIHN0YXR1cyBmb3IKKyAqIEBsaW5rX3N0YXR1czogYnVmZmVyIHRvIHJldHVybiB0 aGUgc3RhdHVzIGluCisgKgorICogRmV0Y2ggdGhlIEFVWCBEUENEIHJlZ2lzdGVycyBmb3IgdGhl IERQUlggb3IgYW4gTFRUUFIgUEhZIGxpbmsgc3RhdHVzLiBUaGUKKyAqIGxheW91dCBvZiB0aGUg cmV0dXJuZWQgQGxpbmtfc3RhdHVzIG1hdGNoZXMgdGhlIERQQ0QgcmVnaXN0ZXIgbGF5b3V0IG9m IHRoZQorICogRFBSWCBQSFkgbGluayBzdGF0dXMuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBp bmZvcm1hdGlvbiB3YXMgcmVhZCBzdWNjZXNzZnVsbHkgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2Rl CisgKiBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0 dXMoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQkgICAgIGVudW0gZHJtX2RwX3BoeSBkcF9w aHksCisJCQkJICAgICB1OCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSkKK3sKKwl1 OCBsdHRwcl9zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRSAtIDFdOworCWludCByZXQ7CisKKwlp ZiAoZHBfcGh5ID09IERQX1BIWV9EUFJYKSB7CisJCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoYXV4 LAorCQkJCSAgICAgICBEUF9MQU5FMF8xX1NUQVRVUywKKwkJCQkgICAgICAgbGlua19zdGF0dXMs CisJCQkJICAgICAgIERQX0xJTktfU1RBVFVTX1NJWkUpOworCisJCWlmIChyZXQgPCAwKQorCQkJ cmV0dXJuIHJldDsKKworCQlXQVJOX09OKHJldCAhPSBEUF9MSU5LX1NUQVRVU19TSVpFKTsKKwor CQlyZXR1cm4gMDsKKwl9CisKKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwKKwkJCSAgICAg ICBEUF9MQU5FMF8xX1NUQVRVU19QSFlfUkVQRUFURVIoZHBfcGh5KSwKKwkJCSAgICAgICBsdHRw cl9zdGF0dXMsCisJCQkgICAgICAgc2l6ZW9mKGx0dHByX3N0YXR1cykpOworCisJaWYgKHJldCA8 IDApCisJCXJldHVybiByZXQ7CisKKwlXQVJOX09OKHJldCAhPSBzaXplb2YobHR0cHJfc3RhdHVz KSk7CisKKyNkZWZpbmUgbGlua19yZWcocmVnKQlsaW5rX3N0YXR1c1socmVnKSAtIERQX0xBTkUw XzFfU1RBVFVTXQorI2RlZmluZSBsdHRwcl9yZWcocmVnKQlsdHRwcl9zdGF0dXNbKHJlZykgLSBE UF9MQU5FMF8xX1NUQVRVU19QSFlfUkVQRUFURVIxXQorCisJLyogQ29udmVydCB0aGUgTFRUUFIg dG8gdGhlIHNpbmsgUEhZIGxpbmsgc3RhdHVzIGxheW91dCAqLworCWxpbmtfcmVnKERQX0xBTkUw XzFfU1RBVFVTKSA9IGx0dHByX3JlZyhEUF9MQU5FMF8xX1NUQVRVU19QSFlfUkVQRUFURVIxKTsK KwlsaW5rX3JlZyhEUF9MQU5FMl8zX1NUQVRVUykgPSBsdHRwcl9yZWcoRFBfTEFORTJfM19TVEFU VVNfUEhZX1JFUEVBVEVSMSk7CisJbGlua19yZWcoRFBfTEFORV9BTElHTl9TVEFUVVNfVVBEQVRF RCkgPQorCQlsdHRwcl9yZWcoRFBfTEFORV9BTElHTl9TVEFUVVNfVVBEQVRFRF9QSFlfUkVQRUFU RVIxKTsKKwlsaW5rX3JlZyhEUF9TSU5LX1NUQVRVUykgPSAwOworCWxpbmtfcmVnKERQX0FESlVT VF9SRVFVRVNUX0xBTkUwXzEpID0KKwkJbHR0cHJfcmVnKERQX0FESlVTVF9SRVFVRVNUX0xBTkUw XzFfUEhZX1JFUEVBVEVSMSk7CisJbGlua19yZWcoRFBfQURKVVNUX1JFUVVFU1RfTEFORTJfMykg PQorCQlsdHRwcl9yZWcoRFBfQURKVVNUX1JFUVVFU1RfTEFORTJfM19QSFlfUkVQRUFURVIxKTsK KworI3VuZGVmIGxpbmtfcmVnCisjdW5kZWYgbHR0cHJfcmVnCisKKwlyZXR1cm4gMDsKK30KK0VY UE9SVF9TWU1CT0woZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0dXMpOworCiBzdGF0aWMg Ym9vbCBpc19lZGlkX2RpZ2l0YWxfaW5wdXRfZHAoY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpCiB7 CiAJcmV0dXJuIGVkaWQgJiYgZWRpZC0+cmV2aXNpb24gPj0gNCAmJgpAQCAtMjA5OCw2ICsyMTg3 LDE1MyBAQCBpbnQgZHJtX2RwX2RzY19zaW5rX3N1cHBvcnRlZF9pbnB1dF9icGNzKGNvbnN0IHU4 IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBfUwogfQogRVhQT1JUX1NZTUJPTChkcm1fZHBf ZHNjX3Npbmtfc3VwcG9ydGVkX2lucHV0X2JwY3MpOwogCisvKioKKyAqIGRybV9kcF9yZWFkX2x0 dHByX2NvbW1vbl9jYXBzIC0gcmVhZCB0aGUgTFRUUFIgY29tbW9uIGNhcGFiaWxpdGllcworICog QGF1eDogRGlzcGxheVBvcnQgQVVYIGNoYW5uZWwKKyAqIEBjYXBzOiBidWZmZXIgdG8gcmV0dXJu IHRoZSBjYXBhYmlsaXR5IGluZm8gaW4KKyAqCisgKiBSZWFkIGNhcGFiaWxpdGllcyBjb21tb24g dG8gYWxsIExUVFBScy4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZl IGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9kcF9yZWFkX2x0dHByX2NvbW1v bl9jYXBzKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkJICB1OCBjYXBzW0RQX0xUVFBSX0NP TU1PTl9DQVBfU0laRV0pCit7CisJaW50IHJldDsKKworCXJldCA9IGRybV9kcF9kcGNkX3JlYWQo YXV4LAorCQkJICAgICAgIERQX0xUX1RVTkFCTEVfUEhZX1JFUEVBVEVSX0ZJRUxEX0RBVEFfU1RS VUNUVVJFX1JFViwKKwkJCSAgICAgICBjYXBzLCBEUF9MVFRQUl9DT01NT05fQ0FQX1NJWkUpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJV0FSTl9PTihyZXQgIT0gRFBfTFRUUFJf Q09NTU9OX0NBUF9TSVpFKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBf cmVhZF9sdHRwcl9jb21tb25fY2Fwcyk7CisKKy8qKgorICogZHJtX2RwX3JlYWRfbHR0cHJfcGh5 X2NhcHMgLSByZWFkIHRoZSBjYXBhYmlsaXRpZXMgZm9yIGEgZ2l2ZW4gTFRUUFIgUEhZCisgKiBA YXV4OiBEaXNwbGF5UG9ydCBBVVggY2hhbm5lbAorICogQGRwX3BoeTogTFRUUFIgUEhZIHRvIHJl YWQgdGhlIGNhcGFiaWxpdGllcyBmb3IKKyAqIEBjYXBzOiBidWZmZXIgdG8gcmV0dXJuIHRoZSBj YXBhYmlsaXR5IGluZm8gaW4KKyAqCisgKiBSZWFkIHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBn aXZlbiBMVFRQUiBQSFkuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fZHBfcmVhZF9sdHRwcl9waHlf Y2FwcyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAorCQkJICAgICAgIGVudW0gZHJtX2RwX3BoeSBk cF9waHksCisJCQkgICAgICAgdTggY2Fwc1tEUF9MVFRQUl9QSFlfQ0FQX1NJWkVdKQoreworCWlu dCByZXQ7CisKKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwKKwkJCSAgICAgICBEUF9UUkFJ TklOR19BVVhfUkRfSU5URVJWQUxfUEhZX1JFUEVBVEVSKGRwX3BoeSksCisJCQkgICAgICAgY2Fw cywgRFBfTFRUUFJfUEhZX0NBUF9TSVpFKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCVdBUk5fT04ocmV0ICE9IERQX0xUVFBSX1BIWV9DQVBfU0laRSk7CisKKwlyZXR1cm4gMDsK K30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX3JlYWRfbHR0cHJfcGh5X2NhcHMpOworCitzdGF0aWMg dTggZHBfbHR0cHJfY29tbW9uX2NhcChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9DQVBf U0laRV0sIGludCByKQoreworCXJldHVybiBjYXBzW3IgLSBEUF9MVF9UVU5BQkxFX1BIWV9SRVBF QVRFUl9GSUVMRF9EQVRBX1NUUlVDVFVSRV9SRVZdOworfQorCisvKioKKyAqIGRybV9kcF9sdHRw cl9jb3VudCAtIGdldCB0aGUgbnVtYmVyIG9mIGRldGVjdGVkIExUVFBScworICogQGNhcHM6IExU VFBSIGNvbW1vbiBjYXBhYmlsaXRpZXMKKyAqCisgKiBHZXQgdGhlIG51bWJlciBvZiBkZXRlY3Rl ZCBMVFRQUnMgZnJvbSB0aGUgTFRUUFIgY29tbW9uIGNhcGFiaWxpdGllcyBpbmZvLgorICoKKyAq IFJldHVybnM6CisgKiAgIC1FUkFOR0UgaWYgbW9yZSB0aGFuIHN1cHBvcnRlZCBudW1iZXIgKDgp IG9mIExUVFBScyBhcmUgZGV0ZWN0ZWQKKyAqICAgLUVJTlZBTCBpZiB0aGUgRFBfUEhZX1JFUEVB VEVSX0NOVCByZWdpc3RlciBjb250YWlucyBhbiBpbnZhbGlkIHZhbHVlCisgKiAgIG90aGVyd2lz ZSB0aGUgbnVtYmVyIG9mIGRldGVjdGVkIExUVFBScworICovCitpbnQgZHJtX2RwX2x0dHByX2Nv dW50KGNvbnN0IHU4IGNhcHNbRFBfTFRUUFJfQ09NTU9OX0NBUF9TSVpFXSkKK3sKKwl1OCBjb3Vu dCA9IGRwX2x0dHByX2NvbW1vbl9jYXAoY2FwcywgRFBfUEhZX1JFUEVBVEVSX0NOVCk7CisKKwlz d2l0Y2ggKGh3ZWlnaHQ4KGNvdW50KSkgeworCWNhc2UgMDoKKwkJcmV0dXJuIDA7CisJY2FzZSAx OgorCQlyZXR1cm4gOCAtIGlsb2cyKGNvdW50KTsKKwljYXNlIDg6CisJCXJldHVybiAtRVJBTkdF OworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KK30KK0VYUE9SVF9TWU1CT0woZHJt X2RwX2x0dHByX2NvdW50KTsKKworLyoqCisgKiBkcm1fZHBfbHR0cHJfbWF4X2xpbmtfcmF0ZSAt IGdldCB0aGUgbWF4aW11bSBsaW5rIHJhdGUgc3VwcG9ydGVkIGJ5IGFsbCBMVFRQUnMKKyAqIEBj YXBzOiBMVFRQUiBjb21tb24gY2FwYWJpbGl0aWVzCisgKgorICogUmV0dXJucyB0aGUgbWF4aW11 bSBsaW5rIHJhdGUgc3VwcG9ydGVkIGJ5IGFsbCBkZXRlY3RlZCBMVFRQUnMuCisgKi8KK2ludCBk cm1fZHBfbHR0cHJfbWF4X2xpbmtfcmF0ZShjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9D QVBfU0laRV0pCit7CisJdTggcmF0ZSA9IGRwX2x0dHByX2NvbW1vbl9jYXAoY2FwcywgRFBfTUFY X0xJTktfUkFURV9QSFlfUkVQRUFURVIpOworCisJcmV0dXJuIGRybV9kcF9id19jb2RlX3RvX2xp bmtfcmF0ZShyYXRlKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX2x0dHByX21heF9saW5rX3Jh dGUpOworCisvKioKKyAqIGRybV9kcF9sdHRwcl9tYXhfbGFuZV9jb3VudCAtIGdldCB0aGUgbWF4 aW11bSBsYW5lIGNvdW50IHN1cHBvcnRlZCBieSBhbGwgTFRUUFJzCisgKiBAY2FwczogTFRUUFIg Y29tbW9uIGNhcGFiaWxpdGllcworICoKKyAqIFJldHVybnMgdGhlIG1heGltdW0gbGFuZSBjb3Vu dCBzdXBwb3J0ZWQgYnkgYWxsIGRldGVjdGVkIExUVFBScy4KKyAqLworaW50IGRybV9kcF9sdHRw cl9tYXhfbGFuZV9jb3VudChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9DQVBfU0laRV0p Cit7CisJdTggbWF4X2xhbmVzID0gZHBfbHR0cHJfY29tbW9uX2NhcChjYXBzLCBEUF9NQVhfTEFO RV9DT1VOVF9QSFlfUkVQRUFURVIpOworCisJcmV0dXJuIG1heF9sYW5lcyAmIERQX01BWF9MQU5F X0NPVU5UX01BU0s7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9kcF9sdHRwcl9tYXhfbGFuZV9jb3Vu dCk7CisKKy8qKgorICogZHJtX2RwX2x0dHByX3ZvbHRhZ2Vfc3dpbmdfbGV2ZWxfM19zdXBwb3J0 ZWQgLSBjaGVjayBmb3IgTFRUUFIgdnN3aW5nMyBzdXBwb3J0CisgKiBAY2FwczogTFRUUFIgUEhZ IGNhcGFiaWxpdGllcworICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgQGNhcHMgZm9yIGFuIExU VFBSIFRYIFBIWSBpbmRpY2F0ZSBzdXBwb3J0IGZvcgorICogdm9sdGFnZSBzd2luZyBsZXZlbCAz LgorICovCitib29sCitkcm1fZHBfbHR0cHJfdm9sdGFnZV9zd2luZ19sZXZlbF8zX3N1cHBvcnRl ZChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0pCit7CisJdTggdHhjYXAgPSBk cF9sdHRwcl9waHlfY2FwKGNhcHMsIERQX1RSQU5TTUlUVEVSX0NBUEFCSUxJVFlfUEhZX1JFUEVB VEVSMSk7CisKKwlyZXR1cm4gdHhjYXAgJiBEUF9WT0xUQUdFX1NXSU5HX0xFVkVMXzNfU1VQUE9S VEVEOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfbHR0cHJfdm9sdGFnZV9zd2luZ19sZXZlbF8z X3N1cHBvcnRlZCk7CisKKy8qKgorICogZHJtX2RwX2x0dHByX3ByZV9lbXBoYXNpc19sZXZlbF8z X3N1cHBvcnRlZCAtIGNoZWNrIGZvciBMVFRQUiBwcmVlbXBoMyBzdXBwb3J0CisgKiBAY2Fwczog TFRUUFIgUEhZIGNhcGFiaWxpdGllcworICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgQGNhcHMg Zm9yIGFuIExUVFBSIFRYIFBIWSBpbmRpY2F0ZSBzdXBwb3J0IGZvcgorICogcHJlLWVtcGhhc2lz IGxldmVsIDMuCisgKi8KK2Jvb2wKK2RybV9kcF9sdHRwcl9wcmVfZW1waGFzaXNfbGV2ZWxfM19z dXBwb3J0ZWQoY29uc3QgdTggY2Fwc1tEUF9MVFRQUl9QSFlfQ0FQX1NJWkVdKQoreworCXU4IHR4 Y2FwID0gZHBfbHR0cHJfcGh5X2NhcChjYXBzLCBEUF9UUkFOU01JVFRFUl9DQVBBQklMSVRZX1BI WV9SRVBFQVRFUjEpOworCisJcmV0dXJuIHR4Y2FwICYgRFBfUFJFX0VNUEhBU0lTX0xFVkVMXzNf U1VQUE9SVEVEOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfbHR0cHJfcHJlX2VtcGhhc2lzX2xl dmVsXzNfc3VwcG9ydGVkKTsKKwogLyoqCiAgKiBkcm1fZHBfZ2V0X3BoeV90ZXN0X3BhdHRlcm4o KSAtIGdldCB0aGUgcmVxdWVzdGVkIHBhdHRlcm4gZnJvbSB0aGUgc2luay4KICAqIEBhdXg6IERp c3BsYXlQb3J0IEFVWCBjaGFubmVsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKaW5kZXggZTE0NGI0YjlkNzlhLi40 MmI2YWIxNDkyMGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAorKysg Yi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKQEAgLTExMTgsMTUgKzExMTgsNTggQEAgc3Ry dWN0IGRybV9kZXZpY2U7CiAjZGVmaW5lIERQX01BWF9MQU5FX0NPVU5UX1BIWV9SRVBFQVRFUgkJ CSAgICAweGYwMDA0IC8qIDEuNGEgKi8KICNkZWZpbmUgRFBfUmVwZWF0ZXJfRkVDX0NBUEFCSUxJ VFkJCQkgICAgMHhmMDAwNCAvKiAxLjQgKi8KICNkZWZpbmUgRFBfUEhZX1JFUEVBVEVSX0VYVEVO REVEX1dBSVRfVElNRU9VVAkJICAgIDB4ZjAwMDUgLyogMS40YSAqLworCitlbnVtIGRybV9kcF9w aHkgeworCURQX1BIWV9EUFJYLAorCisJRFBfUEhZX0xUVFBSMSwKKwlEUF9QSFlfTFRUUFIyLAor CURQX1BIWV9MVFRQUjMsCisJRFBfUEhZX0xUVFBSNCwKKwlEUF9QSFlfTFRUUFI1LAorCURQX1BI WV9MVFRQUjYsCisJRFBfUEhZX0xUVFBSNywKKwlEUF9QSFlfTFRUUFI4LAorCisJRFBfTUFYX0xU VFBSX0NPVU5UID0gRFBfUEhZX0xUVFBSOCwKK307CisKKyNkZWZpbmUgRFBfUEhZX0xUVFBSKGkp CQkJCQkgICAgKERQX1BIWV9MVFRQUjEgKyAoaSkpCisKKyNkZWZpbmUgX19EUF9MVFRQUjFfQkFT RQkJCQkgICAgMHhmMDAxMCAvKiAxLjMgKi8KKyNkZWZpbmUgX19EUF9MVFRQUjJfQkFTRQkJCQkg ICAgMHhmMDA2MCAvKiAxLjMgKi8KKyNkZWZpbmUgRFBfTFRUUFJfQkFTRShkcF9waHkpIFwKKwko X19EUF9MVFRQUjFfQkFTRSArIChfX0RQX0xUVFBSMl9CQVNFIC0gX19EUF9MVFRQUjFfQkFTRSkg KiBcCisJCSgoZHBfcGh5KSAtIERQX1BIWV9MVFRQUjEpKQorCisjZGVmaW5lIERQX0xUVFBSX1JF RyhkcF9waHksIGx0dHByMV9yZWcpIFwKKwkoRFBfTFRUUFJfQkFTRShkcF9waHkpIC0gRFBfTFRU UFJfQkFTRShEUF9QSFlfTFRUUFIxKSArIChsdHRwcjFfcmVnKSkKKwogI2RlZmluZSBEUF9UUkFJ TklOR19QQVRURVJOX1NFVF9QSFlfUkVQRUFURVIxCQkgICAgMHhmMDAxMCAvKiAxLjMgKi8KKyNk ZWZpbmUgRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVRfUEhZX1JFUEVBVEVSKGRwX3BoeSkgXAorCURQ X0xUVFBSX1JFRyhkcF9waHksIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VUX1BIWV9SRVBFQVRFUjEp CisKICNkZWZpbmUgRFBfVFJBSU5JTkdfTEFORTBfU0VUX1BIWV9SRVBFQVRFUjEJCSAgICAweGYw MDExIC8qIDEuMyAqLworI2RlZmluZSBEUF9UUkFJTklOR19MQU5FMF9TRVRfUEhZX1JFUEVBVEVS KGRwX3BoeSkgXAorCURQX0xUVFBSX1JFRyhkcF9waHksIERQX1RSQUlOSU5HX0xBTkUwX1NFVF9Q SFlfUkVQRUFURVIxKQorCiAjZGVmaW5lIERQX1RSQUlOSU5HX0xBTkUxX1NFVF9QSFlfUkVQRUFU RVIxCQkgICAgMHhmMDAxMiAvKiAxLjMgKi8KICNkZWZpbmUgRFBfVFJBSU5JTkdfTEFORTJfU0VU X1BIWV9SRVBFQVRFUjEJCSAgICAweGYwMDEzIC8qIDEuMyAqLwogI2RlZmluZSBEUF9UUkFJTklO R19MQU5FM19TRVRfUEhZX1JFUEVBVEVSMQkJICAgIDB4ZjAwMTQgLyogMS4zICovCiAjZGVmaW5l IERQX1RSQUlOSU5HX0FVWF9SRF9JTlRFUlZBTF9QSFlfUkVQRUFURVIxCSAgICAweGYwMDIwIC8q IDEuNGEgKi8KKyNkZWZpbmUgRFBfVFJBSU5JTkdfQVVYX1JEX0lOVEVSVkFMX1BIWV9SRVBFQVRF UihkcF9waHkpCVwKKwlEUF9MVFRQUl9SRUcoZHBfcGh5LCBEUF9UUkFJTklOR19BVVhfUkRfSU5U RVJWQUxfUEhZX1JFUEVBVEVSMSkKKwogI2RlZmluZSBEUF9UUkFOU01JVFRFUl9DQVBBQklMSVRZ X1BIWV9SRVBFQVRFUjEJCSAgICAweGYwMDIxIC8qIDEuNGEgKi8KKyMgZGVmaW5lIERQX1ZPTFRB R0VfU1dJTkdfTEVWRUxfM19TVVBQT1JURUQJCSAgICBCSVQoMCkKKyMgZGVmaW5lIERQX1BSRV9F TVBIQVNJU19MRVZFTF8zX1NVUFBPUlRFRAkJICAgIEJJVCgxKQorCiAjZGVmaW5lIERQX0xBTkUw XzFfU1RBVFVTX1BIWV9SRVBFQVRFUjEJCQkgICAgMHhmMDAzMCAvKiAxLjMgKi8KKyNkZWZpbmUg RFBfTEFORTBfMV9TVEFUVVNfUEhZX1JFUEVBVEVSKGRwX3BoeSkgXAorCURQX0xUVFBSX1JFRyhk cF9waHksIERQX0xBTkUwXzFfU1RBVFVTX1BIWV9SRVBFQVRFUjEpCisKICNkZWZpbmUgRFBfTEFO RTJfM19TVEFUVVNfUEhZX1JFUEVBVEVSMQkJCSAgICAweGYwMDMxIC8qIDEuMyAqLworCiAjZGVm aW5lIERQX0xBTkVfQUxJR05fU1RBVFVTX1VQREFURURfUEhZX1JFUEVBVEVSMQkgICAgMHhmMDAz MiAvKiAxLjMgKi8KICNkZWZpbmUgRFBfQURKVVNUX1JFUVVFU1RfTEFORTBfMV9QSFlfUkVQRUFU RVIxCQkgICAgMHhmMDAzMyAvKiAxLjMgKi8KICNkZWZpbmUgRFBfQURKVVNUX1JFUVVFU1RfTEFO RTJfM19QSFlfUkVQRUFURVIxCQkgICAgMHhmMDAzNCAvKiAxLjMgKi8KQEAgLTEyMzYsOSArMTI3 OSwxMyBAQCB1OCBkcm1fZHBfZ2V0X2FkanVzdF9yZXF1ZXN0X3Bvc3RfY3Vyc29yKGNvbnN0IHU4 IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWgogI2RlZmluZSBEUF9EU0NfUkVDRUlWRVJf Q0FQX1NJWkUgICAgICAgIDB4ZgogI2RlZmluZSBFRFBfUFNSX1JFQ0VJVkVSX0NBUF9TSVpFCTIK ICNkZWZpbmUgRURQX0RJU1BMQVlfQ1RMX0NBUF9TSVpFCTMKKyNkZWZpbmUgRFBfTFRUUFJfQ09N TU9OX0NBUF9TSVpFCTgKKyNkZWZpbmUgRFBfTFRUUFJfUEhZX0NBUF9TSVpFCQkzCiAKIHZvaWQg ZHJtX2RwX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkoY29uc3QgdTggZHBjZFtEUF9S RUNFSVZFUl9DQVBfU0laRV0pOwordm9pZCBkcm1fZHBfbHR0cHJfbGlua190cmFpbl9jbG9ja19y ZWNvdmVyeV9kZWxheSh2b2lkKTsKIHZvaWQgZHJtX2RwX2xpbmtfdHJhaW5fY2hhbm5lbF9lcV9k ZWxheShjb25zdCB1OCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpFXSk7Cit2b2lkIGRybV9kcF9s dHRwcl9saW5rX3RyYWluX2NoYW5uZWxfZXFfZGVsYXkoY29uc3QgdTggY2Fwc1tEUF9MVFRQUl9Q SFlfQ0FQX1NJWkVdKTsKIAogdTggZHJtX2RwX2xpbmtfcmF0ZV90b19id19jb2RlKGludCBsaW5r X3JhdGUpOwogaW50IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZSh1OCBsaW5rX2J3KTsKQEAg LTE2OTcsNiArMTc0NCwxMCBAQCBpbnQgZHJtX2RwX3JlYWRfZHBjZF9jYXBzKHN0cnVjdCBkcm1f ZHBfYXV4ICphdXgsCiBpbnQgZHJtX2RwX2RwY2RfcmVhZF9saW5rX3N0YXR1cyhzdHJ1Y3QgZHJt X2RwX2F1eCAqYXV4LAogCQkJCSB1OCBzdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV0pOwogCitp bnQgZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0dXMoc3RydWN0IGRybV9kcF9hdXggKmF1 eCwKKwkJCQkgICAgIGVudW0gZHJtX2RwX3BoeSBkcF9waHksCisJCQkJICAgICB1OCBsaW5rX3N0 YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSk7CisKIGJvb2wgZHJtX2RwX3NlbmRfcmVhbF9lZGlk X2NoZWNrc3VtKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCiAJCQkJICAgIHU4IHJlYWxfZWRpZF9j aGVja3N1bSk7CiAKQEAgLTE3NDYsNiArMTc5NywxNyBAQCBib29sIGRybV9kcF9yZWFkX3Npbmtf Y291bnRfY2FwKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJY29uc3Qgc3Ry dWN0IGRybV9kcF9kZXNjICpkZXNjKTsKIGludCBkcm1fZHBfcmVhZF9zaW5rX2NvdW50KHN0cnVj dCBkcm1fZHBfYXV4ICphdXgpOwogCitpbnQgZHJtX2RwX3JlYWRfbHR0cHJfY29tbW9uX2NhcHMo c3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQkgIHU4IGNhcHNbRFBfTFRUUFJfQ09NTU9OX0NB UF9TSVpFXSk7CitpbnQgZHJtX2RwX3JlYWRfbHR0cHJfcGh5X2NhcHMoc3RydWN0IGRybV9kcF9h dXggKmF1eCwKKwkJCSAgICAgICBlbnVtIGRybV9kcF9waHkgZHBfcGh5LAorCQkJICAgICAgIHU4 IGNhcHNbRFBfTFRUUFJfUEhZX0NBUF9TSVpFXSk7CitpbnQgZHJtX2RwX2x0dHByX2NvdW50KGNv bnN0IHU4IGNhcFtEUF9MVFRQUl9DT01NT05fQ0FQX1NJWkVdKTsKK2ludCBkcm1fZHBfbHR0cHJf bWF4X2xpbmtfcmF0ZShjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9DQVBfU0laRV0pOwor aW50IGRybV9kcF9sdHRwcl9tYXhfbGFuZV9jb3VudChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NP TU1PTl9DQVBfU0laRV0pOworYm9vbCBkcm1fZHBfbHR0cHJfdm9sdGFnZV9zd2luZ19sZXZlbF8z X3N1cHBvcnRlZChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0pOworYm9vbCBk cm1fZHBfbHR0cHJfcHJlX2VtcGhhc2lzX2xldmVsXzNfc3VwcG9ydGVkKGNvbnN0IHU4IGNhcHNb RFBfTFRUUFJfUEhZX0NBUF9TSVpFXSk7CisKIHZvaWQgZHJtX2RwX3JlbW90ZV9hdXhfaW5pdChz dHJ1Y3QgZHJtX2RwX2F1eCAqYXV4KTsKIHZvaWQgZHJtX2RwX2F1eF9pbml0KHN0cnVjdCBkcm1f ZHBfYXV4ICphdXgpOwogaW50IGRybV9kcF9hdXhfcmVnaXN0ZXIoc3RydWN0IGRybV9kcF9hdXgg KmF1eCk7Ci0tIAoyLjI1LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo= 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=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 6CBEEC4727D for ; Thu, 24 Sep 2020 18:48:59 +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 2E6162311E for ; Thu, 24 Sep 2020 18:48:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2E6162311E 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 DD40F6EB49; Thu, 24 Sep 2020 18:48:56 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 70F8A6EB48; Thu, 24 Sep 2020 18:48:55 +0000 (UTC) IronPort-SDR: uA3o+ClszuyKHpJUNiCPdTIl5a1lxdTNTsYJCwDRjfreO5koHf7waDT1OxXjTfafBTEOBjG7TN W9BdxsbbWqbQ== X-IronPort-AV: E=McAfee;i="6000,8403,9754"; a="158658003" X-IronPort-AV: E=Sophos;i="5.77,298,1596524400"; d="scan'208";a="158658003" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 11:48:54 -0700 IronPort-SDR: ASQv0OGUTcBT9dXJICUALhOMDDxVvUKiCcdhwBJZ8NTwD/PMBdFF98GbKTn3zTmh8+uNlmlRhV TFdZgDht2qjA== X-IronPort-AV: E=Sophos;i="5.77,298,1596524400"; d="scan'208";a="455469260" Received: from ideak-desk.fi.intel.com (HELO localhost) ([10.237.68.141]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2020 11:48:53 -0700 From: Imre Deak To: intel-gfx@lists.freedesktop.org Date: Thu, 24 Sep 2020 21:48:03 +0300 Message-Id: <20200924184805.294493-5-imre.deak@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200924184805.294493-1-imre.deak@intel.com> References: <20200924184805.294493-1-imre.deak@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 4/6] drm/dp: Add LTTPR helpers X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" QWRkIHRoZSBoZWxwZXJzIGFuZCByZWdpc3RlciBkZWZpbml0aW9ucyBuZWVkZWQgdG8gcmVhZCBv dXQgdGhlIGNvbW1vbgphbmQgcGVyLVBIWSBMVFRQUiBjYXBhYmlsaXRpZXMgYW5kIHBlcmZvcm0g bGluayB0cmFpbmluZyBpbiB0aGUgTFRUUFIKbm9uLXRyYW5zcGFyZW50IG1vZGUuCgp2MjoKLSBB ZGQgZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0dXMoKSBhbmQgRFBfUEhZX0xUVFBSKCkg aGVyZSBpbnN0ZWFkCiAgb2YgYWRkaW5nIHRoZXNlIHRvIGk5MTUuIChWaWxsZSkKCkNjOiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVh a0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyB8IDI0NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBl ci5oICAgICB8ICA2MiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzMDIgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwppbmRleCA0NzhkZDUxZjcz OGQuLjYwMTRjODU4YjA2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxw ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCkBAIC0xNTAsMTEgKzE1 MCw4IEBAIHZvaWQgZHJtX2RwX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkoY29uc3Qg dTggZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV0pCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9s aW5rX3RyYWluX2Nsb2NrX3JlY292ZXJ5X2RlbGF5KTsKIAotdm9pZCBkcm1fZHBfbGlua190cmFp bl9jaGFubmVsX2VxX2RlbGF5KGNvbnN0IHU4IGRwY2RbRFBfUkVDRUlWRVJfQ0FQX1NJWkVdKQor c3RhdGljIHZvaWQgX19kcm1fZHBfbGlua190cmFpbl9jaGFubmVsX2VxX2RlbGF5KHVuc2lnbmVk IGxvbmcgcmRfaW50ZXJ2YWwpCiB7Ci0JdW5zaWduZWQgbG9uZyByZF9pbnRlcnZhbCA9IGRwY2Rb RFBfVFJBSU5JTkdfQVVYX1JEX0lOVEVSVkFMXSAmCi0JCQkJCSBEUF9UUkFJTklOR19BVVhfUkRf TUFTSzsKLQogCWlmIChyZF9pbnRlcnZhbCA+IDQpCiAJCURSTV9ERUJVR19LTVMoIkFVWCBpbnRl cnZhbCAlbHUsIG91dCBvZiByYW5nZSAobWF4IDQpXG4iLAogCQkJICAgICAgcmRfaW50ZXJ2YWwp OwpAQCAtMTY2LDggKzE2MywzNSBAQCB2b2lkIGRybV9kcF9saW5rX3RyYWluX2NoYW5uZWxfZXFf ZGVsYXkoY29uc3QgdTggZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV0pCiAKIAl1c2xlZXBfcmFu Z2UocmRfaW50ZXJ2YWwsIHJkX2ludGVydmFsICogMik7CiB9CisKK3ZvaWQgZHJtX2RwX2xpbmtf dHJhaW5fY2hhbm5lbF9lcV9kZWxheShjb25zdCB1OCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpF XSkKK3sKKwlfX2RybV9kcF9saW5rX3RyYWluX2NoYW5uZWxfZXFfZGVsYXkoZHBjZFtEUF9UUkFJ TklOR19BVVhfUkRfSU5URVJWQUxdICYKKwkJCQkJICAgICBEUF9UUkFJTklOR19BVVhfUkRfTUFT Syk7Cit9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9saW5rX3RyYWluX2NoYW5uZWxfZXFfZGVsYXkp OwogCit2b2lkIGRybV9kcF9sdHRwcl9saW5rX3RyYWluX2Nsb2NrX3JlY292ZXJ5X2RlbGF5KHZv aWQpCit7CisJdXNsZWVwX3JhbmdlKDEwMCwgMjAwKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2Rw X2x0dHByX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkpOworCitzdGF0aWMgdTggZHBf bHR0cHJfcGh5X2NhcChjb25zdCB1OCBwaHlfY2FwW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0sIGlu dCByKQoreworCXJldHVybiBwaHlfY2FwW3IgLSBEUF9UUkFJTklOR19BVVhfUkRfSU5URVJWQUxf UEhZX1JFUEVBVEVSMV07Cit9CisKK3ZvaWQgZHJtX2RwX2x0dHByX2xpbmtfdHJhaW5fY2hhbm5l bF9lcV9kZWxheShjb25zdCB1OCBwaHlfY2FwW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0pCit7CisJ dTggaW50ZXJ2YWwgPSBkcF9sdHRwcl9waHlfY2FwKHBoeV9jYXAsCisJCQkJICAgICAgIERQX1RS QUlOSU5HX0FVWF9SRF9JTlRFUlZBTF9QSFlfUkVQRUFURVIxKSAmCisJCSAgICAgIERQX1RSQUlO SU5HX0FVWF9SRF9NQVNLOworCisJX19kcm1fZHBfbGlua190cmFpbl9jaGFubmVsX2VxX2RlbGF5 KGludGVydmFsKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX2x0dHByX2xpbmtfdHJhaW5fY2hh bm5lbF9lcV9kZWxheSk7CisKIHU4IGRybV9kcF9saW5rX3JhdGVfdG9fYndfY29kZShpbnQgbGlu a19yYXRlKQogewogCS8qIFNwZWMgc2F5cyBsaW5rX2J3ID0gbGlua19yYXRlIC8gMC4yN0dicHMg Ki8KQEAgLTM2Myw2ICszODcsNzEgQEAgaW50IGRybV9kcF9kcGNkX3JlYWRfbGlua19zdGF0dXMo c3RydWN0IGRybV9kcF9hdXggKmF1eCwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2RwX2RwY2RfcmVh ZF9saW5rX3N0YXR1cyk7CiAKKy8qKgorICogZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0 dXMgLSBnZXQgdGhlIGxpbmsgc3RhdHVzIGluZm9ybWF0aW9uIGZvciBhIERQIFBIWQorICogQGF1 eDogRGlzcGxheVBvcnQgQVVYIGNoYW5uZWwKKyAqIEBkcF9waHk6IHRoZSBEUCBQSFkgdG8gZ2V0 IHRoZSBsaW5rIHN0YXR1cyBmb3IKKyAqIEBsaW5rX3N0YXR1czogYnVmZmVyIHRvIHJldHVybiB0 aGUgc3RhdHVzIGluCisgKgorICogRmV0Y2ggdGhlIEFVWCBEUENEIHJlZ2lzdGVycyBmb3IgdGhl IERQUlggb3IgYW4gTFRUUFIgUEhZIGxpbmsgc3RhdHVzLiBUaGUKKyAqIGxheW91dCBvZiB0aGUg cmV0dXJuZWQgQGxpbmtfc3RhdHVzIG1hdGNoZXMgdGhlIERQQ0QgcmVnaXN0ZXIgbGF5b3V0IG9m IHRoZQorICogRFBSWCBQSFkgbGluayBzdGF0dXMuCisgKgorICogUmV0dXJucyAwIGlmIHRoZSBp bmZvcm1hdGlvbiB3YXMgcmVhZCBzdWNjZXNzZnVsbHkgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2Rl CisgKiBvbiBmYWlsdXJlLgorICovCitpbnQgZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0 dXMoc3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQkgICAgIGVudW0gZHJtX2RwX3BoeSBkcF9w aHksCisJCQkJICAgICB1OCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSkKK3sKKwl1 OCBsdHRwcl9zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRSAtIDFdOworCWludCByZXQ7CisKKwlp ZiAoZHBfcGh5ID09IERQX1BIWV9EUFJYKSB7CisJCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoYXV4 LAorCQkJCSAgICAgICBEUF9MQU5FMF8xX1NUQVRVUywKKwkJCQkgICAgICAgbGlua19zdGF0dXMs CisJCQkJICAgICAgIERQX0xJTktfU1RBVFVTX1NJWkUpOworCisJCWlmIChyZXQgPCAwKQorCQkJ cmV0dXJuIHJldDsKKworCQlXQVJOX09OKHJldCAhPSBEUF9MSU5LX1NUQVRVU19TSVpFKTsKKwor CQlyZXR1cm4gMDsKKwl9CisKKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwKKwkJCSAgICAg ICBEUF9MQU5FMF8xX1NUQVRVU19QSFlfUkVQRUFURVIoZHBfcGh5KSwKKwkJCSAgICAgICBsdHRw cl9zdGF0dXMsCisJCQkgICAgICAgc2l6ZW9mKGx0dHByX3N0YXR1cykpOworCisJaWYgKHJldCA8 IDApCisJCXJldHVybiByZXQ7CisKKwlXQVJOX09OKHJldCAhPSBzaXplb2YobHR0cHJfc3RhdHVz KSk7CisKKyNkZWZpbmUgbGlua19yZWcocmVnKQlsaW5rX3N0YXR1c1socmVnKSAtIERQX0xBTkUw XzFfU1RBVFVTXQorI2RlZmluZSBsdHRwcl9yZWcocmVnKQlsdHRwcl9zdGF0dXNbKHJlZykgLSBE UF9MQU5FMF8xX1NUQVRVU19QSFlfUkVQRUFURVIxXQorCisJLyogQ29udmVydCB0aGUgTFRUUFIg dG8gdGhlIHNpbmsgUEhZIGxpbmsgc3RhdHVzIGxheW91dCAqLworCWxpbmtfcmVnKERQX0xBTkUw XzFfU1RBVFVTKSA9IGx0dHByX3JlZyhEUF9MQU5FMF8xX1NUQVRVU19QSFlfUkVQRUFURVIxKTsK KwlsaW5rX3JlZyhEUF9MQU5FMl8zX1NUQVRVUykgPSBsdHRwcl9yZWcoRFBfTEFORTJfM19TVEFU VVNfUEhZX1JFUEVBVEVSMSk7CisJbGlua19yZWcoRFBfTEFORV9BTElHTl9TVEFUVVNfVVBEQVRF RCkgPQorCQlsdHRwcl9yZWcoRFBfTEFORV9BTElHTl9TVEFUVVNfVVBEQVRFRF9QSFlfUkVQRUFU RVIxKTsKKwlsaW5rX3JlZyhEUF9TSU5LX1NUQVRVUykgPSAwOworCWxpbmtfcmVnKERQX0FESlVT VF9SRVFVRVNUX0xBTkUwXzEpID0KKwkJbHR0cHJfcmVnKERQX0FESlVTVF9SRVFVRVNUX0xBTkUw XzFfUEhZX1JFUEVBVEVSMSk7CisJbGlua19yZWcoRFBfQURKVVNUX1JFUVVFU1RfTEFORTJfMykg PQorCQlsdHRwcl9yZWcoRFBfQURKVVNUX1JFUVVFU1RfTEFORTJfM19QSFlfUkVQRUFURVIxKTsK KworI3VuZGVmIGxpbmtfcmVnCisjdW5kZWYgbHR0cHJfcmVnCisKKwlyZXR1cm4gMDsKK30KK0VY UE9SVF9TWU1CT0woZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0dXMpOworCiBzdGF0aWMg Ym9vbCBpc19lZGlkX2RpZ2l0YWxfaW5wdXRfZHAoY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpCiB7 CiAJcmV0dXJuIGVkaWQgJiYgZWRpZC0+cmV2aXNpb24gPj0gNCAmJgpAQCAtMjA5OCw2ICsyMTg3 LDE1MyBAQCBpbnQgZHJtX2RwX2RzY19zaW5rX3N1cHBvcnRlZF9pbnB1dF9icGNzKGNvbnN0IHU4 IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBfUwogfQogRVhQT1JUX1NZTUJPTChkcm1fZHBf ZHNjX3Npbmtfc3VwcG9ydGVkX2lucHV0X2JwY3MpOwogCisvKioKKyAqIGRybV9kcF9yZWFkX2x0 dHByX2NvbW1vbl9jYXBzIC0gcmVhZCB0aGUgTFRUUFIgY29tbW9uIGNhcGFiaWxpdGllcworICog QGF1eDogRGlzcGxheVBvcnQgQVVYIGNoYW5uZWwKKyAqIEBjYXBzOiBidWZmZXIgdG8gcmV0dXJu IHRoZSBjYXBhYmlsaXR5IGluZm8gaW4KKyAqCisgKiBSZWFkIGNhcGFiaWxpdGllcyBjb21tb24g dG8gYWxsIExUVFBScy4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZl IGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9kcF9yZWFkX2x0dHByX2NvbW1v bl9jYXBzKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCisJCQkJICB1OCBjYXBzW0RQX0xUVFBSX0NP TU1PTl9DQVBfU0laRV0pCit7CisJaW50IHJldDsKKworCXJldCA9IGRybV9kcF9kcGNkX3JlYWQo YXV4LAorCQkJICAgICAgIERQX0xUX1RVTkFCTEVfUEhZX1JFUEVBVEVSX0ZJRUxEX0RBVEFfU1RS VUNUVVJFX1JFViwKKwkJCSAgICAgICBjYXBzLCBEUF9MVFRQUl9DT01NT05fQ0FQX1NJWkUpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJV0FSTl9PTihyZXQgIT0gRFBfTFRUUFJf Q09NTU9OX0NBUF9TSVpFKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBf cmVhZF9sdHRwcl9jb21tb25fY2Fwcyk7CisKKy8qKgorICogZHJtX2RwX3JlYWRfbHR0cHJfcGh5 X2NhcHMgLSByZWFkIHRoZSBjYXBhYmlsaXRpZXMgZm9yIGEgZ2l2ZW4gTFRUUFIgUEhZCisgKiBA YXV4OiBEaXNwbGF5UG9ydCBBVVggY2hhbm5lbAorICogQGRwX3BoeTogTFRUUFIgUEhZIHRvIHJl YWQgdGhlIGNhcGFiaWxpdGllcyBmb3IKKyAqIEBjYXBzOiBidWZmZXIgdG8gcmV0dXJuIHRoZSBj YXBhYmlsaXR5IGluZm8gaW4KKyAqCisgKiBSZWFkIHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBn aXZlbiBMVFRQUiBQSFkuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fZHBfcmVhZF9sdHRwcl9waHlf Y2FwcyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LAorCQkJICAgICAgIGVudW0gZHJtX2RwX3BoeSBk cF9waHksCisJCQkgICAgICAgdTggY2Fwc1tEUF9MVFRQUl9QSFlfQ0FQX1NJWkVdKQoreworCWlu dCByZXQ7CisKKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwKKwkJCSAgICAgICBEUF9UUkFJ TklOR19BVVhfUkRfSU5URVJWQUxfUEhZX1JFUEVBVEVSKGRwX3BoeSksCisJCQkgICAgICAgY2Fw cywgRFBfTFRUUFJfUEhZX0NBUF9TSVpFKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsK KworCVdBUk5fT04ocmV0ICE9IERQX0xUVFBSX1BIWV9DQVBfU0laRSk7CisKKwlyZXR1cm4gMDsK K30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX3JlYWRfbHR0cHJfcGh5X2NhcHMpOworCitzdGF0aWMg dTggZHBfbHR0cHJfY29tbW9uX2NhcChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9DQVBf U0laRV0sIGludCByKQoreworCXJldHVybiBjYXBzW3IgLSBEUF9MVF9UVU5BQkxFX1BIWV9SRVBF QVRFUl9GSUVMRF9EQVRBX1NUUlVDVFVSRV9SRVZdOworfQorCisvKioKKyAqIGRybV9kcF9sdHRw cl9jb3VudCAtIGdldCB0aGUgbnVtYmVyIG9mIGRldGVjdGVkIExUVFBScworICogQGNhcHM6IExU VFBSIGNvbW1vbiBjYXBhYmlsaXRpZXMKKyAqCisgKiBHZXQgdGhlIG51bWJlciBvZiBkZXRlY3Rl ZCBMVFRQUnMgZnJvbSB0aGUgTFRUUFIgY29tbW9uIGNhcGFiaWxpdGllcyBpbmZvLgorICoKKyAq IFJldHVybnM6CisgKiAgIC1FUkFOR0UgaWYgbW9yZSB0aGFuIHN1cHBvcnRlZCBudW1iZXIgKDgp IG9mIExUVFBScyBhcmUgZGV0ZWN0ZWQKKyAqICAgLUVJTlZBTCBpZiB0aGUgRFBfUEhZX1JFUEVB VEVSX0NOVCByZWdpc3RlciBjb250YWlucyBhbiBpbnZhbGlkIHZhbHVlCisgKiAgIG90aGVyd2lz ZSB0aGUgbnVtYmVyIG9mIGRldGVjdGVkIExUVFBScworICovCitpbnQgZHJtX2RwX2x0dHByX2Nv dW50KGNvbnN0IHU4IGNhcHNbRFBfTFRUUFJfQ09NTU9OX0NBUF9TSVpFXSkKK3sKKwl1OCBjb3Vu dCA9IGRwX2x0dHByX2NvbW1vbl9jYXAoY2FwcywgRFBfUEhZX1JFUEVBVEVSX0NOVCk7CisKKwlz d2l0Y2ggKGh3ZWlnaHQ4KGNvdW50KSkgeworCWNhc2UgMDoKKwkJcmV0dXJuIDA7CisJY2FzZSAx OgorCQlyZXR1cm4gOCAtIGlsb2cyKGNvdW50KTsKKwljYXNlIDg6CisJCXJldHVybiAtRVJBTkdF OworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KK30KK0VYUE9SVF9TWU1CT0woZHJt X2RwX2x0dHByX2NvdW50KTsKKworLyoqCisgKiBkcm1fZHBfbHR0cHJfbWF4X2xpbmtfcmF0ZSAt IGdldCB0aGUgbWF4aW11bSBsaW5rIHJhdGUgc3VwcG9ydGVkIGJ5IGFsbCBMVFRQUnMKKyAqIEBj YXBzOiBMVFRQUiBjb21tb24gY2FwYWJpbGl0aWVzCisgKgorICogUmV0dXJucyB0aGUgbWF4aW11 bSBsaW5rIHJhdGUgc3VwcG9ydGVkIGJ5IGFsbCBkZXRlY3RlZCBMVFRQUnMuCisgKi8KK2ludCBk cm1fZHBfbHR0cHJfbWF4X2xpbmtfcmF0ZShjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9D QVBfU0laRV0pCit7CisJdTggcmF0ZSA9IGRwX2x0dHByX2NvbW1vbl9jYXAoY2FwcywgRFBfTUFY X0xJTktfUkFURV9QSFlfUkVQRUFURVIpOworCisJcmV0dXJuIGRybV9kcF9id19jb2RlX3RvX2xp bmtfcmF0ZShyYXRlKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2RwX2x0dHByX21heF9saW5rX3Jh dGUpOworCisvKioKKyAqIGRybV9kcF9sdHRwcl9tYXhfbGFuZV9jb3VudCAtIGdldCB0aGUgbWF4 aW11bSBsYW5lIGNvdW50IHN1cHBvcnRlZCBieSBhbGwgTFRUUFJzCisgKiBAY2FwczogTFRUUFIg Y29tbW9uIGNhcGFiaWxpdGllcworICoKKyAqIFJldHVybnMgdGhlIG1heGltdW0gbGFuZSBjb3Vu dCBzdXBwb3J0ZWQgYnkgYWxsIGRldGVjdGVkIExUVFBScy4KKyAqLworaW50IGRybV9kcF9sdHRw cl9tYXhfbGFuZV9jb3VudChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9DQVBfU0laRV0p Cit7CisJdTggbWF4X2xhbmVzID0gZHBfbHR0cHJfY29tbW9uX2NhcChjYXBzLCBEUF9NQVhfTEFO RV9DT1VOVF9QSFlfUkVQRUFURVIpOworCisJcmV0dXJuIG1heF9sYW5lcyAmIERQX01BWF9MQU5F X0NPVU5UX01BU0s7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9kcF9sdHRwcl9tYXhfbGFuZV9jb3Vu dCk7CisKKy8qKgorICogZHJtX2RwX2x0dHByX3ZvbHRhZ2Vfc3dpbmdfbGV2ZWxfM19zdXBwb3J0 ZWQgLSBjaGVjayBmb3IgTFRUUFIgdnN3aW5nMyBzdXBwb3J0CisgKiBAY2FwczogTFRUUFIgUEhZ IGNhcGFiaWxpdGllcworICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgQGNhcHMgZm9yIGFuIExU VFBSIFRYIFBIWSBpbmRpY2F0ZSBzdXBwb3J0IGZvcgorICogdm9sdGFnZSBzd2luZyBsZXZlbCAz LgorICovCitib29sCitkcm1fZHBfbHR0cHJfdm9sdGFnZV9zd2luZ19sZXZlbF8zX3N1cHBvcnRl ZChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0pCit7CisJdTggdHhjYXAgPSBk cF9sdHRwcl9waHlfY2FwKGNhcHMsIERQX1RSQU5TTUlUVEVSX0NBUEFCSUxJVFlfUEhZX1JFUEVB VEVSMSk7CisKKwlyZXR1cm4gdHhjYXAgJiBEUF9WT0xUQUdFX1NXSU5HX0xFVkVMXzNfU1VQUE9S VEVEOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfbHR0cHJfdm9sdGFnZV9zd2luZ19sZXZlbF8z X3N1cHBvcnRlZCk7CisKKy8qKgorICogZHJtX2RwX2x0dHByX3ByZV9lbXBoYXNpc19sZXZlbF8z X3N1cHBvcnRlZCAtIGNoZWNrIGZvciBMVFRQUiBwcmVlbXBoMyBzdXBwb3J0CisgKiBAY2Fwczog TFRUUFIgUEhZIGNhcGFiaWxpdGllcworICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgQGNhcHMg Zm9yIGFuIExUVFBSIFRYIFBIWSBpbmRpY2F0ZSBzdXBwb3J0IGZvcgorICogcHJlLWVtcGhhc2lz IGxldmVsIDMuCisgKi8KK2Jvb2wKK2RybV9kcF9sdHRwcl9wcmVfZW1waGFzaXNfbGV2ZWxfM19z dXBwb3J0ZWQoY29uc3QgdTggY2Fwc1tEUF9MVFRQUl9QSFlfQ0FQX1NJWkVdKQoreworCXU4IHR4 Y2FwID0gZHBfbHR0cHJfcGh5X2NhcChjYXBzLCBEUF9UUkFOU01JVFRFUl9DQVBBQklMSVRZX1BI WV9SRVBFQVRFUjEpOworCisJcmV0dXJuIHR4Y2FwICYgRFBfUFJFX0VNUEhBU0lTX0xFVkVMXzNf U1VQUE9SVEVEOworfQorRVhQT1JUX1NZTUJPTChkcm1fZHBfbHR0cHJfcHJlX2VtcGhhc2lzX2xl dmVsXzNfc3VwcG9ydGVkKTsKKwogLyoqCiAgKiBkcm1fZHBfZ2V0X3BoeV90ZXN0X3BhdHRlcm4o KSAtIGdldCB0aGUgcmVxdWVzdGVkIHBhdHRlcm4gZnJvbSB0aGUgc2luay4KICAqIEBhdXg6IERp c3BsYXlQb3J0IEFVWCBjaGFubmVsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHBfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKaW5kZXggZTE0NGI0YjlkNzlhLi40 MmI2YWIxNDkyMGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAorKysg Yi9pbmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKQEAgLTExMTgsMTUgKzExMTgsNTggQEAgc3Ry dWN0IGRybV9kZXZpY2U7CiAjZGVmaW5lIERQX01BWF9MQU5FX0NPVU5UX1BIWV9SRVBFQVRFUgkJ CSAgICAweGYwMDA0IC8qIDEuNGEgKi8KICNkZWZpbmUgRFBfUmVwZWF0ZXJfRkVDX0NBUEFCSUxJ VFkJCQkgICAgMHhmMDAwNCAvKiAxLjQgKi8KICNkZWZpbmUgRFBfUEhZX1JFUEVBVEVSX0VYVEVO REVEX1dBSVRfVElNRU9VVAkJICAgIDB4ZjAwMDUgLyogMS40YSAqLworCitlbnVtIGRybV9kcF9w aHkgeworCURQX1BIWV9EUFJYLAorCisJRFBfUEhZX0xUVFBSMSwKKwlEUF9QSFlfTFRUUFIyLAor CURQX1BIWV9MVFRQUjMsCisJRFBfUEhZX0xUVFBSNCwKKwlEUF9QSFlfTFRUUFI1LAorCURQX1BI WV9MVFRQUjYsCisJRFBfUEhZX0xUVFBSNywKKwlEUF9QSFlfTFRUUFI4LAorCisJRFBfTUFYX0xU VFBSX0NPVU5UID0gRFBfUEhZX0xUVFBSOCwKK307CisKKyNkZWZpbmUgRFBfUEhZX0xUVFBSKGkp CQkJCQkgICAgKERQX1BIWV9MVFRQUjEgKyAoaSkpCisKKyNkZWZpbmUgX19EUF9MVFRQUjFfQkFT RQkJCQkgICAgMHhmMDAxMCAvKiAxLjMgKi8KKyNkZWZpbmUgX19EUF9MVFRQUjJfQkFTRQkJCQkg ICAgMHhmMDA2MCAvKiAxLjMgKi8KKyNkZWZpbmUgRFBfTFRUUFJfQkFTRShkcF9waHkpIFwKKwko X19EUF9MVFRQUjFfQkFTRSArIChfX0RQX0xUVFBSMl9CQVNFIC0gX19EUF9MVFRQUjFfQkFTRSkg KiBcCisJCSgoZHBfcGh5KSAtIERQX1BIWV9MVFRQUjEpKQorCisjZGVmaW5lIERQX0xUVFBSX1JF RyhkcF9waHksIGx0dHByMV9yZWcpIFwKKwkoRFBfTFRUUFJfQkFTRShkcF9waHkpIC0gRFBfTFRU UFJfQkFTRShEUF9QSFlfTFRUUFIxKSArIChsdHRwcjFfcmVnKSkKKwogI2RlZmluZSBEUF9UUkFJ TklOR19QQVRURVJOX1NFVF9QSFlfUkVQRUFURVIxCQkgICAgMHhmMDAxMCAvKiAxLjMgKi8KKyNk ZWZpbmUgRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVRfUEhZX1JFUEVBVEVSKGRwX3BoeSkgXAorCURQ X0xUVFBSX1JFRyhkcF9waHksIERQX1RSQUlOSU5HX1BBVFRFUk5fU0VUX1BIWV9SRVBFQVRFUjEp CisKICNkZWZpbmUgRFBfVFJBSU5JTkdfTEFORTBfU0VUX1BIWV9SRVBFQVRFUjEJCSAgICAweGYw MDExIC8qIDEuMyAqLworI2RlZmluZSBEUF9UUkFJTklOR19MQU5FMF9TRVRfUEhZX1JFUEVBVEVS KGRwX3BoeSkgXAorCURQX0xUVFBSX1JFRyhkcF9waHksIERQX1RSQUlOSU5HX0xBTkUwX1NFVF9Q SFlfUkVQRUFURVIxKQorCiAjZGVmaW5lIERQX1RSQUlOSU5HX0xBTkUxX1NFVF9QSFlfUkVQRUFU RVIxCQkgICAgMHhmMDAxMiAvKiAxLjMgKi8KICNkZWZpbmUgRFBfVFJBSU5JTkdfTEFORTJfU0VU X1BIWV9SRVBFQVRFUjEJCSAgICAweGYwMDEzIC8qIDEuMyAqLwogI2RlZmluZSBEUF9UUkFJTklO R19MQU5FM19TRVRfUEhZX1JFUEVBVEVSMQkJICAgIDB4ZjAwMTQgLyogMS4zICovCiAjZGVmaW5l IERQX1RSQUlOSU5HX0FVWF9SRF9JTlRFUlZBTF9QSFlfUkVQRUFURVIxCSAgICAweGYwMDIwIC8q IDEuNGEgKi8KKyNkZWZpbmUgRFBfVFJBSU5JTkdfQVVYX1JEX0lOVEVSVkFMX1BIWV9SRVBFQVRF UihkcF9waHkpCVwKKwlEUF9MVFRQUl9SRUcoZHBfcGh5LCBEUF9UUkFJTklOR19BVVhfUkRfSU5U RVJWQUxfUEhZX1JFUEVBVEVSMSkKKwogI2RlZmluZSBEUF9UUkFOU01JVFRFUl9DQVBBQklMSVRZ X1BIWV9SRVBFQVRFUjEJCSAgICAweGYwMDIxIC8qIDEuNGEgKi8KKyMgZGVmaW5lIERQX1ZPTFRB R0VfU1dJTkdfTEVWRUxfM19TVVBQT1JURUQJCSAgICBCSVQoMCkKKyMgZGVmaW5lIERQX1BSRV9F TVBIQVNJU19MRVZFTF8zX1NVUFBPUlRFRAkJICAgIEJJVCgxKQorCiAjZGVmaW5lIERQX0xBTkUw XzFfU1RBVFVTX1BIWV9SRVBFQVRFUjEJCQkgICAgMHhmMDAzMCAvKiAxLjMgKi8KKyNkZWZpbmUg RFBfTEFORTBfMV9TVEFUVVNfUEhZX1JFUEVBVEVSKGRwX3BoeSkgXAorCURQX0xUVFBSX1JFRyhk cF9waHksIERQX0xBTkUwXzFfU1RBVFVTX1BIWV9SRVBFQVRFUjEpCisKICNkZWZpbmUgRFBfTEFO RTJfM19TVEFUVVNfUEhZX1JFUEVBVEVSMQkJCSAgICAweGYwMDMxIC8qIDEuMyAqLworCiAjZGVm aW5lIERQX0xBTkVfQUxJR05fU1RBVFVTX1VQREFURURfUEhZX1JFUEVBVEVSMQkgICAgMHhmMDAz MiAvKiAxLjMgKi8KICNkZWZpbmUgRFBfQURKVVNUX1JFUVVFU1RfTEFORTBfMV9QSFlfUkVQRUFU RVIxCQkgICAgMHhmMDAzMyAvKiAxLjMgKi8KICNkZWZpbmUgRFBfQURKVVNUX1JFUVVFU1RfTEFO RTJfM19QSFlfUkVQRUFURVIxCQkgICAgMHhmMDAzNCAvKiAxLjMgKi8KQEAgLTEyMzYsOSArMTI3 OSwxMyBAQCB1OCBkcm1fZHBfZ2V0X2FkanVzdF9yZXF1ZXN0X3Bvc3RfY3Vyc29yKGNvbnN0IHU4 IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWgogI2RlZmluZSBEUF9EU0NfUkVDRUlWRVJf Q0FQX1NJWkUgICAgICAgIDB4ZgogI2RlZmluZSBFRFBfUFNSX1JFQ0VJVkVSX0NBUF9TSVpFCTIK ICNkZWZpbmUgRURQX0RJU1BMQVlfQ1RMX0NBUF9TSVpFCTMKKyNkZWZpbmUgRFBfTFRUUFJfQ09N TU9OX0NBUF9TSVpFCTgKKyNkZWZpbmUgRFBfTFRUUFJfUEhZX0NBUF9TSVpFCQkzCiAKIHZvaWQg ZHJtX2RwX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkoY29uc3QgdTggZHBjZFtEUF9S RUNFSVZFUl9DQVBfU0laRV0pOwordm9pZCBkcm1fZHBfbHR0cHJfbGlua190cmFpbl9jbG9ja19y ZWNvdmVyeV9kZWxheSh2b2lkKTsKIHZvaWQgZHJtX2RwX2xpbmtfdHJhaW5fY2hhbm5lbF9lcV9k ZWxheShjb25zdCB1OCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpFXSk7Cit2b2lkIGRybV9kcF9s dHRwcl9saW5rX3RyYWluX2NoYW5uZWxfZXFfZGVsYXkoY29uc3QgdTggY2Fwc1tEUF9MVFRQUl9Q SFlfQ0FQX1NJWkVdKTsKIAogdTggZHJtX2RwX2xpbmtfcmF0ZV90b19id19jb2RlKGludCBsaW5r X3JhdGUpOwogaW50IGRybV9kcF9id19jb2RlX3RvX2xpbmtfcmF0ZSh1OCBsaW5rX2J3KTsKQEAg LTE2OTcsNiArMTc0NCwxMCBAQCBpbnQgZHJtX2RwX3JlYWRfZHBjZF9jYXBzKHN0cnVjdCBkcm1f ZHBfYXV4ICphdXgsCiBpbnQgZHJtX2RwX2RwY2RfcmVhZF9saW5rX3N0YXR1cyhzdHJ1Y3QgZHJt X2RwX2F1eCAqYXV4LAogCQkJCSB1OCBzdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV0pOwogCitp bnQgZHJtX2RwX2RwY2RfcmVhZF9waHlfbGlua19zdGF0dXMoc3RydWN0IGRybV9kcF9hdXggKmF1 eCwKKwkJCQkgICAgIGVudW0gZHJtX2RwX3BoeSBkcF9waHksCisJCQkJICAgICB1OCBsaW5rX3N0 YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSk7CisKIGJvb2wgZHJtX2RwX3NlbmRfcmVhbF9lZGlk X2NoZWNrc3VtKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsCiAJCQkJICAgIHU4IHJlYWxfZWRpZF9j aGVja3N1bSk7CiAKQEAgLTE3NDYsNiArMTc5NywxNyBAQCBib29sIGRybV9kcF9yZWFkX3Npbmtf Y291bnRfY2FwKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJY29uc3Qgc3Ry dWN0IGRybV9kcF9kZXNjICpkZXNjKTsKIGludCBkcm1fZHBfcmVhZF9zaW5rX2NvdW50KHN0cnVj dCBkcm1fZHBfYXV4ICphdXgpOwogCitpbnQgZHJtX2RwX3JlYWRfbHR0cHJfY29tbW9uX2NhcHMo c3RydWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQkgIHU4IGNhcHNbRFBfTFRUUFJfQ09NTU9OX0NB UF9TSVpFXSk7CitpbnQgZHJtX2RwX3JlYWRfbHR0cHJfcGh5X2NhcHMoc3RydWN0IGRybV9kcF9h dXggKmF1eCwKKwkJCSAgICAgICBlbnVtIGRybV9kcF9waHkgZHBfcGh5LAorCQkJICAgICAgIHU4 IGNhcHNbRFBfTFRUUFJfUEhZX0NBUF9TSVpFXSk7CitpbnQgZHJtX2RwX2x0dHByX2NvdW50KGNv bnN0IHU4IGNhcFtEUF9MVFRQUl9DT01NT05fQ0FQX1NJWkVdKTsKK2ludCBkcm1fZHBfbHR0cHJf bWF4X2xpbmtfcmF0ZShjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NPTU1PTl9DQVBfU0laRV0pOwor aW50IGRybV9kcF9sdHRwcl9tYXhfbGFuZV9jb3VudChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX0NP TU1PTl9DQVBfU0laRV0pOworYm9vbCBkcm1fZHBfbHR0cHJfdm9sdGFnZV9zd2luZ19sZXZlbF8z X3N1cHBvcnRlZChjb25zdCB1OCBjYXBzW0RQX0xUVFBSX1BIWV9DQVBfU0laRV0pOworYm9vbCBk cm1fZHBfbHR0cHJfcHJlX2VtcGhhc2lzX2xldmVsXzNfc3VwcG9ydGVkKGNvbnN0IHU4IGNhcHNb RFBfTFRUUFJfUEhZX0NBUF9TSVpFXSk7CisKIHZvaWQgZHJtX2RwX3JlbW90ZV9hdXhfaW5pdChz dHJ1Y3QgZHJtX2RwX2F1eCAqYXV4KTsKIHZvaWQgZHJtX2RwX2F1eF9pbml0KHN0cnVjdCBkcm1f ZHBfYXV4ICphdXgpOwogaW50IGRybV9kcF9hdXhfcmVnaXN0ZXIoc3RydWN0IGRybV9kcF9hdXgg KmF1eCk7Ci0tIAoyLjI1LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=