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 34E70C433FE for ; Thu, 3 Nov 2022 03:32:30 +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=fmSB0+qjwAnBi1wWwY7v3YfAo8Ftuv+Y2QA4OJA2czo=; b=j02ecRuQF+9HKG 8FlOnio3ABOHVdjM8rzAMYKaJfyTQn/MQH8Xk/dK/85pZimMrmtH2J2dl1+xEWvzl3gvdZdQiJs1h KQioGaomL+3RkKd2PzPayIAJ/h/GA3vx3vdTc1MW9dbzoXrS7NoBMUysoYNSTz10Czxs2pX8pVkCf acYRtvaxndRGejG49JqWFOgQHC90KZlVpJ1IPnGRHHYaBSiBBbbLQltLeL/znJl9/57nzlFkzJ+nv QIjmUctiivru61/5aa78Wnwgx3/daCRwe4qepZ24tjR9VfEiXsKzjadC6P1RJRbUMSiAV4IARrjW2 wKeQpn2/NPWfVIvmdpeg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oqQwi-00Fo4K-10; Thu, 03 Nov 2022 03:31:12 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oqQsa-00FlSZ-1L; Thu, 03 Nov 2022 03:27:00 +0000 X-UUID: debab2bba5a0481f9d3fa597818f1ac9-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=W4ju1y7e3Iky+rEpfGuw3OjiV9WjujyUdNGD/rdFXpM=; b=EWC1uGG3uhJpU/9XPLc77rAuLtkhVwYSqYgQAe9t7gIZXSY0Szmar2Nd3XJgLZD4NEdtDSbMj9kQAaJIFusptU5HdSwUCxkJJ3LH5T6+XAW2cve6wCPCbrngoMjedOGTqyinhSPqUdYpydKNXiAoZYykNDTU9VQYb1qsUKqyh/0=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.12,REQID:69ec6ee2-8a11-4e93-bfbc-941f9c53f856,IP:0,U RL:0,TC:0,Content:-25,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:-25 X-CID-META: VersionHash:62cd327,CLOUDID:388746eb-84ac-4628-a416-bc50d5503da6,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: debab2bba5a0481f9d3fa597818f1ac9-20221102 Received: from mtkmbs11n2.mediatek.inc [(172.21.101.187)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 177298468; Wed, 02 Nov 2022 20:26:50 -0700 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs10n1.mediatek.inc (172.21.101.34) 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:12 +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 5/7] drm/mediatek: modify mediatek-drm for mt8195 multi mmsys support Date: Thu, 3 Nov 2022 11:26:08 +0800 Message-ID: <20221103032610.9217-6-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_202656_113757_713F7116 X-CRM114-Status: GOOD ( 23.48 ) 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 TVQ4MTk1IGhhdmUgdHdvIG1tc3lzLiBNb2RpZnkgZHJtIGZvciBNVDgxOTUgbXVsdGktbW1zeXMg c3VwcG9ydC4KVGhlIHR3byBtbXN5cyAodmRvc3lzMCBhbmQgdmRvc3lzMSkgd2lsbCBicmluZyB1 cCB0d28gZHJtIGRyaXZlcnMsCm9ubHkgb25lIGRybSBkcml2ZXIgcmVnaXN0ZXIgYXMgdGhlIGRy bSBkZXZpY2UuCkVhY2ggZHJtIGRyaXZlciBiaW5kcyBpdHMgb3duIGNvbXBvbmVudC4gVGhlIGxh c3QgYmluZCBkcm0gZHJpdmVyCmFsbG9jYXRlcyBhbmQgcmVnaXN0ZXJzIHRoZSBkcm0gZGV2aWNl IHRvIGRybSBjb3JlLgpFYWNoIGNydGMgcGF0aCBpcyBjcmVhdGVkIHdpdGggdGhlIGNvcnJlc3Bv bmRpbmcgZHJtIGRyaXZlciBkYXRhLgoKU2lnbmVkLW9mZi1ieTogTmFuY3kuTGluIDxuYW5jeS5s aW5AbWVkaWF0ZWsuY29tPgpSZXZpZXdlZC1ieTogQW5nZWxvR2lvYWNjaGlubyBEZWwgUmVnbm8g PGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4KUmV2aWV3ZWQtYnk6IENL IEh1IDxjay5odUBtZWRpYXRlay5jb20+ClRlc3RlZC1ieTogQW5nZWxvR2lvYWNjaGlubyBEZWwg UmVnbm8gPGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4KVGVzdGVkLWJ5 OiBCby1DaGVuIENoZW4gPHJleC1iYy5jaGVuQG1lZGlhdGVrLmNvbT4KVGVzdGVkLWJ5OiBOw61j b2xhcyBGLiBSLiBBLiBQcmFkbyA8bmZyYXByYWRvQGNvbGxhYm9yYS5jb20+CkNoYW5nZS1JZDog SWNmMmEzMmY5ZWFhOGJiZGIwNTg5ZDUyMzg1MmVhMTY1MTJjNTFhZDYKLS0tCiBkcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgfCAgMjQgKy0KIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2NydGMuaCB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZHJ2LmMgIHwgMjkyICsrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggIHwgIDEwICstCiA0IGZpbGVzIGNoYW5nZWQs IDI0MyBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX2RybV9jcnRjLmMKaW5kZXggNzhlMjBmNjA0MTU4Li4zMGRjYjY1ZDhhNWEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9jcnRjLmMKQEAgLTg3NCwyMSArODc0LDI4IEBA IHN0cnVjdCBkZXZpY2UgKm10a19kcm1fY3J0Y19kbWFfZGV2X2dldChzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiB9CiAKIGludCBtdGtfZHJtX2NydGNfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2LAotCQkJY29uc3QgZW51bSBtdGtfZGRwX2NvbXBfaWQgKnBhdGgsIHVuc2lnbmVkIGlu dCBwYXRoX2xlbikKKwkJCWNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkICpwYXRoLCB1bnNpZ25l ZCBpbnQgcGF0aF9sZW4sCisJCQlpbnQgcHJpdl9kYXRhX2luZGV4KQogewogCXN0cnVjdCBtdGtf ZHJtX3ByaXZhdGUgKnByaXYgPSBkcm1fZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSBkcm1fZGV2LT5kZXY7CiAJc3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2NydGM7CiAJ dW5zaWduZWQgaW50IG51bV9jb21wX3BsYW5lcyA9IDA7Ci0JaW50IHBpcGUgPSBwcml2LT5udW1f cGlwZXM7CiAJaW50IHJldDsKIAlpbnQgaTsKIAlib29sIGhhc19jdG0gPSBmYWxzZTsKIAl1aW50 IGdhbW1hX2x1dF9zaXplID0gMDsKKwlzdHJ1Y3QgZHJtX2NydGMgKnRtcDsKKwlpbnQgY3J0Y19p ID0gMDsKIAogCWlmICghcGF0aCkKIAkJcmV0dXJuIDA7CiAKKwlwcml2ID0gcHJpdi0+YWxsX2Ry bV9wcml2YXRlW3ByaXZfZGF0YV9pbmRleF07CisKKwlkcm1fZm9yX2VhY2hfY3J0Yyh0bXAsIGRy bV9kZXYpCisJCWNydGNfaSsrOworCiAJZm9yIChpID0gMDsgaSA8IHBhdGhfbGVuOyBpKyspIHsK IAkJZW51bSBtdGtfZGRwX2NvbXBfaWQgY29tcF9pZCA9IHBhdGhbaV07CiAJCXN0cnVjdCBkZXZp Y2Vfbm9kZSAqbm9kZTsKQEAgLTkwMCw3ICs5MDcsNyBAQCBpbnQgbXRrX2RybV9jcnRjX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKIAkJaWYgKCFub2RlKSB7CiAJCQlkZXZfaW5m byhkZXYsCiAJCQkJICJOb3QgY3JlYXRpbmcgY3J0YyAlZCBiZWNhdXNlIGNvbXBvbmVudCAlZCBp cyBkaXNhYmxlZCBvciBtaXNzaW5nXG4iLAotCQkJCSBwaXBlLCBjb21wX2lkKTsKKwkJCQkgY3J0 Y19pLCBjb21wX2lkKTsKIAkJCXJldHVybiAwOwogCQl9CiAKQEAgLTk1Niw3ICs5NjMsNyBAQCBp bnQgbXRrX2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKIAogCWZv ciAoaSA9IDA7IGkgPCBtdGtfY3J0Yy0+ZGRwX2NvbXBfbnI7IGkrKykgewogCQlyZXQgPSBtdGtf ZHJtX2NydGNfaW5pdF9jb21wX3BsYW5lcyhkcm1fZGV2LCBtdGtfY3J0YywgaSwKLQkJCQkJCSAg ICBwaXBlKTsKKwkJCQkJCSAgICBjcnRjX2kpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsK IAl9CkBAIC05NjgsMjQgKzk3NSwyMyBAQCBpbnQgbXRrX2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtX2RldiwKIAkgKi8KIAltdGtfY3J0Yy0+ZG1hX2RldiA9IG10a19kZHBf Y29tcF9kbWFfZGV2X2dldCgmcHJpdi0+ZGRwX2NvbXBbcGF0aFswXV0pOwogCi0JcmV0ID0gbXRr X2RybV9jcnRjX2luaXQoZHJtX2RldiwgbXRrX2NydGMsIHBpcGUpOworCXJldCA9IG10a19kcm1f Y3J0Y19pbml0KGRybV9kZXYsIG10a19jcnRjLCBjcnRjX2kpOwogCWlmIChyZXQgPCAwKQogCQly ZXR1cm4gcmV0OwogCiAJaWYgKGdhbW1hX2x1dF9zaXplKQogCQlkcm1fbW9kZV9jcnRjX3NldF9n YW1tYV9zaXplKCZtdGtfY3J0Yy0+YmFzZSwgZ2FtbWFfbHV0X3NpemUpOwogCWRybV9jcnRjX2Vu YWJsZV9jb2xvcl9tZ210KCZtdGtfY3J0Yy0+YmFzZSwgMCwgaGFzX2N0bSwgZ2FtbWFfbHV0X3Np emUpOwotCXByaXYtPm51bV9waXBlcysrOwogCW11dGV4X2luaXQoJm10a19jcnRjLT5od19sb2Nr KTsKIAogI2lmIElTX1JFQUNIQUJMRShDT05GSUdfTVRLX0NNRFEpCisJaSA9IHByaXYtPm1ib3hf aW5kZXgrKzsKIAltdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2xpZW50LmRldiA9IG10a19jcnRjLT5t bXN5c19kZXY7CiAJbXRrX2NydGMtPmNtZHFfY2xpZW50LmNsaWVudC50eF9ibG9jayA9IGZhbHNl OwogCW10a19jcnRjLT5jbWRxX2NsaWVudC5jbGllbnQua25vd3NfdHhkb25lID0gdHJ1ZTsKIAlt dGtfY3J0Yy0+Y21kcV9jbGllbnQuY2xpZW50LnJ4X2NhbGxiYWNrID0gZGRwX2NtZHFfY2I7CiAJ bXRrX2NydGMtPmNtZHFfY2xpZW50LmNoYW4gPQotCQkJbWJveF9yZXF1ZXN0X2NoYW5uZWwoJm10 a19jcnRjLT5jbWRxX2NsaWVudC5jbGllbnQsCi0JCQkJCSAgICAgZHJtX2NydGNfaW5kZXgoJm10 a19jcnRjLT5iYXNlKSk7CisJCQltYm94X3JlcXVlc3RfY2hhbm5lbCgmbXRrX2NydGMtPmNtZHFf Y2xpZW50LmNsaWVudCwgaSk7CiAJaWYgKElTX0VSUihtdGtfY3J0Yy0+Y21kcV9jbGllbnQuY2hh bikpIHsKIAkJZGV2X2RiZyhkZXYsICJtdGtfY3J0YyAlZCBmYWlsZWQgdG8gY3JlYXRlIG1haWxi b3ggY2xpZW50LCB3cml0aW5nIHJlZ2lzdGVyIGJ5IENQVSBub3dcbiIsCiAJCQlkcm1fY3J0Y19p bmRleCgmbXRrX2NydGMtPmJhc2UpKTsKQEAgLTk5NSw3ICsxMDAxLDcgQEAgaW50IG10a19kcm1f Y3J0Y19jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCiAJaWYgKG10a19jcnRjLT5j bWRxX2NsaWVudC5jaGFuKSB7CiAJCXJldCA9IG9mX3Byb3BlcnR5X3JlYWRfdTMyX2luZGV4KHBy aXYtPm11dGV4X25vZGUsCiAJCQkJCQkgIm1lZGlhdGVrLGdjZS1ldmVudHMiLAotCQkJCQkJIGRy bV9jcnRjX2luZGV4KCZtdGtfY3J0Yy0+YmFzZSksCisJCQkJCQkgaSwKIAkJCQkJCSAmbXRrX2Ny dGMtPmNtZHFfZXZlbnQpOwogCQlpZiAocmV0KSB7CiAJCQlkZXZfZGJnKGRldiwgIm10a19jcnRj ICVkIGZhaWxlZCB0byBnZXQgbWVkaWF0ZWssZ2NlLWV2ZW50cyBwcm9wZXJ0eVxuIiwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaCBiL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaAppbmRleCBmNWE2ZTgwYzUyNjUuLjYwNmY3 MmYzNTkyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fY3J0 Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaApAQCAtMTcs NyArMTcsOCBAQAogdm9pZCBtdGtfZHJtX2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yyk7CiBpbnQgbXRrX2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwK IAkJCWNvbnN0IGVudW0gbXRrX2RkcF9jb21wX2lkICpwYXRoLAotCQkJdW5zaWduZWQgaW50IHBh dGhfbGVuKTsKKwkJCXVuc2lnbmVkIGludCBwYXRoX2xlbiwKKwkJCWludCBwcml2X2RhdGFfaW5k ZXgpOwogaW50IG10a19kcm1fY3J0Y19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRl ICpzdGF0ZSk7CiB2b2lkIG10a19kcm1fY3J0Y19hc3luY191cGRhdGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLCBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZHJ2LmMKaW5kZXggNDM2MzNkNjcwZWY0Li43Njg5ZDVkODc3ZTEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCkBAIC0yMTQsNiArMjE0LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQyNzAxX21tc3lzX2RyaXZlcl9kYXRh ID0gewogCS5leHRfcGF0aCA9IG10MjcwMV9tdGtfZGRwX2V4dCwKIAkuZXh0X2xlbiA9IEFSUkFZ X1NJWkUobXQyNzAxX210a19kZHBfZXh0KSwKIAkuc2hhZG93X3JlZ2lzdGVyID0gdHJ1ZSwKKwku bW1zeXNfZGV2X251bSA9IDEsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19tbXN5c19k cml2ZXJfZGF0YSBtdDc2MjNfbW1zeXNfZHJpdmVyX2RhdGEgPSB7CkBAIC0yMjIsNiArMjIzLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ3NjIzX21tc3lz X2RyaXZlcl9kYXRhID0gewogCS5leHRfcGF0aCA9IG10NzYyM19tdGtfZGRwX2V4dCwKIAkuZXh0 X2xlbiA9IEFSUkFZX1NJWkUobXQ3NjIzX210a19kZHBfZXh0KSwKIAkuc2hhZG93X3JlZ2lzdGVy ID0gdHJ1ZSwKKwkubW1zeXNfZGV2X251bSA9IDEsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IG10a19tbXN5c19kcml2ZXJfZGF0YSBtdDI3MTJfbW1zeXNfZHJpdmVyX2RhdGEgPSB7CkBAIC0y MzEsMTEgKzIzMywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0 YSBtdDI3MTJfbW1zeXNfZHJpdmVyX2RhdGEgPSB7CiAJLmV4dF9sZW4gPSBBUlJBWV9TSVpFKG10 MjcxMl9tdGtfZGRwX2V4dCksCiAJLnRoaXJkX3BhdGggPSBtdDI3MTJfbXRrX2RkcF90aGlyZCwK IAkudGhpcmRfbGVuID0gQVJSQVlfU0laRShtdDI3MTJfbXRrX2RkcF90aGlyZCksCisJLm1tc3lz X2Rldl9udW0gPSAxLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVy X2RhdGEgbXQ4MTY3X21tc3lzX2RyaXZlcl9kYXRhID0gewogCS5tYWluX3BhdGggPSBtdDgxNjdf bXRrX2RkcF9tYWluLAogCS5tYWluX2xlbiA9IEFSUkFZX1NJWkUobXQ4MTY3X210a19kZHBfbWFp biksCisJLm1tc3lzX2Rldl9udW0gPSAxLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtf bW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTczX21tc3lzX2RyaXZlcl9kYXRhID0gewpAQCAtMjQzLDYg KzI0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE3 M19tbXN5c19kcml2ZXJfZGF0YSA9IHsKIAkubWFpbl9sZW4gPSBBUlJBWV9TSVpFKG10ODE3M19t dGtfZGRwX21haW4pLAogCS5leHRfcGF0aCA9IG10ODE3M19tdGtfZGRwX2V4dCwKIAkuZXh0X2xl biA9IEFSUkFZX1NJWkUobXQ4MTczX210a19kZHBfZXh0KSwKKwkubW1zeXNfZGV2X251bSA9IDEs CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSBtdDgxODNf bW1zeXNfZHJpdmVyX2RhdGEgPSB7CkBAIC0yNTAsNiArMjU1LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEgbXQ4MTgzX21tc3lzX2RyaXZlcl9kYXRhID0gewog CS5tYWluX2xlbiA9IEFSUkFZX1NJWkUobXQ4MTgzX210a19kZHBfbWFpbiksCiAJLmV4dF9wYXRo ID0gbXQ4MTgzX210a19kZHBfZXh0LAogCS5leHRfbGVuID0gQVJSQVlfU0laRShtdDgxODNfbXRr X2RkcF9leHQpLAorCS5tbXN5c19kZXZfbnVtID0gMSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE4Nl9tbXN5c19kcml2ZXJfZGF0YSA9IHsKQEAg LTI1Nyw2ICsyNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0 YSBtdDgxODZfbW1zeXNfZHJpdmVyX2RhdGEgPSB7CiAJLm1haW5fbGVuID0gQVJSQVlfU0laRSht dDgxODZfbXRrX2RkcF9tYWluKSwKIAkuZXh0X3BhdGggPSBtdDgxODZfbXRrX2RkcF9leHQsCiAJ LmV4dF9sZW4gPSBBUlJBWV9TSVpFKG10ODE4Nl9tdGtfZGRwX2V4dCksCisJLm1tc3lzX2Rldl9u dW0gPSAxLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfZHJpdmVyX2RhdGEg bXQ4MTkyX21tc3lzX2RyaXZlcl9kYXRhID0gewpAQCAtMjY0LDM2ICsyNzEsMTIyIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgbXRrX21tc3lzX2RyaXZlcl9kYXRhIG10ODE5Ml9tbXN5c19kcml2ZXJf ZGF0YSA9IHsKIAkubWFpbl9sZW4gPSBBUlJBWV9TSVpFKG10ODE5Ml9tdGtfZGRwX21haW4pLAog CS5leHRfcGF0aCA9IG10ODE5Ml9tdGtfZGRwX2V4dCwKIAkuZXh0X2xlbiA9IEFSUkFZX1NJWkUo bXQ4MTkyX210a19kZHBfZXh0KSwKKwkubW1zeXNfZGV2X251bSA9IDEsCiB9OwogCiBzdGF0aWMg Y29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSBtdDgxOTVfdmRvc3lzMF9kcml2ZXJf ZGF0YSA9IHsKIAkubWFpbl9wYXRoID0gbXQ4MTk1X210a19kZHBfbWFpbiwKIAkubWFpbl9sZW4g PSBBUlJBWV9TSVpFKG10ODE5NV9tdGtfZGRwX21haW4pLAorCS5tbXN5c19kZXZfbnVtID0gMSwK IH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19kcm1fb2ZfaWRzW10g PSB7CisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MDEtbW1zeXMiLAorCSAgLmRhdGEg PSAmbXQyNzAxX21tc3lzX2RyaXZlcl9kYXRhfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10NzYyMy1tbXN5cyIsCisJICAuZGF0YSA9ICZtdDc2MjNfbW1zeXNfZHJpdmVyX2RhdGF9LAor CXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzEyLW1tc3lzIiwKKwkgIC5kYXRhID0gJm10 MjcxMl9tbXN5c19kcml2ZXJfZGF0YX0sCisJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgx NjctbW1zeXMiLAorCSAgLmRhdGEgPSAmbXQ4MTY3X21tc3lzX2RyaXZlcl9kYXRhfSwKKwl7IC5j b21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE3My1tbXN5cyIsCisJICAuZGF0YSA9ICZtdDgxNzNf bW1zeXNfZHJpdmVyX2RhdGF9LAorCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTgzLW1t c3lzIiwKKwkgIC5kYXRhID0gJm10ODE4M19tbXN5c19kcml2ZXJfZGF0YX0sCisJeyAuY29tcGF0 aWJsZSA9ICJtZWRpYXRlayxtdDgxODYtbW1zeXMiLAorCSAgLmRhdGEgPSAmbXQ4MTg2X21tc3lz X2RyaXZlcl9kYXRhfSwKKwl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Mi1tbXN5cyIs CisJICAuZGF0YSA9ICZtdDgxOTJfbW1zeXNfZHJpdmVyX2RhdGF9LAorCXsgLmNvbXBhdGlibGUg PSAibWVkaWF0ZWssbXQ4MTk1LXZkb3N5czAiLAorCSAgLmRhdGEgPSAmbXQ4MTk1X3Zkb3N5czBf ZHJpdmVyX2RhdGF9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kcm1f b2ZfaWRzKTsKKworc3RhdGljIGludCBtdGtfZHJtX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwg dm9pZCAqZGF0YSkKK3sKKwlpZiAoIXN0cm5jbXAoZGV2X25hbWUoZGV2KSwgIm1lZGlhdGVrLWRy bSIsIHNpemVvZigibWVkaWF0ZWstZHJtIikgLSAxKSkKKwkJcmV0dXJuIHRydWU7CisJcmV0dXJu IGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBtdGtfZHJtX2dldF9hbGxfZHJtX3ByaXYoc3RydWN0 IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKmRybV9wcml2ID0gZGV2 X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqYWxsX2RybV9wcml2 W01BWF9DUlRDXTsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBoYW5kbGUgPSBkZXYtPnBhcmVudC0+ b2Zfbm9kZTsKKwljb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZDsKKwlzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5vZGU7CisJc3RydWN0IGRldmljZSAqZHJtX2RldjsKKwlpbnQgY250ID0gMDsK KwlpbnQgaSwgajsKKworCWZvcl9lYWNoX2NoaWxkX29mX25vZGUocGhhbmRsZS0+cGFyZW50LCBu b2RlKSB7CisJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CisKKwkJb2ZfaWQgPSBvZl9t YXRjaF9ub2RlKG10a19kcm1fb2ZfaWRzLCBub2RlKTsKKwkJaWYgKCFvZl9pZCkKKwkJCWNvbnRp bnVlOworCisJCXBkZXYgPSBvZl9maW5kX2RldmljZV9ieV9ub2RlKG5vZGUpOworCQlpZiAoIXBk ZXYpCisJCQljb250aW51ZTsKKworCQlkcm1fZGV2ID0gZGV2aWNlX2ZpbmRfY2hpbGQoJnBkZXYt PmRldiwgTlVMTCwgbXRrX2RybV9tYXRjaCk7CisJCWlmICghZHJtX2RldiB8fCAhZGV2X2dldF9k cnZkYXRhKGRybV9kZXYpKQorCQkJY29udGludWU7CisKKwkJYWxsX2RybV9wcml2W2NudF0gPSBk ZXZfZ2V0X2RydmRhdGEoZHJtX2Rldik7CisJCWlmIChhbGxfZHJtX3ByaXZbY250XSAmJiBhbGxf ZHJtX3ByaXZbY250XS0+bXRrX2RybV9ib3VuZCkKKwkJCWNudCsrOworCX0KKworCWlmIChkcm1f cHJpdi0+ZGF0YS0+bW1zeXNfZGV2X251bSA9PSBjbnQpIHsKKwkJZm9yIChpID0gMDsgaSA8IGNu dDsgaSsrKQorCQkJZm9yIChqID0gMDsgaiA8IGNudDsgaisrKQorCQkJCWFsbF9kcm1fcHJpdltq XS0+YWxsX2RybV9wcml2YXRlW2ldID0gYWxsX2RybV9wcml2W2ldOworCisJCXJldHVybiB0cnVl OworCX0KKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgbXRrX2RybV9maW5kX21t c3lzX2NvbXAoc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSwgaW50IGNvbXBfaWQpCit7 CisJY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAqZHJ2X2RhdGEgPSBwcml2YXRl LT5kYXRhOworCWludCBpOworCisJaWYgKGRydl9kYXRhLT5tYWluX3BhdGgpCisJCWZvciAoaSA9 IDA7IGkgPCBkcnZfZGF0YS0+bWFpbl9sZW47IGkrKykKKwkJCWlmIChkcnZfZGF0YS0+bWFpbl9w YXRoW2ldID09IGNvbXBfaWQpCisJCQkJcmV0dXJuIHRydWU7CisKKwlpZiAoZHJ2X2RhdGEtPmV4 dF9wYXRoKQorCQlmb3IgKGkgPSAwOyBpIDwgZHJ2X2RhdGEtPmV4dF9sZW47IGkrKykKKwkJCWlm IChkcnZfZGF0YS0+ZXh0X3BhdGhbaV0gPT0gY29tcF9pZCkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwor CWlmIChkcnZfZGF0YS0+dGhpcmRfcGF0aCkKKwkJZm9yIChpID0gMDsgaSA8IGRydl9kYXRhLT50 aGlyZF9sZW47IGkrKykKKwkJCWlmIChkcnZfZGF0YS0+dGhpcmRfcGF0aFtpXSA9PSBjb21wX2lk KQorCQkJCXJldHVybiB0cnVlOworCisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW50IG10 a19kcm1fa21zX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKIHsKIAlzdHJ1Y3QgbXRrX2Ry bV9wcml2YXRlICpwcml2YXRlID0gZHJtLT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgbXRrX2RybV9w cml2YXRlICpwcml2X247CiAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldjsKLQlzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wOworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBOVUxMOwogCXN0cnVj dCBkZXZpY2UgKmRtYV9kZXY7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBpLCBqOwogCiAJaWYgKGRy bV9maXJtd2FyZV9kcml2ZXJzX29ubHkoKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlpZiAoIWlv bW11X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190eXBlKSkKLQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7 Ci0KLQlwZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShwcml2YXRlLT5tdXRleF9ub2RlKTsK LQlpZiAoIXBkZXYpIHsKLQkJZGV2X2Vycihkcm0tPmRldiwgIldhaXRpbmcgZm9yIGRpc3AtbXV0 ZXggZGV2aWNlICVwT0ZcbiIsCi0JCQlwcml2YXRlLT5tdXRleF9ub2RlKTsKLQkJb2Zfbm9kZV9w dXQocHJpdmF0ZS0+bXV0ZXhfbm9kZSk7Ci0JCXJldHVybiAtRVBST0JFX0RFRkVSOwotCX0KLQlw cml2YXRlLT5tdXRleF9kZXYgPSAmcGRldi0+ZGV2OwotCiAJcmV0ID0gZHJtbV9tb2RlX2NvbmZp Z19pbml0KGRybSk7CiAJaWYgKHJldCkKIAkJZ290byBwdXRfbXV0ZXhfZGV2OwpAQCAtMzExLDMz ICs0MDQsNjEgQEAgc3RhdGljIGludCBtdGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkcm0pCiAJZHJtLT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZtdGtfZHJtX21vZGVfY29uZmlnX2Z1 bmNzOwogCWRybS0+bW9kZV9jb25maWcuaGVscGVyX3ByaXZhdGUgPSAmbXRrX2RybV9tb2RlX2Nv bmZpZ19oZWxwZXJzOwogCi0JcmV0ID0gY29tcG9uZW50X2JpbmRfYWxsKGRybS0+ZGV2LCBkcm0p OwotCWlmIChyZXQpCi0JCWdvdG8gcHV0X211dGV4X2RldjsKKwlmb3IgKGkgPSAwOyBpIDwgcHJp dmF0ZS0+ZGF0YS0+bW1zeXNfZGV2X251bTsgaSsrKSB7CisJCWRybS0+ZGV2X3ByaXZhdGUgPSBw cml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV07CisJCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChw cml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRldiwgZHJtKTsKKwkJaWYgKHJldCkKKwkJCWdv dG8gcHV0X211dGV4X2RldjsKKwl9CiAKIAkvKgotCSAqIFdlIGN1cnJlbnRseSBzdXBwb3J0IHR3 byBmaXhlZCBkYXRhIHN0cmVhbXMsIGVhY2ggb3B0aW9uYWwsCi0JICogYW5kIGVhY2ggc3RhdGlj YWxseSBhc3NpZ25lZCB0byBhIGNydGM6Ci0JICogT1ZMMCAtPiBDT0xPUjAgLT4gQUFMIC0+IE9E IC0+IFJETUEwIC0+IFVGT0UgLT4gRFNJMCAuLi4KKwkgKiAxLiBXZSBjdXJyZW50bHkgc3VwcG9y dCB0d28gZml4ZWQgZGF0YSBzdHJlYW1zLCBlYWNoIG9wdGlvbmFsLAorCSAqICAgIGFuZCBlYWNo IHN0YXRpY2FsbHkgYXNzaWduZWQgdG8gYSBjcnRjOgorCSAqICAgIE9WTDAgLT4gQ09MT1IwIC0+ IEFBTCAtPiBPRCAtPiBSRE1BMCAtPiBVRk9FIC0+IERTSTAgLi4uCisJICogMi4gRm9yIG11bHRp IG1tc3lzIGFyY2hpdGVjdHVyZSwgY3J0YyBwYXRoIGRhdGEgYXJlIGxvY2F0ZWQgaW4KKwkgKiAg ICBkaWZmZXJlbnQgZHJtIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmVzLiBMb29wIHRocm91Z2ggY3J0 YyBpbmRleCB0bworCSAqICAgIGNyZWF0ZSBjcnRjIGZyb20gdGhlIG1haW4gcGF0aCBhbmQgdGhl biBleHRfcGF0aCBhbmQgZmluYWxseSB0aGUKKwkgKiAgICB0aGlyZCBwYXRoLgorCSAqIDMuIFVz ZSBPVkwgZGV2aWNlIGZvciBhbGwgRE1BIG1lbW9yeSBhbGxvY2F0aW9ucwogCSAqLwotCXJldCA9 IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBwcml2YXRlLT5kYXRhLT5tYWluX3BhdGgsCi0JCQkJ ICBwcml2YXRlLT5kYXRhLT5tYWluX2xlbik7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gZXJyX2Nv bXBvbmVudF91bmJpbmQ7Ci0JLyogLi4uIGFuZCBPVkwxIC0+IENPTE9SMSAtPiBHQU1NQSAtPiBS RE1BMSAtPiBEUEkwLiAqLwotCXJldCA9IG10a19kcm1fY3J0Y19jcmVhdGUoZHJtLCBwcml2YXRl LT5kYXRhLT5leHRfcGF0aCwKLQkJCQkgIHByaXZhdGUtPmRhdGEtPmV4dF9sZW4pOwotCWlmIChy ZXQgPCAwKQotCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5kOwotCi0JcmV0ID0gbXRrX2RybV9j cnRjX2NyZWF0ZShkcm0sIHByaXZhdGUtPmRhdGEtPnRoaXJkX3BhdGgsCi0JCQkJICBwcml2YXRl LT5kYXRhLT50aGlyZF9sZW4pOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIGVycl9jb21wb25lbnRf dW5iaW5kOworCWZvciAoaSA9IDA7IGkgPCBNQVhfQ1JUQzsgaSsrKSB7CisJCWZvciAoaiA9IDA7 IGogPCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBqKyspIHsKKwkJCXByaXZfbiA9IHBy aXZhdGUtPmFsbF9kcm1fcHJpdmF0ZVtqXTsKKworCQkJaWYgKGkgPT0gMCAmJiBwcml2X24tPmRh dGEtPm1haW5fbGVuKSB7CisJCQkJcmV0ID0gbXRrX2RybV9jcnRjX2NyZWF0ZShkcm0sIHByaXZf bi0+ZGF0YS0+bWFpbl9wYXRoLAorCQkJCQkJCSAgcHJpdl9uLT5kYXRhLT5tYWluX2xlbiwgaik7 CisJCQkJaWYgKHJldCkKKwkJCQkJZ290byBlcnJfY29tcG9uZW50X3VuYmluZDsKKworCQkJCWlm ICghbnApCisJCQkJCW5wID0gcHJpdl9uLT5jb21wX25vZGVbcHJpdl9uLT5kYXRhLT5tYWluX3Bh dGhbMF1dOworCisJCQkJY29udGludWU7CisJCQl9IGVsc2UgaWYgKGkgPT0gMSAmJiBwcml2X24t PmRhdGEtPmV4dF9sZW4pIHsKKwkJCQlyZXQgPSBtdGtfZHJtX2NydGNfY3JlYXRlKGRybSwgcHJp dl9uLT5kYXRhLT5leHRfcGF0aCwKKwkJCQkJCQkgIHByaXZfbi0+ZGF0YS0+ZXh0X2xlbiwgaik7 CisJCQkJaWYgKHJldCkKKwkJCQkJZ290byBlcnJfY29tcG9uZW50X3VuYmluZDsKKworCQkJCWlm ICghbnApCisJCQkJCW5wID0gcHJpdl9uLT5jb21wX25vZGVbcHJpdl9uLT5kYXRhLT5leHRfcGF0 aFswXV07CisKKwkJCQljb250aW51ZTsKKwkJCX0gZWxzZSBpZiAoaSA9PSAyICYmIHByaXZfbi0+ ZGF0YS0+dGhpcmRfbGVuKSB7CisJCQkJcmV0ID0gbXRrX2RybV9jcnRjX2NyZWF0ZShkcm0sIHBy aXZfbi0+ZGF0YS0+dGhpcmRfcGF0aCwKKwkJCQkJCQkgIHByaXZfbi0+ZGF0YS0+dGhpcmRfbGVu LCBqKTsKKwkJCQlpZiAocmV0KQorCQkJCQlnb3RvIGVycl9jb21wb25lbnRfdW5iaW5kOworCisJ CQkJaWYgKCFucCkKKwkJCQkJbnAgPSBwcml2X24tPmNvbXBfbm9kZVtwcml2X24tPmRhdGEtPnRo aXJkX3BhdGhbMF1dOworCisJCQkJY29udGludWU7CisJCQl9CisJCX0KKwl9CiAKLQkvKiBVc2Ug T1ZMIGRldmljZSBmb3IgYWxsIERNQSBtZW1vcnkgYWxsb2NhdGlvbnMgKi8KLQlucCA9IHByaXZh dGUtPmNvbXBfbm9kZVtwcml2YXRlLT5kYXRhLT5tYWluX3BhdGhbMF1dID86Ci0JICAgICBwcml2 YXRlLT5jb21wX25vZGVbcHJpdmF0ZS0+ZGF0YS0+ZXh0X3BhdGhbMF1dOwogCXBkZXYgPSBvZl9m aW5kX2RldmljZV9ieV9ub2RlKG5wKTsKIAlpZiAoIXBkZXYpIHsKIAkJcmV0ID0gLUVOT0RFVjsK QEAgLTM0Niw3ICs0NjcsOCBAQCBzdGF0aWMgaW50IG10a19kcm1fa21zX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRybSkKIAl9CiAKIAlkbWFfZGV2ID0gJnBkZXYtPmRldjsKLQlwcml2YXRlLT5k bWFfZGV2ID0gZG1hX2RldjsKKwlmb3IgKGkgPSAwOyBpIDwgcHJpdmF0ZS0+ZGF0YS0+bW1zeXNf ZGV2X251bTsgaSsrKQorCQlwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRtYV9kZXYgPSBk bWFfZGV2OwogCiAJLyoKIAkgKiBDb25maWd1cmUgdGhlIERNQSBzZWdtZW50IHNpemUgdG8gbWFr ZSBzdXJlIHdlIGdldCBjb250aWd1b3VzIElPVkEKQEAgLTM2OCw5ICs0OTAsMTIgQEAgc3RhdGlj IGludCBtdGtfZHJtX2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCiAJcmV0dXJuIDA7 CiAKIGVycl9jb21wb25lbnRfdW5iaW5kOgotCWNvbXBvbmVudF91bmJpbmRfYWxsKGRybS0+ZGV2 LCBkcm0pOworCWZvciAoaSA9IDA7IGkgPCBwcml2YXRlLT5kYXRhLT5tbXN5c19kZXZfbnVtOyBp KyspCisJCWNvbXBvbmVudF91bmJpbmRfYWxsKHByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZVtpXS0+ ZGV2LCBkcm0pOwogcHV0X211dGV4X2RldjoKLQlwdXRfZGV2aWNlKHByaXZhdGUtPm11dGV4X2Rl dik7CisJZm9yIChpID0gMDsgaSA8IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW07IGkrKykK KwkJcHV0X2RldmljZShwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPm11dGV4X2Rldik7CisK IAlyZXR1cm4gcmV0OwogfQogCkBAIC00MTgsMTUgKzU0MywzNiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9kcml2ZXIgbXRrX2RybV9kcml2ZXIgPSB7CiBzdGF0aWMgaW50IG10a19kcm1fYmlu ZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0 ZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7 CiAJc3RydWN0IGRybV9kZXZpY2UgKmRybTsKLQlpbnQgcmV0OworCWludCByZXQsIGk7CisKKwlp ZiAoIWlvbW11X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190eXBlKSkKKwkJcmV0dXJuIC1FUFJPQkVf REVGRVI7CisKKwlwZGV2ID0gb2ZfZmluZF9kZXZpY2VfYnlfbm9kZShwcml2YXRlLT5tdXRleF9u b2RlKTsKKwlpZiAoIXBkZXYpIHsKKwkJZGV2X2VycihkZXYsICJXYWl0aW5nIGZvciBkaXNwLW11 dGV4IGRldmljZSAlcE9GXG4iLAorCQkJcHJpdmF0ZS0+bXV0ZXhfbm9kZSk7CisJCW9mX25vZGVf cHV0KHByaXZhdGUtPm11dGV4X25vZGUpOworCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKKwl9CisK Kwlwcml2YXRlLT5tdXRleF9kZXYgPSAmcGRldi0+ZGV2OworCXByaXZhdGUtPm10a19kcm1fYm91 bmQgPSB0cnVlOworCXByaXZhdGUtPmRldiA9IGRldjsKKworCWlmICghbXRrX2RybV9nZXRfYWxs X2RybV9wcml2KGRldikpCisJCXJldHVybiAwOwogCiAJZHJtID0gZHJtX2Rldl9hbGxvYygmbXRr X2RybV9kcml2ZXIsIGRldik7CiAJaWYgKElTX0VSUihkcm0pKQogCQlyZXR1cm4gUFRSX0VSUihk cm0pOwogCisJcHJpdmF0ZS0+ZHJtX21hc3RlciA9IHRydWU7CiAJZHJtLT5kZXZfcHJpdmF0ZSA9 IHByaXZhdGU7Ci0JcHJpdmF0ZS0+ZHJtID0gZHJtOworCWZvciAoaSA9IDA7IGkgPCBwcml2YXRl LT5kYXRhLT5tbXN5c19kZXZfbnVtOyBpKyspCisJCXByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZVtp XS0+ZHJtID0gZHJtOwogCiAJcmV0ID0gbXRrX2RybV9rbXNfaW5pdChkcm0pOwogCWlmIChyZXQg PCAwKQpAQCAtNDUxLDEwICs1OTcsMTQgQEAgc3RhdGljIHZvaWQgbXRrX2RybV91bmJpbmQoc3Ry dWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXZhdGUgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAotCWRybV9kZXZfdW5yZWdpc3Rlcihwcml2YXRlLT5kcm0p OwotCW10a19kcm1fa21zX2RlaW5pdChwcml2YXRlLT5kcm0pOwotCWRybV9kZXZfcHV0KHByaXZh dGUtPmRybSk7Ci0JcHJpdmF0ZS0+bnVtX3BpcGVzID0gMDsKKwkvKiBmb3IgbXVsdGkgbW1zeXMg ZGV2LCB1bnJlZ2lzdGVyIGRybSBkZXYgaW4gbW1zeXMgbWFzdGVyICovCisJaWYgKHByaXZhdGUt PmRybV9tYXN0ZXIpIHsKKwkJZHJtX2Rldl91bnJlZ2lzdGVyKHByaXZhdGUtPmRybSk7CisJCW10 a19kcm1fa21zX2RlaW5pdChwcml2YXRlLT5kcm0pOworCQlkcm1fZGV2X3B1dChwcml2YXRlLT5k cm0pOworCX0KKwlwcml2YXRlLT5tdGtfZHJtX2JvdW5kID0gZmFsc2U7CisJcHJpdmF0ZS0+ZHJt X21hc3RlciA9IGZhbHNlOwogCXByaXZhdGUtPmRybSA9IE5VTEw7CiB9CiAKQEAgLTU3NywyOSAr NzI3LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX2RkcF9jb21wX2R0 X2lkc1tdID0gewogCXsgfQogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg bXRrX2RybV9vZl9pZHNbXSA9IHsKLQl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcwMS1t bXN5cyIsCi0JICAuZGF0YSA9ICZtdDI3MDFfbW1zeXNfZHJpdmVyX2RhdGF9LAotCXsgLmNvbXBh dGlibGUgPSAibWVkaWF0ZWssbXQ3NjIzLW1tc3lzIiwKLQkgIC5kYXRhID0gJm10NzYyM19tbXN5 c19kcml2ZXJfZGF0YX0sCi0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDI3MTItbW1zeXMi LAotCSAgLmRhdGEgPSAmbXQyNzEyX21tc3lzX2RyaXZlcl9kYXRhfSwKLQl7IC5jb21wYXRpYmxl ID0gIm1lZGlhdGVrLG10ODE2Ny1tbXN5cyIsCi0JICAuZGF0YSA9ICZtdDgxNjdfbW1zeXNfZHJp dmVyX2RhdGF9LAotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLW1tc3lzIiwKLQkg IC5kYXRhID0gJm10ODE3M19tbXN5c19kcml2ZXJfZGF0YX0sCi0JeyAuY29tcGF0aWJsZSA9ICJt ZWRpYXRlayxtdDgxODMtbW1zeXMiLAotCSAgLmRhdGEgPSAmbXQ4MTgzX21tc3lzX2RyaXZlcl9k YXRhfSwKLQl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE4Ni1tbXN5cyIsCi0JICAuZGF0 YSA9ICZtdDgxODZfbW1zeXNfZHJpdmVyX2RhdGF9LAotCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0 ZWssbXQ4MTkyLW1tc3lzIiwKLQkgIC5kYXRhID0gJm10ODE5Ml9tbXN5c19kcml2ZXJfZGF0YX0s Ci0JeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTUtdmRvc3lzMCIsCi0JICAuZGF0YSA9 ICZtdDgxOTVfdmRvc3lzMF9kcml2ZXJfZGF0YX0sCi0JeyB9Ci19OwotTU9EVUxFX0RFVklDRV9U QUJMRShvZiwgbXRrX2RybV9vZl9pZHMpOwotCiBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRl di0+ZGV2OwpAQCAtNjI3LDYgKzc1NCwxMiBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCXByaXZhdGUtPmRhdGEgPSBvZl9pZC0+ZGF0 YTsKIAorCXByaXZhdGUtPmFsbF9kcm1fcHJpdmF0ZSA9IGRldm1fa21hbGxvY19hcnJheShkZXYs IHByaXZhdGUtPmRhdGEtPm1tc3lzX2Rldl9udW0sCisJCQkJCQkgICAgICBzaXplb2YoKnByaXZh dGUtPmFsbF9kcm1fcHJpdmF0ZSksCisJCQkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXBy aXZhdGUtPmFsbF9kcm1fcHJpdmF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKIAkvKiBJdGVyYXRl IG92ZXIgc2libGluZyBESVNQIGZ1bmN0aW9uIGJsb2NrcyAqLwogCWZvcl9lYWNoX2NoaWxkX29m X25vZGUocGhhbmRsZS0+cGFyZW50LCBub2RlKSB7CiAJCWNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgKm9mX2lkOwpAQCAtNjQ2LDcgKzc3OSwxMyBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJY29tcF90eXBlID0gKGVudW0gbXRrX2Rk cF9jb21wX3R5cGUpb2ZfaWQtPmRhdGE7CiAKIAkJaWYgKGNvbXBfdHlwZSA9PSBNVEtfRElTUF9N VVRFWCkgewotCQkJcHJpdmF0ZS0+bXV0ZXhfbm9kZSA9IG9mX25vZGVfZ2V0KG5vZGUpOworCQkJ aW50IGlkOworCisJCQlpZCA9IG9mX2FsaWFzX2dldF9pZChub2RlLCAibXV0ZXgiKTsKKwkJCWlm IChpZCA8IDAgfHwgaWQgPT0gcHJpdmF0ZS0+ZGF0YS0+bW1zeXNfaWQpIHsKKwkJCQlwcml2YXRl LT5tdXRleF9ub2RlID0gb2Zfbm9kZV9nZXQobm9kZSk7CisJCQkJZGV2X2RiZyhkZXYsICJnZXQg bXV0ZXggZm9yIG1tc3lzICVkIiwgcHJpdmF0ZS0+ZGF0YS0+bW1zeXNfaWQpOworCQkJfQogCQkJ Y29udGludWU7CiAJCX0KIApAQCAtNjU3LDYgKzc5Niw5IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJY29udGludWU7CiAJCX0KIAor CQlpZiAoIW10a19kcm1fZmluZF9tbXN5c19jb21wKHByaXZhdGUsIGNvbXBfaWQpKQorCQkJY29u dGludWU7CisKIAkJcHJpdmF0ZS0+Y29tcF9ub2RlW2NvbXBfaWRdID0gb2Zfbm9kZV9nZXQobm9k ZSk7CiAKIAkJLyoKQEAgLTczMiwxNiArODc0LDIwIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9zeXNf cHJlcGFyZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJp dmF0ZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBw cml2YXRlLT5kcm07CiAKLQlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKGRy bSk7CisJaWYgKHByaXZhdGUtPmRybV9tYXN0ZXIpCisJCXJldHVybiBkcm1fbW9kZV9jb25maWdf aGVscGVyX3N1c3BlbmQoZHJtKTsKKwllbHNlCisJCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9p ZCBtdGtfZHJtX3N5c19jb21wbGV0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG10 a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCXN0cnVjdCBk cm1fZGV2aWNlICpkcm0gPSBwcml2YXRlLT5kcm07Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gMDsK IAotCXJldCA9IGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKGRybSk7CisJaWYgKHByaXZh dGUtPmRybV9tYXN0ZXIpCisJCXJldCA9IGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfcmVzdW1lKGRy bSk7CiAJaWYgKHJldCkKIAkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVzdW1lXG4iKTsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgKaW5kZXggZDI3NTYxZTVlMjc0Li44 ZDNmZjMyYjUzNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJt X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCkBAIC0y OSwxNCArMjksMTYgQEAgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSB7CiAJdW5zaWduZWQg aW50IHRoaXJkX2xlbjsKIAogCWJvb2wgc2hhZG93X3JlZ2lzdGVyOworCXVuc2lnbmVkIGludCBt bXN5c19pZDsKKwl1bnNpZ25lZCBpbnQgbW1zeXNfZGV2X251bTsKIH07CiAKIHN0cnVjdCBtdGtf ZHJtX3ByaXZhdGUgewogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07CiAJc3RydWN0IGRldmljZSAq ZG1hX2RldjsKLQotCXVuc2lnbmVkIGludCBudW1fcGlwZXM7Ci0KKwlib29sIG10a19kcm1fYm91 bmQ7CisJYm9vbCBkcm1fbWFzdGVyOworCXN0cnVjdCBkZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZGV2 aWNlX25vZGUgKm11dGV4X25vZGU7CiAJc3RydWN0IGRldmljZSAqbXV0ZXhfZGV2OwogCXN0cnVj dCBkZXZpY2UgKm1tc3lzX2RldjsKQEAgLTQ0LDYgKzQ2LDggQEAgc3RydWN0IG10a19kcm1fcHJp dmF0ZSB7CiAJc3RydWN0IG10a19kZHBfY29tcCBkZHBfY29tcFtERFBfQ09NUE9ORU5UX0lEX01B WF07CiAJY29uc3Qgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSAqZGF0YTsKIAlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3VzcGVuZF9zdGF0ZTsKKwl1bnNpZ25lZCBpbnQgbWJveF9pbmRl eDsKKwlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICoqYWxsX2RybV9wcml2YXRlOwogfTsKIAogZXh0 ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3BfYWFsX2RyaXZlcjsKLS0gCjIuMTgu MAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK