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 B2849C433E0 for ; Mon, 15 Mar 2021 11:55:31 +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 170E364E90 for ; Mon, 15 Mar 2021 11:55:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 170E364E90 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=PefYOdMZi7mBYlCRdQwhw5lYT7/36/8mfpVKraEw1h8=; b=W6rzC8FYiQc7Y48DbSYPiCnyn rtzkHs8OtfV/Kj2rlgXrGJhE2+LJfENusrNKzqlaEGEZLHo8+26BhELBAiCccRJy7MYdJ6IMMVnE9 7eGCiaUkx0FqwwRg242ceinWA/yLRf4OAWyE+/0CXB4PwSwEpPIS8YnrP6H7vkcf6TPEuUNy4DpOH 61daxD+fXvFgHgld0NGIrgjOdztMeJ+1UCTvBXfjSP0xMisWLpOhS7puvNUPXcdRofXSfzoEwDZp7 rSk9V7j71Yg7AfsHOfEMtVKvzbpjNiK15E9jlDgP0DzYOpyr/KhqZcfM2GhnNRwS3DH7jc5JV9wg1 nKuJqkysA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLlkn-00FiI0-Oh; Mon, 15 Mar 2021 11:51:22 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlcB-00Fgt3-FU for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:42:39 +0000 Received: by mail-wm1-x334.google.com with SMTP id r15-20020a05600c35cfb029010e639ca09eso20072851wmq.1 for ; Mon, 15 Mar 2021 04:42:27 -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=hp2b7HqZrlu9nZxQ2UONj+JMKa0I7VIeOfw3ugl/Fbg=; b=rcoNb99TqhF/HD+niE32F/sr6whjW5EkEU0h4B3TBkFuTU4fqbiX+6uhT+iKQtdGSV +fzDYTxuAofeiVnXFdSexHNvETqPgpc2lGbb07bFnLehUSPvJpvIdqlg+V1E3o4uhnK9 xUzDOKyiJC8YJpg6mAb+EcfKrpFf/M0LmvdrhViqgmXJcGIGUZMJSxjJFaI4bjGYCHT+ OI6Ys24poF2qBackZ3F1C3/3QyA1Y2B1ICrg+1s1dIYeBqVs9vc0JJH3/aC6TuJPSruS cIoG0wJWOdrCc7P/Fz+28t9eUpHMMrepV81a9RNJ2owaMEpj2NyUIg2N5WvvyvPETmxj nvtQ== 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=hp2b7HqZrlu9nZxQ2UONj+JMKa0I7VIeOfw3ugl/Fbg=; b=kZK8/PLhYR0OAjxq0y2xCfx+9yCZmapmRNnq/hQGSi4qOuytgoDwzh31tp7x8yxYq4 LBuRd1OXm9sO1YdZWA98kQgYrm5M7vH92TaQdnslAbLVYQ+sdYue3hXi/vtrzjZ1wOaq FNfM/husOq9aIhdfkDiotEiEkm53F3iBEez3pH21SGFkpF5Eb9dp9Isjr23h9fawRFdy iEk0TMxsmZxfmXHpxP5dIk3hoGlTfHC4a8HpbgZqfpgu5rGYz9ekHZr6R07dpNzvCu+3 FZs3G9tqYDCoH7am8w/+epQwWpKsbFRLb8O3rOZSWlxtJS+puIys7HNDIAvGHpJPq/Bs ISjg== X-Gm-Message-State: AOAM530v/4aBLdPK2/TMJN1UTG84ZLeWNly8LzDU/2ZfuygwBtX+ZETO Vjhco71mGBrhdaJyv5a6ivo= X-Google-Smtp-Source: ABdhPJwXk8D5DRiGnrlKhIRr6R2S2qZ+Wu6BygOPYKdWEpcGHC7qCIy2OEWLUq0o/MedzDDAhL5zZg== X-Received: by 2002:a05:600c:2ca:: with SMTP id 10mr25911245wmn.40.1615808546964; Mon, 15 Mar 2021 04:42:26 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:26 -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 10/22] pinctrl: add a pincontrol driver for BCM6358 Date: Mon, 15 Mar 2021 12:42:02 +0100 Message-Id: <20210315114214.3096-11-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_114227_949169_A0B14A9A X-CRM114-Status: GOOD ( 24.74 ) 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 QWRkIGEgcGluY290cm9sIGRyaXZlciBmb3IgQkNNNjM1OC4gQkNNNjM1OCBhbGxvdyBvdmVybGF5 aW5nIGRpZmZlcmVudApmdW5jdGlvbnMgb250byB0aGUgR1BJTyBwaW5zLiBJdCBkb2VzIG5vdCBz dXBwb3J0IGNvbmZpZ3VyaW5nIGluZGl2aWR1YWwKcGlucyBidXQgb25seSB3aG9sZSBncm91cHMu IFRoZXNlIGdyb3VwcyBtYXkgb3ZlcmxhcCwgYW5kIHN0aWxsIHJlcXVpcmUKdGhlIGRpcmVjdGlv bnMgdG8gYmUgc2V0IGNvcnJlY3RseSBpbiB0aGUgR1BJTyByZWdpc3Rlci4gSW4gYWRkaXRpb24g dGhlCmZ1bmN0aW9ucyByZWdpc3RlciBjb250cm9scyBvdGhlciwgbm90IGRpcmVjdGx5IG11eCBy ZWxhdGVkIGZ1bmN0aW9ucy4KCkNvLWRldmVsb3BlZC1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5n b3Jza2lAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNr aUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9s dGFyaUBnbWFpbC5jb20+Ci0tLQogdjc6IG5vIGNoYW5nZXMKIHY2OiBubyBjaGFuZ2VzCiB2NTog YWRkIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IEFuZHkgU2hldmNoZW5rbwogdjQ6IG5vIGNoYW5nZXMK IHYzOiB1c2UgbmV3IHNoYXJlZCBjb2RlCiB2Mjogc3dpdGNoIHRvIEdQSU9fUkVHTUFQCgogZHJp dmVycy9waW5jdHJsL2JjbS9LY29uZmlnICAgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL3BpbmN0 cmwvYmNtL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvcGluY3RybC9iY20vcGlu Y3RybC1iY202MzU4LmMgfCAzNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMzc4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Bp bmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM1OC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJs L2JjbS9LY29uZmlnIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCmluZGV4IGQzNWU1ZDNm ZTI2Zi4uY2VkN2NjNmFiNDRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25m aWcKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCkBAIC00NCw2ICs0NCwxNCBAQCBj b25maWcgUElOQ1RSTF9CQ002MzI4CiAJaGVscAogCSAgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRo ZSBCcm9hZGNvbSBCQ002MzI4IEdQSU8gZHJpdmVyLgogCitjb25maWcgUElOQ1RSTF9CQ002MzU4 CisJYm9vbCAiQnJvYWRjb20gQkNNNjM1OCBHUElPIGRyaXZlciIKKwlkZXBlbmRzIG9uIChCTUlQ U19HRU5FUklDIHx8IENPTVBJTEVfVEVTVCkKKwlzZWxlY3QgUElOQ1RSTF9CQ002M1hYCisJZGVm YXVsdCBCTUlQU19HRU5FUklDCisJaGVscAorCSAgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBC cm9hZGNvbSBCQ002MzU4IEdQSU8gZHJpdmVyLgorCiBjb25maWcgUElOQ1RSTF9JUFJPQ19HUElP CiAJYm9vbCAiQnJvYWRjb20gaVByb2MgR1BJTyAod2l0aCBQSU5DT05GKSBkcml2ZXIiCiAJZGVw ZW5kcyBvbiBPRl9HUElPICYmIChBUkNIX0JDTV9JUFJPQyB8fCBDT01QSUxFX1RFU1QpCmRpZmYg LS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlIGIvZHJpdmVycy9waW5jdHJsL2Jj bS9NYWtlZmlsZQppbmRleCA1N2U1NDM0YTZkYjYuLmMzZjViN2IyZjJmMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL01h a2VmaWxlCkBAIC01LDYgKzUsNyBAQCBvYmotJChDT05GSUdfUElOQ1RSTF9CQ00yODFYWCkJCSs9 IHBpbmN0cmwtYmNtMjgxeHgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNMjgzNSkJCSs9IHBp bmN0cmwtYmNtMjgzNS5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002M1hYKQkJKz0gcGluY3Ry bC1iY202M3h4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBwaW5jdHJsLWJj bTYzMjgubworb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjM1OCkJCSs9IHBpbmN0cmwtYmNtNjM1 OC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9JUFJPQ19HUElPKQkrPSBwaW5jdHJsLWlwcm9jLWdw aW8ubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQ1lHTlVTX01VWCkJKz0gcGluY3RybC1jeWdudXMt bXV4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX05TKQkJKz0gcGluY3RybC1ucy5vCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM1OC5jIGIvZHJpdmVycy9waW5j dHJsL2JjbS9waW5jdHJsLWJjbTYzNTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmQ2Mzg1Nzg3MjdmMwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcGluY3Ry bC9iY20vcGluY3RybC1iY202MzU4LmMKQEAgLTAsMCArMSwzNjkgQEAKKy8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERyaXZlciBmb3IgQkNNNjM1OCBHUElPIHVu aXQgKHBpbmN0cmwgKyBHUElPKQorICoKKyAqIENvcHlyaWdodCAoQykgMjAyMSDDgWx2YXJvIEZl cm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE2 IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8 bGludXgvYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CisjaW5jbHVkZSA8 bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9w aW5jdHJsL3Bpbm11eC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSAiLi4vcGluY3RybC11dGlscy5oIgor CisjaW5jbHVkZSAicGluY3RybC1iY202M3h4LmgiCisKKyNkZWZpbmUgQkNNNjM1OF9OVU1fR1BJ T1MJCTQwCisKKyNkZWZpbmUgQkNNNjM1OF9NT0RFX1JFRwkJMHgxOAorI2RlZmluZSAgQkNNNjM1 OF9NT0RFX01VWF9OT05FCQkwCisjZGVmaW5lICBCQ002MzU4X01PREVfTVVYX0VCSV9DUwlCSVQo NSkKKyNkZWZpbmUgIEJDTTYzNThfTU9ERV9NVVhfVUFSVDEJCUJJVCg2KQorI2RlZmluZSAgQkNN NjM1OF9NT0RFX01VWF9TUElfQ1MJQklUKDcpCisjZGVmaW5lICBCQ002MzU4X01PREVfTVVYX0FT WU5DX01PREVNCUJJVCg4KQorI2RlZmluZSAgQkNNNjM1OF9NT0RFX01VWF9MRUdBQ1lfTEVECUJJ VCg5KQorI2RlZmluZSAgQkNNNjM1OF9NT0RFX01VWF9TRVJJQUxfTEVECUJJVCgxMCkKKyNkZWZp bmUgIEJDTTYzNThfTU9ERV9NVVhfTEVECQlCSVQoMTEpCisjZGVmaW5lICBCQ002MzU4X01PREVf TVVYX1VUT1BJQQlCSVQoMTIpCisjZGVmaW5lICBCQ002MzU4X01PREVfTVVYX0NMS1JTVAlCSVQo MTMpCisjZGVmaW5lICBCQ002MzU4X01PREVfTVVYX1BXTV9TWU5fQ0xLCUJJVCgxNCkKKyNkZWZp bmUgIEJDTTYzNThfTU9ERV9NVVhfU1lTX0lSUQlCSVQoMTUpCisKK3N0cnVjdCBiY202MzU4X3Bp bmdyb3VwIHsKKwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IHVuc2lnbmVkICogY29uc3QgcGlu czsKKwljb25zdCB1bnNpZ25lZCBudW1fcGluczsKKworCWNvbnN0IHVpbnQxNl90IG1vZGVfdmFs OworCisJLyogbm9uLUdQSU8gZnVuY3Rpb24gbXV4ZXMgcmVxdWlyZSB0aGUgZ3BpbyBkaXJlY3Rp b24gdG8gYmUgc2V0ICovCisJY29uc3QgdWludDE2X3QgZGlyZWN0aW9uOworfTsKKworc3RydWN0 IGJjbTYzNThfZnVuY3Rpb24geworCWNvbnN0IGNoYXIgKm5hbWU7CisJY29uc3QgY2hhciAqIGNv bnN0ICpncm91cHM7CisJY29uc3QgdW5zaWduZWQgbnVtX2dyb3VwczsKK307CisKK3N0cnVjdCBi Y202MzU4X3ByaXYgeworCXN0cnVjdCByZWdtYXBfZmllbGQgKm92ZXJsYXlzOworfTsKKworI2Rl ZmluZSBCQ002MzU4X0dQSU9fUElOKGEsIGIsIGJpdDEsIGJpdDIsIGJpdDMpCQlcCisJewkJCQkJ CQlcCisJCS5udW1iZXIgPSBhLAkJCQkJXAorCQkubmFtZSA9IGIsCQkJCQlcCisJCS5kcnZfZGF0 YSA9ICh2b2lkICopKEJDTTYzNThfTU9ERV9NVVhfIyNiaXQxIHwJXAorCQkJCSAgICAgQkNNNjM1 OF9NT0RFX01VWF8jI2JpdDIgfAlcCisJCQkJICAgICBCQ002MzU4X01PREVfTVVYXyMjYml0Myks CVwKKwl9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBiY202MzU4X3Bp bnNbXSA9IHsKKwlCQ002MzU4X0dQSU9fUElOKDAsICJncGlvMCIsIExFRCwgTk9ORSwgTk9ORSks CisJQkNNNjM1OF9HUElPX1BJTigxLCAiZ3BpbzEiLCBMRUQsIE5PTkUsIE5PTkUpLAorCUJDTTYz NThfR1BJT19QSU4oMiwgImdwaW8yIiwgTEVELCBOT05FLCBOT05FKSwKKwlCQ002MzU4X0dQSU9f UElOKDMsICJncGlvMyIsIExFRCwgTk9ORSwgTk9ORSksCisJUElOQ1RSTF9QSU4oNCwgImdwaW80 IiksCisJQkNNNjM1OF9HUElPX1BJTig1LCAiZ3BpbzUiLCBTWVNfSVJRLCBOT05FLCBOT05FKSwK KwlCQ002MzU4X0dQSU9fUElOKDYsICJncGlvNiIsIFNFUklBTF9MRUQsIE5PTkUsIE5PTkUpLAor CUJDTTYzNThfR1BJT19QSU4oNywgImdwaW83IiwgU0VSSUFMX0xFRCwgTk9ORSwgTk9ORSksCisJ QkNNNjM1OF9HUElPX1BJTig4LCAiZ3BpbzgiLCBQV01fU1lOX0NMSywgTk9ORSwgTk9ORSksCisJ QkNNNjM1OF9HUElPX1BJTig5LCAiZ3BpbzA5IiwgTEVHQUNZX0xFRCwgTk9ORSwgTk9ORSksCisJ QkNNNjM1OF9HUElPX1BJTigxMCwgImdwaW8xMCIsIExFR0FDWV9MRUQsIE5PTkUsIE5PTkUpLAor CUJDTTYzNThfR1BJT19QSU4oMTEsICJncGlvMTEiLCBMRUdBQ1lfTEVELCBOT05FLCBOT05FKSwK KwlCQ002MzU4X0dQSU9fUElOKDEyLCAiZ3BpbzEyIiwgTEVHQUNZX0xFRCwgQVNZTkNfTU9ERU0s IFVUT1BJQSksCisJQkNNNjM1OF9HUElPX1BJTigxMywgImdwaW8xMyIsIExFR0FDWV9MRUQsIEFT WU5DX01PREVNLCBVVE9QSUEpLAorCUJDTTYzNThfR1BJT19QSU4oMTQsICJncGlvMTQiLCBMRUdB Q1lfTEVELCBBU1lOQ19NT0RFTSwgVVRPUElBKSwKKwlCQ002MzU4X0dQSU9fUElOKDE1LCAiZ3Bp bzE1IiwgTEVHQUNZX0xFRCwgQVNZTkNfTU9ERU0sIFVUT1BJQSksCisJUElOQ1RSTF9QSU4oMTYs ICJncGlvMTYiKSwKKwlQSU5DVFJMX1BJTigxNywgImdwaW8xNyIpLAorCVBJTkNUUkxfUElOKDE4 LCAiZ3BpbzE4IiksCisJUElOQ1RSTF9QSU4oMTksICJncGlvMTkiKSwKKwlQSU5DVFJMX1BJTigy MCwgImdwaW8yMCIpLAorCVBJTkNUUkxfUElOKDIxLCAiZ3BpbzIxIiksCisJQkNNNjM1OF9HUElP X1BJTigyMiwgImdwaW8yMiIsIFVUT1BJQSwgTk9ORSwgTk9ORSksCisJQkNNNjM1OF9HUElPX1BJ TigyMywgImdwaW8yMyIsIFVUT1BJQSwgTk9ORSwgTk9ORSksCisJQkNNNjM1OF9HUElPX1BJTigy NCwgImdwaW8yNCIsIFVUT1BJQSwgTk9ORSwgTk9ORSksCisJQkNNNjM1OF9HUElPX1BJTigyNSwg ImdwaW8yNSIsIFVUT1BJQSwgTk9ORSwgTk9ORSksCisJQkNNNjM1OF9HUElPX1BJTigyNiwgImdw aW8yNiIsIFVUT1BJQSwgTk9ORSwgTk9ORSksCisJQkNNNjM1OF9HUElPX1BJTigyNywgImdwaW8y NyIsIFVUT1BJQSwgTk9ORSwgTk9ORSksCisJQkNNNjM1OF9HUElPX1BJTigyOCwgImdwaW8yOCIs IFVUT1BJQSwgVUFSVDEsIE5PTkUpLAorCUJDTTYzNThfR1BJT19QSU4oMjksICJncGlvMjkiLCBV VE9QSUEsIFVBUlQxLCBOT05FKSwKKwlCQ002MzU4X0dQSU9fUElOKDMwLCAiZ3BpbzMwIiwgVVRP UElBLCBVQVJUMSwgRUJJX0NTKSwKKwlCQ002MzU4X0dQSU9fUElOKDMxLCAiZ3BpbzMxIiwgVVRP UElBLCBVQVJUMSwgRUJJX0NTKSwKKwlCQ002MzU4X0dQSU9fUElOKDMyLCAiZ3BpbzMyIiwgU1BJ X0NTLCBOT05FLCBOT05FKSwKKwlCQ002MzU4X0dQSU9fUElOKDMzLCAiZ3BpbzMzIiwgU1BJX0NT LCBOT05FLCBOT05FKSwKKwlQSU5DVFJMX1BJTigzNCwgImdwaW8zNCIpLAorCVBJTkNUUkxfUElO KDM1LCAiZ3BpbzM1IiksCisJUElOQ1RSTF9QSU4oMzYsICJncGlvMzYiKSwKKwlQSU5DVFJMX1BJ TigzNywgImdwaW8zNyIpLAorCVBJTkNUUkxfUElOKDM4LCAiZ3BpbzM4IiksCisJUElOQ1RSTF9Q SU4oMzksICJncGlvMzkiKSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBlYmlfY3NfZ3JwX3BpbnNb XSA9IHsgMzAsIDMxIH07CisKK3N0YXRpYyB1bnNpZ25lZCB1YXJ0MV9ncnBfcGluc1tdID0geyAy OCwgMjksIDMwLCAzMSB9OworCitzdGF0aWMgdW5zaWduZWQgc3BpX2NzX2dycF9waW5zW10gPSB7 IDMyLCAzMyB9OworCitzdGF0aWMgdW5zaWduZWQgYXN5bmNfbW9kZW1fZ3JwX3BpbnNbXSA9IHsg MTIsIDEzLCAxNCwgMTUgfTsKKworc3RhdGljIHVuc2lnbmVkIHNlcmlhbF9sZWRfZ3JwX3BpbnNb XSA9IHsgNiwgNyB9OworCitzdGF0aWMgdW5zaWduZWQgbGVnYWN5X2xlZF9ncnBfcGluc1tdID0g eyA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1IH07CisKK3N0YXRpYyB1bnNpZ25lZCBsZWRfZ3Jw X3BpbnNbXSA9IHsgMCwgMSwgMiwgMyB9OworCitzdGF0aWMgdW5zaWduZWQgdXRvcGlhX2dycF9w aW5zW10gPSB7CisJMTIsIDEzLCAxNCwgMTUsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAy OSwgMzAsIDMxLAorfTsKKworc3RhdGljIHVuc2lnbmVkIHB3bV9zeW5fY2xrX2dycF9waW5zW10g PSB7IDggfTsKKworc3RhdGljIHVuc2lnbmVkIHN5c19pcnFfZ3JwX3BpbnNbXSA9IHsgNSB9Owor CisjZGVmaW5lIEJDTTYzNThfR1BJT19NVVhfR1JPVVAobiwgYml0LCBkaXIpCQkJXAorCXsJCQkJ CQkJXAorCQkubmFtZSA9ICNuLAkJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCQlcCisJCS5u dW1fcGlucyA9IEFSUkFZX1NJWkUobiMjX3BpbnMpLAkJXAorCQkubW9kZV92YWwgPSBCQ002MzU4 X01PREVfTVVYXyMjYml0LAkJXAorCQkuZGlyZWN0aW9uID0gZGlyLAkJCQlcCisJfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGJjbTYzNThfcGluZ3JvdXAgYmNtNjM1OF9ncm91cHNbXSA9IHsKKwlC Q002MzU4X0dQSU9fTVVYX0dST1VQKGViaV9jc19ncnAsIEVCSV9DUywgMHgzKSwKKwlCQ002MzU4 X0dQSU9fTVVYX0dST1VQKHVhcnQxX2dycCwgVUFSVDEsIDB4MiksCisJQkNNNjM1OF9HUElPX01V WF9HUk9VUChzcGlfY3NfZ3JwLCBTUElfQ1MsIDB4NiksCisJQkNNNjM1OF9HUElPX01VWF9HUk9V UChhc3luY19tb2RlbV9ncnAsIEFTWU5DX01PREVNLCAweDYpLAorCUJDTTYzNThfR1BJT19NVVhf R1JPVVAobGVnYWN5X2xlZF9ncnAsIExFR0FDWV9MRUQsIDB4N2YpLAorCUJDTTYzNThfR1BJT19N VVhfR1JPVVAoc2VyaWFsX2xlZF9ncnAsIFNFUklBTF9MRUQsIDB4MyksCisJQkNNNjM1OF9HUElP X01VWF9HUk9VUChsZWRfZ3JwLCBMRUQsIDB4ZiksCisJQkNNNjM1OF9HUElPX01VWF9HUk9VUCh1 dG9waWFfZ3JwLCBVVE9QSUEsIDB4MDAwZiksCisJQkNNNjM1OF9HUElPX01VWF9HUk9VUChwd21f c3luX2Nsa19ncnAsIFBXTV9TWU5fQ0xLLCAweDEpLAorCUJDTTYzNThfR1BJT19NVVhfR1JPVVAo c3lzX2lycV9ncnAsIFNZU19JUlEsIDB4MSksCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGViaV9jc19ncm91cHNbXSA9IHsKKwkiZWJpX2NzX2dycCIKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgdWFydDFfZ3JvdXBzW10gPSB7CisJInVhcnQxX2dycCIKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BpX2NzXzJfM19ncm91cHNbXSA9IHsKKwkic3BpX2Nz XzJfM19ncnAiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGFzeW5jX21vZGVtX2dy b3Vwc1tdID0geworCSJhc3luY19tb2RlbV9ncnAiCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGxlZ2FjeV9sZWRfZ3JvdXBzW10gPSB7CisJImxlZ2FjeV9sZWRfZ3JwIiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2VyaWFsX2xlZF9ncm91cHNbXSA9IHsKKwkic2Vy aWFsX2xlZF9ncnAiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBsZWRfZ3JvdXBz W10gPSB7CisJImxlZF9ncnAiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjbGty c3RfZ3JvdXBzW10gPSB7CisJImNsa3JzdF9ncnAiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBwd21fc3luX2Nsa19ncm91cHNbXSA9IHsKKwkicHdtX3N5bl9jbGtfZ3JwIiwKK307 CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3lzX2lycV9ncm91cHNbXSA9IHsKKwkic3lz X2lycV9ncnAiLAorfTsKKworI2RlZmluZSBCQ002MzU4X0ZVTihuKQkJCQkJXAorCXsJCQkJCQlc CisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQkubnVt X2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwl9CisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgYmNtNjM1OF9mdW5jdGlvbiBiY202MzU4X2Z1bmNzW10gPSB7CisJQkNNNjM1OF9GVU4o ZWJpX2NzKSwKKwlCQ002MzU4X0ZVTih1YXJ0MSksCisJQkNNNjM1OF9GVU4oc3BpX2NzXzJfMyks CisJQkNNNjM1OF9GVU4oYXN5bmNfbW9kZW0pLAorCUJDTTYzNThfRlVOKGxlZ2FjeV9sZWQpLAor CUJDTTYzNThfRlVOKHNlcmlhbF9sZWQpLAorCUJDTTYzNThfRlVOKGxlZCksCisJQkNNNjM1OF9G VU4oY2xrcnN0KSwKKwlCQ002MzU4X0ZVTihwd21fc3luX2NsayksCisJQkNNNjM1OF9GVU4oc3lz X2lycSksCit9OworCitzdGF0aWMgaW50IGJjbTYzNThfcGluY3RybF9nZXRfZ3JvdXBfY291bnQo c3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYz NThfZ3JvdXBzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNThfcGluY3RybF9nZXRf Z3JvdXBfbmFtZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVuc2lnbmVk IGdyb3VwKQoreworCXJldHVybiBiY202MzU4X2dyb3Vwc1tncm91cF0ubmFtZTsKK30KKworc3Rh dGljIGludCBiY202MzU4X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0cmxfZGV2 ICpwY3RsZGV2LAorCQkJCQkgIHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNpZ25lZCAqKnBpbnMs CisJCQkJCSAgdW5zaWduZWQgKm51bV9waW5zKQoreworCSpwaW5zID0gYmNtNjM1OF9ncm91cHNb Z3JvdXBdLnBpbnM7CisJKm51bV9waW5zID0gYmNtNjM1OF9ncm91cHNbZ3JvdXBdLm51bV9waW5z OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM1OF9waW5jdHJsX2dldF9mdW5j X2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJSQVlfU0la RShiY202MzU4X2Z1bmNzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNThfcGluY3Ry bF9nZXRfZnVuY19uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSB1bnNp Z25lZCBzZWxlY3RvcikKK3sKKwlyZXR1cm4gYmNtNjM1OF9mdW5jc1tzZWxlY3Rvcl0ubmFtZTsK K30KKworc3RhdGljIGludCBiY202MzU4X3BpbmN0cmxfZ2V0X2dyb3VwcyhzdHJ1Y3QgcGluY3Ry bF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3IsCisJCQkJICAgICAg Y29uc3QgY2hhciAqIGNvbnN0ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2lnbmVkICogY29uc3Qg bnVtX2dyb3VwcykKK3sKKwkqZ3JvdXBzID0gYmNtNjM1OF9mdW5jc1tzZWxlY3Rvcl0uZ3JvdXBz OworCSpudW1fZ3JvdXBzID0gYmNtNjM1OF9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3VwczsKKwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbTYzNThfcGluY3RybF9zZXRfbXV4KHN0cnVj dCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICB1bnNpZ25lZCBzZWxlY3RvciwgdW5zaWdu ZWQgZ3JvdXApCit7CisJc3RydWN0IGJjbTYzeHhfcGluY3RybCAqcGMgPSBwaW5jdHJsX2Rldl9n ZXRfZHJ2ZGF0YShwY3RsZGV2KTsKKwlzdHJ1Y3QgYmNtNjM1OF9wcml2ICpwcml2ID0gcGMtPmRy aXZlcl9kYXRhOworCWNvbnN0IHN0cnVjdCBiY202MzU4X3Bpbmdyb3VwICpwZyA9ICZiY202MzU4 X2dyb3Vwc1tncm91cF07CisJdW5zaWduZWQgaW50IHZhbCA9IHBnLT5tb2RlX3ZhbDsKKwl1bnNp Z25lZCBpbnQgbWFzayA9IHZhbDsKKwl1bnNpZ25lZCBwaW47CisKKwlmb3IgKHBpbiA9IDA7IHBp biA8IHBnLT5udW1fcGluczsgcGluKyspCisJCW1hc2sgfD0gKHVuc2lnbmVkIGxvbmcpYmNtNjM1 OF9waW5zW3Bpbl0uZHJ2X2RhdGE7CisKKwlyZWdtYXBfZmllbGRfdXBkYXRlX2JpdHMocHJpdi0+ b3ZlcmxheXMsIG1hc2ssIHZhbCk7CisKKwlmb3IgKHBpbiA9IDA7IHBpbiA8IHBnLT5udW1fcGlu czsgcGluKyspIHsKKwkJc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2U7CisJCXVuc2ln bmVkIGludCBod19ncGlvID0gYmNtNjM1OF9waW5zW3Bpbl0ubnVtYmVyOworCisJCXJhbmdlID0g cGluY3RybF9maW5kX2dwaW9fcmFuZ2VfZnJvbV9waW4ocGN0bGRldiwgaHdfZ3Bpbyk7CisJCWlm IChyYW5nZSkgeworCQkJc3RydWN0IGdwaW9fY2hpcCAqZ2MgPSByYW5nZS0+Z2M7CisKKwkJCWlm IChwZy0+ZGlyZWN0aW9uICYgQklUKHBpbikpCisJCQkJZ2MtPmRpcmVjdGlvbl9vdXRwdXQoZ2Ms IGh3X2dwaW8sIDApOworCQkJZWxzZQorCQkJCWdjLT5kaXJlY3Rpb25faW5wdXQoZ2MsIGh3X2dw aW8pOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM1OF9ncGlv X3JlcXVlc3RfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICAgICAg c3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFuZ2UsCisJCQkJICAgICAgIHVuc2lnbmVkIG9m ZnNldCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9k cnZkYXRhKHBjdGxkZXYpOworCXN0cnVjdCBiY202MzU4X3ByaXYgKnByaXYgPSBwYy0+ZHJpdmVy X2RhdGE7CisJdW5zaWduZWQgaW50IG1hc2s7CisKKwltYXNrID0gKHVuc2lnbmVkIGxvbmcpIGJj bTYzNThfcGluc1tvZmZzZXRdLmRydl9kYXRhOworCWlmICghbWFzaykKKwkJcmV0dXJuIDA7CisK KwkvKiBkaXNhYmxlIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwlyZXR1cm4gcmVn bWFwX2ZpZWxkX3VwZGF0ZV9iaXRzKHByaXYtPm92ZXJsYXlzLCBtYXNrLCAwKTsKK30KKworc3Rh dGljIHN0cnVjdCBwaW5jdHJsX29wcyBiY202MzU4X3BjdGxfb3BzID0geworCS5kdF9mcmVlX21h cCA9IHBpbmN0cmxfdXRpbHNfZnJlZV9tYXAsCisJLmR0X25vZGVfdG9fbWFwID0gcGluY29uZl9n ZW5lcmljX2R0X25vZGVfdG9fbWFwX3BpbiwKKwkuZ2V0X2dyb3VwX25hbWUgPSBiY202MzU4X3Bp bmN0cmxfZ2V0X2dyb3VwX25hbWUsCisJLmdldF9ncm91cF9waW5zID0gYmNtNjM1OF9waW5jdHJs X2dldF9ncm91cF9waW5zLAorCS5nZXRfZ3JvdXBzX2NvdW50ID0gYmNtNjM1OF9waW5jdHJsX2dl dF9ncm91cF9jb3VudCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGlubXV4X29wcyBiY202MzU4X3Bt eF9vcHMgPSB7CisJLmdldF9mdW5jdGlvbl9ncm91cHMgPSBiY202MzU4X3BpbmN0cmxfZ2V0X2dy b3VwcywKKwkuZ2V0X2Z1bmN0aW9uX25hbWUgPSBiY202MzU4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFt ZSwKKwkuZ2V0X2Z1bmN0aW9uc19jb3VudCA9IGJjbTYzNThfcGluY3RybF9nZXRfZnVuY19jb3Vu dCwKKwkuZ3Bpb19yZXF1ZXN0X2VuYWJsZSA9IGJjbTYzNThfZ3Bpb19yZXF1ZXN0X2VuYWJsZSwK Kwkuc2V0X211eCA9IGJjbTYzNThfcGluY3RybF9zZXRfbXV4LAorCS5zdHJpY3QgPSB0cnVlLAor fTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202M3h4X3BpbmN0cmxfc29jIGJjbTYzNThfc29j ID0geworCS5uZ3Bpb3MgPSBCQ002MzU4X05VTV9HUElPUywKKwkubnBpbnMgPSBBUlJBWV9TSVpF KGJjbTYzNThfcGlucyksCisJLnBjdGxfb3BzID0gJmJjbTYzNThfcGN0bF9vcHMsCisJLnBpbnMg PSBiY202MzU4X3BpbnMsCisJLnBteF9vcHMgPSAmYmNtNjM1OF9wbXhfb3BzLAorfTsKKworc3Rh dGljIGludCBiY202MzU4X3BpbmN0cmxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKK3sKKwlzdHJ1Y3QgcmVnX2ZpZWxkIG92ZXJsYXlzID0gUkVHX0ZJRUxEKEJDTTYzNThfTU9E RV9SRUcsIDAsIDE1KTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVj dCBiY202M3h4X3BpbmN0cmwgKnBjOworCXN0cnVjdCBiY202MzU4X3ByaXYgKnByaXY7CisJaW50 IGVycjsKKworCXByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBfS0VS TkVMKTsKKwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJZXJyID0gYmNtNjN4eF9w aW5jdHJsX3Byb2JlKHBkZXYsICZiY202MzU4X3NvYywgKHZvaWQgKikgcHJpdik7CisJaWYgKGVy cikKKwkJcmV0dXJuIGVycjsKKworCXBjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisK Kwlwcml2LT5vdmVybGF5cyA9IGRldm1fcmVnbWFwX2ZpZWxkX2FsbG9jKGRldiwgcGMtPnJlZ3Ms IG92ZXJsYXlzKTsKKwlpZiAoSVNfRVJSKHByaXYtPm92ZXJsYXlzKSkKKwkJcmV0dXJuIFBUUl9F UlIocHJpdi0+b3ZlcmxheXMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2ZfZGV2aWNlX2lkIGJjbTYzNThfcGluY3RybF9tYXRjaFtdID0geworCXsgLmNvbXBhdGli bGUgPSAiYnJjbSxiY202MzU4LXBpbmN0cmwiLCB9LAorCXsgLyogc2VudGluZWwgKi8gfQorfTsK Kworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYmNtNjM1OF9waW5jdHJsX2RyaXZlciA9 IHsKKwkucHJvYmUgPSBiY202MzU4X3BpbmN0cmxfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5h bWUgPSAiYmNtNjM1OC1waW5jdHJsIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gYmNtNjM1OF9waW5j dHJsX21hdGNoLAorCX0sCit9OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihiY202MzU4X3Bp bmN0cmxfZHJpdmVyKTsKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK