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 0DA87C433E0 for ; Mon, 15 Mar 2021 11:57:48 +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 D908B64E90 for ; Mon, 15 Mar 2021 11:57:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D908B64E90 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=kZ2C7tIa1IWyymMip9MyURocUOJtqMpPePoDHMxNJuM=; b=g7QufLWWC/7bgPnC15YAz7raf GGzkzz5nhpUg5TEJfR1CoctZ6HLnhG+awl8Ij84uP0Q8ULCCIfTYn3v623kZIPC/bUf70wCjkY5Ra SS+eJtC5++K6VrGPbgEStAek19ZUsM77H0TMg3inxkcl194uCQBgWBdwwXkOsS2kzOCSjn2N+mSj/ B2cl/Dg07+uABWGoHFvfFEYQbwI+8Klv5D8unh35fFqB1i8chtF0U7Qq7R4nbRxv+mpmBA0ZN9msF mCh0+RBqyD7RoV08+aJJ4zYxoA8KWUz0QTOZLBjjYsukSll8VV8/CjuALWEkwyhKCHVnOcKSMXmSv kjBildhAg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLlmL-00FiYv-8a; Mon, 15 Mar 2021 11:53:15 +0000 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlc8-00Fgrk-RR for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:42:55 +0000 Received: by mail-wr1-x432.google.com with SMTP id v15so8523351wrx.4 for ; Mon, 15 Mar 2021 04:42:24 -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=HapdoTE6GA2BDYZIWB7IpdygWH/oJ1iHlnpu/icVdRI=; b=pvssBeB3TdxZ2AbjGAqR4hg0qWb8yJvjs9E4WFaHFpnFuNuBAihNuSVML1YOpvuKwV aECo1MDHCTX5KCcWMWB0zFL+puD1atzuTL/u4S1CXVNoiTdNwd3ZWbvs6+5h71ztGxWq pFV+6tLnyk496TOwRGBLLmc5bhk1dNIDDfUIV2giAdWJEzeluDh7Kch7TfyOqN4q52Hp G1BZ2doiziUFlrWr5xfLQx3lf5nTBhemK7Z31NWvl+FO7pchRpFvY9QmVpxGT0ajNPS9 71kRlvMXXue5sMSxMVPC5UhDK0RyumHPpK2ie4qB7oykeOnr4R/pH8CG9q0GTpt2Ncyw HL2g== 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=HapdoTE6GA2BDYZIWB7IpdygWH/oJ1iHlnpu/icVdRI=; b=X38ff0e4w44NBVbDLO7lKkRw6yBKCw8U7IhY9Mz7TckSMIk/rBqPYbUW4Z38pferIL fhMdPUX8iludaroViEsVo2FmAC43PE5EYGMI0HdauewzAmD8c6dVZGS3J0vOJ4GS0GmH 4eBa8i6QYE8JtGb/MrpSLWSLw9UGYEXyrMq3LEQ448OsJO/CgQYdFSrTo2dv/4VmriVM stO4btDT2zfcQcOGh4stLwXsZ0JG3705dpJqpJItppH98+LqAth3xKoXM4sKLENQa8Rs 4lpbL3Lolb9SgmL/6pyMzcsPMpSmmxyBcVBQUvTly6sbDRkVrfifrq21b9C/3nDg7+lr TBcA== X-Gm-Message-State: AOAM532fuBQ+Y/7ivK4CZMkrfRo/luPRZeRuMceHYmMNr4X98hdmeLpH rwAbmlA9Xf5/uhnlG9BoF7M= X-Google-Smtp-Source: ABdhPJwadfGIAbyrZXAySTTpmmQ8Nyfth81YK3ZBDE87tcnEesvCYpSCqmEl4KvaCwoEIdRnFjFT7Q== X-Received: by 2002:a05:6000:ca:: with SMTP id q10mr26292491wrx.371.1615808543938; Mon, 15 Mar 2021 04:42:23 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:23 -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 07/22] pinctrl: add a pincontrol driver for BCM6328 Date: Mon, 15 Mar 2021 12:41:59 +0100 Message-Id: <20210315114214.3096-8-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_114226_993780_5EB6D915 X-CRM114-Status: GOOD ( 23.23 ) 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzMjguIEJDTTYzMjggc3VwcG9ydHMgbXV4 aW5nIDMyIHBpbnMgYXMKR1BJT3MsIGFzIExFRHMgZm9yIHRoZSBpbnRlZ3JhdGVkIExFRCBjb250 cm9sbGVyLCBvciB2YXJpb3VzIG90aGVyCmZ1bmN0aW9ucy4gSXRzIHBpbmNvbnRyb2wgbXV4IHJl Z2lzdGVycyBhbHNvIGNvbnRyb2wgb3RoZXIgYXNwZWN0cywgbGlrZQpzd2l0Y2hpbmcgdGhlIHNl Y29uZCBVU0IgcG9ydCBiZXR3ZWVuIGhvc3QgYW5kIGRldmljZSBtb2RlLgoKQ28tZGV2ZWxvcGVk LWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogw4Fs dmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KLS0tCiB2Nzogbm8gY2hh bmdlcwogdjY6IG5vIGNoYW5nZXMKIHY1OiBhZGQgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgQW5keSBT aGV2Y2hlbmtvCiB2NDogbm8gY2hhbmdlcwogdjM6IHVzZSBuZXcgc2hhcmVkIGNvZGUKIHYyOiBz d2l0Y2ggdG8gR1BJT19SRUdNQVAKCiBkcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgICAgICAg ICAgIHwgICA4ICsKIGRyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUgICAgICAgICAgfCAgIDEg KwogZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjguYyB8IDQwNCArKysrKysrKysr KysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA0MTMgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzI4LmMKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgYi9kcml2ZXJzL3BpbmN0cmwv YmNtL0tjb25maWcKaW5kZXggODgyZjE5YmRjMjQzLi5kMzVlNWQzZmUyNmYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZworKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL0tj b25maWcKQEAgLTM2LDYgKzM2LDE0IEBAIGNvbmZpZyBQSU5DVFJMX0JDTTYzWFgKIAlzZWxlY3Qg UElOQ09ORgogCXNlbGVjdCBQSU5NVVgKIAorY29uZmlnIFBJTkNUUkxfQkNNNjMyOAorCWJvb2wg IkJyb2FkY29tIEJDTTYzMjggR1BJTyBkcml2ZXIiCisJZGVwZW5kcyBvbiAoQk1JUFNfR0VORVJJ QyB8fCBDT01QSUxFX1RFU1QpCisJc2VsZWN0IFBJTkNUUkxfQkNNNjNYWAorCWRlZmF1bHQgQk1J UFNfR0VORVJJQworCWhlbHAKKwkgICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgQnJvYWRjb20g QkNNNjMyOCBHUElPIGRyaXZlci4KKwogY29uZmlnIFBJTkNUUkxfSVBST0NfR1BJTwogCWJvb2wg IkJyb2FkY29tIGlQcm9jIEdQSU8gKHdpdGggUElOQ09ORikgZHJpdmVyIgogCWRlcGVuZHMgb24g T0ZfR1BJTyAmJiAoQVJDSF9CQ01fSVBST0MgfHwgQ09NUElMRV9URVNUKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZSBiL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZp bGUKaW5kZXggMGUzY2Y5YjE1YzY1Li41N2U1NDM0YTZkYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv cGluY3RybC9iY20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQpA QCAtNCw2ICs0LDcgQEAKIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTI4MVhYKQkJKz0gcGluY3Ry bC1iY20yODF4eC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ00yODM1KQkJKz0gcGluY3RybC1i Y20yODM1Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzWFgpCQkrPSBwaW5jdHJsLWJjbTYz eHgubworb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjMyOCkJCSs9IHBpbmN0cmwtYmNtNjMyOC5v CiBvYmotJChDT05GSUdfUElOQ1RSTF9JUFJPQ19HUElPKQkrPSBwaW5jdHJsLWlwcm9jLWdwaW8u bwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQ1lHTlVTX01VWCkJKz0gcGluY3RybC1jeWdudXMtbXV4 Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX05TKQkJKz0gcGluY3RybC1ucy5vCmRpZmYgLS1naXQg YS9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyOC5jIGIvZHJpdmVycy9waW5jdHJs L2JjbS9waW5jdHJsLWJjbTYzMjguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmM5ZWZjZTYwMDU1MAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGluY3RybC9i Y20vcGluY3RybC1iY202MzI4LmMKQEAgLTAsMCArMSw0MDQgQEAKKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERyaXZlciBmb3IgQkNNNjMyOCBHUElPIHVuaXQg KHBpbmN0cmwgKyBHUElPKQorICoKKyAqIENvcHlyaWdodCAoQykgMjAyMSDDgWx2YXJvIEZlcm7D oW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE2IEpv bmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGlu dXgvYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CisjaW5jbHVkZSA8bGlu dXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5j dHJsL3Bpbm11eC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1 ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSAiLi4vcGluY3RybC11dGlscy5oIgorCisj aW5jbHVkZSAicGluY3RybC1iY202M3h4LmgiCisKKyNkZWZpbmUgQkNNNjMyOF9OVU1fR1BJT1MJ MzIKKworI2RlZmluZSBCQ002MzI4X01PREVfUkVHCTB4MTgKKyNkZWZpbmUgQkNNNjMyOF9NVVhf SElfUkVHCTB4MWMKKyNkZWZpbmUgQkNNNjMyOF9NVVhfTE9fUkVHCTB4MjAKKyNkZWZpbmUgQkNN NjMyOF9NVVhfT1RIRVJfUkVHCTB4MjQKKyNkZWZpbmUgIEJDTTYzMjhfTVVYX01BU0sJR0VOTUFT SygxLCAwKQorCitzdHJ1Y3QgYmNtNjMyOF9waW5ncm91cCB7CisJY29uc3QgY2hhciAqbmFtZTsK Kwljb25zdCB1bnNpZ25lZCAqIGNvbnN0IHBpbnM7CisJY29uc3QgdW5zaWduZWQgbnVtX3BpbnM7 Cit9OworCitzdHJ1Y3QgYmNtNjMyOF9mdW5jdGlvbiB7CisJY29uc3QgY2hhciAqbmFtZTsKKwlj b25zdCBjaGFyICogY29uc3QgKmdyb3VwczsKKwljb25zdCB1bnNpZ25lZCBudW1fZ3JvdXBzOwor CisJdW5zaWduZWQgbW9kZV92YWw6MTsKKwl1bnNpZ25lZCBtdXhfdmFsOjI7Cit9OworCitzdGF0 aWMgY29uc3QgdW5zaWduZWQgaW50IGJjbTYzMjhfbXV4W10gPSB7CisJQkNNNjMyOF9NVVhfTE9f UkVHLAorCUJDTTYzMjhfTVVYX0hJX1JFRywKKwlCQ002MzI4X01VWF9PVEhFUl9SRUcKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBiY202MzI4X3BpbnNbXSA9IHsK KwlQSU5DVFJMX1BJTigwLCAiZ3BpbzAiKSwKKwlQSU5DVFJMX1BJTigxLCAiZ3BpbzEiKSwKKwlQ SU5DVFJMX1BJTigyLCAiZ3BpbzIiKSwKKwlQSU5DVFJMX1BJTigzLCAiZ3BpbzMiKSwKKwlQSU5D VFJMX1BJTig0LCAiZ3BpbzQiKSwKKwlQSU5DVFJMX1BJTig1LCAiZ3BpbzUiKSwKKwlQSU5DVFJM X1BJTig2LCAiZ3BpbzYiKSwKKwlQSU5DVFJMX1BJTig3LCAiZ3BpbzciKSwKKwlQSU5DVFJMX1BJ Tig4LCAiZ3BpbzgiKSwKKwlQSU5DVFJMX1BJTig5LCAiZ3BpbzkiKSwKKwlQSU5DVFJMX1BJTigx MCwgImdwaW8xMCIpLAorCVBJTkNUUkxfUElOKDExLCAiZ3BpbzExIiksCisJUElOQ1RSTF9QSU4o MTIsICJncGlvMTIiKSwKKwlQSU5DVFJMX1BJTigxMywgImdwaW8xMyIpLAorCVBJTkNUUkxfUElO KDE0LCAiZ3BpbzE0IiksCisJUElOQ1RSTF9QSU4oMTUsICJncGlvMTUiKSwKKwlQSU5DVFJMX1BJ TigxNiwgImdwaW8xNiIpLAorCVBJTkNUUkxfUElOKDE3LCAiZ3BpbzE3IiksCisJUElOQ1RSTF9Q SU4oMTgsICJncGlvMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgImdwaW8xOSIpLAorCVBJTkNUUkxf UElOKDIwLCAiZ3BpbzIwIiksCisJUElOQ1RSTF9QSU4oMjEsICJncGlvMjEiKSwKKwlQSU5DVFJM X1BJTigyMiwgImdwaW8yMiIpLAorCVBJTkNUUkxfUElOKDIzLCAiZ3BpbzIzIiksCisJUElOQ1RS TF9QSU4oMjQsICJncGlvMjQiKSwKKwlQSU5DVFJMX1BJTigyNSwgImdwaW8yNSIpLAorCVBJTkNU UkxfUElOKDI2LCAiZ3BpbzI2IiksCisJUElOQ1RSTF9QSU4oMjcsICJncGlvMjciKSwKKwlQSU5D VFJMX1BJTigyOCwgImdwaW8yOCIpLAorCVBJTkNUUkxfUElOKDI5LCAiZ3BpbzI5IiksCisJUElO Q1RSTF9QSU4oMzAsICJncGlvMzAiKSwKKwlQSU5DVFJMX1BJTigzMSwgImdwaW8zMSIpLAorCisJ LyoKKwkgKiBObyBpZGVhIHdoZXJlIHRoZXkgcmVhbGx5IGFyZTsgc28gbGV0J3MgcHV0IHRoZW0g YWNjb3JkaW5nCisJICogdG8gdGhlaXIgbXV4IG9mZnNldHMuCisJICovCisJUElOQ1RSTF9QSU4o MzYsICJoc3NwaV9jczEiKSwKKwlQSU5DVFJMX1BJTigzOCwgInVzYl9wMiIpLAorfTsKKworc3Rh dGljIHVuc2lnbmVkIGdwaW8wX3BpbnNbXSA9IHsgMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8x X3BpbnNbXSA9IHsgMSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yX3BpbnNbXSA9IHsgMiB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW8zX3BpbnNbXSA9IHsgMyB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW80X3BpbnNbXSA9IHsgNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW81X3BpbnNbXSA9IHsgNSB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW82X3BpbnNbXSA9IHsgNiB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW83X3BpbnNbXSA9IHsgNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW84X3BpbnNbXSA9IHsg OCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW85X3BpbnNbXSA9IHsgOSB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xMF9waW5zW10gPSB7IDEwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzExX3BpbnNb XSA9IHsgMTEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTJfcGluc1tdID0geyAxMiB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8xM19waW5zW10gPSB7IDEzIH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzE0X3BpbnNbXSA9IHsgMTQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTVfcGluc1tdID0geyAx NSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xNl9waW5zW10gPSB7IDE2IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzE3X3BpbnNbXSA9IHsgMTcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMThfcGlu c1tdID0geyAxOCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xOV9waW5zW10gPSB7IDE5IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzIwX3BpbnNbXSA9IHsgMjAgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjFfcGluc1tdID0geyAyMSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMl9waW5zW10gPSB7 IDIyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzIzX3BpbnNbXSA9IHsgMjMgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMjRfcGluc1tdID0geyAyNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNV9w aW5zW10gPSB7IDI1IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI2X3BpbnNbXSA9IHsgMjYgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMjdfcGluc1tdID0geyAyNyB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8yOF9waW5zW10gPSB7IDI4IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI5X3BpbnNbXSA9 IHsgMjkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzBfcGluc1tdID0geyAzMCB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW8zMV9waW5zW10gPSB7IDMxIH07CisKK3N0YXRpYyB1bnNpZ25lZCBoc3Nw aV9jczFfcGluc1tdID0geyAzNiB9Oworc3RhdGljIHVuc2lnbmVkIHVzYl9wb3J0MV9waW5zW10g PSB7IDM4IH07CisKKyNkZWZpbmUgQkNNNjMyOF9HUk9VUChuKQkJCQkJXAorCXsJCQkJCQkJXAor CQkubmFtZSA9ICNuLAkJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCQlcCisJCS5udW1fcGlu cyA9IEFSUkFZX1NJWkUobiMjX3BpbnMpLAkJXAorCX0KKworc3RhdGljIHN0cnVjdCBiY202MzI4 X3Bpbmdyb3VwIGJjbTYzMjhfZ3JvdXBzW10gPSB7CisJQkNNNjMyOF9HUk9VUChncGlvMCksCisJ QkNNNjMyOF9HUk9VUChncGlvMSksCisJQkNNNjMyOF9HUk9VUChncGlvMiksCisJQkNNNjMyOF9H Uk9VUChncGlvMyksCisJQkNNNjMyOF9HUk9VUChncGlvNCksCisJQkNNNjMyOF9HUk9VUChncGlv NSksCisJQkNNNjMyOF9HUk9VUChncGlvNiksCisJQkNNNjMyOF9HUk9VUChncGlvNyksCisJQkNN NjMyOF9HUk9VUChncGlvOCksCisJQkNNNjMyOF9HUk9VUChncGlvOSksCisJQkNNNjMyOF9HUk9V UChncGlvMTApLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzExKSwKKwlCQ002MzI4X0dST1VQKGdwaW8x MiksCisJQkNNNjMyOF9HUk9VUChncGlvMTMpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzE0KSwKKwlC Q002MzI4X0dST1VQKGdwaW8xNSksCisJQkNNNjMyOF9HUk9VUChncGlvMTYpLAorCUJDTTYzMjhf R1JPVVAoZ3BpbzE3KSwKKwlCQ002MzI4X0dST1VQKGdwaW8xOCksCisJQkNNNjMyOF9HUk9VUChn cGlvMTkpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzIwKSwKKwlCQ002MzI4X0dST1VQKGdwaW8yMSks CisJQkNNNjMyOF9HUk9VUChncGlvMjIpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzIzKSwKKwlCQ002 MzI4X0dST1VQKGdwaW8yNCksCisJQkNNNjMyOF9HUk9VUChncGlvMjUpLAorCUJDTTYzMjhfR1JP VVAoZ3BpbzI2KSwKKwlCQ002MzI4X0dST1VQKGdwaW8yNyksCisJQkNNNjMyOF9HUk9VUChncGlv MjgpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzI5KSwKKwlCQ002MzI4X0dST1VQKGdwaW8zMCksCisJ QkNNNjMyOF9HUk9VUChncGlvMzEpLAorCisJQkNNNjMyOF9HUk9VUChoc3NwaV9jczEpLAorCUJD TTYzMjhfR1JPVVAodXNiX3BvcnQxKSwKK307CisKKy8qIEdQSU9fTU9ERSAqLworc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBsZWRfZ3JvdXBzW10gPSB7CisJImdwaW8wIiwKKwkiZ3BpbzEiLAor CSJncGlvMiIsCisJImdwaW8zIiwKKwkiZ3BpbzQiLAorCSJncGlvNSIsCisJImdwaW82IiwKKwki Z3BpbzciLAorCSJncGlvOCIsCisJImdwaW85IiwKKwkiZ3BpbzEwIiwKKwkiZ3BpbzExIiwKKwki Z3BpbzEyIiwKKwkiZ3BpbzEzIiwKKwkiZ3BpbzE0IiwKKwkiZ3BpbzE1IiwKKwkiZ3BpbzE2IiwK KwkiZ3BpbzE3IiwKKwkiZ3BpbzE4IiwKKwkiZ3BpbzE5IiwKKwkiZ3BpbzIwIiwKKwkiZ3BpbzIx IiwKKwkiZ3BpbzIyIiwKKwkiZ3BpbzIzIiwKK307CisKKy8qIFBJTk1VWF9TRUwgKi8KK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3Qgc2VyaWFsX2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJncGlv NiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfY2xrX2dyb3Vw c1tdID0geworCSJncGlvNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGluZXRf YWN0X2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzExIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3QgcGNpZV9jbGtyZXFfZ3JvdXBzW10gPSB7CisJImdwaW8xNiIsCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkwX2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8y NSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkxX2FjdF9sZWRfZ3JvdXBz W10gPSB7CisJImdwaW8yNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHky X2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8yNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IGVwaHkzX2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8yOCIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGhzc3BpX2NzMV9ncm91cHNbXSA9IHsKKwkiaHNzcGlf Y3MxIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1c2JfaG9zdF9wb3J0X2dyb3Vw c1tdID0geworCSJ1c2JfcG9ydDEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1 c2JfZGV2aWNlX3BvcnRfZ3JvdXBzW10gPSB7CisJInVzYl9wb3J0MSIsCit9OworCisjZGVmaW5l IEJDTTYzMjhfTU9ERV9GVU4obikJCQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwK KwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUo biMjX2dyb3VwcyksCVwKKwkJLm1vZGVfdmFsID0gMSwJCQkJXAorCX0KKworI2RlZmluZSBCQ002 MzI4X01VWF9GVU4obiwgbXV4KQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAor CQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShu IyNfZ3JvdXBzKSwJXAorCQkubXV4X3ZhbCA9IG11eCwJCQkJXAorCX0KKworc3RhdGljIGNvbnN0 IHN0cnVjdCBiY202MzI4X2Z1bmN0aW9uIGJjbTYzMjhfZnVuY3NbXSA9IHsKKwlCQ002MzI4X01P REVfRlVOKGxlZCksCisJQkNNNjMyOF9NVVhfRlVOKHNlcmlhbF9sZWRfZGF0YSwgMiksCisJQkNN NjMyOF9NVVhfRlVOKHNlcmlhbF9sZWRfY2xrLCAyKSwKKwlCQ002MzI4X01VWF9GVU4oaW5ldF9h Y3RfbGVkLCAxKSwKKwlCQ002MzI4X01VWF9GVU4ocGNpZV9jbGtyZXEsIDIpLAorCUJDTTYzMjhf TVVYX0ZVTihlcGh5MF9hY3RfbGVkLCAxKSwKKwlCQ002MzI4X01VWF9GVU4oZXBoeTFfYWN0X2xl ZCwgMSksCisJQkNNNjMyOF9NVVhfRlVOKGVwaHkyX2FjdF9sZWQsIDEpLAorCUJDTTYzMjhfTVVY X0ZVTihlcGh5M19hY3RfbGVkLCAxKSwKKwlCQ002MzI4X01VWF9GVU4oaHNzcGlfY3MxLCAyKSwK KwlCQ002MzI4X01VWF9GVU4odXNiX2hvc3RfcG9ydCwgMSksCisJQkNNNjMyOF9NVVhfRlVOKHVz Yl9kZXZpY2VfcG9ydCwgMiksCit9OworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBiY202 MzI4X211eF9vZmYodW5zaWduZWQgaW50IHBpbikKK3sKKwlyZXR1cm4gYmNtNjMyOF9tdXhbcGlu IC8gMTZdOworfQorCitzdGF0aWMgaW50IGJjbTYzMjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQo c3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYz MjhfZ3JvdXBzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMjhfcGluY3RybF9nZXRf Z3JvdXBfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVuc2lnbmVk IGdyb3VwKQoreworCXJldHVybiBiY202MzI4X2dyb3Vwc1tncm91cF0ubmFtZTsKK30KKworc3Rh dGljIGludCBiY202MzI4X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0cmxfZGV2 ICpwY3RsZGV2LAorCQkJCQkgIHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNpZ25lZCAqKnBpbnMs CisJCQkJCSAgdW5zaWduZWQgKm51bV9waW5zKQoreworCSpwaW5zID0gYmNtNjMyOF9ncm91cHNb Z3JvdXBdLnBpbnM7CisJKm51bV9waW5zID0gYmNtNjMyOF9ncm91cHNbZ3JvdXBdLm51bV9waW5z OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyOF9waW5jdHJsX2dldF9mdW5j X2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJSQVlfU0la RShiY202MzI4X2Z1bmNzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMjhfcGluY3Ry bF9nZXRfZnVuY19uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSB1bnNp Z25lZCBzZWxlY3RvcikKK3sKKwlyZXR1cm4gYmNtNjMyOF9mdW5jc1tzZWxlY3Rvcl0ubmFtZTsK K30KKworc3RhdGljIGludCBiY202MzI4X3BpbmN0cmxfZ2V0X2dyb3VwcyhzdHJ1Y3QgcGluY3Ry bF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3IsCisJCQkJICAgICAg Y29uc3QgY2hhciAqIGNvbnN0ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2lnbmVkICogY29uc3Qg bnVtX2dyb3VwcykKK3sKKwkqZ3JvdXBzID0gYmNtNjMyOF9mdW5jc1tzZWxlY3Rvcl0uZ3JvdXBz OworCSpudW1fZ3JvdXBzID0gYmNtNjMyOF9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3VwczsKKwor CXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBiY202MzI4X3Jtd19tdXgoc3RydWN0IGJjbTYz eHhfcGluY3RybCAqcGMsIHVuc2lnbmVkIHBpbiwKKwkJCSAgICB1bnNpZ25lZCBpbnQgbW9kZSwg dW5zaWduZWQgaW50IG11eCkKK3sKKwlpZiAocGluIDwgQkNNNjMyOF9OVU1fR1BJT1MpCisJCXJl Z21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjMyOF9NT0RFX1JFRywgQklUKHBpbiksCisJ CQkJICAgbW9kZSA/IEJJVChwaW4pIDogMCk7CisKKwlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJl Z3MsIGJjbTYzMjhfbXV4X29mZihwaW4pLAorCQkJICAgQkNNNjMyOF9NVVhfTUFTSyA8PCAoKHBp biAlIDE2KSAqIDIpLAorCQkJICAgbXV4IDw8ICgocGluICUgMTYpICogMikpOworfQorCitzdGF0 aWMgaW50IGJjbTYzMjhfcGluY3RybF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRl diwKKwkJCQkgICB1bnNpZ25lZCBzZWxlY3RvciwgdW5zaWduZWQgZ3JvdXApCit7CisJc3RydWN0 IGJjbTYzeHhfcGluY3RybCAqcGMgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsK Kwljb25zdCBzdHJ1Y3QgYmNtNjMyOF9waW5ncm91cCAqcGcgPSAmYmNtNjMyOF9ncm91cHNbZ3Jv dXBdOworCWNvbnN0IHN0cnVjdCBiY202MzI4X2Z1bmN0aW9uICpmID0gJmJjbTYzMjhfZnVuY3Nb c2VsZWN0b3JdOworCisJYmNtNjMyOF9ybXdfbXV4KHBjLCBwZy0+cGluc1swXSwgZi0+bW9kZV92 YWwsIGYtPm11eF92YWwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyOF9n cGlvX3JlcXVlc3RfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICAg ICAgc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2UsCisJCQkJICAgICAgIHVuc2lnbmVk IG9mZnNldCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dl dF9kcnZkYXRhKHBjdGxkZXYpOworCisJLyogZGlzYWJsZSBhbGwgZnVuY3Rpb25zIHVzaW5nIHRo aXMgcGluICovCisJYmNtNjMyOF9ybXdfbXV4KHBjLCBvZmZzZXQsIDAsIDApOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGluY3RybF9vcHMgYmNtNjMyOF9wY3RsX29wcyA9IHsK KwkuZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwLAorCS5kdF9ub2RlX3RvX21h cCA9IHBpbmNvbmZfZ2VuZXJpY19kdF9ub2RlX3RvX21hcF9waW4sCisJLmdldF9ncm91cF9uYW1l ID0gYmNtNjMyOF9waW5jdHJsX2dldF9ncm91cF9uYW1lLAorCS5nZXRfZ3JvdXBfcGlucyA9IGJj bTYzMjhfcGluY3RybF9nZXRfZ3JvdXBfcGlucywKKwkuZ2V0X2dyb3Vwc19jb3VudCA9IGJjbTYz MjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQsCit9OworCitzdGF0aWMgc3RydWN0IHBpbm11eF9v cHMgYmNtNjMyOF9wbXhfb3BzID0geworCS5nZXRfZnVuY3Rpb25fZ3JvdXBzID0gYmNtNjMyOF9w aW5jdHJsX2dldF9ncm91cHMsCisJLmdldF9mdW5jdGlvbl9uYW1lID0gYmNtNjMyOF9waW5jdHJs X2dldF9mdW5jX25hbWUsCisJLmdldF9mdW5jdGlvbnNfY291bnQgPSBiY202MzI4X3BpbmN0cmxf Z2V0X2Z1bmNfY291bnQsCisJLmdwaW9fcmVxdWVzdF9lbmFibGUgPSBiY202MzI4X2dwaW9fcmVx dWVzdF9lbmFibGUsCisJLnNldF9tdXggPSBiY202MzI4X3BpbmN0cmxfc2V0X211eCwKKwkuc3Ry aWN0ID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsX3Nv YyBiY202MzI4X3NvYyA9IHsKKwkubmdwaW9zID0gQkNNNjMyOF9OVU1fR1BJT1MsCisJLm5waW5z ID0gQVJSQVlfU0laRShiY202MzI4X3BpbnMpLAorCS5wY3RsX29wcyA9ICZiY202MzI4X3BjdGxf b3BzLAorCS5waW5zID0gYmNtNjMyOF9waW5zLAorCS5wbXhfb3BzID0gJmJjbTYzMjhfcG14X29w cywKK307CisKK3N0YXRpYyBpbnQgYmNtNjMyOF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIGJjbTYzeHhfcGluY3RybF9wcm9iZShwZGV2LCAm YmNtNjMyOF9zb2MsIE5VTEwpOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBiY202MzI4X3BpbmN0cmxfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImJyY20sYmNt NjMyOC1waW5jdHJsIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CisKK3N0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIGJjbTYzMjhfcGluY3RybF9kcml2ZXIgPSB7CisJLnByb2JlID0g YmNtNjMyOF9waW5jdHJsX3Byb2JlLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImJjbTYzMjgt cGluY3RybCIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGJjbTYzMjhfcGluY3RybF9tYXRjaCwKKwl9 LAorfTsKKworYnVpbHRpbl9wbGF0Zm9ybV9kcml2ZXIoYmNtNjMyOF9waW5jdHJsX2RyaXZlcik7 Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==