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=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,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 B8D8BC433B4 for ; Wed, 14 Apr 2021 15:52:27 +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 7AD4660238 for ; Wed, 14 Apr 2021 15:52:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7AD4660238 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 D7E546E958; Wed, 14 Apr 2021 15:52:23 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A7FA6E95A for ; Wed, 14 Apr 2021 15:52:22 +0000 (UTC) IronPort-SDR: xcrydc2LmEd7HgEAudOmVd9WjcW/ezyV207PGxuF3tbmbJPWjJ434z8kzvkgLQecElIkRivF39 RoArboqzvzDQ== X-IronPort-AV: E=McAfee;i="6200,9189,9954"; a="181791661" X-IronPort-AV: E=Sophos;i="5.82,222,1613462400"; d="scan'208";a="181791661" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2021 08:52:21 -0700 IronPort-SDR: NC5AgGCghYPjsKH3/KcqfLUnIS2Lop+YuYIwLczzKeymvks1R0Rv/gP5iq/xxnA1F+ux38dcR0 bOef8/Kk6q4A== X-IronPort-AV: E=Sophos;i="5.82,222,1613462400"; d="scan'208";a="399226582" Received: from ideak-desk.fi.intel.com ([10.237.68.141]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2021 08:52:18 -0700 From: Imre Deak To: intel-gfx@lists.freedesktop.org Date: Wed, 14 Apr 2021 18:52:02 +0300 Message-Id: <20210414155208.3161335-6-imre.deak@intel.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210414155208.3161335-1-imre.deak@intel.com> References: <20210414155208.3161335-1-imre.deak@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 05/11] drm/i915/xelpd: First stab at DPT support 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: Wilson Chris P , Auld Matthew , Bommu Krishnaiah Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFk ZCBzdXBwb3J0IGZvciBEUFQgKGRpc3BsYXkgcGFnZSB0YWJsZSkuIERQVCBpcyBhCnNsaWdodGx5 IHBlY3VsaWFyIHR3byBsZXZlbCBwYWdlIHRhYmxlIHNjaGVtZSB1c2VkIGZvcgp0aWxlZCBzY2Fu b3V0IGJ1ZmZlcnMgKGxpbmVhciB1c2VzIGRpcmVjdCBnZ3R0IG1hcHBpbmcKc3RpbGwpLiBUaGUg cGxhbmUgc3VyZmFjZSBhZGRyZXNzIHdpbGwgcG9pbnQgYXQgYSBwYWdlCmluIHRoZSBEUFQgd2hp Y2ggaG9sZHMgdGhlIFBURXMgZm9yIDUxMiBhY3R1YWwgcGFnZXMuClRodXMgd2UgcmVxdWlyZSAx LzUxMiBvZiB0aGUgZ2d0dHQgYWRkcmVzcyBzcGFjZQpjb21wYXJlZCB0byBhIGRpcmVjdCBnZ3R0 IG1hcHBpbmcuCgpXZSBjcmVhdGUgYSBuZXcgRFBUIGFkZHJlc3Mgc3BhY2UgZm9yIGVhY2ggZnJh bWVidWZmZXIgYW5kCnRyYWNrIHR3byB2bWFzIChvbmUgZm9yIHRoZSBEUFQsIGFub3RoZXIgZm9y IHRoZSBnZ3R0KS4KClRPRE86Ci0gSXMgdGhlIGk5MTVfYWRkcmVzc19zcGFjZSBhcHByb2FhY2gg c2FuZT8KLSBNYXliZSBkb24ndCBtYXAgdGhlIHdob2xlIERQVCB0byB3cml0ZSB0aGUgUFRFcz8K LSBEZWFsIHdpdGggcmVtYXBwaW5nL3JvdGF0aW9uPyBOZWVkIHRvIGNyZWF0ZSBhCiAgc2VwYXJh dGUgRFBUIGZvciBlYWNoIHJlbWFwcGVkL3JvdGF0ZWQgcGxhbmUgSQogIGd1ZXNzLiBPciBlbHNl IHdlJ2QgbmVlZCB0byBtYWtlIHRoZSBwZXItZmIgRFBUCiAgbGFyZ2UgZW5vdWdoIHRvIHN1cHBv cnQgcG90ZW50aWFsbHkgc2V2ZXJhbAogIHJlbWFwcGVkL3JvdGF0ZWQgdm1hcy4gSG93IGxhcmdl IHNob3VsZCB0aGF0IGJlPwoKUmV2aWV3ZWQtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEJvbW11IEtyaXNobmFpYWggPGtyaXNobmFp YWguYm9tbXVAaW50ZWwuY29tPgpDYzogV2lsc29uIENocmlzIFAgPENocmlzLlAuV2lsc29uQGlu dGVsLmNvbT4KQ2M6IFRhbmcgQ1EgPGNxLnRhbmdAaW50ZWwuY29tPgpDYzogQXVsZCBNYXR0aGV3 IDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogV2lsc29uIENocmlzIFAgPENo cmlzLlAuV2lsc29uQGludGVsLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfYXRvbWljX3BsYW5lLmMgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jICB8IDM0NyArKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oICB8ICAgMSArCiAuLi4vZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgMTUgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgICAgICB8ICAgNiArLQogLi4uL2RybS9pOTE1L2Rpc3Bs YXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5jICAgIHwgIDE5ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9nZW44X3BwZ3R0LmggICAgICAgICAgfCAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZ2d0dC5jICAgICAgICAgIHwgICA3ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9ndHQuaCAgICAgICAgICAgfCAgIDUgKwogOSBmaWxlcyBjaGFuZ2VkLCAzODcgaW5z ZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKaW5kZXggYzNmMjk2MmFhMWViYy4uZmM2OGM2 ZmZkOWQ3MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dG9taWNfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0 b21pY19wbGFuZS5jCkBAIC0xMDIsNyArMTAyLDggQEAgaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0 YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCiAJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFu ZV9kdXBsaWNhdGVfc3RhdGUocGxhbmUsICZpbnRlbF9zdGF0ZS0+dWFwaSk7CiAKLQlpbnRlbF9z dGF0ZS0+dm1hID0gTlVMTDsKKwlpbnRlbF9zdGF0ZS0+Z2d0dF92bWEgPSBOVUxMOworCWludGVs X3N0YXRlLT5kcHRfdm1hID0gTlVMTDsKIAlpbnRlbF9zdGF0ZS0+ZmxhZ3MgPSAwOwogCiAJLyog YWRkIHJlZmVyZW5jZSB0byBmYiAqLwpAQCAtMTI1LDcgKzEyNiw5IEBAIGludGVsX3BsYW5lX2Rl c3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZSk7Ci0JZHJtX1dBUk5fT04ocGxhbmUtPmRl diwgcGxhbmVfc3RhdGUtPnZtYSk7CisKKwlkcm1fV0FSTl9PTihwbGFuZS0+ZGV2LCBwbGFuZV9z dGF0ZS0+Z2d0dF92bWEpOworCWRybV9XQVJOX09OKHBsYW5lLT5kZXYsIHBsYW5lX3N0YXRlLT5k cHRfdm1hKTsKIAogCV9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZSgmcGxh bmVfc3RhdGUtPnVhcGkpOwogCWlmIChwbGFuZV9zdGF0ZS0+aHcuZmIpCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGRkOTJjOTdlYjhjYTAuLjAw NjIxY2NlYTJjNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX29iamVjdC5o IgogCiAjaW5jbHVkZSAiZ3QvaW50ZWxfcnBzLmgiCisjaW5jbHVkZSAiZ3QvZ2VuOF9wcGd0dC5o IgogCiAjaW5jbHVkZSAiZzR4X2RwLmgiCiAjaW5jbHVkZSAiZzR4X2hkbWkuaCIKQEAgLTEyMiw2 ICsxMjMsMTcxIEBAIHN0YXRpYyB2b2lkIGlsa19wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3Nl dHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSBzdHJ1Y3QgZHJtX21v ZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CiAKK3N0cnVjdCBpOTE1X2RwdCB7CisJc3RydWN0IGk5 MTVfYWRkcmVzc19zcGFjZSB2bTsKKworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdm9pZCBfX2lvbWVtICppb21lbTsKK307CisKKyNk ZWZpbmUgaTkxNV9pc19kcHQodm0pICgodm0pLT5pc19kcHQpCisKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IGk5MTVfZHB0ICoKK2k5MTVfdm1fdG9fZHB0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtKQoreworCUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaTkxNV9kcHQsIHZtKSk7CisJ R0VNX0JVR19PTighaTkxNV9pc19kcHQodm0pKTsKKwlyZXR1cm4gY29udGFpbmVyX29mKHZtLCBz dHJ1Y3QgaTkxNV9kcHQsIHZtKTsKK30KKworI2RlZmluZSBkcHRfdG90YWxfZW50cmllcyhkcHQp ICgoZHB0KS0+dm0udG90YWwgPj4gUEFHRV9TSElGVCkKKworc3RhdGljIHZvaWQgZ2VuOF9zZXRf cHRlKHZvaWQgX19pb21lbSAqYWRkciwgZ2VuOF9wdGVfdCBwdGUpCit7CisJd3JpdGVxKHB0ZSwg YWRkcik7Cit9CisKK3N0YXRpYyB2b2lkIGRwdF9pbnNlcnRfcGFnZShzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwKKwkJCSAgICBkbWFfYWRkcl90IGFkZHIsCisJCQkgICAgdTY0IG9mZnNl dCwKKwkJCSAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCisJCQkgICAgdTMyIGZsYWdz KQoreworCXN0cnVjdCBpOTE1X2RwdCAqZHB0ID0gaTkxNV92bV90b19kcHQodm0pOworCWdlbjhf cHRlX3QgX19pb21lbSAqYmFzZSA9IGRwdC0+aW9tZW07CisKKwlnZW44X3NldF9wdGUoYmFzZSAr IG9mZnNldCAvIEk5MTVfR1RUX1BBR0VfU0laRSwKKwkJICAgICB2bS0+cHRlX2VuY29kZShhZGRy LCBsZXZlbCwgZmxhZ3MpKTsKK30KKworc3RhdGljIHZvaWQgZHB0X2luc2VydF9lbnRyaWVzKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAorCQkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAq dm1hLAorCQkJICAgICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKKwkJCSAgICAgICB1 MzIgZmxhZ3MpCit7CisJc3RydWN0IGk5MTVfZHB0ICpkcHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7 CisJZ2VuOF9wdGVfdCBfX2lvbWVtICpiYXNlID0gZHB0LT5pb21lbTsKKwljb25zdCBnZW44X3B0 ZV90IHB0ZV9lbmNvZGUgPSB2bS0+cHRlX2VuY29kZSgwLCBsZXZlbCwgZmxhZ3MpOworCXN0cnVj dCBzZ3RfaXRlciBzZ3RfaXRlcjsKKwlkbWFfYWRkcl90IGFkZHI7CisJaW50IGk7CisKKwkvKgor CSAqIE5vdGUgdGhhdCB3ZSBpZ25vcmUgUFRFX1JFQURfT05MWSBoZXJlLiBUaGUgY2FsbGVyIG11 c3QgYmUgY2FyZWZ1bAorCSAqIG5vdCB0byBhbGxvdyB0aGUgdXNlciB0byBvdmVycmlkZSBhY2Nl c3MgdG8gYSByZWFkIG9ubHkgcGFnZS4KKwkgKi8KKworCWkgPSB2bWEtPm5vZGUuc3RhcnQgLyBJ OTE1X0dUVF9QQUdFX1NJWkU7CisJZm9yX2VhY2hfc2d0X2RhZGRyKGFkZHIsIHNndF9pdGVyLCB2 bWEtPnBhZ2VzKQorCQlnZW44X3NldF9wdGUoJmJhc2VbaSsrXSwgcHRlX2VuY29kZSB8IGFkZHIp OworfQorCitzdGF0aWMgdm9pZCBkcHRfY2xlYXJfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCisJCQkgICAgdTY0IHN0YXJ0LCB1NjQgbGVuZ3RoKQoreworfQorCitzdGF0aWMg dm9pZCBkcHRfYmluZF92bWEoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCisJCQkgc3Ry dWN0IGk5MTVfdm1fcHRfc3Rhc2ggKnN0YXNoLAorCQkJIHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAor CQkJIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKKwkJCSB1MzIgZmxhZ3MpCit7 CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOworCXUzMiBwdGVf ZmxhZ3M7CisKKwkvKiBBcHBsaWNhYmxlIHRvIFZMViAoZ2VuOCsgZG8gbm90IHN1cHBvcnQgUk8g aW4gdGhlIEdHVFQpICovCisJcHRlX2ZsYWdzID0gMDsKKwlpZiAodm1hLT52bS0+aGFzX3JlYWRf b25seSAmJiBpOTE1X2dlbV9vYmplY3RfaXNfcmVhZG9ubHkob2JqKSkKKwkJcHRlX2ZsYWdzIHw9 IFBURV9SRUFEX09OTFk7CisKKwl2bWEtPnZtLT5pbnNlcnRfZW50cmllcyh2bWEtPnZtLCB2bWEs IGNhY2hlX2xldmVsLCBwdGVfZmxhZ3MpOworCisJdm1hLT5wYWdlX3NpemVzLmd0dCA9IEk5MTVf R1RUX1BBR0VfU0laRTsKKworCS8qCisJICogV2l0aG91dCBhbGlhc2luZyBQUEdUVCB0aGVyZSdz IG5vIGRpZmZlcmVuY2UgYmV0d2VlbgorCSAqIEdMT0JBTC9MT0NBTF9CSU5ELCBpdCdzIGFsbCB0 aGUgc2FtZSBwdGVzLiBIZW5jZSB1bmNvbmRpdGlvbmFsbHkKKwkgKiB1cGdyYWRlIHRvIGJvdGgg Ym91bmQgaWYgd2UgYmluZCBlaXRoZXIgdG8gYXZvaWQgZG91YmxlLWJpbmRpbmcuCisJICovCisJ YXRvbWljX29yKEk5MTVfVk1BX0dMT0JBTF9CSU5EIHwgSTkxNV9WTUFfTE9DQUxfQklORCwgJnZt YS0+ZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBkcHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwgc3RydWN0IGk5MTVfdm1hICp2bWEpCit7CisJdm0tPmNsZWFyX3Jh bmdlKHZtLCB2bWEtPm5vZGUuc3RhcnQsIHZtYS0+c2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRw dF9jbGVhbnVwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQoreworCXN0cnVjdCBpOTE1 X2RwdCAqZHB0ID0gaTkxNV92bV90b19kcHQodm0pOworCisJaTkxNV9nZW1fb2JqZWN0X3B1dChk cHQtPm9iaik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICoKK2ludGVs X2RwdF9jcmVhdGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9iai0+ZGV2KTsKKwlzaXplX3Qgc2l6ZSA9IERJ Vl9ST1VORF9VUF9VTEwob2JqLT5zaXplLCA1MTIpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpkcHRfb2JqOworCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOworCXN0cnVjdCBp OTE1X2RwdCAqZHB0OworCWludCByZXQ7CisKKwlzaXplID0gcm91bmRfdXAoc2l6ZSwgNDA5Nik7 CisKKwlkcHRfb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oaTkxNSwgc2l6ZSk7 CisJaWYgKElTX0VSUihkcHRfb2JqKSkKKwkJcmV0dXJuIEVSUl9DQVNUKGRwdF9vYmopOworCisJ cmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChkcHRfb2JqLCBJOTE1X0NBQ0hF X05PTkUpOworCWlmIChyZXQpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChkcHRfb2JqKTsKKwkJ cmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisKKwlkcHQgPSBremFsbG9jKHNpemVvZigqZHB0KSwg R0ZQX0tFUk5FTCk7CisJaWYgKCFkcHQpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChkcHRfb2Jq KTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJfQorCisJdm0gPSAmZHB0LT52bTsKKwor CXZtLT5ndCA9ICZpOTE1LT5ndDsKKwl2bS0+aTkxNSA9IGk5MTU7CisJdm0tPmRtYSA9ICZpOTE1 LT5kcm0ucGRldi0+ZGV2OworCXZtLT50b3RhbCA9IChzaXplIC8gc2l6ZW9mKGdlbjhfcHRlX3Qp KSAqIEk5MTVfR1RUX1BBR0VfU0laRTsKKwl2bS0+aXNfZHB0ID0gdHJ1ZTsKKworCWk5MTVfYWRk cmVzc19zcGFjZV9pbml0KHZtLCBWTV9DTEFTU19EUFQpOworCisJdm0tPmluc2VydF9wYWdlID0g ZHB0X2luc2VydF9wYWdlOworCXZtLT5jbGVhcl9yYW5nZSA9IGRwdF9jbGVhcl9yYW5nZTsKKwl2 bS0+aW5zZXJ0X2VudHJpZXMgPSBkcHRfaW5zZXJ0X2VudHJpZXM7CisJdm0tPmNsZWFudXAgPSBk cHRfY2xlYW51cDsKKworCXZtLT52bWFfb3BzLmJpbmRfdm1hICAgID0gZHB0X2JpbmRfdm1hOwor CXZtLT52bWFfb3BzLnVuYmluZF92bWEgID0gZHB0X3VuYmluZF92bWE7CisJdm0tPnZtYV9vcHMu c2V0X3BhZ2VzICAgPSBnZ3R0X3NldF9wYWdlczsKKwl2bS0+dm1hX29wcy5jbGVhcl9wYWdlcyA9 IGNsZWFyX3BhZ2VzOworCisJdm0tPnB0ZV9lbmNvZGUgPSBnZW44X2dndHRfcHRlX2VuY29kZTsK KworCWRwdC0+b2JqID0gZHB0X29iajsKKworCXJldHVybiAmZHB0LT52bTsKK30KKworc3RhdGlj IHZvaWQgaW50ZWxfZHB0X2Rlc3Ryb3koc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCit7 CisJc3RydWN0IGk5MTVfZHB0ICpkcHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7CisKKwlpOTE1X3Zt X2Nsb3NlKCZkcHQtPnZtKTsKK30KKwogLyogcmV0dXJucyBIUExMIGZyZXF1ZW5jeSBpbiBrSHog Ki8KIGludCB2bHZfZ2V0X2hwbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKQEAgLTk3Miw2ICsxMTM4LDkgQEAgdW5zaWduZWQgaW50IGludGVsX3N1cmZfYWxpZ25t ZW50KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZmItPmRldik7CiAKKwlpZiAoaW50ZWxfZmJf dXNlc19kcHQoZmIpKQorCQlyZXR1cm4gNTEyICogNDA5NjsKKwogCS8qIEFVWF9ESVNUIG5lZWRz IG9ubHkgNEsgYWxpZ25tZW50ICovCiAJaWYgKChESVNQTEFZX1ZFUihkZXZfcHJpdikgPCAxMiAm JiBpc19hdXhfcGxhbmUoZmIsIGNvbG9yX3BsYW5lKSkgfHwKIAkgICAgaXNfY2NzX3BsYW5lKGZi LCBjb2xvcl9wbGFuZSkpCkBAIC0xMDE2LDYgKzExODUsNjIgQEAgc3RhdGljIGJvb2wgaW50ZWxf cGxhbmVfdXNlc19mZW5jZShjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKQogCQkgcGxhbmVfc3RhdGUtPnZpZXcuZ3R0LnR5cGUgPT0gSTkxNV9HR1RUX1ZJRVdfTk9S TUFMKTsKIH0KIAorc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqCitpbnRlbF9waW5fZmJfb2JqX2Rw dChzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9n Z3R0X3ZpZXcgKnZpZXcsCisJCSAgICAgYm9vbCB1c2VzX2ZlbmNlLAorCQkgICAgIHVuc2lnbmVk IGxvbmcgKm91dF9mbGFncywKKwkJICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkK K3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmItPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJ dTMyIGFsaWdubWVudDsKKwlpbnQgcmV0OworCisJaWYgKFdBUk5fT04oIWk5MTVfZ2VtX29iamVj dF9pc19mcmFtZWJ1ZmZlcihvYmopKSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CisKKwlh bGlnbm1lbnQgPSA0MDk2ICogNTEyOworCisJYXRvbWljX2luYygmZGV2X3ByaXYtPmdwdV9lcnJv ci5wZW5kaW5nX2ZiX3Bpbik7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2xl dmVsKG9iaiwgSTkxNV9DQUNIRV9OT05FKTsKKwlpZiAocmV0KSB7CisJCXZtYSA9IEVSUl9QVFIo cmV0KTsKKwkJZ290byBlcnI7CisJfQorCisJdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uob2JqLCB2 bSwgdmlldyk7CisJaWYgKElTX0VSUih2bWEpKQorCQlnb3RvIGVycjsKKworCWlmIChpOTE1X3Zt YV9taXNwbGFjZWQodm1hLCAwLCBhbGlnbm1lbnQsIDApKSB7CisJCXJldCA9IGk5MTVfdm1hX3Vu YmluZCh2bWEpOworCQlpZiAocmV0KSB7CisJCQl2bWEgPSBFUlJfUFRSKHJldCk7CisJCQlnb3Rv IGVycjsKKwkJfQorCX0KKworCXJldCA9IGk5MTVfdm1hX3Bpbih2bWEsIDAsIGFsaWdubWVudCwg UElOX0dMT0JBTCk7CisJaWYgKHJldCkgeworCQl2bWEgPSBFUlJfUFRSKHJldCk7CisJCWdvdG8g ZXJyOworCX0KKworCXZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBtYXhfdCh1NjQsIHZtYS0+ZGlz cGxheV9hbGlnbm1lbnQsIGFsaWdubWVudCk7CisKKwlpOTE1X2dlbV9vYmplY3RfZmx1c2hfaWZf ZGlzcGxheShvYmopOworCisJaTkxNV92bWFfZ2V0KHZtYSk7CitlcnI6CisJYXRvbWljX2RlYygm ZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bpbik7CisKKwlyZXR1cm4gdm1hOworfQor CiBzdHJ1Y3QgaTkxNV92bWEgKgogaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkgICBib29sIHBoeXNfY3Vyc29yLApAQCAtMTYxNiw2ICsx ODQxLDQ5IEBAIHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBjcnRj LT5waXBlKTsKIH0KIAorc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqaW50ZWxfZHB0X3BpbihzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSA9IHZtLT5pOTE1OworCXN0cnVjdCBpOTE1X2RwdCAqZHB0ID0gaTkxNV92bV90b19kcHQo dm0pOworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwor CXZvaWQgX19pb21lbSAqaW9tZW07CisKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQo Jmk5MTUtPnJ1bnRpbWVfcG0pOworCWF0b21pY19pbmMoJmk5MTUtPmdwdV9lcnJvci5wZW5kaW5n X2ZiX3Bpbik7CisKKwl2bWEgPSBpOTE1X2dlbV9vYmplY3RfZ2d0dF9waW4oZHB0LT5vYmosIE5V TEwsIDAsIDQwOTYsCisJCQkJICAgICAgIEhBU19MTUVNKGk5MTUpID8gMCA6IFBJTl9NQVBQQUJM RSk7CisJaWYgKElTX0VSUih2bWEpKQorCQlnb3RvIGVycjsKKworCWlvbWVtID0gaTkxNV92bWFf cGluX2lvbWFwKHZtYSk7CisJaTkxNV92bWFfdW5waW4odm1hKTsKKwlpZiAoSVNfRVJSKGlvbWVt KSkgeworCQl2bWEgPSBpb21lbTsKKwkJZ290byBlcnI7CisJfQorCisJZHB0LT52bWEgPSB2bWE7 CisJZHB0LT5pb21lbSA9IGlvbWVtOworCisJaTkxNV92bWFfZ2V0KHZtYSk7CisKK2VycjoKKwlh dG9taWNfZGVjKCZpOTE1LT5ncHVfZXJyb3IucGVuZGluZ19mYl9waW4pOworCWludGVsX3J1bnRp bWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKKworCXJldHVybiB2bWE7Cit9 CisKK3N0YXRpYyB2b2lkIGludGVsX2RwdF91bnBpbihzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSkKK3sKKwlzdHJ1Y3QgaTkxNV9kcHQgKmRwdCA9IGk5MTVfdm1fdG9fZHB0KHZtKTsKKwor CWk5MTVfdm1hX3VucGluX2lvbWFwKGRwdC0+dm1hKTsKKwlpOTE1X3ZtYV9wdXQoZHB0LT52bWEp OworfQorCiBzdGF0aWMgdm9pZAogaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCSAgICAgc3RydWN0IGludGVsX2luaXRpYWxfcGxh bmVfY29uZmlnICpwbGFuZV9jb25maWcpCkBAIC0xNjYxLDEyICsxOTI5LDEyIEBAIGludGVsX2Zp bmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQlj b250aW51ZTsKIAogCQlzdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGMtPnByaW1hcnktPnN0 YXRlKTsKLQkJaWYgKCFzdGF0ZS0+dm1hKQorCQlpZiAoIXN0YXRlLT5nZ3R0X3ZtYSkKIAkJCWNv bnRpbnVlOwogCiAJCWlmIChpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChzdGF0ZSkgPT0gcGxhbmVf Y29uZmlnLT5iYXNlKSB7CiAJCQlmYiA9IHN0YXRlLT5ody5mYjsKLQkJCXZtYSA9IHN0YXRlLT52 bWE7CisJCQl2bWEgPSBzdGF0ZS0+Z2d0dF92bWE7CiAJCQlnb3RvIHZhbGlkX2ZiOwogCQl9CiAJ fQpAQCAtMTY5Myw3ICsxOTYxLDcgQEAgaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCSAgICZpbnRlbF9zdGF0ZS0+dmlldyk7CiAK IAlfX2k5MTVfdm1hX3Bpbih2bWEpOwotCWludGVsX3N0YXRlLT52bWEgPSBpOTE1X3ZtYV9nZXQo dm1hKTsKKwlpbnRlbF9zdGF0ZS0+Z2d0dF92bWEgPSBpOTE1X3ZtYV9nZXQodm1hKTsKIAlpZiAo aW50ZWxfcGxhbmVfdXNlc19mZW5jZShpbnRlbF9zdGF0ZSkgJiYgaTkxNV92bWFfcGluX2ZlbmNl KHZtYSkgPT0gMCkKIAkJaWYgKHZtYS0+ZmVuY2UpCiAJCQlpbnRlbF9zdGF0ZS0+ZmxhZ3MgfD0g UExBTkVfSEFTX0ZFTkNFOwpAQCAtMTA1NDgsMjUgKzEwODE2LDYwIEBAIGludCBpbnRlbF9wbGFu ZV9waW5fZmIoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIAkJcGxhbmUt PmlkID09IFBMQU5FX0NVUlNPUiAmJgogCQlJTlRFTF9JTkZPKGRldl9wcml2KS0+ZGlzcGxheS5j dXJzb3JfbmVlZHNfcGh5c2ljYWw7CiAKLQl2bWEgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29i aihmYiwgcGh5c19jdXJzb3IsCi0JCQkJCSAmcGxhbmVfc3RhdGUtPnZpZXcuZ3R0LAotCQkJCQkg aW50ZWxfcGxhbmVfdXNlc19mZW5jZShwbGFuZV9zdGF0ZSksCi0JCQkJCSAmcGxhbmVfc3RhdGUt PmZsYWdzKTsKLQlpZiAoSVNfRVJSKHZtYSkpCi0JCXJldHVybiBQVFJfRVJSKHZtYSk7Ci0KLQlw bGFuZV9zdGF0ZS0+dm1hID0gdm1hOworCWlmICghaW50ZWxfZmJfdXNlc19kcHQoZmIpKSB7CisJ CXZtYSA9IGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGZiLCBwaHlzX2N1cnNvciwKKwkJCQkJ CSAmcGxhbmVfc3RhdGUtPnZpZXcuZ3R0LAorCQkJCQkJIGludGVsX3BsYW5lX3VzZXNfZmVuY2Uo cGxhbmVfc3RhdGUpLAorCQkJCQkJICZwbGFuZV9zdGF0ZS0+ZmxhZ3MpOworCQlpZiAoSVNfRVJS KHZtYSkpCisJCQlyZXR1cm4gUFRSX0VSUih2bWEpOworCisJCXBsYW5lX3N0YXRlLT5nZ3R0X3Zt YSA9IHZtYTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2Zi ID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOworCisJCXZtYSA9IGludGVsX2RwdF9waW4oaW50 ZWxfZmItPmRwdF92bSk7CisJCWlmIChJU19FUlIodm1hKSkKKwkJCXJldHVybiBQVFJfRVJSKHZt YSk7CisKKwkJcGxhbmVfc3RhdGUtPmdndHRfdm1hID0gdm1hOworCisJCXZtYSA9IGludGVsX3Bp bl9mYl9vYmpfZHB0KGZiLCAmcGxhbmVfc3RhdGUtPnZpZXcuZ3R0LCBmYWxzZSwKKwkJCQkJICAg JnBsYW5lX3N0YXRlLT5mbGFncywgaW50ZWxfZmItPmRwdF92bSk7CisJCWlmIChJU19FUlIodm1h KSkgeworCQkJaW50ZWxfZHB0X3VucGluKGludGVsX2ZiLT5kcHRfdm0pOworCQkJcGxhbmVfc3Rh dGUtPmdndHRfdm1hID0gTlVMTDsKKwkJCXJldHVybiBQVFJfRVJSKHZtYSk7CisJCX0KKworCQlw bGFuZV9zdGF0ZS0+ZHB0X3ZtYSA9IHZtYTsKKworCQlXQVJOX09OKHBsYW5lX3N0YXRlLT5nZ3R0 X3ZtYSA9PSBwbGFuZV9zdGF0ZS0+ZHB0X3ZtYSk7CisJfQogCiAJcmV0dXJuIDA7CiB9CiAKIHZv aWQgaW50ZWxfcGxhbmVfdW5waW5fZmIoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxh bmVfc3RhdGUpCiB7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBvbGRfcGxhbmVfc3Rh dGUtPmh3LmZiOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCi0Jdm1hID0gZmV0Y2hfYW5kX3pl cm8oJm9sZF9wbGFuZV9zdGF0ZS0+dm1hKTsKLQlpZiAodm1hKQotCQlpbnRlbF91bnBpbl9mYl92 bWEodm1hLCBvbGRfcGxhbmVfc3RhdGUtPmZsYWdzKTsKKwlpZiAoIWludGVsX2ZiX3VzZXNfZHB0 KGZiKSkgeworCQl2bWEgPSBmZXRjaF9hbmRfemVybygmb2xkX3BsYW5lX3N0YXRlLT5nZ3R0X3Zt YSk7CisJCWlmICh2bWEpCisJCQlpbnRlbF91bnBpbl9mYl92bWEodm1hLCBvbGRfcGxhbmVfc3Rh dGUtPmZsYWdzKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVs X2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOworCisJCXZtYSA9IGZldGNoX2FuZF96ZXJv KCZvbGRfcGxhbmVfc3RhdGUtPmRwdF92bWEpOworCQlpZiAodm1hKQorCQkJaW50ZWxfdW5waW5f ZmJfdm1hKHZtYSwgb2xkX3BsYW5lX3N0YXRlLT5mbGFncyk7CisKKwkJdm1hID0gZmV0Y2hfYW5k X3plcm8oJm9sZF9wbGFuZV9zdGF0ZS0+Z2d0dF92bWEpOworCQlpZiAodm1hKQorCQkJaW50ZWxf ZHB0X3VucGluKGludGVsX2ZiLT5kcHRfdm0pOworCX0KIH0KIAogLyoqCkBAIC0xMTA4OSw2ICsx MTM5MiwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91c2VyX2ZyYW1lYnVmZmVyX2Rlc3Ryb3koc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCiAJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRl bF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKTsKIAogCWRybV9mcmFtZWJ1ZmZlcl9jbGVh bnVwKGZiKTsKKworCWlmIChpbnRlbF9mYl91c2VzX2RwdChmYikpCisJCWludGVsX2RwdF9kZXN0 cm95KGludGVsX2ZiLT5kcHRfdm0pOworCiAJaW50ZWxfZnJvbnRidWZmZXJfcHV0KGludGVsX2Zi LT5mcm9udGJ1ZmZlcik7CiAKIAlrZnJlZShpbnRlbF9mYik7CkBAIC0xMTI1OSw2ICsxMTU2Niwx OCBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGludGVsX2ZyYW1l YnVmZmVyICppbnRlbF9mYiwKIAlpZiAocmV0KQogCQlnb3RvIGVycjsKIAorCWlmIChpbnRlbF9m Yl91c2VzX2RwdChmYikpIHsKKwkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CisKKwkJ dm0gPSBpbnRlbF9kcHRfY3JlYXRlKCZvYmotPmJhc2UpOworCQlpZiAoSVNfRVJSKHZtKSkgewor CQkJcmV0ID0gUFRSX0VSUih2bSk7CisJCQlnb3RvIGVycjsKKwkJfQorCisJCWludGVsX2ZiLT5k cHRfdm0gPSB2bTsKKwl9CisKIAlyZXQgPSBkcm1fZnJhbWVidWZmZXJfaW5pdCgmZGV2X3ByaXYt PmRybSwgZmIsICZpbnRlbF9mYl9mdW5jcyk7CiAJaWYgKHJldCkgewogCQlkcm1fZXJyKCZkZXZf cHJpdi0+ZHJtLCAiZnJhbWVidWZmZXIgaW5pdCBmYWlsZWQgJWRcbiIsIHJldCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCmluZGV4IDEwNTI5NGVjMmRj YzkuLmE3MTdkNTJlYmEwYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5oCkBAIC00NCw2ICs0NCw3IEBAIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyOwog c3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4Owogc3RydWN0IGRybV9wbGFuZTsKIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGU7CitzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlOwogc3RydWN0IGk5 MTVfZ2d0dF92aWV3Owogc3RydWN0IGludGVsX2F0b21pY19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9j cnRjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlf dHlwZXMuaAppbmRleCBlMmU3MDdjNGRmZjU2Li4zYzczNzM3Zjg4ZGE0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaApAQCAtMTI5 LDYgKzEyOSw4IEBAIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciB7CiAJc3RydWN0IGludGVsX2Zi X3ZpZXcgbm9ybWFsX3ZpZXc7CiAJc3RydWN0IGludGVsX2ZiX3ZpZXcgcm90YXRlZF92aWV3Owog CXN0cnVjdCBpbnRlbF9mYl92aWV3IHJlbWFwcGVkX3ZpZXc7CisKKwlzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICpkcHRfdm07CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZmJkZXYgewpAQCAtNjExLDcg KzYxMyw4IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CiAJCWVudW0gZHJtX3NjYWxpbmdf ZmlsdGVyIHNjYWxpbmdfZmlsdGVyOwogCX0gaHc7CiAKLQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsK KwlzdHJ1Y3QgaTkxNV92bWEgKmdndHRfdm1hOworCXN0cnVjdCBpOTE1X3ZtYSAqZHB0X3ZtYTsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwogI2RlZmluZSBQTEFORV9IQVNfRkVOQ0UgQklUKDApCiAK QEAgLTE5NzMsOSArMTk3NiwxNSBAQCBpbnRlbF93YWl0X2Zvcl92YmxhbmtfaWZfYWN0aXZlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcAogCQlpbnRlbF93 YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBp bnRlbF9wbGFuZV9nZ3R0X29mZnNldChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0 YXRlKQorc3RhdGljIGlubGluZSBib29sIGludGVsX2ZiX3VzZXNfZHB0KGNvbnN0IHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiKQogewotCXJldHVybiBpOTE1X2dndHRfb2Zmc2V0KHN0YXRlLT52 bWEpOworCXJldHVybiBmYiAmJiBESVNQTEFZX1ZFUih0b19pOTE1KGZiLT5kZXYpKSA+PSAxMyAm JgorCQlmYi0+bW9kaWZpZXIgIT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSOworfQorCitzdGF0aWMg aW5saW5lIHUzMiBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQoreworCXJldHVybiBpOTE1X2dndHRfb2Zmc2V0KHBsYW5l X3N0YXRlLT5nZ3R0X3ZtYSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2Zyb250 YnVmZmVyICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCmluZGV4IDkx ZGFkODAwNGMzNDAuLjg1YTBlNjQ2ODg0ZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9mYmMuYwpAQCAtNzM2LDExICs3MzYsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJj X3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljYWNoZS0+ZmVu Y2VfeV9vZmZzZXQgPSBpbnRlbF9wbGFuZV9mZW5jZV95X29mZnNldChwbGFuZV9zdGF0ZSk7CiAK IAlkcm1fV0FSTl9PTigmZGV2X3ByaXYtPmRybSwgcGxhbmVfc3RhdGUtPmZsYWdzICYgUExBTkVf SEFTX0ZFTkNFICYmCi0JCSAgICAhcGxhbmVfc3RhdGUtPnZtYS0+ZmVuY2UpOworCQkgICAgIXBs YW5lX3N0YXRlLT5nZ3R0X3ZtYS0+ZmVuY2UpOwogCiAJaWYgKHBsYW5lX3N0YXRlLT5mbGFncyAm IFBMQU5FX0hBU19GRU5DRSAmJgotCSAgICBwbGFuZV9zdGF0ZS0+dm1hLT5mZW5jZSkKLQkJY2Fj aGUtPmZlbmNlX2lkID0gcGxhbmVfc3RhdGUtPnZtYS0+ZmVuY2UtPmlkOworCSAgICBwbGFuZV9z dGF0ZS0+Z2d0dF92bWEtPmZlbmNlKQorCQljYWNoZS0+ZmVuY2VfaWQgPSBwbGFuZV9zdGF0ZS0+ Z2d0dF92bWEtPmZlbmNlLT5pZDsKIAllbHNlCiAJCWNhY2hlLT5mZW5jZV9pZCA9IC0xOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3NrbF91bml2ZXJzYWxfcGxh bmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5j CmluZGV4IDc1ZDNjYTNkYmIzNzIuLjM0OWE1M2NlZjBhOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5jCkBAIC05MzMsNiArOTMz LDIxIEBAIHN0YXRpYyB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gcGxhbmVfY29sb3JfY3RsOwogfQogCitz dGF0aWMgdTMyIHNrbF9zdXJmX2FkZHJlc3MoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSwKKwkJCSAgICBpbnQgY29sb3JfcGxhbmUpCit7CisJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+aHcuZmI7CisJdTMyIG9mZnNldCA9 IHBsYW5lX3N0YXRlLT52aWV3LmNvbG9yX3BsYW5lW2NvbG9yX3BsYW5lXS5vZmZzZXQ7CisKKwlp ZiAoaW50ZWxfZmJfdXNlc19kcHQoZmIpKSB7CisJCVdBUk5fT04ob2Zmc2V0ICYgMHgxZmZmZmYp OworCQlyZXR1cm4gb2Zmc2V0ID4+IDk7CisJfSBlbHNlIHsKKwkJV0FSTl9PTihvZmZzZXQgJiAw eGZmZik7CisJCXJldHVybiBvZmZzZXQ7CisJfQorfQorCiBzdGF0aWMgdm9pZAogc2tsX3Byb2dy YW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKQEAgLTk0Myw3ICs5NTgsNyBAQCBza2xfcHJvZ3Jh bV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCWVudW0gcGxhbmVfaWQgcGxhbmVf aWQgPSBwbGFuZS0+aWQ7CiAJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKIAljb25zdCBz dHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5ja2V5 OwotCXUzMiBzdXJmX2FkZHIgPSBwbGFuZV9zdGF0ZS0+dmlldy5jb2xvcl9wbGFuZVtjb2xvcl9w bGFuZV0ub2Zmc2V0OworCXUzMiBzdXJmX2FkZHIgPSBza2xfc3VyZl9hZGRyZXNzKHBsYW5lX3N0 YXRlLCBjb2xvcl9wbGFuZSk7CiAJdTMyIHN0cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUocGxhbmVf c3RhdGUsIGNvbG9yX3BsYW5lKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBsYW5lX3N0YXRlLT5ody5mYjsKIAlpbnQgYXV4X3BsYW5lID0gc2tsX21haW5fdG9fYXV4X3Bs YW5lKGZiLCBjb2xvcl9wbGFuZSk7CkBAIC05ODIsNyArOTk3LDcgQEAgc2tsX3Byb2dyYW1fcGxh bmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAl9CiAKIAlpZiAoYXV4X3BsYW5lKSB7Ci0J CWF1eF9kaXN0ID0gcGxhbmVfc3RhdGUtPnZpZXcuY29sb3JfcGxhbmVbYXV4X3BsYW5lXS5vZmZz ZXQgLSBzdXJmX2FkZHI7CisJCWF1eF9kaXN0ID0gc2tsX3N1cmZfYWRkcmVzcyhwbGFuZV9zdGF0 ZSwgYXV4X3BsYW5lKSAtIHN1cmZfYWRkcjsKIAogCQlpZiAoRElTUExBWV9WRVIoZGV2X3ByaXYp IDwgMTIpCiAJCQlhdXhfZGlzdCB8PSBza2xfcGxhbmVfc3RyaWRlKHBsYW5lX3N0YXRlLCBhdXhf cGxhbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuOF9wcGd0dC5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuOF9wcGd0dC5oCmluZGV4IDc2YTA4YjljMWY1 YzguLmI5MDI4YzJhZDNjN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dl bjhfcHBndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW44X3BwZ3R0LmgKQEAg LTYsOCArNiwxNSBAQAogI2lmbmRlZiBfX0dFTjhfUFBHVFRfSF9fCiAjZGVmaW5lIF9fR0VOOF9Q UEdUVF9IX18KIAorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorCitzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlOwogc3RydWN0IGludGVsX2d0OworZW51bSBpOTE1X2NhY2hlX2xldmVsOwogCiBz dHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGludGVsX2d0ICpndCk7 Cit1NjQgZ2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAorCQkJIGVudW0gaTkx NV9jYWNoZV9sZXZlbCBsZXZlbCwKKwkJCSB1MzIgZmxhZ3MpOwogCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dndHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2dndHQuYwppbmRleCA2NzBjMTI3MWU3ZDUxLi4zODc0MmJmMzNmYTM3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9nZ3R0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ2d0dC5jCkBAIC0xOCw2ICsxOCw3IEBACiAj aW5jbHVkZSAiaTkxNV92Z3B1LmgiCiAKICNpbmNsdWRlICJpbnRlbF9ndHQuaCIKKyNpbmNsdWRl ICJnZW44X3BwZ3R0LmgiCiAKIHN0YXRpYyBpbnQKIGk5MTVfZ2V0X2dndHRfdm1hX3BhZ2VzKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hKTsKQEAgLTE4Nyw5ICsxODgsOSBAQCBzdGF0aWMgdm9pZCBnbWNo X2dndHRfaW52YWxpZGF0ZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogCWludGVsX2d0dF9jaGlw c2V0X2ZsdXNoKCk7CiB9CiAKLXN0YXRpYyB1NjQgZ2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2Fk ZHJfdCBhZGRyLAotCQkJCWVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKLQkJCQl1MzIgZmxh Z3MpCit1NjQgZ2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAorCQkJIGVudW0g aTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKKwkJCSB1MzIgZmxhZ3MpCiB7CiAJZ2VuOF9wdGVfdCBw dGUgPSBhZGRyIHwgX1BBR0VfUFJFU0VOVDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQu aAppbmRleCBlNjdlMzRlMTc5MTMxLi43OWY1NjVhZWI4YzA5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9ndHQuaApAQCAtMjQ1LDYgKzI0NSw3IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2UgewogCXN0cnVjdCBkbWFfcmVzdiByZXN2OyAvKiByZXNlcnZhdGlvbiBsb2NrIGZvciBhbGwg cGQgb2JqZWN0cywgYW5kIGJ1ZmZlciBwb29sICovCiAjZGVmaW5lIFZNX0NMQVNTX0dHVFQgMAog I2RlZmluZSBWTV9DTEFTU19QUEdUVCAxCisjZGVmaW5lIFZNX0NMQVNTX0RQVCAyCiAKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc2NyYXRjaFs0XTsKIAkvKioKQEAgLTI1NSw2ICsyNTYs OSBAQCBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlIHsKIAkvKiBHbG9iYWwgR1RUICovCiAJYm9v bCBpc19nZ3R0OjE7CiAKKwkvKiBEaXNwbGF5IHBhZ2UgdGFibGUgKi8KKwlib29sIGlzX2RwdDox OworCiAJLyogU29tZSBzeXN0ZW1zIHN1cHBvcnQgcmVhZC1vbmx5IG1hcHBpbmdzIGZvciBHR1RU IGFuZC9vciBQUEdUVCAqLwogCWJvb2wgaGFzX3JlYWRfb25seToxOwogCkBAIC0zNTEsNiArMzU1 LDcgQEAgc3RydWN0IGk5MTVfcHBndHQgewogfTsKIAogI2RlZmluZSBpOTE1X2lzX2dndHQodm0p ICgodm0pLT5pc19nZ3R0KQorI2RlZmluZSBpOTE1X2lzX2RwdCh2bSkgKCh2bSktPmlzX2RwdCkK IAogaW50IF9fbXVzdF9jaGVjawogaTkxNV92bV9sb2NrX29iamVjdHMoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sIHN0cnVjdCBpOTE1X2dlbV93d19jdHggKnd3KTsKLS0gCjIuMjcuMAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==