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=-13.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,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 B1950C433E0 for ; Mon, 15 Mar 2021 12:04:01 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 781BA64E90 for ; Mon, 15 Mar 2021 12:04:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 781BA64E90 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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:To:From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=BehBE18Hw+R7GISuRkK2XPl8Ld8HTWmHUFVsVgfssiU=; b=a9dEak7966KxFe5nqJf0uGuB6 xfDG7fqWIwwLxYuDIdne3Mi7VMq8BtNjVNQoxFz8Dpf20yiBwwicnuX80IppBt3OW+1+nYS8i9l5G beDpsi+4KOiZ5capWT0hfpa8T//Fz9lwx8b1yjyv793Pe5yfGhbPZTdCNx2LtSza+qFi+Rfc9juWG ZDqi84upfL9p8Y7TWtqRsKRotdV1GSdMJNfaXnt+uzv7rKJG13q7f1Y442uMuFypLvZ2F55tIBP6e 7tBvjSroOKgPUNw1PrCJocJwhfIbMak98eTRufV8DDBFm6CRA1UGHIjCgh33lPuLfK8NMhY5go6eH z0yIymsIw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLlt6-00Fjlz-Tf; Mon, 15 Mar 2021 12:00:28 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlcH-00FguC-GC for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:43:05 +0000 Received: by mail-wm1-x331.google.com with SMTP id y124-20020a1c32820000b029010c93864955so20057266wmy.5 for ; Mon, 15 Mar 2021 04:42:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=dOYoxINTfJSWe6E+B99ZLAkTbRDqTK3CwKHMIBKB1Nk=; b=BMkHzUvITdH0ViJhy22yv07ETC20r7IDoSjhoOotQDtEoapM5PLTtJJXJmqj7uBE43 3NGZfqLoSHZkxRbubrVJdf5NOtgLmmoVwSpnILjN3aeWTaAeaEHewIo3gY3af3Hx1g6o rwHrvuZbp159NMZNlAyLeuIxFvrY4ab6c8N4Ic6/PpCMvNU/rbXg26du6vQ4q4XD9O8q vjbZwMqxvAGpGTvGF9WJR5Ec+RonVUJ+2+q+PF2D969ZxJOE0fR3saJ0UBhbW8We6r3o BtM16NRS2Ppw5FAzi1CRUDMSipF+TUkyHoaOf9QwpgZTx1Q/TUFyfninPrh7A4VmlDIj OgWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dOYoxINTfJSWe6E+B99ZLAkTbRDqTK3CwKHMIBKB1Nk=; b=BPpj2aLfM86PKDQ3vsY8JSn2yLQanD1jFbTemyzp6KyhV0K+QxJFI49epvHirqLWfZ 8kJ0cQBlyItO0tLqRwBwGYEtP4mfQuinBtk5lCBKdAw52s3rw+j4Gk1xnM5M9OxU0bJC aV4/IRcj/YFtDOv7OhBkLkRbwftYWDYEes3qglOZICUxHEJLqmTEl/DOMkRVXfxO/jxp R0LEa0F5CL3EIELote+Y0n3vrpInBLrafniFSyPqvUm8tlrXJCArQy7mKBcBZhbo12D6 FXeRf4un3vIIGJ72+/FjzoHtc1bkL2zQzqSsgCQntC+4/9qlEFqsFbbZ2ZwFqB9WteJU nwug== X-Gm-Message-State: AOAM533n9b7yLDaugIszKU5dAUV45Gkfz7iw2QL5yD+w3/r2dS2yxB2L Wz1qi5NMO2KIZfLyrxCd2sU= X-Google-Smtp-Source: ABdhPJypJ3WUVOKjJa9bP3b2OJVh74nVqXDXma3NA3lgxHEtdKIT9WF4YryvfChm+cSwVmLvkiVrpw== X-Received: by 2002:a05:600c:2282:: with SMTP id 2mr25658780wmf.93.1615808553087; Mon, 15 Mar 2021 04:42:33 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:32 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Lee Jones , Michael Walle , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Jonas Gorski , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 16/22] pinctrl: add a pincontrol driver for BCM6368 Date: Mon, 15 Mar 2021 12:42:08 +0100 Message-Id: <20210315114214.3096-17-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210315114214.3096-1-noltari@gmail.com> References: <20210315114214.3096-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210315_114300_920708_6BFA117B X-CRM114-Status: GOOD ( 22.13 ) 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzNjguIEJDTTYzNjggYWxsb3dzIG11eGlu ZyB0aGUgZmlyc3QgMzIKR1BJT3Mgb250byBhbHRlcm5hdGl2ZSBmdW5jdGlvbnMuIE5vdCBhbGwg YXJlIGRvY3VtZW50ZWQuCgpDby1kZXZlbG9wZWQtYnk6IEpvbmFzIEdvcnNraSA8am9uYXMuZ29y c2tpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRh cmlAZ21haWwuY29tPgotLS0KIHY3OiBubyBjaGFuZ2VzCiB2Njogbm8gY2hhbmdlcwogdjU6IGFk ZCBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBBbmR5IFNoZXZjaGVua28KIHY0OiBubyBjaGFuZ2VzCiB2 MzogdXNlIG5ldyBzaGFyZWQgY29kZQogdjI6IHN3aXRjaCB0byBHUElPX1JFR01BUAoKIGRyaXZl cnMvcGluY3RybC9iY20vS2NvbmZpZyAgICAgICAgICAgfCAgIDggKwogZHJpdmVycy9waW5jdHJs L2JjbS9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0 cmwtYmNtNjM2OC5jIHwgNTIzICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDUzMiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waW5j dHJsL2JjbS9waW5jdHJsLWJjbTYzNjguYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9i Y20vS2NvbmZpZyBiL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZwppbmRleCBkMzEwMWQ1ZTc1 MGYuLmFhYmQ0Yjc2MmFlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmln CisrKyBiL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZwpAQCAtNjAsNiArNjAsMTQgQEAgY29u ZmlnIFBJTkNUUkxfQkNNNjM2MgogCWhlbHAKIAkgICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUg QnJvYWRjb20gQkNNNjM2MiBHUElPIGRyaXZlci4KIAorY29uZmlnIFBJTkNUUkxfQkNNNjM2OAor CWJvb2wgIkJyb2FkY29tIEJDTTYzNjggR1BJTyBkcml2ZXIiCisJZGVwZW5kcyBvbiAoQk1JUFNf R0VORVJJQyB8fCBDT01QSUxFX1RFU1QpCisJc2VsZWN0IFBJTkNUUkxfQkNNNjNYWAorCWRlZmF1 bHQgQk1JUFNfR0VORVJJQworCWhlbHAKKwkgICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgQnJv YWRjb20gQkNNNjM2OCBHUElPIGRyaXZlci4KKwogY29uZmlnIFBJTkNUUkxfSVBST0NfR1BJTwog CWJvb2wgIkJyb2FkY29tIGlQcm9jIEdQSU8gKHdpdGggUElOQ09ORikgZHJpdmVyIgogCWRlcGVu ZHMgb24gT0ZfR1BJTyAmJiAoQVJDSF9CQ01fSVBST0MgfHwgQ09NUElMRV9URVNUKQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZSBiL2RyaXZlcnMvcGluY3RybC9iY20v TWFrZWZpbGUKaW5kZXggYjliMDllNWI5MTRjLi5hMTMzMWJiOTY4MGUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtl ZmlsZQpAQCAtNyw2ICs3LDcgQEAgb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjNYWCkJCSs9IHBp bmN0cmwtYmNtNjN4eC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzI4KQkJKz0gcGluY3Ry bC1iY202MzI4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzNTgpCQkrPSBwaW5jdHJsLWJj bTYzNTgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjM2MikJCSs9IHBpbmN0cmwtYmNtNjM2 Mi5vCitvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzY4KQkJKz0gcGluY3RybC1iY202MzY4Lm8K IG9iai0kKENPTkZJR19QSU5DVFJMX0lQUk9DX0dQSU8pCSs9IHBpbmN0cmwtaXByb2MtZ3Bpby5v CiBvYmotJChDT05GSUdfUElOQ1RSTF9DWUdOVVNfTVVYKQkrPSBwaW5jdHJsLWN5Z251cy1tdXgu bwogb2JqLSQoQ09ORklHX1BJTkNUUkxfTlMpCQkrPSBwaW5jdHJsLW5zLm8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzY4LmMgYi9kcml2ZXJzL3BpbmN0cmwv YmNtL3BpbmN0cmwtYmNtNjM2OC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uODM4MDk1ZjllODkwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2Jj bS9waW5jdHJsLWJjbTYzNjguYwpAQCAtMCwwICsxLDUyMyBAQAorLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjArCisvKgorICogRHJpdmVyIGZvciBCQ002MzY4IEdQSU8gdW5pdCAo cGluY3RybCArIEdQSU8pCisgKgorICogQ29weXJpZ2h0IChDKSAyMDIxIMOBbHZhcm8gRmVybsOh bmRleiBSb2phcyA8bm9sdGFyaUBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSm9u YXMgR29yc2tpIDxqb25hcy5nb3Jza2lAZ21haWwuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51 eC9iaXRzLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L3BpbmN0 cmwvcGlubXV4Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVk ZSA8bGludXgvcmVnbWFwLmg+CisKKyNpbmNsdWRlICIuLi9waW5jdHJsLXV0aWxzLmgiCisKKyNp bmNsdWRlICJwaW5jdHJsLWJjbTYzeHguaCIKKworI2RlZmluZSBCQ002MzY4X05VTV9HUElPUwkz OAorCisjZGVmaW5lIEJDTTYzNjhfTU9ERV9SRUcJMHgxOAorI2RlZmluZSBCQ002MzY4X0JBU0VN T0RFX1JFRwkweDM4CisjZGVmaW5lICBCQ002MzY4X0JBU0VNT0RFX01BU0sJMHg3CisjZGVmaW5l ICBCQ002MzY4X0JBU0VNT0RFX0dQSU8JMHgwCisjZGVmaW5lICBCQ002MzY4X0JBU0VNT0RFX1VB UlQxCTB4MQorCitzdHJ1Y3QgYmNtNjM2OF9waW5ncm91cCB7CisJY29uc3QgY2hhciAqbmFtZTsK Kwljb25zdCB1bnNpZ25lZCAqIGNvbnN0IHBpbnM7CisJY29uc3QgdW5zaWduZWQgbnVtX3BpbnM7 Cit9OworCitzdHJ1Y3QgYmNtNjM2OF9mdW5jdGlvbiB7CisJY29uc3QgY2hhciAqbmFtZTsKKwlj b25zdCBjaGFyICogY29uc3QgKmdyb3VwczsKKwljb25zdCB1bnNpZ25lZCBudW1fZ3JvdXBzOwor CisJdW5zaWduZWQgZGlyX291dDoxNjsKKwl1bnNpZ25lZCBiYXNlbW9kZTozOworfTsKKworc3Ry dWN0IGJjbTYzNjhfcHJpdiB7CisJc3RydWN0IHJlZ21hcF9maWVsZCAqb3ZlcmxheXM7Cit9Owor CisjZGVmaW5lIEJDTTYzNjhfQkFTRU1PREVfUElOKGEsIGIpCQlcCisJewkJCQkJXAorCQkubnVt YmVyID0gYSwJCQlcCisJCS5uYW1lID0gYiwJCQlcCisJCS5kcnZfZGF0YSA9ICh2b2lkICopdHJ1 ZQlcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgYmNtNjM2OF9w aW5zW10gPSB7CisJUElOQ1RSTF9QSU4oMCwgImdwaW8wIiksCisJUElOQ1RSTF9QSU4oMSwgImdw aW8xIiksCisJUElOQ1RSTF9QSU4oMiwgImdwaW8yIiksCisJUElOQ1RSTF9QSU4oMywgImdwaW8z IiksCisJUElOQ1RSTF9QSU4oNCwgImdwaW80IiksCisJUElOQ1RSTF9QSU4oNSwgImdwaW81Iiks CisJUElOQ1RSTF9QSU4oNiwgImdwaW82IiksCisJUElOQ1RSTF9QSU4oNywgImdwaW83IiksCisJ UElOQ1RSTF9QSU4oOCwgImdwaW84IiksCisJUElOQ1RSTF9QSU4oOSwgImdwaW85IiksCisJUElO Q1RSTF9QSU4oMTAsICJncGlvMTAiKSwKKwlQSU5DVFJMX1BJTigxMSwgImdwaW8xMSIpLAorCVBJ TkNUUkxfUElOKDEyLCAiZ3BpbzEyIiksCisJUElOQ1RSTF9QSU4oMTMsICJncGlvMTMiKSwKKwlQ SU5DVFJMX1BJTigxNCwgImdwaW8xNCIpLAorCVBJTkNUUkxfUElOKDE1LCAiZ3BpbzE1IiksCisJ UElOQ1RSTF9QSU4oMTYsICJncGlvMTYiKSwKKwlQSU5DVFJMX1BJTigxNywgImdwaW8xNyIpLAor CVBJTkNUUkxfUElOKDE4LCAiZ3BpbzE4IiksCisJUElOQ1RSTF9QSU4oMTksICJncGlvMTkiKSwK KwlQSU5DVFJMX1BJTigyMCwgImdwaW8yMCIpLAorCVBJTkNUUkxfUElOKDIxLCAiZ3BpbzIxIiks CisJUElOQ1RSTF9QSU4oMjIsICJncGlvMjIiKSwKKwlQSU5DVFJMX1BJTigyMywgImdwaW8yMyIp LAorCVBJTkNUUkxfUElOKDI0LCAiZ3BpbzI0IiksCisJUElOQ1RSTF9QSU4oMjUsICJncGlvMjUi KSwKKwlQSU5DVFJMX1BJTigyNiwgImdwaW8yNiIpLAorCVBJTkNUUkxfUElOKDI3LCAiZ3BpbzI3 IiksCisJUElOQ1RSTF9QSU4oMjgsICJncGlvMjgiKSwKKwlQSU5DVFJMX1BJTigyOSwgImdwaW8y OSIpLAorCUJDTTYzNjhfQkFTRU1PREVfUElOKDMwLCAiZ3BpbzMwIiksCisJQkNNNjM2OF9CQVNF TU9ERV9QSU4oMzEsICJncGlvMzEiKSwKKwlCQ002MzY4X0JBU0VNT0RFX1BJTigzMiwgImdwaW8z MiIpLAorCUJDTTYzNjhfQkFTRU1PREVfUElOKDMzLCAiZ3BpbzMzIiksCisJUElOQ1RSTF9QSU4o MzQsICJncGlvMzQiKSwKKwlQSU5DVFJMX1BJTigzNSwgImdwaW8zNSIpLAorCVBJTkNUUkxfUElO KDM2LCAiZ3BpbzM2IiksCisJUElOQ1RSTF9QSU4oMzcsICJncGlvMzciKSwKK307CisKK3N0YXRp YyB1bnNpZ25lZCBncGlvMF9waW5zW10gPSB7IDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMV9w aW5zW10gPSB7IDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMl9waW5zW10gPSB7IDIgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvM19waW5zW10gPSB7IDMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv NF9waW5zW10gPSB7IDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNV9waW5zW10gPSB7IDUgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvNl9waW5zW10gPSB7IDYgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvN19waW5zW10gPSB7IDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOF9waW5zW10gPSB7IDgg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOV9waW5zW10gPSB7IDkgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMTBfcGluc1tdID0geyAxMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xMV9waW5zW10g PSB7IDExIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEyX3BpbnNbXSA9IHsgMTIgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMTNfcGluc1tdID0geyAxMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8x NF9waW5zW10gPSB7IDE0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE1X3BpbnNbXSA9IHsgMTUg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTZfcGluc1tdID0geyAxNiB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xN19waW5zW10gPSB7IDE3IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE4X3BpbnNb XSA9IHsgMTggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTlfcGluc1tdID0geyAxOSB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8yMF9waW5zW10gPSB7IDIwIH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzIxX3BpbnNbXSA9IHsgMjEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjJfcGluc1tdID0geyAy MiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yM19waW5zW10gPSB7IDIzIH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzI0X3BpbnNbXSA9IHsgMjQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjVfcGlu c1tdID0geyAyNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNl9waW5zW10gPSB7IDI2IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzI3X3BpbnNbXSA9IHsgMjcgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjhfcGluc1tdID0geyAyOCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yOV9waW5zW10gPSB7 IDI5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMwX3BpbnNbXSA9IHsgMzAgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMzFfcGluc1tdID0geyAzMSB9Oworc3RhdGljIHVuc2lnbmVkIHVhcnQxX2dy cF9waW5zW10gPSB7IDMwLCAzMSwgMzIsIDMzIH07CisKKyNkZWZpbmUgQkNNNjM2OF9HUk9VUChu KQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAorCQkucGlucyA9IG4jI19waW5z LAkJCVwKKwkJLm51bV9waW5zID0gQVJSQVlfU0laRShuIyNfcGlucyksCVwKKwl9CisKK3N0YXRp YyBzdHJ1Y3QgYmNtNjM2OF9waW5ncm91cCBiY202MzY4X2dyb3Vwc1tdID0geworCUJDTTYzNjhf R1JPVVAoZ3BpbzApLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzEpLAorCUJDTTYzNjhfR1JPVVAoZ3Bp bzIpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzMpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzQpLAorCUJD TTYzNjhfR1JPVVAoZ3BpbzUpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzYpLAorCUJDTTYzNjhfR1JP VVAoZ3BpbzcpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzgpLAorCUJDTTYzNjhfR1JPVVAoZ3Bpbzkp LAorCUJDTTYzNjhfR1JPVVAoZ3BpbzEwKSwKKwlCQ002MzY4X0dST1VQKGdwaW8xMSksCisJQkNN NjM2OF9HUk9VUChncGlvMTIpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzEzKSwKKwlCQ002MzY4X0dS T1VQKGdwaW8xNCksCisJQkNNNjM2OF9HUk9VUChncGlvMTUpLAorCUJDTTYzNjhfR1JPVVAoZ3Bp bzE2KSwKKwlCQ002MzY4X0dST1VQKGdwaW8xNyksCisJQkNNNjM2OF9HUk9VUChncGlvMTgpLAor CUJDTTYzNjhfR1JPVVAoZ3BpbzE5KSwKKwlCQ002MzY4X0dST1VQKGdwaW8yMCksCisJQkNNNjM2 OF9HUk9VUChncGlvMjEpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzIyKSwKKwlCQ002MzY4X0dST1VQ KGdwaW8yMyksCisJQkNNNjM2OF9HUk9VUChncGlvMjQpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzI1 KSwKKwlCQ002MzY4X0dST1VQKGdwaW8yNiksCisJQkNNNjM2OF9HUk9VUChncGlvMjcpLAorCUJD TTYzNjhfR1JPVVAoZ3BpbzI4KSwKKwlCQ002MzY4X0dST1VQKGdwaW8yOSksCisJQkNNNjM2OF9H Uk9VUChncGlvMzApLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzMxKSwKKwlCQ002MzY4X0dST1VQKHVh cnQxX2dycCksCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFuYWxvZ19hZmVfMF9n cm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBh bmFsb2dfYWZlXzFfZ3JvdXBzW10gPSB7CisJImdwaW8xIiwKK307CisKK3N0YXRpYyBjb25zdCBj aGFyICogY29uc3Qgc3lzX2lycV9ncm91cHNbXSA9IHsKKwkiZ3BpbzIiLAorfTsKKworc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBzZXJpYWxfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW8z IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2VyaWFsX2xlZF9jbGtfZ3JvdXBz W10gPSB7CisJImdwaW80IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW5ldF9s ZWRfZ3JvdXBzW10gPSB7CisJImdwaW81IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29u c3QgZXBoeTBfbGVkX2dyb3Vwc1tdID0geworCSJncGlvNiIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IGVwaHkxX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzciLAorfTsKKworc3Rh dGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5Ml9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW84IiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTNfbGVkX2dyb3Vwc1tdID0gewor CSJncGlvOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJvYm9zd19sZWRfZGF0 YV9ncm91cHNbXSA9IHsKKwkiZ3BpbzEwIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29u c3Qgcm9ib3N3X2xlZF9jbGtfZ3JvdXBzW10gPSB7CisJImdwaW8xMSIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IHJvYm9zd19sZWQwX2dyb3Vwc1tdID0geworCSJncGlvMTIiLAor fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByb2Jvc3dfbGVkMV9ncm91cHNbXSA9IHsK KwkiZ3BpbzEzIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX2RldmljZV9s ZWRfZ3JvdXBzW10gPSB7CisJImdwaW8xNCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IHBjaV9yZXExX2dyb3Vwc1tdID0geworCSJncGlvMTYiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBwY2lfZ250MV9ncm91cHNbXSA9IHsKKwkiZ3BpbzE3IiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGNpX2ludGJfZ3JvdXBzW10gPSB7CisJImdwaW8xOCIs Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjaV9yZXEwX2dyb3Vwc1tdID0gewor CSJncGlvMTkiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY2lfZ250MF9ncm91 cHNbXSA9IHsKKwkiZ3BpbzIwIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGNt Y2lhX2NkMV9ncm91cHNbXSA9IHsKKwkiZ3BpbzIyIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3QgcGNtY2lhX2NkMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzIzIiwKK307CisKK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgcGNtY2lhX3ZzMV9ncm91cHNbXSA9IHsKKwkiZ3BpbzI0IiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGNtY2lhX3ZzMl9ncm91cHNbXSA9IHsK KwkiZ3BpbzI1IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZWJpX2NzMl9ncm91 cHNbXSA9IHsKKwkiZ3BpbzI2IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZWJp X2NzM19ncm91cHNbXSA9IHsKKwkiZ3BpbzI3IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICog Y29uc3Qgc3BpX2NzMl9ncm91cHNbXSA9IHsKKwkiZ3BpbzI4IiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3Qgc3BpX2NzM19ncm91cHNbXSA9IHsKKwkiZ3BpbzI5IiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BpX2NzNF9ncm91cHNbXSA9IHsKKwkiZ3BpbzMwIiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BpX2NzNV9ncm91cHNbXSA9IHsKKwki Z3BpbzMxIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfZ3JvdXBzW10g PSB7CisJInVhcnQxX2dycCIsCit9OworCisjZGVmaW5lIEJDTTYzNjhfRlVOKG4sIG91dCkJCQkJ XAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMs CQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLmRpcl9v dXQgPSBvdXQsCQkJCVwKKwl9CisKKyNkZWZpbmUgQkNNNjM2OF9CQVNFTU9ERV9GVU4obiwgdmFs LCBvdXQpCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMj X2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAor CQkuYmFzZW1vZGUgPSBCQ002MzY4X0JBU0VNT0RFXyMjdmFsLAlcCisJCS5kaXJfb3V0ID0gb3V0 LAkJCQlcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTYzNjhfZnVuY3Rpb24gYmNtNjM2 OF9mdW5jc1tdID0geworCUJDTTYzNjhfRlVOKGFuYWxvZ19hZmVfMCwgMSksCisJQkNNNjM2OF9G VU4oYW5hbG9nX2FmZV8xLCAxKSwKKwlCQ002MzY4X0ZVTihzeXNfaXJxLCAxKSwKKwlCQ002MzY4 X0ZVTihzZXJpYWxfbGVkX2RhdGEsIDEpLAorCUJDTTYzNjhfRlVOKHNlcmlhbF9sZWRfY2xrLCAx KSwKKwlCQ002MzY4X0ZVTihpbmV0X2xlZCwgMSksCisJQkNNNjM2OF9GVU4oZXBoeTBfbGVkLCAx KSwKKwlCQ002MzY4X0ZVTihlcGh5MV9sZWQsIDEpLAorCUJDTTYzNjhfRlVOKGVwaHkyX2xlZCwg MSksCisJQkNNNjM2OF9GVU4oZXBoeTNfbGVkLCAxKSwKKwlCQ002MzY4X0ZVTihyb2Jvc3dfbGVk X2RhdGEsIDEpLAorCUJDTTYzNjhfRlVOKHJvYm9zd19sZWRfY2xrLCAxKSwKKwlCQ002MzY4X0ZV Tihyb2Jvc3dfbGVkMCwgMSksCisJQkNNNjM2OF9GVU4ocm9ib3N3X2xlZDEsIDEpLAorCUJDTTYz NjhfRlVOKHVzYl9kZXZpY2VfbGVkLCAxKSwKKwlCQ002MzY4X0ZVTihwY2lfcmVxMSwgMCksCisJ QkNNNjM2OF9GVU4ocGNpX2dudDEsIDApLAorCUJDTTYzNjhfRlVOKHBjaV9pbnRiLCAwKSwKKwlC Q002MzY4X0ZVTihwY2lfcmVxMCwgMCksCisJQkNNNjM2OF9GVU4ocGNpX2dudDAsIDApLAorCUJD TTYzNjhfRlVOKHBjbWNpYV9jZDEsIDApLAorCUJDTTYzNjhfRlVOKHBjbWNpYV9jZDIsIDApLAor CUJDTTYzNjhfRlVOKHBjbWNpYV92czEsIDApLAorCUJDTTYzNjhfRlVOKHBjbWNpYV92czIsIDAp LAorCUJDTTYzNjhfRlVOKGViaV9jczIsIDEpLAorCUJDTTYzNjhfRlVOKGViaV9jczMsIDEpLAor CUJDTTYzNjhfRlVOKHNwaV9jczIsIDEpLAorCUJDTTYzNjhfRlVOKHNwaV9jczMsIDEpLAorCUJD TTYzNjhfRlVOKHNwaV9jczQsIDEpLAorCUJDTTYzNjhfRlVOKHNwaV9jczUsIDEpLAorCUJDTTYz NjhfQkFTRU1PREVfRlVOKHVhcnQxLCBVQVJUMSwgMHg2KSwKK307CisKK3N0YXRpYyBpbnQgYmNt NjM2OF9waW5jdHJsX2dldF9ncm91cF9jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYp Cit7CisJcmV0dXJuIEFSUkFZX1NJWkUoYmNtNjM2OF9ncm91cHMpOworfQorCitzdGF0aWMgY29u c3QgY2hhciAqYmNtNjM2OF9waW5jdHJsX2dldF9ncm91cF9uYW1lKHN0cnVjdCBwaW5jdHJsX2Rl diAqcGN0bGRldiwKKwkJCQkJCSAgdW5zaWduZWQgZ3JvdXApCit7CisJcmV0dXJuIGJjbTYzNjhf Z3JvdXBzW2dyb3VwXS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzNjhfcGluY3RybF9nZXRf Z3JvdXBfcGlucyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCSAgdW5zaWduZWQg Z3JvdXAsIGNvbnN0IHVuc2lnbmVkICoqcGlucywKKwkJCQkJICB1bnNpZ25lZCAqbnVtX3BpbnMp Cit7CisJKnBpbnMgPSBiY202MzY4X2dyb3Vwc1tncm91cF0ucGluczsKKwkqbnVtX3BpbnMgPSBi Y202MzY4X2dyb3Vwc1tncm91cF0ubnVtX3BpbnM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBiY202MzY4X3BpbmN0cmxfZ2V0X2Z1bmNfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2ICpw Y3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzNjhfZnVuY3MpOworfQorCitzdGF0 aWMgY29uc3QgY2hhciAqYmNtNjM2OF9waW5jdHJsX2dldF9mdW5jX25hbWUoc3RydWN0IHBpbmN0 cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkJIHVuc2lnbmVkIHNlbGVjdG9yKQoreworCXJldHVybiBi Y202MzY4X2Z1bmNzW3NlbGVjdG9yXS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzNjhfcGlu Y3RybF9nZXRfZ3JvdXBzKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICAgICB1 bnNpZ25lZCBzZWxlY3RvciwKKwkJCQkgICAgICBjb25zdCBjaGFyICogY29uc3QgKipncm91cHMs CisJCQkJICAgICAgdW5zaWduZWQgKiBjb25zdCBudW1fZ3JvdXBzKQoreworCSpncm91cHMgPSBi Y202MzY4X2Z1bmNzW3NlbGVjdG9yXS5ncm91cHM7CisJKm51bV9ncm91cHMgPSBiY202MzY4X2Z1 bmNzW3NlbGVjdG9yXS5udW1fZ3JvdXBzOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg YmNtNjM2OF9waW5jdHJsX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJ CSAgIHVuc2lnbmVkIHNlbGVjdG9yLCB1bnNpZ25lZCBncm91cCkKK3sKKwlzdHJ1Y3QgYmNtNjN4 eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCXN0cnVj dCBiY202MzY4X3ByaXYgKnByaXYgPSBwYy0+ZHJpdmVyX2RhdGE7CisJY29uc3Qgc3RydWN0IGJj bTYzNjhfcGluZ3JvdXAgKnBnID0gJmJjbTYzNjhfZ3JvdXBzW2dyb3VwXTsKKwljb25zdCBzdHJ1 Y3QgYmNtNjM2OF9mdW5jdGlvbiAqZnVuID0gJmJjbTYzNjhfZnVuY3Nbc2VsZWN0b3JdOworCWlu dCBpLCBwaW47CisKKwlpZiAoZnVuLT5iYXNlbW9kZSkgeworCQl1bnNpZ25lZCBpbnQgbWFzayA9 IDA7CisKKwkJZm9yIChpID0gMDsgaSA8IHBnLT5udW1fcGluczsgaSsrKSB7CisJCQlwaW4gPSBw Zy0+cGluc1tpXTsKKwkJCWlmIChwaW4gPCBCQ002M1hYX0JBTktfR1BJT1MpCisJCQkJbWFzayB8 PSBCSVQocGluKTsKKwkJfQorCisJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2 OF9NT0RFX1JFRywgbWFzaywgMCk7CisJCXJlZ21hcF9maWVsZF93cml0ZShwcml2LT5vdmVybGF5 cywgZnVuLT5iYXNlbW9kZSk7CisJfSBlbHNlIHsKKwkJcGluID0gcGctPnBpbnNbMF07CisKKwkJ aWYgKGJjbTYzNjhfcGluc1twaW5dLmRydl9kYXRhKQorCQkJcmVnbWFwX2ZpZWxkX3dyaXRlKHBy aXYtPm92ZXJsYXlzLAorCQkJCQkgICBCQ002MzY4X0JBU0VNT0RFX0dQSU8pOworCisJCXJlZ21h cF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2OF9NT0RFX1JFRywgQklUKHBpbiksCisJCQkJ ICAgQklUKHBpbikpOworCX0KKworCWZvciAocGluID0gMDsgcGluIDwgcGctPm51bV9waW5zOyBw aW4rKykgeworCQlzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZTsKKwkJaW50IGh3X2dw aW8gPSBiY202MzY4X3BpbnNbcGluXS5udW1iZXI7CisKKwkJcmFuZ2UgPSBwaW5jdHJsX2ZpbmRf Z3Bpb19yYW5nZV9mcm9tX3BpbihwY3RsZGV2LCBod19ncGlvKTsKKwkJaWYgKHJhbmdlKSB7CisJ CQlzdHJ1Y3QgZ3Bpb19jaGlwICpnYyA9IHJhbmdlLT5nYzsKKworCQkJaWYgKGZ1bi0+ZGlyX291 dCAmIEJJVChwaW4pKQorCQkJCWdjLT5kaXJlY3Rpb25fb3V0cHV0KGdjLCBod19ncGlvLCAwKTsK KwkJCWVsc2UKKwkJCQlnYy0+ZGlyZWN0aW9uX2lucHV0KGdjLCBod19ncGlvKTsKKwkJfQorCX0K KworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbTYzNjhfZ3Bpb19yZXF1ZXN0X2VuYWJs ZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgIHN0cnVjdCBwaW5jdHJs X2dwaW9fcmFuZ2UgKnJhbmdlLAorCQkJCSAgICAgICB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3Ry dWN0IGJjbTYzeHhfcGluY3RybCAqcGMgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2 KTsKKwlzdHJ1Y3QgYmNtNjM2OF9wcml2ICpwcml2ID0gcGMtPmRyaXZlcl9kYXRhOworCisJaWYg KG9mZnNldCA+PSBCQ002M1hYX0JBTktfR1BJT1MgJiYgIWJjbTYzNjhfcGluc1tvZmZzZXRdLmRy dl9kYXRhKQorCQlyZXR1cm4gMDsKKworCS8qIGRpc2FibGUgYWxsIGZ1bmN0aW9ucyB1c2luZyB0 aGlzIHBpbiAqLworCWlmIChvZmZzZXQgPCBCQ002M1hYX0JBTktfR1BJT1MpCisJCXJlZ21hcF91 cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2OF9NT0RFX1JFRywgQklUKG9mZnNldCksIDApOwor CisJaWYgKGJjbTYzNjhfcGluc1tvZmZzZXRdLmRydl9kYXRhKQorCQlyZWdtYXBfZmllbGRfd3Jp dGUocHJpdi0+b3ZlcmxheXMsIEJDTTYzNjhfQkFTRU1PREVfR1BJTyk7CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHN0cnVjdCBwaW5jdHJsX29wcyBiY202MzY4X3BjdGxfb3BzID0geworCS5k dF9mcmVlX21hcCA9IHBpbmN0cmxfdXRpbHNfZnJlZV9tYXAsCisJLmR0X25vZGVfdG9fbWFwID0g cGluY29uZl9nZW5lcmljX2R0X25vZGVfdG9fbWFwX3BpbiwKKwkuZ2V0X2dyb3VwX25hbWUgPSBi Y202MzY4X3BpbmN0cmxfZ2V0X2dyb3VwX25hbWUsCisJLmdldF9ncm91cF9waW5zID0gYmNtNjM2 OF9waW5jdHJsX2dldF9ncm91cF9waW5zLAorCS5nZXRfZ3JvdXBzX2NvdW50ID0gYmNtNjM2OF9w aW5jdHJsX2dldF9ncm91cF9jb3VudCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGlubXV4X29wcyBi Y202MzY4X3BteF9vcHMgPSB7CisJLmdldF9mdW5jdGlvbl9ncm91cHMgPSBiY202MzY4X3BpbmN0 cmxfZ2V0X2dyb3VwcywKKwkuZ2V0X2Z1bmN0aW9uX25hbWUgPSBiY202MzY4X3BpbmN0cmxfZ2V0 X2Z1bmNfbmFtZSwKKwkuZ2V0X2Z1bmN0aW9uc19jb3VudCA9IGJjbTYzNjhfcGluY3RybF9nZXRf ZnVuY19jb3VudCwKKwkuZ3Bpb19yZXF1ZXN0X2VuYWJsZSA9IGJjbTYzNjhfZ3Bpb19yZXF1ZXN0 X2VuYWJsZSwKKwkuc2V0X211eCA9IGJjbTYzNjhfcGluY3RybF9zZXRfbXV4LAorCS5zdHJpY3Qg PSB0cnVlLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202M3h4X3BpbmN0cmxfc29jIGJj bTYzNjhfc29jID0geworCS5uZ3Bpb3MgPSBCQ002MzY4X05VTV9HUElPUywKKwkubnBpbnMgPSBB UlJBWV9TSVpFKGJjbTYzNjhfcGlucyksCisJLnBjdGxfb3BzID0gJmJjbTYzNjhfcGN0bF9vcHMs CisJLnBpbnMgPSBiY202MzY4X3BpbnMsCisJLnBteF9vcHMgPSAmYmNtNjM2OF9wbXhfb3BzLAor fTsKKworc3RhdGljIGludCBiY202MzY4X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcmVnX2ZpZWxkIG92ZXJsYXlzID0gUkVHX0ZJRUxEKEJD TTYzNjhfQkFTRU1PREVfUkVHLCAwLCAxNSk7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYt PmRldjsKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYzsKKwlzdHJ1Y3QgYmNtNjM2OF9wcml2 ICpwcml2OworCWludCBlcnI7CisKKwlwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpw cml2KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWVy ciA9IGJjbTYzeHhfcGluY3RybF9wcm9iZShwZGV2LCAmYmNtNjM2OF9zb2MsICh2b2lkICopIHBy aXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwlwYyA9IHBsYXRmb3JtX2dldF9kcnZk YXRhKHBkZXYpOworCisJcHJpdi0+b3ZlcmxheXMgPSBkZXZtX3JlZ21hcF9maWVsZF9hbGxvYyhk ZXYsIHBjLT5yZWdzLCBvdmVybGF5cyk7CisJaWYgKElTX0VSUihwcml2LT5vdmVybGF5cykpCisJ CXJldHVybiBQVFJfRVJSKHByaXYtPm92ZXJsYXlzKTsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBiY202MzY4X3BpbmN0cmxfbWF0Y2hbXSA9IHsK Kwl7IC5jb21wYXRpYmxlID0gImJyY20sYmNtNjM2OC1waW5jdHJsIiwgfSwKKwl7IC8qIHNlbnRp bmVsICovIH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGJjbTYzNjhfcGlu Y3RybF9kcml2ZXIgPSB7CisJLnByb2JlID0gYmNtNjM2OF9waW5jdHJsX3Byb2JlLAorCS5kcml2 ZXIgPSB7CisJCS5uYW1lID0gImJjbTYzNjgtcGluY3RybCIsCisJCS5vZl9tYXRjaF90YWJsZSA9 IGJjbTYzNjhfcGluY3RybF9tYXRjaCwKKwl9LAorfTsKKworYnVpbHRpbl9wbGF0Zm9ybV9kcml2 ZXIoYmNtNjM2OF9waW5jdHJsX2RyaXZlcik7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==