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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7DA44C4332F for ; Thu, 3 Nov 2022 03:38:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BeFk1+M2/R8KxLMMWasAVWuVmaVYf/iCCstBJCeb4JI=; b=RfP8ElPVtYVjWb BnrLkVlELWB1bfrR32DRSP7vooJDcKXgt/n1JhuhPXnKcEkW1Zuo62mwseIw4BFHruRwC2vuyBGlR 6xS+G00thNSxpt+jHO8JloR7sHWNR+pC0XUXM5VLdtJgNjTfSK0xRsRZEBVHWdi1/b60idHic5PFF M/w/Esp96rAjh0ut6CpJ2YbYmM5KS6P6XbISV+UFlo07f4UAUslU/vR8INBa0Jnb9RE1Omfr5HiOi r2zUrzZ5YiakWd/vufVco4NOi1ZPD/+ZFie0ZikiUwhiUmkRZfmvQnwqTdY8S8WxzSezK7vDSmXdh Lo1ik5Zeh6Q0LzQFBv2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oqR2J-00Fqk5-IO; Thu, 03 Nov 2022 03:37:00 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oqR2A-00Fqhp-4S; Thu, 03 Nov 2022 03:36:53 +0000 X-UUID: 41ceed8b8c0146c2a9118991b69aa9fa-20221102 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=LUV+QiI3Ff+n9emr2Pa0SpeLx5JRZYGPtVlA+jsK2KQ=; b=tDqWUl6xuC/knTIabzRuO7+UXp9omLCpWoRDFCtPBwZI9wpIO4UHR2/J9Ty56ENCiImTLAcrFIOqTpJhoeYoc+tKlLhO+iM/bDgA4zmQ/09mdosgfQofF4jhdEa3xfoYNEWXDjyRqY0T6VXrU9+yp+5U3VIV4Od5fyWJraafkbk=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.12,REQID:3fec1ceb-2e11-4418-b16d-2349284311c9,IP:0,U RL:0,TC:0,Content:-5,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-5 X-CID-META: VersionHash:62cd327,CLOUDID:cc637781-3116-4fbc-b86b-83475c3df513,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: 41ceed8b8c0146c2a9118991b69aa9fa-20221102 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1892554619; Wed, 02 Nov 2022 20:36:46 -0700 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Thu, 3 Nov 2022 11:26:13 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Thu, 3 Nov 2022 11:26:12 +0800 From: Nancy.Lin To: Rob Herring , Matthias Brugger , Chun-Kuang Hu , Philipp Zabel , , AngeloGioacchino Del Regno , , CC: David Airlie , Daniel Vetter , Nathan Chancellor , Nick Desaulniers , "Nancy . Lin" , "jason-jh . lin" , Yongqiang Niu , , , , , , , , Subject: [PATCH v27 6/7] drm/mediatek: add drm ovl_adaptor sub driver for MT8195 Date: Thu, 3 Nov 2022 11:26:09 +0800 Message-ID: <20221103032610.9217-7-nancy.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20221103032610.9217-1-nancy.lin@mediatek.com> References: <20221103032610.9217-1-nancy.lin@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221102_203650_240396_FFC4E3C3 X-CRM114-Status: GOOD ( 18.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIGRybSBvdmxfYWRhcHRvciBzdWIgZHJpdmVyLiBCcmluZyB1cCBvdmxfYWRhcHRvciBzdWIg ZHJpdmVyIGlmCnRoZSBjb21wb25lbnQgZXhpc3RzIGluIHRoZSBwYXRoLgoKU2lnbmVkLW9mZi1i eTogTmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPgpSZXZpZXdlZC1ieTogQW5nZWxv R2lvYWNjaGlubyBEZWwgUmVnbm8gPGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3Jh LmNvbT4KUmV2aWV3ZWQtYnk6IENLIEh1IDxjay5odUBtZWRpYXRlay5jb20+ClRlc3RlZC1ieTog QW5nZWxvR2lvYWNjaGlubyBEZWwgUmVnbm8gPGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29s bGFib3JhLmNvbT4KVGVzdGVkLWJ5OiBCby1DaGVuIENoZW4gPHJleC1iYy5jaGVuQG1lZGlhdGVr LmNvbT4KVGVzdGVkLWJ5OiBOw61jb2xhcyBGLiBSLiBBLiBQcmFkbyA8bmZyYXByYWRvQGNvbGxh Ym9yYS5jb20+CkNoYW5nZS1JZDogSTA1MDFmM2M4MGU3OGVjODI3OTM2NmNiYTljMTM3YTJlZGQ3 YTg1MmUKLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgICAgIHwg IDYxICsrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5oICAg ICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYyB8 IDEyOSArKysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fZGRwX2NvbXAuaCB8ICA1MCArKysrKysrLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZHJ2LmMgICAgICB8ICA3OCArKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5oICAgICAgfCAgMTIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjA5IGlu c2VydGlvbnMoKyksIDEyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9jcnRjLmMKaW5kZXggMzBkY2I2NWQ4YTVhLi5jZTU2MTdhZDA0Y2IgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMKQEAgLTM3OSwxMyArMzc5LDE3IEBAIHN0YXRp YyBpbnQgbXRrX2NydGNfZGRwX2h3X2luaXQoc3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2NydGMp CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IG10a19jcnRjLT5kZHBfY29tcF9uciAtIDE7IGkrKykg ewotCQltdGtfbW1zeXNfZGRwX2Nvbm5lY3QobXRrX2NydGMtPm1tc3lzX2RldiwKLQkJCQkgICAg ICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlkLAotCQkJCSAgICAgIG10a19jcnRjLT5kZHBfY29t cFtpICsgMV0tPmlkKTsKLQkJbXRrX211dGV4X2FkZF9jb21wKG10a19jcnRjLT5tdXRleCwKLQkJ CQkJbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7CisJCWlmICghbXRrX2RkcF9jb21wX2Nvbm5l Y3QobXRrX2NydGMtPmRkcF9jb21wW2ldLCBtdGtfY3J0Yy0+bW1zeXNfZGV2LAorCQkJCQkgIG10 a19jcnRjLT5kZHBfY29tcFtpICsgMV0tPmlkKSkKKwkJCW10a19tbXN5c19kZHBfY29ubmVjdCht dGtfY3J0Yy0+bW1zeXNfZGV2LAorCQkJCQkgICAgICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0tPmlk LAorCQkJCQkgICAgICBtdGtfY3J0Yy0+ZGRwX2NvbXBbaSArIDFdLT5pZCk7CisJCWlmICghbXRr X2RkcF9jb21wX2FkZChtdGtfY3J0Yy0+ZGRwX2NvbXBbaV0sIG10a19jcnRjLT5tdXRleCkpCisJ CQltdGtfbXV0ZXhfYWRkX2NvbXAobXRrX2NydGMtPm11dGV4LAorCQkJCQkgICBtdGtfY3J0Yy0+ ZGRwX2NvbXBbaV0tPmlkKTsKIAl9Ci0JbXRrX211dGV4X2FkZF9jb21wKG10a19jcnRjLT5tdXRl eCwgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7CisJaWYgKCFtdGtfZGRwX2NvbXBfYWRkKG10 a19jcnRjLT5kZHBfY29tcFtpXSwgbXRrX2NydGMtPm11dGV4KSkKKwkJbXRrX211dGV4X2FkZF9j b21wKG10a19jcnRjLT5tdXRleCwgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7CiAJbXRrX211 dGV4X2VuYWJsZShtdGtfY3J0Yy0+bXV0ZXgpOwogCiAJZm9yIChpID0gMDsgaSA8IG10a19jcnRj LT5kZHBfY29tcF9ucjsgaSsrKSB7CkBAIC00MzQsMTcgKzQzOCwyMiBAQCBzdGF0aWMgdm9pZCBt dGtfY3J0Y19kZHBfaHdfZmluaShzdHJ1Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YykKIAl9CiAK IAlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9jb21wX25yOyBpKyspCi0JCW10a19tdXRl eF9yZW1vdmVfY29tcChtdGtfY3J0Yy0+bXV0ZXgsCi0JCQkJCSAgIG10a19jcnRjLT5kZHBfY29t cFtpXS0+aWQpOworCQlpZiAoIW10a19kZHBfY29tcF9yZW1vdmUobXRrX2NydGMtPmRkcF9jb21w W2ldLCBtdGtfY3J0Yy0+bXV0ZXgpKQorCQkJbXRrX211dGV4X3JlbW92ZV9jb21wKG10a19jcnRj LT5tdXRleCwKKwkJCQkJICAgICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7CiAJbXRrX211 dGV4X2Rpc2FibGUobXRrX2NydGMtPm11dGV4KTsKIAlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMt PmRkcF9jb21wX25yIC0gMTsgaSsrKSB7Ci0JCW10a19tbXN5c19kZHBfZGlzY29ubmVjdChtdGtf Y3J0Yy0+bW1zeXNfZGV2LAotCQkJCQkgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCwKLQkJCQkJ IG10a19jcnRjLT5kZHBfY29tcFtpICsgMV0tPmlkKTsKLQkJbXRrX211dGV4X3JlbW92ZV9jb21w KG10a19jcnRjLT5tdXRleCwKLQkJCQkJICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7CisJ CWlmICghbXRrX2RkcF9jb21wX2Rpc2Nvbm5lY3QobXRrX2NydGMtPmRkcF9jb21wW2ldLCBtdGtf Y3J0Yy0+bW1zeXNfZGV2LAorCQkJCQkgICAgIG10a19jcnRjLT5kZHBfY29tcFtpICsgMV0tPmlk KSkKKwkJCW10a19tbXN5c19kZHBfZGlzY29ubmVjdChtdGtfY3J0Yy0+bW1zeXNfZGV2LAorCQkJ CQkJIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQsCisJCQkJCQkgbXRrX2NydGMtPmRkcF9jb21w W2kgKyAxXS0+aWQpOworCQlpZiAoIW10a19kZHBfY29tcF9yZW1vdmUobXRrX2NydGMtPmRkcF9j b21wW2ldLCBtdGtfY3J0Yy0+bXV0ZXgpKQorCQkJbXRrX211dGV4X3JlbW92ZV9jb21wKG10a19j cnRjLT5tdXRleCwKKwkJCQkJICAgICAgbXRrX2NydGMtPmRkcF9jb21wW2ldLT5pZCk7CiAJfQot CW10a19tdXRleF9yZW1vdmVfY29tcChtdGtfY3J0Yy0+bXV0ZXgsIG10a19jcnRjLT5kZHBfY29t cFtpXS0+aWQpOworCWlmICghbXRrX2RkcF9jb21wX3JlbW92ZShtdGtfY3J0Yy0+ZGRwX2NvbXBb aV0sIG10a19jcnRjLT5tdXRleCkpCisJCW10a19tdXRleF9yZW1vdmVfY29tcChtdGtfY3J0Yy0+ bXV0ZXgsIG10a19jcnRjLT5kZHBfY29tcFtpXS0+aWQpOwogCW10a19jcnRjX2RkcF9jbGtfZGlz YWJsZShtdGtfY3J0Yyk7CiAJbXRrX211dGV4X3VucHJlcGFyZShtdGtfY3J0Yy0+bXV0ZXgpOwog CkBAIC04NzQsNyArODgzLDcgQEAgc3RydWN0IGRldmljZSAqbXRrX2RybV9jcnRjX2RtYV9kZXZf Z2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIH0KIAogaW50IG10a19kcm1fY3J0Y19jcmVhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCi0JCQljb25zdCBlbnVtIG10a19kZHBfY29tcF9p ZCAqcGF0aCwgdW5zaWduZWQgaW50IHBhdGhfbGVuLAorCQkJY29uc3QgdW5zaWduZWQgaW50ICpw YXRoLCB1bnNpZ25lZCBpbnQgcGF0aF9sZW4sCiAJCQlpbnQgcHJpdl9kYXRhX2luZGV4KQogewog CXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXYgPSBkcm1fZGV2LT5kZXZfcHJpdmF0ZTsKQEAg LTg5NywyMiArOTA2LDE4IEBAIGludCBtdGtfZHJtX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkcm1fZGV2LAogCQljcnRjX2krKzsKIAogCWZvciAoaSA9IDA7IGkgPCBwYXRoX2xlbjsg aSsrKSB7Ci0JCWVudW0gbXRrX2RkcF9jb21wX2lkIGNvbXBfaWQgPSBwYXRoW2ldOworCQl1bnNp Z25lZCBpbnQgY29tcF9pZCA9IHBhdGhbaV07CiAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZTsK LQkJc3RydWN0IG10a19kZHBfY29tcCAqY29tcDsKIAogCQlub2RlID0gcHJpdi0+Y29tcF9ub2Rl W2NvbXBfaWRdOwotCQljb21wID0gJnByaXYtPmRkcF9jb21wW2NvbXBfaWRdOwotCi0JCWlmICgh bm9kZSkgewotCQkJZGV2X2luZm8oZGV2LAotCQkJCSAiTm90IGNyZWF0aW5nIGNydGMgJWQgYmVj YXVzZSBjb21wb25lbnQgJWQgaXMgZGlzYWJsZWQgb3IgbWlzc2luZ1xuIiwKLQkJCQkgY3J0Y19p LCBjb21wX2lkKTsKLQkJCXJldHVybiAwOwotCQl9CiAKLQkJaWYgKCFjb21wLT5kZXYpIHsKLQkJ CWRldl9lcnIoZGV2LCAiQ29tcG9uZW50ICVwT0Ygbm90IGluaXRpYWxpemVkXG4iLCBub2RlKTsK KwkJLyogTm90IGFsbCBkcm0gY29tcG9uZW50cyBoYXZlIGEgRFRTIGRldmljZSBub2RlLCBzdWNo IGFzIG92bF9hZGFwdG9yLAorCQkgKiB3aGljaCBpcyB0aGUgZHJtIGJyaW5nIHVwIHN1YiBkcml2 ZXIKKwkJICovCisJCWlmICghbm9kZSAmJiBjb21wX2lkICE9IEREUF9DT01QT05FTlRfRFJNX09W TF9BREFQVE9SKSB7CisJCQlkZXZfZXJyKGRldiwKKwkJCQkiTm90IGNyZWF0aW5nIGNydGMgJWQg YmVjYXVzZSBjb21wb25lbnQgJWQgaXMgZGlzYWJsZWQsIG1pc3Npbmcgb3Igbm90IGluaXRpYWxp emVkXG4iLAorCQkJCWNydGNfaSwgY29tcF9pZCk7CiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJfQog CX0KQEAgLTkzNyw3ICs5NDIsNyBAQCBpbnQgbXRrX2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiwKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXRrX2NydGMtPmRkcF9j b21wX25yOyBpKyspIHsKLQkJZW51bSBtdGtfZGRwX2NvbXBfaWQgY29tcF9pZCA9IHBhdGhbaV07 CisJCXVuc2lnbmVkIGludCBjb21wX2lkID0gcGF0aFtpXTsKIAkJc3RydWN0IG10a19kZHBfY29t cCAqY29tcDsKIAogCQljb21wID0gJnByaXYtPmRkcF9jb21wW2NvbXBfaWRdOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5oIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5oCmluZGV4IDYwNmY3MmYzNTkyNC4uM2U5MDQ2OTkz ZDA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0Yy5oCkBAIC0xNiw3ICsx Niw3IEBACiAKIHZvaWQgbXRrX2RybV9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp OwogaW50IG10a19kcm1fY3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCi0J CQljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqcGF0aCwKKwkJCWNvbnN0IHVuc2lnbmVkIGlu dCAqcGF0aCwKIAkJCXVuc2lnbmVkIGludCBwYXRoX2xlbiwKIAkJCWludCBwcml2X2RhdGFfaW5k ZXgpOwogaW50IG10a19kcm1fY3J0Y19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtf ZHJtX2RkcF9jb21wLmMKaW5kZXggNmI2ZDUzMzVjODM0Li44Y2I3NmYyYTQwZTcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuYwpAQCAtMzg5LDYgKzM4OSwy NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfdWZvZSA9IHsK IAkuc3RhcnQgPSBtdGtfdWZvZV9zdGFydCwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXRr X2RkcF9jb21wX2Z1bmNzIGRkcF9vdmxfYWRhcHRvciA9IHsKKwkuY2xrX2VuYWJsZSA9IG10a19v dmxfYWRhcHRvcl9jbGtfZW5hYmxlLAorCS5jbGtfZGlzYWJsZSA9IG10a19vdmxfYWRhcHRvcl9j bGtfZGlzYWJsZSwKKwkuY29uZmlnID0gbXRrX292bF9hZGFwdG9yX2NvbmZpZywKKwkuc3RhcnQg PSBtdGtfb3ZsX2FkYXB0b3Jfc3RhcnQsCisJLnN0b3AgPSBtdGtfb3ZsX2FkYXB0b3Jfc3RvcCwK KwkubGF5ZXJfbnIgPSBtdGtfb3ZsX2FkYXB0b3JfbGF5ZXJfbnIsCisJLmxheWVyX2NvbmZpZyA9 IG10a19vdmxfYWRhcHRvcl9sYXllcl9jb25maWcsCisJLnJlZ2lzdGVyX3ZibGFua19jYiA9IG10 a19vdmxfYWRhcHRvcl9yZWdpc3Rlcl92YmxhbmtfY2IsCisJLnVucmVnaXN0ZXJfdmJsYW5rX2Ni ID0gbXRrX292bF9hZGFwdG9yX3VucmVnaXN0ZXJfdmJsYW5rX2NiLAorCS5lbmFibGVfdmJsYW5r ID0gbXRrX292bF9hZGFwdG9yX2VuYWJsZV92YmxhbmssCisJLmRpc2FibGVfdmJsYW5rID0gbXRr X292bF9hZGFwdG9yX2Rpc2FibGVfdmJsYW5rLAorCS5kbWFfZGV2X2dldCA9IG10a19vdmxfYWRh cHRvcl9kbWFfZGV2X2dldCwKKwkuY29ubmVjdCA9IG10a19vdmxfYWRhcHRvcl9jb25uZWN0LAor CS5kaXNjb25uZWN0ID0gbXRrX292bF9hZGFwdG9yX2Rpc2Nvbm5lY3QsCisJLmFkZCA9IG10a19v dmxfYWRhcHRvcl9hZGRfY29tcCwKKwkucmVtb3ZlID0gbXRrX292bF9hZGFwdG9yX3JlbW92ZV9j b21wLAorfTsKKwogc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdGtfZGRwX2NvbXBfc3RlbVtN VEtfRERQX0NPTVBfVFlQRV9NQVhdID0gewogCVtNVEtfRElTUF9BQUxdID0gImFhbCIsCiAJW01U S19ESVNQX0JMU10gPSAiYmxzIiwKQEAgLTQwMiw2ICs0MjEsNyBAQCBzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IG10a19kZHBfY29tcF9zdGVtW01US19ERFBfQ09NUF9UWVBFX01BWF0gPSB7CiAJ W01US19ESVNQX09EXSA9ICJvZCIsCiAJW01US19ESVNQX09WTF0gPSAib3ZsIiwKIAlbTVRLX0RJ U1BfT1ZMXzJMXSA9ICJvdmwtMmwiLAorCVtNVEtfRElTUF9PVkxfQURBUFRPUl0gPSAib3ZsX2Fk YXB0b3IiLAogCVtNVEtfRElTUF9QT1NUTUFTS10gPSAicG9zdG1hc2siLAogCVtNVEtfRElTUF9Q V01dID0gInB3bSIsCiAJW01US19ESVNQX1JETUFdID0gInJkbWEiLApAQCAtNDE4LDUzICs0Mzgs NTQgQEAgc3RydWN0IG10a19kZHBfY29tcF9tYXRjaCB7CiAJY29uc3Qgc3RydWN0IG10a19kZHBf Y29tcF9mdW5jcyAqZnVuY3M7CiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29t cF9tYXRjaCBtdGtfZGRwX21hdGNoZXNbRERQX0NPTVBPTkVOVF9JRF9NQVhdID0gewotCVtERFBf Q09NUE9ORU5UX0FBTDBdCQk9IHsgTVRLX0RJU1BfQUFMLAkwLCAmZGRwX2FhbCB9LAotCVtERFBf Q09NUE9ORU5UX0FBTDFdCQk9IHsgTVRLX0RJU1BfQUFMLAkxLCAmZGRwX2FhbCB9LAotCVtERFBf Q09NUE9ORU5UX0JMU10JCT0geyBNVEtfRElTUF9CTFMsCTAsIE5VTEwgfSwKLQlbRERQX0NPTVBP TkVOVF9DQ09SUl0JCT0geyBNVEtfRElTUF9DQ09SUiwJMCwgJmRkcF9jY29yciB9LAotCVtERFBf Q09NUE9ORU5UX0NPTE9SMF0JCT0geyBNVEtfRElTUF9DT0xPUiwJMCwgJmRkcF9jb2xvciB9LAot CVtERFBfQ09NUE9ORU5UX0NPTE9SMV0JCT0geyBNVEtfRElTUF9DT0xPUiwJMSwgJmRkcF9jb2xv ciB9LAotCVtERFBfQ09NUE9ORU5UX0RJVEhFUjBdCQk9IHsgTVRLX0RJU1BfRElUSEVSLAkwLCAm ZGRwX2RpdGhlciB9LAotCVtERFBfQ09NUE9ORU5UX0RQX0lOVEYwXQk9IHsgTVRLX0RQX0lOVEYs CTAsICZkZHBfZHBpIH0sCi0JW0REUF9DT01QT05FTlRfRFBfSU5URjFdCT0geyBNVEtfRFBfSU5U RiwJMSwgJmRkcF9kcGkgfSwKLQlbRERQX0NPTVBPTkVOVF9EUEkwXQkJPSB7IE1US19EUEksCQkw LCAmZGRwX2RwaSB9LAotCVtERFBfQ09NUE9ORU5UX0RQSTFdCQk9IHsgTVRLX0RQSSwJCTEsICZk ZHBfZHBpIH0sCi0JW0REUF9DT01QT05FTlRfRFNDMF0JCT0geyBNVEtfRElTUF9EU0MsCTAsICZk ZHBfZHNjIH0sCi0JW0REUF9DT01QT05FTlRfRFNDMV0JCT0geyBNVEtfRElTUF9EU0MsCTEsICZk ZHBfZHNjIH0sCi0JW0REUF9DT01QT05FTlRfRFNJMF0JCT0geyBNVEtfRFNJLAkJMCwgJmRkcF9k c2kgfSwKLQlbRERQX0NPTVBPTkVOVF9EU0kxXQkJPSB7IE1US19EU0ksCQkxLCAmZGRwX2RzaSB9 LAotCVtERFBfQ09NUE9ORU5UX0RTSTJdCQk9IHsgTVRLX0RTSSwJCTIsICZkZHBfZHNpIH0sCi0J W0REUF9DT01QT05FTlRfRFNJM10JCT0geyBNVEtfRFNJLAkJMywgJmRkcF9kc2kgfSwKLQlbRERQ X0NPTVBPTkVOVF9HQU1NQV0JCT0geyBNVEtfRElTUF9HQU1NQSwJMCwgJmRkcF9nYW1tYSB9LAot CVtERFBfQ09NUE9ORU5UX01FUkdFMF0JCT0geyBNVEtfRElTUF9NRVJHRSwJMCwgJmRkcF9tZXJn ZSB9LAotCVtERFBfQ09NUE9ORU5UX01FUkdFMV0JCT0geyBNVEtfRElTUF9NRVJHRSwJMSwgJmRk cF9tZXJnZSB9LAotCVtERFBfQ09NUE9ORU5UX01FUkdFMl0JCT0geyBNVEtfRElTUF9NRVJHRSwJ MiwgJmRkcF9tZXJnZSB9LAotCVtERFBfQ09NUE9ORU5UX01FUkdFM10JCT0geyBNVEtfRElTUF9N RVJHRSwJMywgJmRkcF9tZXJnZSB9LAotCVtERFBfQ09NUE9ORU5UX01FUkdFNF0JCT0geyBNVEtf RElTUF9NRVJHRSwJNCwgJmRkcF9tZXJnZSB9LAotCVtERFBfQ09NUE9ORU5UX01FUkdFNV0JCT0g eyBNVEtfRElTUF9NRVJHRSwJNSwgJmRkcF9tZXJnZSB9LAotCVtERFBfQ09NUE9ORU5UX09EMF0J CT0geyBNVEtfRElTUF9PRCwJMCwgJmRkcF9vZCB9LAotCVtERFBfQ09NUE9ORU5UX09EMV0JCT0g eyBNVEtfRElTUF9PRCwJMSwgJmRkcF9vZCB9LAotCVtERFBfQ09NUE9ORU5UX09WTDBdCQk9IHsg TVRLX0RJU1BfT1ZMLAkwLCAmZGRwX292bCB9LAotCVtERFBfQ09NUE9ORU5UX09WTDFdCQk9IHsg TVRLX0RJU1BfT1ZMLAkxLCAmZGRwX292bCB9LAotCVtERFBfQ09NUE9ORU5UX09WTF8yTDBdCQk9 IHsgTVRLX0RJU1BfT1ZMXzJMLAkwLCAmZGRwX292bCB9LAotCVtERFBfQ09NUE9ORU5UX09WTF8y TDFdCQk9IHsgTVRLX0RJU1BfT1ZMXzJMLAkxLCAmZGRwX292bCB9LAotCVtERFBfQ09NUE9ORU5U X09WTF8yTDJdCQk9IHsgTVRLX0RJU1BfT1ZMXzJMLCAgICAyLCAmZGRwX292bCB9LAotCVtERFBf Q09NUE9ORU5UX1BPU1RNQVNLMF0JPSB7IE1US19ESVNQX1BPU1RNQVNLLAkwLCAmZGRwX3Bvc3Rt YXNrIH0sCi0JW0REUF9DT01QT05FTlRfUFdNMF0JCT0geyBNVEtfRElTUF9QV00sCTAsIE5VTEwg fSwKLQlbRERQX0NPTVBPTkVOVF9QV00xXQkJPSB7IE1US19ESVNQX1BXTSwJMSwgTlVMTCB9LAot CVtERFBfQ09NUE9ORU5UX1BXTTJdCQk9IHsgTVRLX0RJU1BfUFdNLAkyLCBOVUxMIH0sCi0JW0RE UF9DT01QT05FTlRfUkRNQTBdCQk9IHsgTVRLX0RJU1BfUkRNQSwJMCwgJmRkcF9yZG1hIH0sCi0J W0REUF9DT01QT05FTlRfUkRNQTFdCQk9IHsgTVRLX0RJU1BfUkRNQSwJMSwgJmRkcF9yZG1hIH0s Ci0JW0REUF9DT01QT05FTlRfUkRNQTJdCQk9IHsgTVRLX0RJU1BfUkRNQSwJMiwgJmRkcF9yZG1h IH0sCi0JW0REUF9DT01QT05FTlRfUkRNQTRdCQk9IHsgTVRLX0RJU1BfUkRNQSwgICAgICA0LCAm ZGRwX3JkbWEgfSwKLQlbRERQX0NPTVBPTkVOVF9VRk9FXQkJPSB7IE1US19ESVNQX1VGT0UsCTAs ICZkZHBfdWZvZSB9LAotCVtERFBfQ09NUE9ORU5UX1dETUEwXQkJPSB7IE1US19ESVNQX1dETUEs CTAsIE5VTEwgfSwKLQlbRERQX0NPTVBPTkVOVF9XRE1BMV0JCT0geyBNVEtfRElTUF9XRE1BLAkx LCBOVUxMIH0sCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9tYXRjaCBtdGtfZGRw X21hdGNoZXNbRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYXSA9IHsKKwlbRERQX0NPTVBPTkVOVF9B QUwwXQkJPSB7IE1US19ESVNQX0FBTCwJCTAsICZkZHBfYWFsIH0sCisJW0REUF9DT01QT05FTlRf QUFMMV0JCT0geyBNVEtfRElTUF9BQUwsCQkxLCAmZGRwX2FhbCB9LAorCVtERFBfQ09NUE9ORU5U X0JMU10JCT0geyBNVEtfRElTUF9CTFMsCQkwLCBOVUxMIH0sCisJW0REUF9DT01QT05FTlRfQ0NP UlJdCQk9IHsgTVRLX0RJU1BfQ0NPUlIsCQkwLCAmZGRwX2Njb3JyIH0sCisJW0REUF9DT01QT05F TlRfQ09MT1IwXQkJPSB7IE1US19ESVNQX0NPTE9SLAkJMCwgJmRkcF9jb2xvciB9LAorCVtERFBf Q09NUE9ORU5UX0NPTE9SMV0JCT0geyBNVEtfRElTUF9DT0xPUiwJCTEsICZkZHBfY29sb3IgfSwK KwlbRERQX0NPTVBPTkVOVF9ESVRIRVIwXQkJPSB7IE1US19ESVNQX0RJVEhFUiwJCTAsICZkZHBf ZGl0aGVyIH0sCisJW0REUF9DT01QT05FTlRfRFBfSU5URjBdCT0geyBNVEtfRFBfSU5URiwJCTAs ICZkZHBfZHBpIH0sCisJW0REUF9DT01QT05FTlRfRFBfSU5URjFdCT0geyBNVEtfRFBfSU5URiwJ CTEsICZkZHBfZHBpIH0sCisJW0REUF9DT01QT05FTlRfRFBJMF0JCT0geyBNVEtfRFBJLAkJCTAs ICZkZHBfZHBpIH0sCisJW0REUF9DT01QT05FTlRfRFBJMV0JCT0geyBNVEtfRFBJLAkJCTEsICZk ZHBfZHBpIH0sCisJW0REUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SXQk9IHsgTVRLX0RJU1Bf T1ZMX0FEQVBUT1IsCTAsICZkZHBfb3ZsX2FkYXB0b3IgfSwKKwlbRERQX0NPTVBPTkVOVF9EU0Mw XQkJPSB7IE1US19ESVNQX0RTQywJCTAsICZkZHBfZHNjIH0sCisJW0REUF9DT01QT05FTlRfRFND MV0JCT0geyBNVEtfRElTUF9EU0MsCQkxLCAmZGRwX2RzYyB9LAorCVtERFBfQ09NUE9ORU5UX0RT STBdCQk9IHsgTVRLX0RTSSwJCQkwLCAmZGRwX2RzaSB9LAorCVtERFBfQ09NUE9ORU5UX0RTSTFd CQk9IHsgTVRLX0RTSSwJCQkxLCAmZGRwX2RzaSB9LAorCVtERFBfQ09NUE9ORU5UX0RTSTJdCQk9 IHsgTVRLX0RTSSwJCQkyLCAmZGRwX2RzaSB9LAorCVtERFBfQ09NUE9ORU5UX0RTSTNdCQk9IHsg TVRLX0RTSSwJCQkzLCAmZGRwX2RzaSB9LAorCVtERFBfQ09NUE9ORU5UX0dBTU1BXQkJPSB7IE1U S19ESVNQX0dBTU1BLAkJMCwgJmRkcF9nYW1tYSB9LAorCVtERFBfQ09NUE9ORU5UX01FUkdFMF0J CT0geyBNVEtfRElTUF9NRVJHRSwJCTAsICZkZHBfbWVyZ2UgfSwKKwlbRERQX0NPTVBPTkVOVF9N RVJHRTFdCQk9IHsgTVRLX0RJU1BfTUVSR0UsCQkxLCAmZGRwX21lcmdlIH0sCisJW0REUF9DT01Q T05FTlRfTUVSR0UyXQkJPSB7IE1US19ESVNQX01FUkdFLAkJMiwgJmRkcF9tZXJnZSB9LAorCVtE RFBfQ09NUE9ORU5UX01FUkdFM10JCT0geyBNVEtfRElTUF9NRVJHRSwJCTMsICZkZHBfbWVyZ2Ug fSwKKwlbRERQX0NPTVBPTkVOVF9NRVJHRTRdCQk9IHsgTVRLX0RJU1BfTUVSR0UsCQk0LCAmZGRw X21lcmdlIH0sCisJW0REUF9DT01QT05FTlRfTUVSR0U1XQkJPSB7IE1US19ESVNQX01FUkdFLAkJ NSwgJmRkcF9tZXJnZSB9LAorCVtERFBfQ09NUE9ORU5UX09EMF0JCT0geyBNVEtfRElTUF9PRCwJ CTAsICZkZHBfb2QgfSwKKwlbRERQX0NPTVBPTkVOVF9PRDFdCQk9IHsgTVRLX0RJU1BfT0QsCQkx LCAmZGRwX29kIH0sCisJW0REUF9DT01QT05FTlRfT1ZMMF0JCT0geyBNVEtfRElTUF9PVkwsCQkw LCAmZGRwX292bCB9LAorCVtERFBfQ09NUE9ORU5UX09WTDFdCQk9IHsgTVRLX0RJU1BfT1ZMLAkJ MSwgJmRkcF9vdmwgfSwKKwlbRERQX0NPTVBPTkVOVF9PVkxfMkwwXQkJPSB7IE1US19ESVNQX09W TF8yTCwJCTAsICZkZHBfb3ZsIH0sCisJW0REUF9DT01QT05FTlRfT1ZMXzJMMV0JCT0geyBNVEtf RElTUF9PVkxfMkwsCQkxLCAmZGRwX292bCB9LAorCVtERFBfQ09NUE9ORU5UX09WTF8yTDJdCQk9 IHsgTVRLX0RJU1BfT1ZMXzJMLAkJMiwgJmRkcF9vdmwgfSwKKwlbRERQX0NPTVBPTkVOVF9QT1NU TUFTSzBdCT0geyBNVEtfRElTUF9QT1NUTUFTSywJCTAsICZkZHBfcG9zdG1hc2sgfSwKKwlbRERQ X0NPTVBPTkVOVF9QV00wXQkJPSB7IE1US19ESVNQX1BXTSwJCTAsIE5VTEwgfSwKKwlbRERQX0NP TVBPTkVOVF9QV00xXQkJPSB7IE1US19ESVNQX1BXTSwJCTEsIE5VTEwgfSwKKwlbRERQX0NPTVBP TkVOVF9QV00yXQkJPSB7IE1US19ESVNQX1BXTSwJCTIsIE5VTEwgfSwKKwlbRERQX0NPTVBPTkVO VF9SRE1BMF0JCT0geyBNVEtfRElTUF9SRE1BLAkJMCwgJmRkcF9yZG1hIH0sCisJW0REUF9DT01Q T05FTlRfUkRNQTFdCQk9IHsgTVRLX0RJU1BfUkRNQSwJCTEsICZkZHBfcmRtYSB9LAorCVtERFBf Q09NUE9ORU5UX1JETUEyXQkJPSB7IE1US19ESVNQX1JETUEsCQkyLCAmZGRwX3JkbWEgfSwKKwlb RERQX0NPTVBPTkVOVF9SRE1BNF0JCT0geyBNVEtfRElTUF9SRE1BLAkJNCwgJmRkcF9yZG1hIH0s CisJW0REUF9DT01QT05FTlRfVUZPRV0JCT0geyBNVEtfRElTUF9VRk9FLAkJMCwgJmRkcF91Zm9l IH0sCisJW0REUF9DT01QT05FTlRfV0RNQTBdCQk9IHsgTVRLX0RJU1BfV0RNQSwJCTAsIE5VTEwg fSwKKwlbRERQX0NPTVBPTkVOVF9XRE1BMV0JCT0geyBNVEtfRElTUF9XRE1BLAkJMSwgTlVMTCB9 LAogfTsKIAogc3RhdGljIGJvb2wgbXRrX2RybV9maW5kX2NvbXBfaW5fZGRwKHN0cnVjdCBkZXZp Y2UgKmRldiwKLQkJCQkgICAgIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkICpwYXRoLAorCQkJ CSAgICAgY29uc3QgdW5zaWduZWQgaW50ICpwYXRoLAogCQkJCSAgICAgdW5zaWduZWQgaW50IHBh dGhfbGVuLAogCQkJCSAgICAgc3RydWN0IG10a19kZHBfY29tcCAqZGRwX2NvbXApCiB7CkBAIC01 MTcsNyArNTM4LDcgQEAgdW5zaWduZWQgaW50IG10a19kcm1fZmluZF9wb3NzaWJsZV9jcnRjX2J5 X2NvbXAoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKIH0KIAogaW50IG10a19kZHBfY29tcF9pbml0 KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgc3RydWN0IG10a19kZHBfY29tcCAqY29tcCwKLQkJ ICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY29tcF9pZCkKKwkJICAgICAgdW5zaWduZWQgaW50 IGNvbXBfaWQpCiB7CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqY29tcF9wZGV2OwogCWVudW0g bXRrX2RkcF9jb21wX3R5cGUgdHlwZTsKQEAgLTUyNiwxOSArNTQ3LDI0IEBAIGludCBtdGtfZGRw X2NvbXBfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXAsCiAJaW50IHJldDsKICNlbmRpZgogCi0JaWYgKGNvbXBfaWQgPCAwIHx8IGNvbXBfaWQg Pj0gRERQX0NPTVBPTkVOVF9JRF9NQVgpCisJaWYgKGNvbXBfaWQgPCAwIHx8IGNvbXBfaWQgPj0g RERQX0NPTVBPTkVOVF9EUk1fSURfTUFYKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXR5cGUgPSBt dGtfZGRwX21hdGNoZXNbY29tcF9pZF0udHlwZTsKIAogCWNvbXAtPmlkID0gY29tcF9pZDsKIAlj b21wLT5mdW5jcyA9IG10a19kZHBfbWF0Y2hlc1tjb21wX2lkXS5mdW5jczsKLQljb21wX3BkZXYg PSBvZl9maW5kX2RldmljZV9ieV9ub2RlKG5vZGUpOwotCWlmICghY29tcF9wZGV2KSB7Ci0JCURS TV9JTkZPKCJXYWl0aW5nIGZvciBkZXZpY2UgJXNcbiIsIG5vZGUtPmZ1bGxfbmFtZSk7Ci0JCXJl dHVybiAtRVBST0JFX0RFRkVSOworCS8qIE5vdCBhbGwgZHJtIGNvbXBvbmVudHMgaGF2ZSBhIERU UyBkZXZpY2Ugbm9kZSwgc3VjaCBhcyBvdmxfYWRhcHRvciwKKwkgKiB3aGljaCBpcyB0aGUgZHJt IGJyaW5nIHVwIHN1YiBkcml2ZXIKKwkgKi8KKwlpZiAobm9kZSkgeworCQljb21wX3BkZXYgPSBv Zl9maW5kX2RldmljZV9ieV9ub2RlKG5vZGUpOworCQlpZiAoIWNvbXBfcGRldikgeworCQkJRFJN X0lORk8oIldhaXRpbmcgZm9yIGRldmljZSAlc1xuIiwgbm9kZS0+ZnVsbF9uYW1lKTsKKwkJCXJl dHVybiAtRVBST0JFX0RFRkVSOworCQl9CisJCWNvbXAtPmRldiA9ICZjb21wX3BkZXYtPmRldjsK IAl9Ci0JY29tcC0+ZGV2ID0gJmNvbXBfcGRldi0+ZGV2OwogCiAJaWYgKHR5cGUgPT0gTVRLX0RJ U1BfQUFMIHx8CiAJICAgIHR5cGUgPT0gTVRLX0RJU1BfQkxTIHx8CkBAIC01NDgsNiArNTc0LDcg QEAgaW50IG10a19kZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgc3RydWN0 IG10a19kZHBfY29tcCAqY29tcCwKIAkgICAgdHlwZSA9PSBNVEtfRElTUF9NRVJHRSB8fAogCSAg ICB0eXBlID09IE1US19ESVNQX09WTCB8fAogCSAgICB0eXBlID09IE1US19ESVNQX09WTF8yTCB8 fAorCSAgICB0eXBlID09IE1US19ESVNQX09WTF9BREFQVE9SIHx8CiAJICAgIHR5cGUgPT0gTVRL X0RJU1BfUFdNIHx8CiAJICAgIHR5cGUgPT0gTVRLX0RJU1BfUkRNQSB8fAogCSAgICB0eXBlID09 IE1US19EUEkgfHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2RkcF9jb21wLmggYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5o CmluZGV4IDM2NGYzZjdmNTlmYS4uMzA4NGNjNGUyODMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmgKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8bGlu dXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4KICNpbmNs dWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmg+CisjaW5jbHVkZSA8bGludXgvc29j L21lZGlhdGVrL210ay1tdXRleC5oPgogCiBzdHJ1Y3QgZGV2aWNlOwogc3RydWN0IGRldmljZV9u b2RlOwpAQCAtMzAsNiArMzEsNyBAQCBlbnVtIG10a19kZHBfY29tcF90eXBlIHsKIAlNVEtfRElT UF9PRCwKIAlNVEtfRElTUF9PVkwsCiAJTVRLX0RJU1BfT1ZMXzJMLAorCU1US19ESVNQX09WTF9B REFQVE9SLAogCU1US19ESVNQX1BPU1RNQVNLLAogCU1US19ESVNQX1BXTSwKIAlNVEtfRElTUF9S RE1BLApAQCAtNzIsMTIgKzc0LDE2IEBAIHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgewogCXZv aWQgKCpjdG1fc2V0KShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKTsKIAlzdHJ1Y3QgZGV2aWNlICogKCpkbWFfZGV2X2dldCkoc3RydWN0IGRldmlj ZSAqZGV2KTsKKwl2b2lkICgqY29ubmVjdCkoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlICptbXN5c19kZXYsIHVuc2lnbmVkIGludCBuZXh0KTsKKwl2b2lkICgqZGlzY29ubmVjdCko c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptbXN5c19kZXYsIHVuc2lnbmVkIGlu dCBuZXh0KTsKKwl2b2lkICgqYWRkKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtdGtfbXV0 ZXggKm11dGV4KTsKKwl2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBt dGtfbXV0ZXggKm11dGV4KTsKIH07CiAKIHN0cnVjdCBtdGtfZGRwX2NvbXAgewogCXN0cnVjdCBk ZXZpY2UgKmRldjsKIAlpbnQgaXJxOwotCWVudW0gbXRrX2RkcF9jb21wX2lkIGlkOworCXVuc2ln bmVkIGludCBpZDsKIAljb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzICpmdW5jczsKIH07 CiAKQEAgLTIxMSwxMyArMjE3LDUxIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRldmljZSAqbXRr X2RkcF9jb21wX2RtYV9kZXZfZ2V0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXApCiAJcmV0dXJu IGNvbXAtPmRldjsKIH0KIAorc3RhdGljIGlubGluZSBib29sIG10a19kZHBfY29tcF9hZGQoc3Ry dWN0IG10a19kZHBfY29tcCAqY29tcCwgc3RydWN0IG10a19tdXRleCAqbXV0ZXgpCit7CisJaWYg KGNvbXAtPmZ1bmNzICYmIGNvbXAtPmZ1bmNzLT5hZGQpIHsKKwkJY29tcC0+ZnVuY3MtPmFkZChj b21wLT5kZXYsIG11dGV4KTsKKwkJcmV0dXJuIHRydWU7CisJfQorCXJldHVybiBmYWxzZTsKK30K Kworc3RhdGljIGlubGluZSBib29sIG10a19kZHBfY29tcF9yZW1vdmUoc3RydWN0IG10a19kZHBf Y29tcCAqY29tcCwgc3RydWN0IG10a19tdXRleCAqbXV0ZXgpCit7CisJaWYgKGNvbXAtPmZ1bmNz ICYmIGNvbXAtPmZ1bmNzLT5yZW1vdmUpIHsKKwkJY29tcC0+ZnVuY3MtPnJlbW92ZShjb21wLT5k ZXYsIG11dGV4KTsKKwkJcmV0dXJuIHRydWU7CisJfQorCXJldHVybiBmYWxzZTsKK30KKworc3Rh dGljIGlubGluZSBib29sIG10a19kZHBfY29tcF9jb25uZWN0KHN0cnVjdCBtdGtfZGRwX2NvbXAg KmNvbXAsIHN0cnVjdCBkZXZpY2UgKm1tc3lzX2RldiwKKwkJCQkJdW5zaWduZWQgaW50IG5leHQp Cit7CisJaWYgKGNvbXAtPmZ1bmNzICYmIGNvbXAtPmZ1bmNzLT5jb25uZWN0KSB7CisJCWNvbXAt PmZ1bmNzLT5jb25uZWN0KGNvbXAtPmRldiwgbW1zeXNfZGV2LCBuZXh0KTsKKwkJcmV0dXJuIHRy dWU7CisJfQorCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGlubGluZSBib29sIG10a19kZHBf Y29tcF9kaXNjb25uZWN0KHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNvbXAsIHN0cnVjdCBkZXZpY2Ug Km1tc3lzX2RldiwKKwkJCQkJICAgdW5zaWduZWQgaW50IG5leHQpCit7CisJaWYgKGNvbXAtPmZ1 bmNzICYmIGNvbXAtPmZ1bmNzLT5kaXNjb25uZWN0KSB7CisJCWNvbXAtPmZ1bmNzLT5kaXNjb25u ZWN0KGNvbXAtPmRldiwgbW1zeXNfZGV2LCBuZXh0KTsKKwkJcmV0dXJuIHRydWU7CisJfQorCXJl dHVybiBmYWxzZTsKK30KKwogaW50IG10a19kZHBfY29tcF9nZXRfaWQoc3RydWN0IGRldmljZV9u b2RlICpub2RlLAogCQkJZW51bSBtdGtfZGRwX2NvbXBfdHlwZSBjb21wX3R5cGUpOwogdW5zaWdu ZWQgaW50IG10a19kcm1fZmluZF9wb3NzaWJsZV9jcnRjX2J5X2NvbXAoc3RydWN0IGRybV9kZXZp Y2UgKmRybSwKIAkJCQkJCXN0cnVjdCBkZXZpY2UgKmRldik7CiBpbnQgbXRrX2RkcF9jb21wX2lu aXQoc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGUsIHN0cnVjdCBtdGtfZGRwX2NvbXAgKmNv bXAsCi0JCSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGNvbXBfaWQpOwotZW51bSBtdGtfZGRw X2NvbXBfdHlwZSBtdGtfZGRwX2NvbXBfZ2V0X3R5cGUoZW51bSBtdGtfZGRwX2NvbXBfaWQgY29t cF9pZCk7CisJCSAgICAgIHVuc2lnbmVkIGludCBjb21wX2lkKTsKK2VudW0gbXRrX2RkcF9jb21w X3R5cGUgbXRrX2RkcF9jb21wX2dldF90eXBlKHVuc2lnbmVkIGludCBjb21wX2lkKTsKIHZvaWQg bXRrX2RkcF93cml0ZShzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0LCB1bnNpZ25lZCBpbnQgdmFs dWUsCiAJCSAgIHN0cnVjdCBjbWRxX2NsaWVudF9yZWcgKmNtZHFfcmVnLCB2b2lkIF9faW9tZW0g KnJlZ3MsCiAJCSAgIHVuc2lnbmVkIGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kcnYuYwppbmRleCA3Njg5ZDVkODc3ZTEuLjQxYjUyNTZmNGM4ZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgbXRrX2RybV9tb2RlX2NvbmZpZ19mdW5j cyA9IHsKIAkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKIH07CiAK LXN0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDI3MDFfbXRrX2RkcF9tYWluW10g PSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10MjcwMV9tdGtfZGRwX21haW5bXSA9IHsK IAlERFBfQ09NUE9ORU5UX09WTDAsCiAJRERQX0NPTVBPTkVOVF9SRE1BMCwKIAlERFBfQ09NUE9O RU5UX0NPTE9SMCwKQEAgLTY2LDEyICs2NiwxMiBAQCBzdGF0aWMgY29uc3QgZW51bSBtdGtfZGRw X2NvbXBfaWQgbXQyNzAxX210a19kZHBfbWFpbltdID0gewogCUREUF9DT01QT05FTlRfRFNJMCwK IH07CiAKLXN0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDI3MDFfbXRrX2RkcF9l eHRbXSA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQyNzAxX210a19kZHBfZXh0W10g PSB7CiAJRERQX0NPTVBPTkVOVF9SRE1BMSwKIAlERFBfQ09NUE9ORU5UX0RQSTAsCiB9OwogCi1z dGF0aWMgY29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXQ3NjIzX210a19kZHBfbWFpbltdID0g eworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDc2MjNfbXRrX2RkcF9tYWluW10gPSB7CiAJ RERQX0NPTVBPTkVOVF9PVkwwLAogCUREUF9DT01QT05FTlRfUkRNQTAsCiAJRERQX0NPTVBPTkVO VF9DT0xPUjAsCkBAIC03OSwxMiArNzksMTIgQEAgc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9j b21wX2lkIG10NzYyM19tdGtfZGRwX21haW5bXSA9IHsKIAlERFBfQ09NUE9ORU5UX0RQSTAsCiB9 OwogCi1zdGF0aWMgY29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXQ3NjIzX210a19kZHBfZXh0 W10gPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10NzYyM19tdGtfZGRwX2V4dFtdID0g ewogCUREUF9DT01QT05FTlRfUkRNQTEsCiAJRERQX0NPTVBPTkVOVF9EU0kwLAogfTsKIAotc3Rh dGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10MjcxMl9tdGtfZGRwX21haW5bXSA9IHsK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQyNzEyX210a19kZHBfbWFpbltdID0gewogCURE UF9DT01QT05FTlRfT1ZMMCwKIAlERFBfQ09NUE9ORU5UX0NPTE9SMCwKIAlERFBfQ09NUE9ORU5U X0FBTDAsCkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9p ZCBtdDI3MTJfbXRrX2RkcF9tYWluW10gPSB7CiAJRERQX0NPTVBPTkVOVF9QV00wLAogfTsKIAot c3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10MjcxMl9tdGtfZGRwX2V4dFtdID0g eworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDI3MTJfbXRrX2RkcF9leHRbXSA9IHsKIAlE RFBfQ09NUE9ORU5UX09WTDEsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjEsCiAJRERQX0NPTVBPTkVO VF9BQUwxLApAQCAtMTA0LDEzICsxMDQsMTMgQEAgc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9j b21wX2lkIG10MjcxMl9tdGtfZGRwX2V4dFtdID0gewogCUREUF9DT01QT05FTlRfUFdNMSwKIH07 CiAKLXN0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDI3MTJfbXRrX2RkcF90aGly ZFtdID0geworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDI3MTJfbXRrX2RkcF90aGlyZFtd ID0gewogCUREUF9DT01QT05FTlRfUkRNQTIsCiAJRERQX0NPTVBPTkVOVF9EU0kzLAogCUREUF9D T01QT05FTlRfUFdNMiwKIH07CiAKLXN0YXRpYyBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxNjdf bXRrX2RkcF9tYWluW10gPSB7CitzdGF0aWMgdW5zaWduZWQgaW50IG10ODE2N19tdGtfZGRwX21h aW5bXSA9IHsKIAlERFBfQ09NUE9ORU5UX09WTDAsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjAsCiAJ RERQX0NPTVBPTkVOVF9DQ09SUiwKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgZW51bSBtdGtf ZGRwX2NvbXBfaWQgbXQ4MTY3X210a19kZHBfbWFpbltdID0gewogCUREUF9DT01QT05FTlRfRFNJ MCwKIH07CiAKLXN0YXRpYyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxNzNfbXRrX2Rk cF9tYWluW10gPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG10ODE3M19tdGtfZGRwX21h aW5bXSA9IHsKIAlERFBfQ09NUE9ORU5UX09WTDAsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjAsCiAJ RERQX0NPTVBPTkVOVF9BQUwwLApAQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRpYyBjb25zdCBlbnVt IG10a19kZHBfY29tcF9pZCBtdDgxNzNfbXRrX2RkcF9tYWluW10gPSB7CiAJRERQX0NPTVBPTkVO VF9QV00wLAogfTsKIAotc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10ODE3M19t dGtfZGRwX2V4dFtdID0geworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxNzNfbXRrX2Rk cF9leHRbXSA9IHsKIAlERFBfQ09NUE9ORU5UX09WTDEsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjEs CiAJRERQX0NPTVBPTkVOVF9HQU1NQSwKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgY29uc3Qg ZW51bSBtdGtfZGRwX2NvbXBfaWQgbXQ4MTczX210a19kZHBfZXh0W10gPSB7CiAJRERQX0NPTVBP TkVOVF9EUEkwLAogfTsKIAotc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10ODE4 M19tdGtfZGRwX21haW5bXSA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTgzX210 a19kZHBfbWFpbltdID0gewogCUREUF9DT01QT05FTlRfT1ZMMCwKIAlERFBfQ09NUE9ORU5UX09W TF8yTDAsCiAJRERQX0NPTVBPTkVOVF9SRE1BMCwKQEAgLTE1MiwxMyArMTUyLDEzIEBAIHN0YXRp YyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxODNfbXRrX2RkcF9tYWluW10gPSB7CiAJ RERQX0NPTVBPTkVOVF9EU0kwLAogfTsKIAotc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21w X2lkIG10ODE4M19tdGtfZGRwX2V4dFtdID0geworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBt dDgxODNfbXRrX2RkcF9leHRbXSA9IHsKIAlERFBfQ09NUE9ORU5UX09WTF8yTDEsCiAJRERQX0NP TVBPTkVOVF9SRE1BMSwKIAlERFBfQ09NUE9ORU5UX0RQSTAsCiB9OwogCi1zdGF0aWMgY29uc3Qg ZW51bSBtdGtfZGRwX2NvbXBfaWQgbXQ4MTg2X210a19kZHBfbWFpbltdID0geworc3RhdGljIGNv bnN0IHVuc2lnbmVkIGludCBtdDgxODZfbXRrX2RkcF9tYWluW10gPSB7CiAJRERQX0NPTVBPTkVO VF9PVkwwLAogCUREUF9DT01QT05FTlRfUkRNQTAsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjAsCkBA IC0xNzAsMTMgKzE3MCwxMyBAQCBzdGF0aWMgY29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgbXQ4 MTg2X210a19kZHBfbWFpbltdID0gewogCUREUF9DT01QT05FTlRfRFNJMCwKIH07CiAKLXN0YXRp YyBjb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxODZfbXRrX2RkcF9leHRbXSA9IHsKK3N0 YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTg2X210a19kZHBfZXh0W10gPSB7CiAJRERQX0NP TVBPTkVOVF9PVkxfMkwwLAogCUREUF9DT01QT05FTlRfUkRNQTEsCiAJRERQX0NPTVBPTkVOVF9E UEkwLAogfTsKIAotc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10ODE5Ml9tdGtf ZGRwX21haW5bXSA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbXQ4MTkyX210a19kZHBf bWFpbltdID0gewogCUREUF9DT01QT05FTlRfT1ZMMCwKIAlERFBfQ09NUE9ORU5UX09WTF8yTDAs CiAJRERQX0NPTVBPTkVOVF9SRE1BMCwKQEAgLTE4OSwxMyArMTg5LDEzIEBAIHN0YXRpYyBjb25z dCBlbnVtIG10a19kZHBfY29tcF9pZCBtdDgxOTJfbXRrX2RkcF9tYWluW10gPSB7CiAJRERQX0NP TVBPTkVOVF9EU0kwLAogfTsKIAotc3RhdGljIGNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkIG10 ODE5Ml9tdGtfZGRwX2V4dFtdID0geworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdDgxOTJf bXRrX2RkcF9leHRbXSA9IHsKIAlERFBfQ09NUE9ORU5UX09WTF8yTDIsCiAJRERQX0NPTVBPTkVO VF9SRE1BNCwKIAlERFBfQ09NUE9ORU5UX0RQSTAsCiB9OwogCi1zdGF0aWMgY29uc3QgZW51bSBt dGtfZGRwX2NvbXBfaWQgbXQ4MTk1X210a19kZHBfbWFpbltdID0geworc3RhdGljIGNvbnN0IHVu c2lnbmVkIGludCBtdDgxOTVfbXRrX2RkcF9tYWluW10gPSB7CiAJRERQX0NPTVBPTkVOVF9PVkww LAogCUREUF9DT01QT05FTlRfUkRNQTAsCiAJRERQX0NPTVBPTkVOVF9DT0xPUjAsCkBAIC0zNzks OSArMzc5LDcgQEAgc3RhdGljIGludCBtdGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkcm0pCiB7CiAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9IGRybS0+ZGV2X3By aXZhdGU7CiAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdl9uOwotCXN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXY7Ci0Jc3RydWN0IGRldmljZV9ub2RlICpucCA9IE5VTEw7Ci0Jc3RydWN0 IGRldmljZSAqZG1hX2RldjsKKwlzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2ID0gTlVMTDsKIAlpbnQg cmV0LCBpLCBqOwogCiAJaWYgKGRybV9maXJtd2FyZV9kcml2ZXJzX29ubHkoKSkKQEAgLTQxOSw3 ICs0MTcsNiBAQCBzdGF0aWMgaW50IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRybSkKIAkgKiAgICBkaWZmZXJlbnQgZHJtIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmVzLiBMb29w IHRocm91Z2ggY3J0YyBpbmRleCB0bwogCSAqICAgIGNyZWF0ZSBjcnRjIGZyb20gdGhlIG1haW4g cGF0aCBhbmQgdGhlbiBleHRfcGF0aCBhbmQgZmluYWxseSB0aGUKIAkgKiAgICB0aGlyZCBwYXRo LgotCSAqIDMuIFVzZSBPVkwgZGV2aWNlIGZvciBhbGwgRE1BIG1lbW9yeSBhbGxvY2F0aW9ucwog CSAqLwogCWZvciAoaSA9IDA7IGkgPCBNQVhfQ1JUQzsgaSsrKSB7CiAJCWZvciAoaiA9IDA7IGog PCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBqKyspIHsKQEAgLTQzMSw5ICs0MjgsNiBA QCBzdGF0aWMgaW50IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIAkJ CQlpZiAocmV0KQogCQkJCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5kOwogCi0JCQkJaWYgKCFu cCkKLQkJCQkJbnAgPSBwcml2X24tPmNvbXBfbm9kZVtwcml2X24tPmRhdGEtPm1haW5fcGF0aFsw XV07Ci0KIAkJCQljb250aW51ZTsKIAkJCX0gZWxzZSBpZiAoaSA9PSAxICYmIHByaXZfbi0+ZGF0 YS0+ZXh0X2xlbikgewogCQkJCXJldCA9IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBwcml2X24t PmRhdGEtPmV4dF9wYXRoLApAQCAtNDQxLDkgKzQzNSw2IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9r bXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQogCQkJCWlmIChyZXQpCiAJCQkJCWdvdG8g ZXJyX2NvbXBvbmVudF91bmJpbmQ7CiAKLQkJCQlpZiAoIW5wKQotCQkJCQlucCA9IHByaXZfbi0+ Y29tcF9ub2RlW3ByaXZfbi0+ZGF0YS0+ZXh0X3BhdGhbMF1dOwotCiAJCQkJY29udGludWU7CiAJ CQl9IGVsc2UgaWYgKGkgPT0gMiAmJiBwcml2X24tPmRhdGEtPnRoaXJkX2xlbikgewogCQkJCXJl dCA9IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBwcml2X24tPmRhdGEtPnRoaXJkX3BhdGgsCkBA IC00NTEsMjIgKzQ0MiwxOSBAQCBzdGF0aWMgaW50IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRybSkKIAkJCQlpZiAocmV0KQogCQkJCQlnb3RvIGVycl9jb21wb25lbnRfdW5i aW5kOwogCi0JCQkJaWYgKCFucCkKLQkJCQkJbnAgPSBwcml2X24tPmNvbXBfbm9kZVtwcml2X24t PmRhdGEtPnRoaXJkX3BhdGhbMF1dOwotCiAJCQkJY29udGludWU7CiAJCQl9CiAJCX0KIAl9CiAK LQlwZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShucCk7Ci0JaWYgKCFwZGV2KSB7CisJLyog VXNlIE9WTCBkZXZpY2UgZm9yIGFsbCBETUEgbWVtb3J5IGFsbG9jYXRpb25zICovCisJZG1hX2Rl diA9IG10a19kcm1fY3J0Y19kbWFfZGV2X2dldChkcm1fY3J0Y19mcm9tX2luZGV4KGRybSwgMCkp OworCWlmICghZG1hX2RldikgewogCQlyZXQgPSAtRU5PREVWOwogCQlkZXZfZXJyKGRybS0+ZGV2 LCAiTmVlZCBhdCBsZWFzdCBvbmUgT1ZMIGRldmljZVxuIik7CiAJCWdvdG8gZXJyX2NvbXBvbmVu dF91bmJpbmQ7CiAJfQogCi0JZG1hX2RldiA9ICZwZGV2LT5kZXY7CiAJZm9yIChpID0gMDsgaSA8 IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW07IGkrKykKIAkJcHJpdmF0ZS0+YWxsX2RybV9w cml2YXRlW2ldLT5kbWFfZGV2ID0gZG1hX2RldjsKIApAQCAtNTQwLDYgKzUyOCwxMSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9kcml2ZXIgbXRrX2RybV9kcml2ZXIgPSB7CiAJLm1pbm9yID0g RFJJVkVSX01JTk9SLAogfTsKIAorc3RhdGljIGludCBjb21wYXJlX2RldihzdHJ1Y3QgZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIGRldiA9PSAoc3RydWN0IGRldmljZSAqKWRh dGE7Cit9CisKIHN0YXRpYyBpbnQgbXRrX2RybV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldikKIHsK IAlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2YXRlID0gZGV2X2dldF9kcnZkYXRhKGRldik7 CkBAIC03MzUsNiArNzI4LDcgQEAgc3RhdGljIGludCBtdGtfZHJtX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZTsKIAlz dHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGU7CiAJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2gg PSBOVUxMOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm92bF9hZGFwdG9yOwogCWludCByZXQ7 CiAJaW50IGk7CiAKQEAgLTc2MCw2ICs3NTQsMTggQEAgc3RhdGljIGludCBtdGtfZHJtX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaWYgKCFwcml2YXRlLT5hbGxfZHJtX3By aXZhdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCisJLyogQnJpbmd1cCBvdmxfYWRhcHRvciAqLwor CWlmIChtdGtfZHJtX2ZpbmRfbW1zeXNfY29tcChwcml2YXRlLCBERFBfQ09NUE9ORU5UX0RSTV9P VkxfQURBUFRPUikpIHsKKwkJb3ZsX2FkYXB0b3IgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJf ZGF0YShkZXYsICJtZWRpYXRlay1kaXNwLW92bC1hZGFwdG9yIiwKKwkJCQkJCQkgICAgUExBVEZP Uk1fREVWSURfQVVUTywKKwkJCQkJCQkgICAgKHZvaWQgKilwcml2YXRlLT5tbXN5c19kZXYsCisJ CQkJCQkJICAgIHNpemVvZigqcHJpdmF0ZS0+bW1zeXNfZGV2KSk7CisJCXByaXZhdGUtPmRkcF9j b21wW0REUF9DT01QT05FTlRfRFJNX09WTF9BREFQVE9SXS5kZXYgPSAmb3ZsX2FkYXB0b3ItPmRl djsKKwkJbXRrX2RkcF9jb21wX2luaXQoTlVMTCwgJnByaXZhdGUtPmRkcF9jb21wW0REUF9DT01Q T05FTlRfRFJNX09WTF9BREFQVE9SXSwKKwkJCQkgIEREUF9DT01QT05FTlRfRFJNX09WTF9BREFQ VE9SKTsKKwkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsICZv dmxfYWRhcHRvci0+ZGV2KTsKKwl9CisKIAkvKiBJdGVyYXRlIG92ZXIgc2libGluZyBESVNQIGZ1 bmN0aW9uIGJsb2NrcyAqLwogCWZvcl9lYWNoX2NoaWxkX29mX25vZGUocGhhbmRsZS0+cGFyZW50 LCBub2RlKSB7CiAJCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm9mX2lkOwpAQCAtODEzLDYg KzgxOSw3IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQogCQkgICAgY29tcF90eXBlID09IE1US19ESVNQX01FUkdFIHx8CiAJCSAgICBjb21w X3R5cGUgPT0gTVRLX0RJU1BfT1ZMIHx8CiAJCSAgICBjb21wX3R5cGUgPT0gTVRLX0RJU1BfT1ZM XzJMIHx8CisJCSAgICBjb21wX3R5cGUgPT0gTVRLX0RJU1BfT1ZMX0FEQVBUT1IgfHwKIAkJICAg IGNvbXBfdHlwZSA9PSBNVEtfRElTUF9SRE1BIHx8CiAJCSAgICBjb21wX3R5cGUgPT0gTVRLX0RQ X0lOVEYgfHwKIAkJICAgIGNvbXBfdHlwZSA9PSBNVEtfRFBJIHx8CkBAIC04NTAsNyArODU3LDcg QEAgc3RhdGljIGludCBtdGtfZHJtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp CiAJcG1fcnVudGltZV9kaXNhYmxlKGRldik7CiBlcnJfbm9kZToKIAlvZl9ub2RlX3B1dChwcml2 YXRlLT5tdXRleF9ub2RlKTsKLQlmb3IgKGkgPSAwOyBpIDwgRERQX0NPTVBPTkVOVF9JRF9NQVg7 IGkrKykKKwlmb3IgKGkgPSAwOyBpIDwgRERQX0NPTVBPTkVOVF9EUk1fSURfTUFYOyBpKyspCiAJ CW9mX25vZGVfcHV0KHByaXZhdGUtPmNvbXBfbm9kZVtpXSk7CiAJcmV0dXJuIHJldDsKIH0KQEAg LTg2Myw3ICs4NzAsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCiAJY29tcG9uZW50X21hc3Rlcl9kZWwoJnBkZXYtPmRldiwgJm10a19k cm1fb3BzKTsKIAlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7CiAJb2Zfbm9kZV9wdXQo cHJpdmF0ZS0+bXV0ZXhfbm9kZSk7Ci0JZm9yIChpID0gMDsgaSA8IEREUF9DT01QT05FTlRfSURf TUFYOyBpKyspCisJZm9yIChpID0gMDsgaSA8IEREUF9DT01QT05FTlRfRFJNX0lEX01BWDsgaSsr KQogCQlvZl9ub2RlX3B1dChwcml2YXRlLT5jb21wX25vZGVbaV0pOwogCiAJcmV0dXJuIDA7CkBA IC05MTIsNiArOTE5LDcgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKiBjb25zdCBt dGtfZHJtX2RyaXZlcnNbXSA9IHsKIAkmbXRrX2Rpc3BfY29sb3JfZHJpdmVyLAogCSZtdGtfZGlz cF9nYW1tYV9kcml2ZXIsCiAJJm10a19kaXNwX21lcmdlX2RyaXZlciwKKwkmbXRrX2Rpc3Bfb3Zs X2FkYXB0b3JfZHJpdmVyLAogCSZtdGtfZGlzcF9vdmxfZHJpdmVyLAogCSZtdGtfZGlzcF9yZG1h X2RyaXZlciwKIAkmbXRrX2RwaV9kcml2ZXIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2Rydi5oCmluZGV4IDhkM2ZmMzJiNTM2NC4uZWIyZmQ0NTk0MWYwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2RybV9kcnYuaApAQCAtMTEsNiArMTEsOCBAQAogCiAjZGVmaW5lIE1BWF9D UlRDCTMKICNkZWZpbmUgTUFYX0NPTk5FQ1RPUgkyCisjZGVmaW5lIEREUF9DT01QT05FTlRfRFJN X09WTF9BREFQVE9SIChERFBfQ09NUE9ORU5UX0lEX01BWCArIDEpCisjZGVmaW5lIEREUF9DT01Q T05FTlRfRFJNX0lEX01BWCAoRERQX0NPTVBPTkVOVF9EUk1fT1ZMX0FEQVBUT1IgKyAxKQogCiBz dHJ1Y3QgZGV2aWNlOwogc3RydWN0IGRldmljZV9ub2RlOwpAQCAtMjEsMTEgKzIzLDExIEBAIHN0 cnVjdCBkcm1fcHJvcGVydHk7CiBzdHJ1Y3QgcmVnbWFwOwogCiBzdHJ1Y3QgbXRrX21tc3lzX2Ry aXZlcl9kYXRhIHsKLQljb25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqbWFpbl9wYXRoOworCWNv bnN0IHVuc2lnbmVkIGludCAqbWFpbl9wYXRoOwogCXVuc2lnbmVkIGludCBtYWluX2xlbjsKLQlj b25zdCBlbnVtIG10a19kZHBfY29tcF9pZCAqZXh0X3BhdGg7CisJY29uc3QgdW5zaWduZWQgaW50 ICpleHRfcGF0aDsKIAl1bnNpZ25lZCBpbnQgZXh0X2xlbjsKLQljb25zdCBlbnVtIG10a19kZHBf Y29tcF9pZCAqdGhpcmRfcGF0aDsKKwljb25zdCB1bnNpZ25lZCBpbnQgKnRoaXJkX3BhdGg7CiAJ dW5zaWduZWQgaW50IHRoaXJkX2xlbjsKIAogCWJvb2wgc2hhZG93X3JlZ2lzdGVyOwpAQCAtNDIs OCArNDQsOCBAQCBzdHJ1Y3QgbXRrX2RybV9wcml2YXRlIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUg Km11dGV4X25vZGU7CiAJc3RydWN0IGRldmljZSAqbXV0ZXhfZGV2OwogCXN0cnVjdCBkZXZpY2Ug Km1tc3lzX2RldjsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmNvbXBfbm9kZVtERFBfQ09NUE9ORU5U X0lEX01BWF07Ci0Jc3RydWN0IG10a19kZHBfY29tcCBkZHBfY29tcFtERFBfQ09NUE9ORU5UX0lE X01BWF07CisJc3RydWN0IGRldmljZV9ub2RlICpjb21wX25vZGVbRERQX0NPTVBPTkVOVF9EUk1f SURfTUFYXTsKKwlzdHJ1Y3QgbXRrX2RkcF9jb21wIGRkcF9jb21wW0REUF9DT01QT05FTlRfRFJN X0lEX01BWF07CiAJY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAqZGF0YTsKIAlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3VzcGVuZF9zdGF0ZTsKIAl1bnNpZ25lZCBpbnQgbWJv eF9pbmRleDsKLS0gCjIuMTguMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK