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 A8DE0C433E6 for ; Wed, 17 Mar 2021 14:41:28 +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 79EAE64F7F for ; Wed, 17 Mar 2021 14:41:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 79EAE64F7F 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=ZX5KlS8M99SPMTiXKf0xi2Lp9rlUCmrE5zfvpGOMARk=; b=TyymwYU7RekMM6q/XtGEpe9QA 9V0nMi0qpsIpegFaOeXI8iR423l/1cAZetby+s4Fm+mLZVKn06L8PxmtA69PQYdb9LFpgd4+hhG/y UpHwxKT3szEjFzL7hKQmuc9TCxihy2IIqwdjxS9JEpQEkY8cc5g/S8sS2pZSZQcIiFif0AN2Yt4RY ubQUZ0E/MoZKTnNbUHMhsFYgrK1Qb63L/dFNyDlDij6v0d3kvh9yej3U/cQTAtccX99kyP0rnsBm4 OXLfPgdMD5oFM5aAaHNqz1mqUM69s+N2LnojvceBAouaO2NJeCLuf0rPjsmP6CHVd21pjG8jLvIry jdSPZ/p2g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lMXKf-003I1a-QV; Wed, 17 Mar 2021 14:39:34 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lMXJN-003Hcz-37 for linux-arm-kernel@lists.infradead.org; Wed, 17 Mar 2021 14:38:15 +0000 Received: by mail-wr1-x434.google.com with SMTP id o16so2088725wrn.0 for ; Wed, 17 Mar 2021 07:38:12 -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=QXmtL0tPehyMvBwGk02Gw73pN4sYry5sUmLtUemCnLI=; b=LYyjeSzkQipuX2Dl3vo0jCjxZ7leXgbc24kf0oWzDzaYnWmwN5FiZVHWT+crQBhaTY 73ACG6xIBffPciTHtMYTRhuYZUAb9nJU4FLjio90WHWFOoshYN0ssgbofDPOn4rvwVBf yzUsEUGtNIc/g4B8QooOFaz/4auzZ/QwmsKIDxHDr5xgjwzCRnju1koWeAeg/MP2K1Th E7879jwtes4niuQwxvD5yalczzAKGefFvGSsbAC8iRxpudyaXqhagm2lcyIjvOKpV8Qu mLV+SmrI/Ya0henuOncI+KKgwty1ACv66XWkW//aQNHmRkz8O1a1WWxHeU0C34jbIegd rTQQ== 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=QXmtL0tPehyMvBwGk02Gw73pN4sYry5sUmLtUemCnLI=; b=Be9FviiiJqFmm9aKAyLuywu7Ed6in5c99rgk6aKWOSSI7S6VIBbPCZZHCisLI3Oh1h NiPNj3ho2BsEcMeX7mPryby1Qf1xhcQY0QrDGRzLPKnZGb0ykHaIPCwfWX918PZqabm+ pEv2wei9RUaIrXWyS0Arb7LscQDRPBmxc9LgRDu0+3t7O8yDUBKRNyWnwSd6fiIHcQsC vruPH5l6pv3+rynhlWsat+3EZmF6OK/aKXZNG+ULZnK56kJU0tbjNwvv3i4m/onpjvbY QYiBiLS1gYlMw4EvB60ASI10ydD6BWkiyjUNmVgUk4wYCZf456MEpdoeUVEpWFgTkyrZ RTMQ== X-Gm-Message-State: AOAM532bEVJfxLUOisppzPnf5FE/O7bNSHzwSTT+IHd380ubR8idnG0m d5MoOlpKineWoWvJV7J2UKM= X-Google-Smtp-Source: ABdhPJzLftiol17u5tEaIjz8adM7g7GceRvDuiFaCjEXfj1WqxuFDy83DG3DFTvKZIG5CgxJKLXe+A== X-Received: by 2002:a5d:4ecf:: with SMTP id s15mr4867651wrv.222.1615991892443; Wed, 17 Mar 2021 07:38:12 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id a75sm2518948wme.10.2021.03.17.07.38.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Mar 2021 07:38:12 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Lee Jones , Michael Walle , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Jonas Gorski , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 07/22] pinctrl: add a pincontrol driver for BCM6328 Date: Wed, 17 Mar 2021 15:37:48 +0100 Message-Id: <20210317143803.26127-8-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210317143803.26127-1-noltari@gmail.com> References: <20210317143803.26127-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210317_143813_972761_45058D0E X-CRM114-Status: GOOD ( 22.36 ) 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 dmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KLS0tCiB2ODogbm8gY2hh bmdlcwogdjc6IG5vIGNoYW5nZXMKIHY2OiBubyBjaGFuZ2VzCiB2NTogYWRkIGNoYW5nZXMgc3Vn Z2VzdGVkIGJ5IEFuZHkgU2hldmNoZW5rbwogdjQ6IG5vIGNoYW5nZXMKIHYzOiB1c2UgbmV3IHNo YXJlZCBjb2RlCiB2Mjogc3dpdGNoIHRvIEdQSU9fUkVHTUFQCgogZHJpdmVycy9waW5jdHJsL2Jj bS9LY29uZmlnICAgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxl ICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzI4LmMg fCA0MDQgKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNDEzIGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0 cmwtYmNtNjMyOC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnIGIv ZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCmluZGV4IDg4MmYxOWJkYzI0My4uZDM1ZTVkM2Zl MjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKKysrIGIvZHJpdmVy cy9waW5jdHJsL2JjbS9LY29uZmlnCkBAIC0zNiw2ICszNiwxNCBAQCBjb25maWcgUElOQ1RSTF9C Q002M1hYCiAJc2VsZWN0IFBJTkNPTkYKIAlzZWxlY3QgUElOTVVYCiAKK2NvbmZpZyBQSU5DVFJM X0JDTTYzMjgKKwlib29sICJCcm9hZGNvbSBCQ002MzI4IEdQSU8gZHJpdmVyIgorCWRlcGVuZHMg b24gKEJNSVBTX0dFTkVSSUMgfHwgQ09NUElMRV9URVNUKQorCXNlbGVjdCBQSU5DVFJMX0JDTTYz WFgKKwlkZWZhdWx0IEJNSVBTX0dFTkVSSUMKKwloZWxwCisJICAgU2F5IFkgaGVyZSB0byBlbmFi bGUgdGhlIEJyb2FkY29tIEJDTTYzMjggR1BJTyBkcml2ZXIuCisKIGNvbmZpZyBQSU5DVFJMX0lQ Uk9DX0dQSU8KIAlib29sICJCcm9hZGNvbSBpUHJvYyBHUElPICh3aXRoIFBJTkNPTkYpIGRyaXZl ciIKIAlkZXBlbmRzIG9uIE9GX0dQSU8gJiYgKEFSQ0hfQkNNX0lQUk9DIHx8IENPTVBJTEVfVEVT VCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUgYi9kcml2ZXJzL3Bp bmN0cmwvYmNtL01ha2VmaWxlCmluZGV4IDBlM2NmOWIxNWM2NS4uNTdlNTQzNGE2ZGI2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcGluY3Ry bC9iY20vTWFrZWZpbGUKQEAgLTQsNiArNCw3IEBACiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ00y ODFYWCkJCSs9IHBpbmN0cmwtYmNtMjgxeHgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNMjgz NSkJCSs9IHBpbmN0cmwtYmNtMjgzNS5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002M1hYKQkJ Kz0gcGluY3RybC1iY202M3h4Lm8KK29iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBw aW5jdHJsLWJjbTYzMjgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfSVBST0NfR1BJTykJKz0gcGlu Y3RybC1pcHJvYy1ncGlvLm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0NZR05VU19NVVgpCSs9IHBp bmN0cmwtY3lnbnVzLW11eC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9OUykJCSs9IHBpbmN0cmwt bnMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjguYyBi L2RyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzI4LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jOWVmY2U2MDA1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyOC5jCkBAIC0wLDAgKzEsNDA0IEBACisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsKKy8qCisgKiBEcml2ZXIgZm9yIEJD TTYzMjggR1BJTyB1bml0IChwaW5jdHJsICsgR1BJTykKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIw MjEgw4FsdmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KKyAqIENvcHly aWdodCAoQykgMjAxNiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+CisgKi8K KworI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2RyaXZlci5o PgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5j bHVkZSA8bGludXgvcGluY3RybC9waW5tdXguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9k ZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKworI2luY2x1ZGUgIi4uL3BpbmN0 cmwtdXRpbHMuaCIKKworI2luY2x1ZGUgInBpbmN0cmwtYmNtNjN4eC5oIgorCisjZGVmaW5lIEJD TTYzMjhfTlVNX0dQSU9TCTMyCisKKyNkZWZpbmUgQkNNNjMyOF9NT0RFX1JFRwkweDE4CisjZGVm aW5lIEJDTTYzMjhfTVVYX0hJX1JFRwkweDFjCisjZGVmaW5lIEJDTTYzMjhfTVVYX0xPX1JFRwkw eDIwCisjZGVmaW5lIEJDTTYzMjhfTVVYX09USEVSX1JFRwkweDI0CisjZGVmaW5lICBCQ002MzI4 X01VWF9NQVNLCUdFTk1BU0soMSwgMCkKKworc3RydWN0IGJjbTYzMjhfcGluZ3JvdXAgeworCWNv bnN0IGNoYXIgKm5hbWU7CisJY29uc3QgdW5zaWduZWQgKiBjb25zdCBwaW5zOworCWNvbnN0IHVu c2lnbmVkIG51bV9waW5zOworfTsKKworc3RydWN0IGJjbTYzMjhfZnVuY3Rpb24geworCWNvbnN0 IGNoYXIgKm5hbWU7CisJY29uc3QgY2hhciAqIGNvbnN0ICpncm91cHM7CisJY29uc3QgdW5zaWdu ZWQgbnVtX2dyb3VwczsKKworCXVuc2lnbmVkIG1vZGVfdmFsOjE7CisJdW5zaWduZWQgbXV4X3Zh bDoyOworfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBiY202MzI4X211eFtdID0gewor CUJDTTYzMjhfTVVYX0xPX1JFRywKKwlCQ002MzI4X01VWF9ISV9SRUcsCisJQkNNNjMyOF9NVVhf T1RIRVJfUkVHCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgYmNt NjMyOF9waW5zW10gPSB7CisJUElOQ1RSTF9QSU4oMCwgImdwaW8wIiksCisJUElOQ1RSTF9QSU4o MSwgImdwaW8xIiksCisJUElOQ1RSTF9QSU4oMiwgImdwaW8yIiksCisJUElOQ1RSTF9QSU4oMywg ImdwaW8zIiksCisJUElOQ1RSTF9QSU4oNCwgImdwaW80IiksCisJUElOQ1RSTF9QSU4oNSwgImdw aW81IiksCisJUElOQ1RSTF9QSU4oNiwgImdwaW82IiksCisJUElOQ1RSTF9QSU4oNywgImdwaW83 IiksCisJUElOQ1RSTF9QSU4oOCwgImdwaW84IiksCisJUElOQ1RSTF9QSU4oOSwgImdwaW85Iiks CisJUElOQ1RSTF9QSU4oMTAsICJncGlvMTAiKSwKKwlQSU5DVFJMX1BJTigxMSwgImdwaW8xMSIp LAorCVBJTkNUUkxfUElOKDEyLCAiZ3BpbzEyIiksCisJUElOQ1RSTF9QSU4oMTMsICJncGlvMTMi KSwKKwlQSU5DVFJMX1BJTigxNCwgImdwaW8xNCIpLAorCVBJTkNUUkxfUElOKDE1LCAiZ3BpbzE1 IiksCisJUElOQ1RSTF9QSU4oMTYsICJncGlvMTYiKSwKKwlQSU5DVFJMX1BJTigxNywgImdwaW8x NyIpLAorCVBJTkNUUkxfUElOKDE4LCAiZ3BpbzE4IiksCisJUElOQ1RSTF9QSU4oMTksICJncGlv MTkiKSwKKwlQSU5DVFJMX1BJTigyMCwgImdwaW8yMCIpLAorCVBJTkNUUkxfUElOKDIxLCAiZ3Bp bzIxIiksCisJUElOQ1RSTF9QSU4oMjIsICJncGlvMjIiKSwKKwlQSU5DVFJMX1BJTigyMywgImdw aW8yMyIpLAorCVBJTkNUUkxfUElOKDI0LCAiZ3BpbzI0IiksCisJUElOQ1RSTF9QSU4oMjUsICJn cGlvMjUiKSwKKwlQSU5DVFJMX1BJTigyNiwgImdwaW8yNiIpLAorCVBJTkNUUkxfUElOKDI3LCAi Z3BpbzI3IiksCisJUElOQ1RSTF9QSU4oMjgsICJncGlvMjgiKSwKKwlQSU5DVFJMX1BJTigyOSwg ImdwaW8yOSIpLAorCVBJTkNUUkxfUElOKDMwLCAiZ3BpbzMwIiksCisJUElOQ1RSTF9QSU4oMzEs ICJncGlvMzEiKSwKKworCS8qCisJICogTm8gaWRlYSB3aGVyZSB0aGV5IHJlYWxseSBhcmU7IHNv IGxldCdzIHB1dCB0aGVtIGFjY29yZGluZworCSAqIHRvIHRoZWlyIG11eCBvZmZzZXRzLgorCSAq LworCVBJTkNUUkxfUElOKDM2LCAiaHNzcGlfY3MxIiksCisJUElOQ1RSTF9QSU4oMzgsICJ1c2Jf cDIiKSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBncGlvMF9waW5zW10gPSB7IDAgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMV9waW5zW10gPSB7IDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMl9w aW5zW10gPSB7IDIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvM19waW5zW10gPSB7IDMgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvNF9waW5zW10gPSB7IDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv NV9waW5zW10gPSB7IDUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNl9waW5zW10gPSB7IDYgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvN19waW5zW10gPSB7IDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvOF9waW5zW10gPSB7IDggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvOV9waW5zW10gPSB7IDkg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTBfcGluc1tdID0geyAxMCB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xMV9waW5zW10gPSB7IDExIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEyX3BpbnNb XSA9IHsgMTIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTNfcGluc1tdID0geyAxMyB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8xNF9waW5zW10gPSB7IDE0IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzE1X3BpbnNbXSA9IHsgMTUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTZfcGluc1tdID0geyAx NiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xN19waW5zW10gPSB7IDE3IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzE4X3BpbnNbXSA9IHsgMTggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTlfcGlu c1tdID0geyAxOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMF9waW5zW10gPSB7IDIwIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzIxX3BpbnNbXSA9IHsgMjEgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjJfcGluc1tdID0geyAyMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yM19waW5zW10gPSB7 IDIzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI0X3BpbnNbXSA9IHsgMjQgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMjVfcGluc1tdID0geyAyNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNl9w aW5zW10gPSB7IDI2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI3X3BpbnNbXSA9IHsgMjcgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMjhfcGluc1tdID0geyAyOCB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8yOV9waW5zW10gPSB7IDI5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMwX3BpbnNbXSA9 IHsgMzAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzFfcGluc1tdID0geyAzMSB9OworCitzdGF0 aWMgdW5zaWduZWQgaHNzcGlfY3MxX3BpbnNbXSA9IHsgMzYgfTsKK3N0YXRpYyB1bnNpZ25lZCB1 c2JfcG9ydDFfcGluc1tdID0geyAzOCB9OworCisjZGVmaW5lIEJDTTYzMjhfR1JPVVAobikJCQkJ CVwKKwl7CQkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJCVwKKwkJLnBpbnMgPSBuIyNfcGlucywJ CQkJXAorCQkubnVtX3BpbnMgPSBBUlJBWV9TSVpFKG4jI19waW5zKSwJCVwKKwl9CisKK3N0YXRp YyBzdHJ1Y3QgYmNtNjMyOF9waW5ncm91cCBiY202MzI4X2dyb3Vwc1tdID0geworCUJDTTYzMjhf R1JPVVAoZ3BpbzApLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzEpLAorCUJDTTYzMjhfR1JPVVAoZ3Bp bzIpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzMpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzQpLAorCUJD TTYzMjhfR1JPVVAoZ3BpbzUpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzYpLAorCUJDTTYzMjhfR1JP VVAoZ3BpbzcpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzgpLAorCUJDTTYzMjhfR1JPVVAoZ3Bpbzkp LAorCUJDTTYzMjhfR1JPVVAoZ3BpbzEwKSwKKwlCQ002MzI4X0dST1VQKGdwaW8xMSksCisJQkNN NjMyOF9HUk9VUChncGlvMTIpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzEzKSwKKwlCQ002MzI4X0dS T1VQKGdwaW8xNCksCisJQkNNNjMyOF9HUk9VUChncGlvMTUpLAorCUJDTTYzMjhfR1JPVVAoZ3Bp bzE2KSwKKwlCQ002MzI4X0dST1VQKGdwaW8xNyksCisJQkNNNjMyOF9HUk9VUChncGlvMTgpLAor CUJDTTYzMjhfR1JPVVAoZ3BpbzE5KSwKKwlCQ002MzI4X0dST1VQKGdwaW8yMCksCisJQkNNNjMy OF9HUk9VUChncGlvMjEpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzIyKSwKKwlCQ002MzI4X0dST1VQ KGdwaW8yMyksCisJQkNNNjMyOF9HUk9VUChncGlvMjQpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzI1 KSwKKwlCQ002MzI4X0dST1VQKGdwaW8yNiksCisJQkNNNjMyOF9HUk9VUChncGlvMjcpLAorCUJD TTYzMjhfR1JPVVAoZ3BpbzI4KSwKKwlCQ002MzI4X0dST1VQKGdwaW8yOSksCisJQkNNNjMyOF9H Uk9VUChncGlvMzApLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzMxKSwKKworCUJDTTYzMjhfR1JPVVAo aHNzcGlfY3MxKSwKKwlCQ002MzI4X0dST1VQKHVzYl9wb3J0MSksCit9OworCisvKiBHUElPX01P REUgKi8KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbGVkX2dyb3Vwc1tdID0geworCSJncGlv MCIsCisJImdwaW8xIiwKKwkiZ3BpbzIiLAorCSJncGlvMyIsCisJImdwaW80IiwKKwkiZ3BpbzUi LAorCSJncGlvNiIsCisJImdwaW83IiwKKwkiZ3BpbzgiLAorCSJncGlvOSIsCisJImdwaW8xMCIs CisJImdwaW8xMSIsCisJImdwaW8xMiIsCisJImdwaW8xMyIsCisJImdwaW8xNCIsCisJImdwaW8x NSIsCisJImdwaW8xNiIsCisJImdwaW8xNyIsCisJImdwaW8xOCIsCisJImdwaW8xOSIsCisJImdw aW8yMCIsCisJImdwaW8yMSIsCisJImdwaW8yMiIsCisJImdwaW8yMyIsCit9OworCisvKiBQSU5N VVhfU0VMICovCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfZGF0YV9ncm91 cHNbXSA9IHsKKwkiZ3BpbzYiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZXJp YWxfbGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzciLAorfTsKKworc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBpbmV0X2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8xMSIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjaWVfY2xrcmVxX2dyb3Vwc1tdID0geworCSJncGlv MTYiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5MF9hY3RfbGVkX2dyb3Vw c1tdID0geworCSJncGlvMjUiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5 MV9hY3RfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMjYiLAorfTsKKworc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBlcGh5Ml9hY3RfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMjciLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5M19hY3RfbGVkX2dyb3Vwc1tdID0geworCSJn cGlvMjgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBoc3NwaV9jczFfZ3JvdXBz W10gPSB7CisJImhzc3BpX2NzMSIKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNi X2hvc3RfcG9ydF9ncm91cHNbXSA9IHsKKwkidXNiX3BvcnQxIiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgdXNiX2RldmljZV9wb3J0X2dyb3Vwc1tdID0geworCSJ1c2JfcG9ydDEi LAorfTsKKworI2RlZmluZSBCQ002MzI4X01PREVfRlVOKG4pCQkJCVwKKwl7CQkJCQkJXAorCQku bmFtZSA9ICNuLAkJCQlcCisJCS5ncm91cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51bV9ncm91 cHMgPSBBUlJBWV9TSVpFKG4jI19ncm91cHMpLAlcCisJCS5tb2RlX3ZhbCA9IDEsCQkJCVwKKwl9 CisKKyNkZWZpbmUgQkNNNjMyOF9NVVhfRlVOKG4sIG11eCkJCQkJXAorCXsJCQkJCQlcCisJCS5u YW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQkubnVtX2dyb3Vw cyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLm11eF92YWwgPSBtdXgsCQkJCVwKKwl9 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjMyOF9mdW5jdGlvbiBiY202MzI4X2Z1bmNzW10g PSB7CisJQkNNNjMyOF9NT0RFX0ZVTihsZWQpLAorCUJDTTYzMjhfTVVYX0ZVTihzZXJpYWxfbGVk X2RhdGEsIDIpLAorCUJDTTYzMjhfTVVYX0ZVTihzZXJpYWxfbGVkX2NsaywgMiksCisJQkNNNjMy OF9NVVhfRlVOKGluZXRfYWN0X2xlZCwgMSksCisJQkNNNjMyOF9NVVhfRlVOKHBjaWVfY2xrcmVx LCAyKSwKKwlCQ002MzI4X01VWF9GVU4oZXBoeTBfYWN0X2xlZCwgMSksCisJQkNNNjMyOF9NVVhf RlVOKGVwaHkxX2FjdF9sZWQsIDEpLAorCUJDTTYzMjhfTVVYX0ZVTihlcGh5Ml9hY3RfbGVkLCAx KSwKKwlCQ002MzI4X01VWF9GVU4oZXBoeTNfYWN0X2xlZCwgMSksCisJQkNNNjMyOF9NVVhfRlVO KGhzc3BpX2NzMSwgMiksCisJQkNNNjMyOF9NVVhfRlVOKHVzYl9ob3N0X3BvcnQsIDEpLAorCUJD TTYzMjhfTVVYX0ZVTih1c2JfZGV2aWNlX3BvcnQsIDIpLAorfTsKKworc3RhdGljIGlubGluZSB1 bnNpZ25lZCBpbnQgYmNtNjMyOF9tdXhfb2ZmKHVuc2lnbmVkIGludCBwaW4pCit7CisJcmV0dXJu IGJjbTYzMjhfbXV4W3BpbiAvIDE2XTsKK30KKworc3RhdGljIGludCBiY202MzI4X3BpbmN0cmxf Z2V0X2dyb3VwX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4g QVJSQVlfU0laRShiY202MzI4X2dyb3Vwcyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpiY202 MzI4X3BpbmN0cmxfZ2V0X2dyb3VwX25hbWUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAor CQkJCQkJICB1bnNpZ25lZCBncm91cCkKK3sKKwlyZXR1cm4gYmNtNjMyOF9ncm91cHNbZ3JvdXBd Lm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyOF9waW5jdHJsX2dldF9ncm91cF9waW5zKHN0 cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJICB1bnNpZ25lZCBncm91cCwgY29uc3Qg dW5zaWduZWQgKipwaW5zLAorCQkJCQkgIHVuc2lnbmVkICpudW1fcGlucykKK3sKKwkqcGlucyA9 IGJjbTYzMjhfZ3JvdXBzW2dyb3VwXS5waW5zOworCSpudW1fcGlucyA9IGJjbTYzMjhfZ3JvdXBz W2dyb3VwXS5udW1fcGluczsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbTYzMjhf cGluY3RybF9nZXRfZnVuY19jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYpCit7CisJ cmV0dXJuIEFSUkFZX1NJWkUoYmNtNjMyOF9mdW5jcyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFy ICpiY202MzI4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxk ZXYsCisJCQkJCQkgdW5zaWduZWQgc2VsZWN0b3IpCit7CisJcmV0dXJuIGJjbTYzMjhfZnVuY3Nb c2VsZWN0b3JdLm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyOF9waW5jdHJsX2dldF9ncm91 cHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICAgIHVuc2lnbmVkIHNlbGVj dG9yLAorCQkJCSAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqKmdyb3VwcywKKwkJCQkgICAgICB1 bnNpZ25lZCAqIGNvbnN0IG51bV9ncm91cHMpCit7CisJKmdyb3VwcyA9IGJjbTYzMjhfZnVuY3Nb c2VsZWN0b3JdLmdyb3VwczsKKwkqbnVtX2dyb3VwcyA9IGJjbTYzMjhfZnVuY3Nbc2VsZWN0b3Jd Lm51bV9ncm91cHM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYmNtNjMyOF9ybXdf bXV4KHN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjLCB1bnNpZ25lZCBwaW4sCisJCQkgICAgdW5z aWduZWQgaW50IG1vZGUsIHVuc2lnbmVkIGludCBtdXgpCit7CisJaWYgKHBpbiA8IEJDTTYzMjhf TlVNX0dQSU9TKQorCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzMjhfTU9ERV9S RUcsIEJJVChwaW4pLAorCQkJCSAgIG1vZGUgPyBCSVQocGluKSA6IDApOworCisJcmVnbWFwX3Vw ZGF0ZV9iaXRzKHBjLT5yZWdzLCBiY202MzI4X211eF9vZmYocGluKSwKKwkJCSAgIEJDTTYzMjhf TVVYX01BU0sgPDwgKChwaW4gJSAxNikgKiAyKSwKKwkJCSAgIG11eCA8PCAoKHBpbiAlIDE2KSAq IDIpKTsKK30KKworc3RhdGljIGludCBiY202MzI4X3BpbmN0cmxfc2V0X211eChzdHJ1Y3QgcGlu Y3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgdW5zaWduZWQgc2VsZWN0b3IsIHVuc2lnbmVkIGdy b3VwKQoreworCXN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0X2Ry dmRhdGEocGN0bGRldik7CisJY29uc3Qgc3RydWN0IGJjbTYzMjhfcGluZ3JvdXAgKnBnID0gJmJj bTYzMjhfZ3JvdXBzW2dyb3VwXTsKKwljb25zdCBzdHJ1Y3QgYmNtNjMyOF9mdW5jdGlvbiAqZiA9 ICZiY202MzI4X2Z1bmNzW3NlbGVjdG9yXTsKKworCWJjbTYzMjhfcm13X211eChwYywgcGctPnBp bnNbMF0sIGYtPm1vZGVfdmFsLCBmLT5tdXhfdmFsKTsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgaW50IGJjbTYzMjhfZ3Bpb19yZXF1ZXN0X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBj dGxkZXYsCisJCQkJICAgICAgIHN0cnVjdCBwaW5jdHJsX2dwaW9fcmFuZ2UgKnJhbmdlLAorCQkJ CSAgICAgICB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3RydWN0IGJjbTYzeHhfcGluY3RybCAqcGMg PSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsKKworCS8qIGRpc2FibGUgYWxsIGZ1 bmN0aW9ucyB1c2luZyB0aGlzIHBpbiAqLworCWJjbTYzMjhfcm13X211eChwYywgb2Zmc2V0LCAw LCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBpbmN0cmxfb3BzIGJjbTYz MjhfcGN0bF9vcHMgPSB7CisJLmR0X2ZyZWVfbWFwID0gcGluY3RybF91dGlsc19mcmVlX21hcCwK KwkuZHRfbm9kZV90b19tYXAgPSBwaW5jb25mX2dlbmVyaWNfZHRfbm9kZV90b19tYXBfcGluLAor CS5nZXRfZ3JvdXBfbmFtZSA9IGJjbTYzMjhfcGluY3RybF9nZXRfZ3JvdXBfbmFtZSwKKwkuZ2V0 X2dyb3VwX3BpbnMgPSBiY202MzI4X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMsCisJLmdldF9ncm91 cHNfY291bnQgPSBiY202MzI4X3BpbmN0cmxfZ2V0X2dyb3VwX2NvdW50LAorfTsKKworc3RhdGlj IHN0cnVjdCBwaW5tdXhfb3BzIGJjbTYzMjhfcG14X29wcyA9IHsKKwkuZ2V0X2Z1bmN0aW9uX2dy b3VwcyA9IGJjbTYzMjhfcGluY3RybF9nZXRfZ3JvdXBzLAorCS5nZXRfZnVuY3Rpb25fbmFtZSA9 IGJjbTYzMjhfcGluY3RybF9nZXRfZnVuY19uYW1lLAorCS5nZXRfZnVuY3Rpb25zX2NvdW50ID0g YmNtNjMyOF9waW5jdHJsX2dldF9mdW5jX2NvdW50LAorCS5ncGlvX3JlcXVlc3RfZW5hYmxlID0g YmNtNjMyOF9ncGlvX3JlcXVlc3RfZW5hYmxlLAorCS5zZXRfbXV4ID0gYmNtNjMyOF9waW5jdHJs X3NldF9tdXgsCisJLnN0cmljdCA9IHRydWUsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGJj bTYzeHhfcGluY3RybF9zb2MgYmNtNjMyOF9zb2MgPSB7CisJLm5ncGlvcyA9IEJDTTYzMjhfTlVN X0dQSU9TLAorCS5ucGlucyA9IEFSUkFZX1NJWkUoYmNtNjMyOF9waW5zKSwKKwkucGN0bF9vcHMg PSAmYmNtNjMyOF9wY3RsX29wcywKKwkucGlucyA9IGJjbTYzMjhfcGlucywKKwkucG14X29wcyA9 ICZiY202MzI4X3BteF9vcHMsCit9OworCitzdGF0aWMgaW50IGJjbTYzMjhfcGluY3RybF9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBiY202M3h4X3BpbmN0 cmxfcHJvYmUocGRldiwgJmJjbTYzMjhfc29jLCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBvZl9kZXZpY2VfaWQgYmNtNjMyOF9waW5jdHJsX21hdGNoW10gPSB7CisJeyAuY29tcGF0 aWJsZSA9ICJicmNtLGJjbTYzMjgtcGluY3RybCIsIH0sCisJeyAvKiBzZW50aW5lbCAqLyB9Cit9 OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiY202MzI4X3BpbmN0cmxfZHJpdmVy ID0geworCS5wcm9iZSA9IGJjbTYzMjhfcGluY3RybF9wcm9iZSwKKwkuZHJpdmVyID0geworCQku bmFtZSA9ICJiY202MzI4LXBpbmN0cmwiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBiY202MzI4X3Bp bmN0cmxfbWF0Y2gsCisJfSwKK307CisKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGJjbTYzMjhf cGluY3RybF9kcml2ZXIpOwotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=