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,URIBL_BLOCKED, 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 A285FC433C1 for ; Wed, 24 Mar 2021 08:23:38 +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 E1C55619AE for ; Wed, 24 Mar 2021 08:23:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E1C55619AE 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=rka1XTYDgSMOVRlsrhH5TPvMo/EEml8tw9aFBg5uDqg=; b=jmnMLKIR+f+Ppu8zWgxKUb7Vv V3IkjaUoDVUNjR/oxUEX0uCqkK4yh2VtlT50htHcfMuJpsYvXF+CwKEoY7KQG+UVmNvY0Q7tNqqjF URCYV3bzmyXAsc6mljrK00hQdf1shzJBGvVXuYxtnBGmE7ueh/NKQezKi3K9ygrKabtkM4ik4T5Dw LDKdUr7MDBIrPbr6AQenxZaLdNWEnXCDENl5DR0avK4Np0A1LGnWSMMlxDedCL+klCOwMqhlAd6Cx rtohsCZs8Gv1/Xf7I2h9JvOWAO9jh2iomkyfUsaZt6p9TqtjddZMDkiQgUQIE72YafYDO1Z+J+Nd9 y5+zjiMwg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lOykr-00GZ86-0K; Wed, 24 Mar 2021 08:20:41 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lOyjl-00GYqI-Gi for linux-arm-kernel@lists.infradead.org; Wed, 24 Mar 2021 08:19:36 +0000 Received: by mail-wm1-x330.google.com with SMTP id u5-20020a7bcb050000b029010e9316b9d5so658274wmj.2 for ; Wed, 24 Mar 2021 01:19: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=1kfluqEmAMnMwbmUQ3tSyH8HDW9gBVB/ZQflES+0Mvw=; b=rd7yXJEQ2QzW7Wn3Toa2MFF9TdJZeM8wWSX4sP+9Fyvc1YiRcIjdJheKc+4w3ihfUH 1vp7uSxY7eWrGyZJQSZozPTi1DzbJA+jOr1ufiZkYf0HRHJ6ALO7irEPc79wkNnBl2fq UBXULdtesg/s6bLwfaRPbT/pdkNNXfhGCy3kVdukuUuqeeSqD7lGTNmHWvBkJNK2ReDU 2ekhznKuue0lTo1S8R2LMNlKGV0WEHsDW0aAunlAdNG1W81k68XjmWgwJc4Kx/M2hdV/ wMgf6u2P+IK56jQHrXwlL0oIACEfO2Pe82KXcjSYhi0RXG0EL4aH8Bt4qk2uOPg5irsF JS0Q== 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=1kfluqEmAMnMwbmUQ3tSyH8HDW9gBVB/ZQflES+0Mvw=; b=Vii9es+O6aJZ+g4XNisONO3sSZDoiUx8qjkxfpTIrssHxQuk0T4M5TyqBwdPYVYCt6 NXgxm3C47eJECBd10WV+UsNFADx9JycF/lnOt1MnNG2OXgC1UuB6Oi81kQUqtU98lnGH NkF5wNtUX+Go96sjp91doKpNUVzMBJRB1P2WRctSQwMe9P9hQPSmpjc3px19XWNcZBE2 TQtgmk3UeC0JJa2le+vugjDD9sFkjQMT2Lo/85X8K4ltDGzMugP7Jrz9It94Jedj2aMZ NLpLHPjGVLGxIN75UWYP/GVnr/5YgTHsl7R1RiFHlhBV1hMT25JTWemCKm0Zmkb+JgU2 3W6Q== X-Gm-Message-State: AOAM532A7cH97WAzIY+AjxJXuZlhQLfVbbcT8yFZWWe8ac6Tq8/gxLu7 jaO4Ljx2KR5wa4VU8HVzaTY= X-Google-Smtp-Source: ABdhPJypHwcKJTgToFbwCIg1BxByQR/egIzbtmCSG3kdnK5aL3YDYOOEKbB9ipcF5bFgoa8WN5jq6w== X-Received: by 2002:a7b:c346:: with SMTP id l6mr1735366wmj.34.1616573972877; Wed, 24 Mar 2021 01:19:32 -0700 (PDT) Received: from skynet.lan (51.red-83-44-13.dynamicip.rima-tde.net. [83.44.13.51]) by smtp.gmail.com with ESMTPSA id x25sm1498578wmj.14.2021.03.24.01.19.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Mar 2021 01:19:32 -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 v9 07/22] pinctrl: add a pincontrol driver for BCM6328 Date: Wed, 24 Mar 2021 09:19:08 +0100 Message-Id: <20210324081923.20379-8-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210324081923.20379-1-noltari@gmail.com> References: <20210324081923.20379-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210324_081934_291465_485C538F X-CRM114-Status: GOOD ( 22.31 ) 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 dmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJpQGdtYWlsLmNvbT4KLS0tCiB2OTogbm8gY2hh bmdlcwogdjg6IG5vIGNoYW5nZXMKIHY3OiBubyBjaGFuZ2VzCiB2Njogbm8gY2hhbmdlcwogdjU6 IGFkZCBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBBbmR5IFNoZXZjaGVua28KIHY0OiBubyBjaGFuZ2Vz CiB2MzogdXNlIG5ldyBzaGFyZWQgY29kZQogdjI6IHN3aXRjaCB0byBHUElPX1JFR01BUAoKIGRy aXZlcnMvcGluY3RybC9iY20vS2NvbmZpZyAgICAgICAgICAgfCAgIDggKwogZHJpdmVycy9waW5j dHJsL2JjbS9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL3Bp bmN0cmwtYmNtNjMyOC5jIHwgNDA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVz IGNoYW5nZWQsIDQxMyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9w aW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjguYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3Ry bC9iY20vS2NvbmZpZyBiL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZwppbmRleCA4ODJmMTli ZGMyNDMuLmQzNWU1ZDNmZTI2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29u ZmlnCisrKyBiL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZwpAQCAtMzYsNiArMzYsMTQgQEAg Y29uZmlnIFBJTkNUUkxfQkNNNjNYWAogCXNlbGVjdCBQSU5DT05GCiAJc2VsZWN0IFBJTk1VWAog Citjb25maWcgUElOQ1RSTF9CQ002MzI4CisJYm9vbCAiQnJvYWRjb20gQkNNNjMyOCBHUElPIGRy aXZlciIKKwlkZXBlbmRzIG9uIChCTUlQU19HRU5FUklDIHx8IENPTVBJTEVfVEVTVCkKKwlzZWxl Y3QgUElOQ1RSTF9CQ002M1hYCisJZGVmYXVsdCBCTUlQU19HRU5FUklDCisJaGVscAorCSAgIFNh eSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBCcm9hZGNvbSBCQ002MzI4IEdQSU8gZHJpdmVyLgorCiBj b25maWcgUElOQ1RSTF9JUFJPQ19HUElPCiAJYm9vbCAiQnJvYWRjb20gaVByb2MgR1BJTyAod2l0 aCBQSU5DT05GKSBkcml2ZXIiCiAJZGVwZW5kcyBvbiBPRl9HUElPICYmIChBUkNIX0JDTV9JUFJP QyB8fCBDT01QSUxFX1RFU1QpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2Vm aWxlIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQppbmRleCAwZTNjZjliMTVjNjUuLjU3 ZTU0MzRhNmRiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCkBAIC00LDYgKzQsNyBAQAogb2JqLSQoQ09O RklHX1BJTkNUUkxfQkNNMjgxWFgpCQkrPSBwaW5jdHJsLWJjbTI4MXh4Lm8KIG9iai0kKENPTkZJ R19QSU5DVFJMX0JDTTI4MzUpCQkrPSBwaW5jdHJsLWJjbTI4MzUubwogb2JqLSQoQ09ORklHX1BJ TkNUUkxfQkNNNjNYWCkJCSs9IHBpbmN0cmwtYmNtNjN4eC5vCitvYmotJChDT05GSUdfUElOQ1RS TF9CQ002MzI4KQkJKz0gcGluY3RybC1iY202MzI4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0lQ Uk9DX0dQSU8pCSs9IHBpbmN0cmwtaXByb2MtZ3Bpby5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9D WUdOVVNfTVVYKQkrPSBwaW5jdHJsLWN5Z251cy1tdXgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxf TlMpCQkrPSBwaW5jdHJsLW5zLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vcGlu Y3RybC1iY202MzI4LmMgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyOC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzllZmNlNjAwNTUwCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjguYwpAQCAt MCwwICsxLDQwNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgor ICogRHJpdmVyIGZvciBCQ002MzI4IEdQSU8gdW5pdCAocGluY3RybCArIEdQSU8pCisgKgorICog Q29weXJpZ2h0IChDKSAyMDIxIMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9sdGFyaUBnbWFp bC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lA Z21haWwuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisjaW5jbHVkZSA8bGlu dXgvZ3Bpby9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxs aW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGlubXV4Lmg+CisjaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisKKyNp bmNsdWRlICIuLi9waW5jdHJsLXV0aWxzLmgiCisKKyNpbmNsdWRlICJwaW5jdHJsLWJjbTYzeHgu aCIKKworI2RlZmluZSBCQ002MzI4X05VTV9HUElPUwkzMgorCisjZGVmaW5lIEJDTTYzMjhfTU9E RV9SRUcJMHgxOAorI2RlZmluZSBCQ002MzI4X01VWF9ISV9SRUcJMHgxYworI2RlZmluZSBCQ002 MzI4X01VWF9MT19SRUcJMHgyMAorI2RlZmluZSBCQ002MzI4X01VWF9PVEhFUl9SRUcJMHgyNAor I2RlZmluZSAgQkNNNjMyOF9NVVhfTUFTSwlHRU5NQVNLKDEsIDApCisKK3N0cnVjdCBiY202MzI4 X3Bpbmdyb3VwIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IHVuc2lnbmVkICogY29uc3Qg cGluczsKKwljb25zdCB1bnNpZ25lZCBudW1fcGluczsKK307CisKK3N0cnVjdCBiY202MzI4X2Z1 bmN0aW9uIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKiBjb25zdCAqZ3JvdXBz OworCWNvbnN0IHVuc2lnbmVkIG51bV9ncm91cHM7CisKKwl1bnNpZ25lZCBtb2RlX3ZhbDoxOwor CXVuc2lnbmVkIG11eF92YWw6MjsKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYmNt NjMyOF9tdXhbXSA9IHsKKwlCQ002MzI4X01VWF9MT19SRUcsCisJQkNNNjMyOF9NVVhfSElfUkVH LAorCUJDTTYzMjhfTVVYX09USEVSX1JFRworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5j dHJsX3Bpbl9kZXNjIGJjbTYzMjhfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJncGlvMCIp LAorCVBJTkNUUkxfUElOKDEsICJncGlvMSIpLAorCVBJTkNUUkxfUElOKDIsICJncGlvMiIpLAor CVBJTkNUUkxfUElOKDMsICJncGlvMyIpLAorCVBJTkNUUkxfUElOKDQsICJncGlvNCIpLAorCVBJ TkNUUkxfUElOKDUsICJncGlvNSIpLAorCVBJTkNUUkxfUElOKDYsICJncGlvNiIpLAorCVBJTkNU UkxfUElOKDcsICJncGlvNyIpLAorCVBJTkNUUkxfUElOKDgsICJncGlvOCIpLAorCVBJTkNUUkxf UElOKDksICJncGlvOSIpLAorCVBJTkNUUkxfUElOKDEwLCAiZ3BpbzEwIiksCisJUElOQ1RSTF9Q SU4oMTEsICJncGlvMTEiKSwKKwlQSU5DVFJMX1BJTigxMiwgImdwaW8xMiIpLAorCVBJTkNUUkxf UElOKDEzLCAiZ3BpbzEzIiksCisJUElOQ1RSTF9QSU4oMTQsICJncGlvMTQiKSwKKwlQSU5DVFJM X1BJTigxNSwgImdwaW8xNSIpLAorCVBJTkNUUkxfUElOKDE2LCAiZ3BpbzE2IiksCisJUElOQ1RS TF9QSU4oMTcsICJncGlvMTciKSwKKwlQSU5DVFJMX1BJTigxOCwgImdwaW8xOCIpLAorCVBJTkNU UkxfUElOKDE5LCAiZ3BpbzE5IiksCisJUElOQ1RSTF9QSU4oMjAsICJncGlvMjAiKSwKKwlQSU5D VFJMX1BJTigyMSwgImdwaW8yMSIpLAorCVBJTkNUUkxfUElOKDIyLCAiZ3BpbzIyIiksCisJUElO Q1RSTF9QSU4oMjMsICJncGlvMjMiKSwKKwlQSU5DVFJMX1BJTigyNCwgImdwaW8yNCIpLAorCVBJ TkNUUkxfUElOKDI1LCAiZ3BpbzI1IiksCisJUElOQ1RSTF9QSU4oMjYsICJncGlvMjYiKSwKKwlQ SU5DVFJMX1BJTigyNywgImdwaW8yNyIpLAorCVBJTkNUUkxfUElOKDI4LCAiZ3BpbzI4IiksCisJ UElOQ1RSTF9QSU4oMjksICJncGlvMjkiKSwKKwlQSU5DVFJMX1BJTigzMCwgImdwaW8zMCIpLAor CVBJTkNUUkxfUElOKDMxLCAiZ3BpbzMxIiksCisKKwkvKgorCSAqIE5vIGlkZWEgd2hlcmUgdGhl eSByZWFsbHkgYXJlOyBzbyBsZXQncyBwdXQgdGhlbSBhY2NvcmRpbmcKKwkgKiB0byB0aGVpciBt dXggb2Zmc2V0cy4KKwkgKi8KKwlQSU5DVFJMX1BJTigzNiwgImhzc3BpX2NzMSIpLAorCVBJTkNU UkxfUElOKDM4LCAidXNiX3AyIiksCit9OworCitzdGF0aWMgdW5zaWduZWQgZ3BpbzBfcGluc1td ID0geyAwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzFfcGluc1tdID0geyAxIH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzJfcGluc1tdID0geyAyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzNfcGlu c1tdID0geyAzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzRfcGluc1tdID0geyA0IH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzVfcGluc1tdID0geyA1IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzZf cGluc1tdID0geyA2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzdfcGluc1tdID0geyA3IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzhfcGluc1tdID0geyA4IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzlfcGluc1tdID0geyA5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEwX3BpbnNbXSA9IHsgMTAg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTFfcGluc1tdID0geyAxMSB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xMl9waW5zW10gPSB7IDEyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEzX3BpbnNb XSA9IHsgMTMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTRfcGluc1tdID0geyAxNCB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8xNV9waW5zW10gPSB7IDE1IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzE2X3BpbnNbXSA9IHsgMTYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTdfcGluc1tdID0geyAx NyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xOF9waW5zW10gPSB7IDE4IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzE5X3BpbnNbXSA9IHsgMTkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjBfcGlu c1tdID0geyAyMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMV9waW5zW10gPSB7IDIxIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzIyX3BpbnNbXSA9IHsgMjIgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjNfcGluc1tdID0geyAyMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNF9waW5zW10gPSB7 IDI0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI1X3BpbnNbXSA9IHsgMjUgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMjZfcGluc1tdID0geyAyNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yN19w aW5zW10gPSB7IDI3IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI4X3BpbnNbXSA9IHsgMjggfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMjlfcGluc1tdID0geyAyOSB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8zMF9waW5zW10gPSB7IDMwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMxX3BpbnNbXSA9 IHsgMzEgfTsKKworc3RhdGljIHVuc2lnbmVkIGhzc3BpX2NzMV9waW5zW10gPSB7IDM2IH07Citz dGF0aWMgdW5zaWduZWQgdXNiX3BvcnQxX3BpbnNbXSA9IHsgMzggfTsKKworI2RlZmluZSBCQ002 MzI4X0dST1VQKG4pCQkJCQlcCisJewkJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCQlcCisJCS5w aW5zID0gbiMjX3BpbnMsCQkJCVwKKwkJLm51bV9waW5zID0gQVJSQVlfU0laRShuIyNfcGlucyks CQlcCisJfQorCitzdGF0aWMgc3RydWN0IGJjbTYzMjhfcGluZ3JvdXAgYmNtNjMyOF9ncm91cHNb XSA9IHsKKwlCQ002MzI4X0dST1VQKGdwaW8wKSwKKwlCQ002MzI4X0dST1VQKGdwaW8xKSwKKwlC Q002MzI4X0dST1VQKGdwaW8yKSwKKwlCQ002MzI4X0dST1VQKGdwaW8zKSwKKwlCQ002MzI4X0dS T1VQKGdwaW80KSwKKwlCQ002MzI4X0dST1VQKGdwaW81KSwKKwlCQ002MzI4X0dST1VQKGdwaW82 KSwKKwlCQ002MzI4X0dST1VQKGdwaW83KSwKKwlCQ002MzI4X0dST1VQKGdwaW84KSwKKwlCQ002 MzI4X0dST1VQKGdwaW85KSwKKwlCQ002MzI4X0dST1VQKGdwaW8xMCksCisJQkNNNjMyOF9HUk9V UChncGlvMTEpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzEyKSwKKwlCQ002MzI4X0dST1VQKGdwaW8x MyksCisJQkNNNjMyOF9HUk9VUChncGlvMTQpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzE1KSwKKwlC Q002MzI4X0dST1VQKGdwaW8xNiksCisJQkNNNjMyOF9HUk9VUChncGlvMTcpLAorCUJDTTYzMjhf R1JPVVAoZ3BpbzE4KSwKKwlCQ002MzI4X0dST1VQKGdwaW8xOSksCisJQkNNNjMyOF9HUk9VUChn cGlvMjApLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzIxKSwKKwlCQ002MzI4X0dST1VQKGdwaW8yMiks CisJQkNNNjMyOF9HUk9VUChncGlvMjMpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzI0KSwKKwlCQ002 MzI4X0dST1VQKGdwaW8yNSksCisJQkNNNjMyOF9HUk9VUChncGlvMjYpLAorCUJDTTYzMjhfR1JP VVAoZ3BpbzI3KSwKKwlCQ002MzI4X0dST1VQKGdwaW8yOCksCisJQkNNNjMyOF9HUk9VUChncGlv MjkpLAorCUJDTTYzMjhfR1JPVVAoZ3BpbzMwKSwKKwlCQ002MzI4X0dST1VQKGdwaW8zMSksCisK KwlCQ002MzI4X0dST1VQKGhzc3BpX2NzMSksCisJQkNNNjMyOF9HUk9VUCh1c2JfcG9ydDEpLAor fTsKKworLyogR1BJT19NT0RFICovCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGxlZF9ncm91 cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlvMSIsCisJImdwaW8yIiwKKwkiZ3BpbzMiLAorCSJn cGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYiLAorCSJncGlvNyIsCisJImdwaW84IiwKKwkiZ3Bp bzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEiLAorCSJncGlvMTIiLAorCSJncGlvMTMiLAorCSJn cGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlvMTYiLAorCSJncGlvMTciLAorCSJncGlvMTgiLAor CSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJncGlvMjEiLAorCSJncGlvMjIiLAorCSJncGlvMjMi LAorfTsKKworLyogUElOTVVYX1NFTCAqLworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZXJp YWxfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW82IiwKK307CisKK3N0YXRpYyBjb25zdCBj aGFyICogY29uc3Qgc2VyaWFsX2xlZF9jbGtfZ3JvdXBzW10gPSB7CisJImdwaW83IiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaW5ldF9hY3RfbGVkX2dyb3Vwc1tdID0geworCSJn cGlvMTEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY2llX2Nsa3JlcV9ncm91 cHNbXSA9IHsKKwkiZ3BpbzE2IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBo eTBfYWN0X2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzI1IiwKK307CisKK3N0YXRpYyBjb25zdCBj aGFyICogY29uc3QgZXBoeTFfYWN0X2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzI2IiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTJfYWN0X2xlZF9ncm91cHNbXSA9IHsKKwki Z3BpbzI3IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTNfYWN0X2xlZF9n cm91cHNbXSA9IHsKKwkiZ3BpbzI4IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg aHNzcGlfY3MxX2dyb3Vwc1tdID0geworCSJoc3NwaV9jczEiCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IHVzYl9ob3N0X3BvcnRfZ3JvdXBzW10gPSB7CisJInVzYl9wb3J0MSIsCit9 OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHVzYl9kZXZpY2VfcG9ydF9ncm91cHNbXSA9 IHsKKwkidXNiX3BvcnQxIiwKK307CisKKyNkZWZpbmUgQkNNNjMyOF9NT0RFX0ZVTihuKQkJCQlc CisJewkJCQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJ CQlcCisJCS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkubW9kZV92 YWwgPSAxLAkJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzMjhfTVVYX0ZVTihuLCBtdXgpCQkJCVwK Kwl7CQkJCQkJXAorCQkubmFtZSA9ICNuLAkJCQlcCisJCS5ncm91cHMgPSBuIyNfZ3JvdXBzLAkJ CVwKKwkJLm51bV9ncm91cHMgPSBBUlJBWV9TSVpFKG4jI19ncm91cHMpLAlcCisJCS5tdXhfdmFs ID0gbXV4LAkJCQlcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTYzMjhfZnVuY3Rpb24g YmNtNjMyOF9mdW5jc1tdID0geworCUJDTTYzMjhfTU9ERV9GVU4obGVkKSwKKwlCQ002MzI4X01V WF9GVU4oc2VyaWFsX2xlZF9kYXRhLCAyKSwKKwlCQ002MzI4X01VWF9GVU4oc2VyaWFsX2xlZF9j bGssIDIpLAorCUJDTTYzMjhfTVVYX0ZVTihpbmV0X2FjdF9sZWQsIDEpLAorCUJDTTYzMjhfTVVY X0ZVTihwY2llX2Nsa3JlcSwgMiksCisJQkNNNjMyOF9NVVhfRlVOKGVwaHkwX2FjdF9sZWQsIDEp LAorCUJDTTYzMjhfTVVYX0ZVTihlcGh5MV9hY3RfbGVkLCAxKSwKKwlCQ002MzI4X01VWF9GVU4o ZXBoeTJfYWN0X2xlZCwgMSksCisJQkNNNjMyOF9NVVhfRlVOKGVwaHkzX2FjdF9sZWQsIDEpLAor CUJDTTYzMjhfTVVYX0ZVTihoc3NwaV9jczEsIDIpLAorCUJDTTYzMjhfTVVYX0ZVTih1c2JfaG9z dF9wb3J0LCAxKSwKKwlCQ002MzI4X01VWF9GVU4odXNiX2RldmljZV9wb3J0LCAyKSwKK307CisK K3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJjbTYzMjhfbXV4X29mZih1bnNpZ25lZCBpbnQg cGluKQoreworCXJldHVybiBiY202MzI4X211eFtwaW4gLyAxNl07Cit9CisKK3N0YXRpYyBpbnQg YmNtNjMyOF9waW5jdHJsX2dldF9ncm91cF9jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxk ZXYpCit7CisJcmV0dXJuIEFSUkFZX1NJWkUoYmNtNjMyOF9ncm91cHMpOworfQorCitzdGF0aWMg Y29uc3QgY2hhciAqYmNtNjMyOF9waW5jdHJsX2dldF9ncm91cF9uYW1lKHN0cnVjdCBwaW5jdHJs X2RldiAqcGN0bGRldiwKKwkJCQkJCSAgdW5zaWduZWQgZ3JvdXApCit7CisJcmV0dXJuIGJjbTYz MjhfZ3JvdXBzW2dyb3VwXS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzMjhfcGluY3RybF9n ZXRfZ3JvdXBfcGlucyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCSAgdW5zaWdu ZWQgZ3JvdXAsIGNvbnN0IHVuc2lnbmVkICoqcGlucywKKwkJCQkJICB1bnNpZ25lZCAqbnVtX3Bp bnMpCit7CisJKnBpbnMgPSBiY202MzI4X2dyb3Vwc1tncm91cF0ucGluczsKKwkqbnVtX3BpbnMg PSBiY202MzI4X2dyb3Vwc1tncm91cF0ubnVtX3BpbnM7CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIGludCBiY202MzI4X3BpbmN0cmxfZ2V0X2Z1bmNfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2 ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzMjhfZnVuY3MpOworfQorCitz dGF0aWMgY29uc3QgY2hhciAqYmNtNjMyOF9waW5jdHJsX2dldF9mdW5jX25hbWUoc3RydWN0IHBp bmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkJIHVuc2lnbmVkIHNlbGVjdG9yKQoreworCXJldHVy biBiY202MzI4X2Z1bmNzW3NlbGVjdG9yXS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzMjhf cGluY3RybF9nZXRfZ3JvdXBzKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICAg ICB1bnNpZ25lZCBzZWxlY3RvciwKKwkJCQkgICAgICBjb25zdCBjaGFyICogY29uc3QgKipncm91 cHMsCisJCQkJICAgICAgdW5zaWduZWQgKiBjb25zdCBudW1fZ3JvdXBzKQoreworCSpncm91cHMg PSBiY202MzI4X2Z1bmNzW3NlbGVjdG9yXS5ncm91cHM7CisJKm51bV9ncm91cHMgPSBiY202MzI4 X2Z1bmNzW3NlbGVjdG9yXS5udW1fZ3JvdXBzOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2 b2lkIGJjbTYzMjhfcm13X211eChzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYywgdW5zaWduZWQg cGluLAorCQkJICAgIHVuc2lnbmVkIGludCBtb2RlLCB1bnNpZ25lZCBpbnQgbXV4KQoreworCWlm IChwaW4gPCBCQ002MzI4X05VTV9HUElPUykKKwkJcmVnbWFwX3VwZGF0ZV9iaXRzKHBjLT5yZWdz LCBCQ002MzI4X01PREVfUkVHLCBCSVQocGluKSwKKwkJCQkgICBtb2RlID8gQklUKHBpbikgOiAw KTsKKworCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgYmNtNjMyOF9tdXhfb2ZmKHBpbiks CisJCQkgICBCQ002MzI4X01VWF9NQVNLIDw8ICgocGluICUgMTYpICogMiksCisJCQkgICBtdXgg PDwgKChwaW4gJSAxNikgKiAyKSk7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyOF9waW5jdHJsX3Nl dF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgIHVuc2lnbmVkIHNlbGVj dG9yLCB1bnNpZ25lZCBncm91cCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYyA9IHBp bmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCWNvbnN0IHN0cnVjdCBiY202MzI4X3Bp bmdyb3VwICpwZyA9ICZiY202MzI4X2dyb3Vwc1tncm91cF07CisJY29uc3Qgc3RydWN0IGJjbTYz MjhfZnVuY3Rpb24gKmYgPSAmYmNtNjMyOF9mdW5jc1tzZWxlY3Rvcl07CisKKwliY202MzI4X3Jt d19tdXgocGMsIHBnLT5waW5zWzBdLCBmLT5tb2RlX3ZhbCwgZi0+bXV4X3ZhbCk7CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludCBiY202MzI4X2dwaW9fcmVxdWVzdF9lbmFibGUoc3RydWN0 IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICAgICBzdHJ1Y3QgcGluY3RybF9ncGlvX3Jh bmdlICpyYW5nZSwKKwkJCQkgICAgICAgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBiY202 M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CisKKwkv KiBkaXNhYmxlIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwliY202MzI4X3Jtd19t dXgocGMsIG9mZnNldCwgMCwgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBw aW5jdHJsX29wcyBiY202MzI4X3BjdGxfb3BzID0geworCS5kdF9mcmVlX21hcCA9IHBpbmN0cmxf dXRpbHNfZnJlZV9tYXAsCisJLmR0X25vZGVfdG9fbWFwID0gcGluY29uZl9nZW5lcmljX2R0X25v ZGVfdG9fbWFwX3BpbiwKKwkuZ2V0X2dyb3VwX25hbWUgPSBiY202MzI4X3BpbmN0cmxfZ2V0X2dy b3VwX25hbWUsCisJLmdldF9ncm91cF9waW5zID0gYmNtNjMyOF9waW5jdHJsX2dldF9ncm91cF9w aW5zLAorCS5nZXRfZ3JvdXBzX2NvdW50ID0gYmNtNjMyOF9waW5jdHJsX2dldF9ncm91cF9jb3Vu dCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGlubXV4X29wcyBiY202MzI4X3BteF9vcHMgPSB7CisJ LmdldF9mdW5jdGlvbl9ncm91cHMgPSBiY202MzI4X3BpbmN0cmxfZ2V0X2dyb3VwcywKKwkuZ2V0 X2Z1bmN0aW9uX25hbWUgPSBiY202MzI4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZSwKKwkuZ2V0X2Z1 bmN0aW9uc19jb3VudCA9IGJjbTYzMjhfcGluY3RybF9nZXRfZnVuY19jb3VudCwKKwkuZ3Bpb19y ZXF1ZXN0X2VuYWJsZSA9IGJjbTYzMjhfZ3Bpb19yZXF1ZXN0X2VuYWJsZSwKKwkuc2V0X211eCA9 IGJjbTYzMjhfcGluY3RybF9zZXRfbXV4LAorCS5zdHJpY3QgPSB0cnVlLAorfTsKKworc3RhdGlj IGNvbnN0IHN0cnVjdCBiY202M3h4X3BpbmN0cmxfc29jIGJjbTYzMjhfc29jID0geworCS5uZ3Bp b3MgPSBCQ002MzI4X05VTV9HUElPUywKKwkubnBpbnMgPSBBUlJBWV9TSVpFKGJjbTYzMjhfcGlu cyksCisJLnBjdGxfb3BzID0gJmJjbTYzMjhfcGN0bF9vcHMsCisJLnBpbnMgPSBiY202MzI4X3Bp bnMsCisJLnBteF9vcHMgPSAmYmNtNjMyOF9wbXhfb3BzLAorfTsKKworc3RhdGljIGludCBiY202 MzI4X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1 cm4gYmNtNjN4eF9waW5jdHJsX3Byb2JlKHBkZXYsICZiY202MzI4X3NvYywgTlVMTCk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGJjbTYzMjhfcGluY3RybF9tYXRjaFtd ID0geworCXsgLmNvbXBhdGlibGUgPSAiYnJjbSxiY202MzI4LXBpbmN0cmwiLCB9LAorCXsgLyog c2VudGluZWwgKi8gfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYmNtNjMy OF9waW5jdHJsX2RyaXZlciA9IHsKKwkucHJvYmUgPSBiY202MzI4X3BpbmN0cmxfcHJvYmUsCisJ LmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiYmNtNjMyOC1waW5jdHJsIiwKKwkJLm9mX21hdGNoX3Rh YmxlID0gYmNtNjMyOF9waW5jdHJsX21hdGNoLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3Jt X2RyaXZlcihiY202MzI4X3BpbmN0cmxfZHJpdmVyKTsKLS0gCjIuMjAuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK