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=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 3D784C433E2 for ; Wed, 10 Jun 2020 17:19:06 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 0BD952070B for ; Wed, 10 Jun 2020 17:19:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="EkDiVkr/"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ockfq1Gs" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0BD952070B 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+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc: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:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=I6NwDL+R9Cunk0gcB2Fpb2CMV0xVhCvY0MMhCM6DTiY=; b=EkDiVkr/f6IWg0 ON2mDP5Fc7k+1YH7ygsPMYJ2JckuufKDk7X2gWhqxl2fyy8ePgd4EuGayPGVJFt0YrsIxXl+nT/vJ qZznr+JOUEyt4OsKDk3MRSpUXohahXEB6lfuO8h2JhVpwGC1z4A6sMNzXHTa6Khls0PM+KFSo/Gb6 508KWhc3wPcuIH2hiOKpC9UDwabguZ5cvxK2vz60InJw4ATeooFe5MHF6nDIiwpIX2fPxlfkw5PXx 9SFdQQcs/wHPaOI5qq1V6gpj74b5RYMAEQSc07+flSGORqXjxoVW1X/X7p67eWa7XfPJs2VfWCSpz ehRZ5PxISQoTy687iklA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jj4NN-0007rO-Up; Wed, 10 Jun 2020 17:18:57 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jj4LB-0005mI-K4 for linux-arm-kernel@lists.infradead.org; Wed, 10 Jun 2020 17:16:45 +0000 Received: by mail-wr1-x442.google.com with SMTP id p5so3149387wrw.9 for ; Wed, 10 Jun 2020 10:16:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Cd+yLg5g7GZCMBXFToUqfRJ1Udmj1HQHyRsuOZDrCI4=; b=Ockfq1GsO2c1O7Zz/abUDIxPV/h1r+b5iE3QrwxL6fvKM3qbxfypsmOYxYP0svXJDT CknBZrEV7nVVM/h/6e3ErgzTMSBXpZ3z3wqvJP1Ftdg2kVgQFS5jOUN9DX4VG3UOxT2V gyYcRf/Gz1T6iew/dFRJPYwVzJiwmM6+/8LNx0Y0zgjWeGgZSD9tFVsGZv9USg+izHL/ 9MpRKQVBtcol5ViXCtG5cScXpkfs727YSMJbscQxX96WVw2YxS7NzXecAMbwBeASpdcS mgbDkiC2+dBhS7m/I0HuxvaUgmaxkpog0cQPuJ1WCGy5TYISA351/xuSf0tTBN/h7rT9 QHIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Cd+yLg5g7GZCMBXFToUqfRJ1Udmj1HQHyRsuOZDrCI4=; b=L3GhObCIfUxhHnKGEY4Fylq4qCB3pfM6sxa/9b5lwrw1NjAIJ7hxORLYV4Idx0uQHq 0e9kQwAjlfiu8dmvY2ufRpeuWIMEa1Et0haqgdJV8ZIF+/GuK9VOzwJGFWaridIVfvV/ cdWdbNhHpghDh8c38OtcBfPyQH0ScSs8muIqUDiZvVqesUt14jbOA7zJaR9/YSIKAIY9 Uz0ImJGCC7KLxEB4dM1d64GCyfwGanrdjqMdOoiJzPHXqz4Jp+s6x/Lld6JGsZ7ag8Je i9z9kDFakuJ8CUa2j4HUuYkWM6REV8SyvArWID2nOkwCv/NgF1Prtt8v/amB0PS92wxZ 5hQw== X-Gm-Message-State: AOAM530K+5cBjlrjUb5XYgi1gkMiEQ9aSkv2weGiwljljnMGF3eOLvlX 208Lna7YZ+BzbZ9CodAAiLpqMMweIsg= X-Google-Smtp-Source: ABdhPJw9np+QeDblP3jHRs/QzGg/S1hOySO8j1KJj4qqPfF/zXN1g9EFirWdjkDmu4O7pXPf4HuNpQ== X-Received: by 2002:adf:f58b:: with SMTP id f11mr4864592wro.155.1591809398983; Wed, 10 Jun 2020 10:16:38 -0700 (PDT) Received: from skynet.lan (28.red-83-49-61.dynamicip.rima-tde.net. [83.49.61.28]) by smtp.gmail.com with ESMTPSA id f11sm589048wrm.13.2020.06.10.10.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2020 10:16:38 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: hauke@hauke-m.de, zajec5@gmail.com, tsbogend@alpha.franken.de, robh+dt@kernel.org, f.fainelli@gmail.com, jonas.gorski@gmail.com, bcm-kernel-feedback-list@broadcom.com, linux-mips@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 6/9] soc: bcm: add BCM63xx power domain driver Date: Wed, 10 Jun 2020 19:16:27 +0200 Message-Id: <20200610171630.465579-7-noltari@gmail.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200610171630.465579-1-noltari@gmail.com> References: <20200610163301.461160-1-noltari@gmail.com> <20200610171630.465579-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200610_101642_139808_F3A713B4 X-CRM114-Status: GOOD ( 16.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org QkNNNjMxOCwgQkNNNjMyOCwgQkNNNjM2MiBhbmQgQkNNNjMyNjggU29DcyBoYXZlIGEgcG93ZXIg ZG9tYWluIGNvbnRyb2xsZXIKdG8gZW5hYmxlL2Rpc2FibGUgY2VydGFpbiBjb21wb25lbnRzIGlu IG9yZGVyIHRvIHNhdmUgcG93ZXIuCgpTaWduZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXog Um9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgotLS0KIHYzOiBVc2UgZHQtYmluZGluZ3MgZGVmaW5p dGlvbnMgaW4gcG93ZXIgZG9tYWluIGRyaXZlci4KIHYyOiBJbnRyb2R1Y2UgYmNtNjN4eCBmb2xk ZXIgaW4gZHJpdmVycy9zb2MvYmNtIGFuZCB1cGRhdGUgTUFJTlRBSU5FUlMuCgogTUFJTlRBSU5F UlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvc29jL2JjbS9L Y29uZmlnICAgICAgICAgICAgICAgICB8ICAxMCArCiBkcml2ZXJzL3NvYy9iY20vTWFrZWZpbGUg ICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9zb2MvYmNtL2JjbTYzeHgvS2NvbmZpZyAg ICAgICAgIHwgIDEyICsKIGRyaXZlcnMvc29jL2JjbS9iY202M3h4L01ha2VmaWxlICAgICAgICB8 ICAgMiArCiBkcml2ZXJzL3NvYy9iY20vYmNtNjN4eC9iY202M3h4LXBvd2VyLmMgfCAzNzggKysr KysrKysrKysrKysrKysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDQwNCBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvYmNtL2JjbTYzeHgvS2NvbmZpZwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc29jL2JjbS9iY202M3h4L01ha2VmaWxlCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9zb2MvYmNtL2JjbTYzeHgvYmNtNjN4eC1wb3dlci5jCgpkaWZm IC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCA3N2EzZmE1ZTNlZGQuLmU5 YmE3Yjk1NWQ1ZiAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRBSU5FUlMKQEAg LTM0NDIsNiArMzQ0Miw3IEBAIEY6CWFyY2gvbWlwcy9ibWlwcy8qCiBGOglhcmNoL21pcHMvYm9v dC9kdHMvYnJjbS9iY20qLmR0cyoKIEY6CWFyY2gvbWlwcy9pbmNsdWRlL2FzbS9tYWNoLWJtaXBz LyoKIEY6CWFyY2gvbWlwcy9rZXJuZWwvKmJtaXBzKgorRjoJZHJpdmVycy9zb2MvYmNtL2JjbTYz eHgKIEY6CWRyaXZlcnMvaXJxY2hpcC9pcnEtYmNtNjMqCiBGOglkcml2ZXJzL2lycWNoaXAvaXJx LWJjbTcqCiBGOglkcml2ZXJzL2lycWNoaXAvaXJxLWJyY21zdGIqCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3NvYy9iY20vS2NvbmZpZyBiL2RyaXZlcnMvc29jL2JjbS9LY29uZmlnCmluZGV4IDY0OGUz MjY5M2I3ZS4uMjRmOTJhNmU4ODJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NvYy9iY20vS2NvbmZp ZworKysgYi9kcml2ZXJzL3NvYy9iY20vS2NvbmZpZwpAQCAtMjIsNiArMjIsMTUgQEAgY29uZmln IFJBU1BCRVJSWVBJX1BPV0VSCiAJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFJQaSBw b3dlciBkb21haW5zIHdoaWNoIGNhbiBiZSBlbmFibGVkCiAJICBvciBkaXNhYmxlZCB2aWEgdGhl IFJQaSBmaXJtd2FyZS4KIAorY29uZmlnIFNPQ19CQ002M1hYCisJYm9vbCAiQnJvYWRjb20gNjN4 eCBTb0MgZHJpdmVycyIKKwlkZXBlbmRzIG9uIEJNSVBTX0dFTkVSSUMgfHwgQ09NUElMRV9URVNU CisJaGVscAorCSAgRW5hYmxlcyBkcml2ZXJzIGZvciB0aGUgQnJvYWRjb20gNjN4eCBzZXJpZXMg b2YgY2hpcHMuCisJICBEcml2ZXJzIGNhbiBiZSBlbmFibGVkIGluZGl2aWR1YWxseSB3aXRoaW4g dGhpcyBtZW51LgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCiBjb25maWcgU09DX0JSQ01TVEIK IAlib29sICJCcm9hZGNvbSBTVEIgU29DIGRyaXZlcnMiCiAJZGVwZW5kcyBvbiBBUk0gfHwgQVJN NjQgfHwgQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QKQEAgLTMzLDYgKzQyLDcgQEAgY29u ZmlnIFNPQ19CUkNNU1RCCiAKIAkgIElmIHVuc3VyZSwgc2F5IE4uCiAKK3NvdXJjZSAiZHJpdmVy cy9zb2MvYmNtL2JjbTYzeHgvS2NvbmZpZyIKIHNvdXJjZSAiZHJpdmVycy9zb2MvYmNtL2JyY21z dGIvS2NvbmZpZyIKIAogZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvYmNtL01ha2Vm aWxlIGIvZHJpdmVycy9zb2MvYmNtL01ha2VmaWxlCmluZGV4IGQ5MjI2OGE4MjlhOS4uN2JjOTBl MGJkNzczIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NvYy9iY20vTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9zb2MvYmNtL01ha2VmaWxlCkBAIC0xLDQgKzEsNSBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMC1vbmx5CiBvYmotJChDT05GSUdfQkNNMjgzNV9QT1dFUikJKz0gYmNtMjgz NS1wb3dlci5vCiBvYmotJChDT05GSUdfUkFTUEJFUlJZUElfUE9XRVIpCSs9IHJhc3BiZXJyeXBp LXBvd2VyLm8KK29iai0kKENPTkZJR19TT0NfQkNNNjNYWCkJKz0gYmNtNjN4eC8KIG9iai0kKENP TkZJR19TT0NfQlJDTVNUQikJKz0gYnJjbXN0Yi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL2Jj bS9iY202M3h4L0tjb25maWcgYi9kcml2ZXJzL3NvYy9iY20vYmNtNjN4eC9LY29uZmlnCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTZmNjQ4YTZjNzBhCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9zb2MvYmNtL2JjbTYzeHgvS2NvbmZpZwpAQCAtMCwwICsxLDEy IEBACisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKK2lmIFNPQ19CQ002 M1hYCisKK2NvbmZpZyBCQ002M1hYX1BPV0VSCisJYm9vbCAiQkNNNjN4eCBwb3dlciBkb21haW4g ZHJpdmVyIgorCWRlcGVuZHMgb24gQk1JUFNfR0VORVJJQyB8fCAoQ09NUElMRV9URVNUICYmIE9G KQorCXNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlMgaWYgUE0KKwloZWxwCisJICBUaGlzIGVuYWJs ZXMgc3VwcG9ydCBmb3IgdGhlIEJDTTYzeHggcG93ZXIgZG9tYWlucyBjb250cm9sbGVyIG9uCisJ ICBCQ002MzE4LCBCQ002MzI4LCBCQ002MzYyIGFuZCBCQ002MzI2OCBTb0NzLgorCitlbmRpZiAj IFNPQ19CQ002M1hYCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9iY20vYmNtNjN4eC9NYWtlZmls ZSBiL2RyaXZlcnMvc29jL2JjbS9iY202M3h4L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMDcxMGQ1ZTAxOGNjCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9zb2MvYmNtL2JjbTYzeHgvTWFrZWZpbGUKQEAgLTAsMCArMSwyIEBACisjIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKK29iai0kKENPTkZJR19CQ002M1hYX1BPV0VS KSArPSBiY202M3h4LXBvd2VyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL2JjbS9iY202M3h4 L2JjbTYzeHgtcG93ZXIuYyBiL2RyaXZlcnMvc29jL2JjbS9iY202M3h4L2JjbTYzeHgtcG93ZXIu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxNWZlMTgyZGMzNAot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc29jL2JjbS9iY202M3h4L2JjbTYzeHgtcG93ZXIu YwpAQCAtMCwwICsxLDM3OCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b3ItbGF0ZXIKKy8qCisgKiBCQ002M3h4IFBvd2VyIERvbWFpbiBDb250cm9sbGVyIERyaXZlcgor ICoKKyAqIENvcHlyaWdodCAoQykgMjAyMCDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRh cmlAZ21haWwuY29tPgorICovCisKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9zb2MvYmNtNjMxOC1w bS5oPgorI2luY2x1ZGUgPGR0LWJpbmRpbmdzL3NvYy9iY202MzI4LXBtLmg+CisjaW5jbHVkZSA8 ZHQtYmluZGluZ3Mvc29jL2JjbTYzNjItcG0uaD4KKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9zb2Mv YmNtNjMyNjgtcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L21v ZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxp bnV4L3BtX2RvbWFpbi5oPgorI2luY2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgv b2ZfZGV2aWNlLmg+CisKK3N0cnVjdCBiY202M3h4X3Bvd2VyX2RldiB7CisJc3RydWN0IGdlbmVy aWNfcG1fZG9tYWluIGdlbnBkOworCXN0cnVjdCBiY202M3h4X3Bvd2VyICpwb3dlcjsKKwl1aW50 MzJfdCBtYXNrOworfTsKKworc3RydWN0IGJjbTYzeHhfcG93ZXIgeworCXZvaWQgX19pb21lbSAq YmFzZTsKKwlzcGlubG9ja190IGxvY2s7CisJc3RydWN0IGJjbTYzeHhfcG93ZXJfZGV2ICpkZXY7 CisJc3RydWN0IGdlbnBkX29uZWNlbGxfZGF0YSBnZW5wZF9kYXRhOworCXN0cnVjdCBnZW5lcmlj X3BtX2RvbWFpbiAqKmdlbnBkOworfTsKKworc3RydWN0IGJjbTYzeHhfcG93ZXJfZGF0YSB7CisJ Y29uc3QgY2hhciAqIGNvbnN0IG5hbWU7CisJdWludDhfdCBiaXQ7CisJdW5zaWduZWQgaW50IGZs YWdzOworfTsKKworc3RhdGljIGludCBiY202M3h4X3Bvd2VyX2dldF9zdGF0ZShzdHJ1Y3QgYmNt NjN4eF9wb3dlcl9kZXYgKnBtZCwgYm9vbCAqaXNfb24pCit7CisJc3RydWN0IGJjbTYzeHhfcG93 ZXIgKnBvd2VyID0gcG1kLT5wb3dlcjsKKworCWlmICghcG1kLT5tYXNrKSB7CisJCSppc19vbiA9 IGZhbHNlOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkqaXNfb24gPSAhKF9fcmF3X3JlYWRs KHBvd2VyLT5iYXNlKSAmIHBtZC0+bWFzayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBiY202M3h4X3Bvd2VyX3NldF9zdGF0ZShzdHJ1Y3QgYmNtNjN4eF9wb3dlcl9kZXYgKnBtZCwg Ym9vbCBvbikKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9wb3dlciAqcG93ZXIgPSBwbWQtPnBvd2VyOwor CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdWludDMyX3QgdmFsOworCisJaWYgKCFwbWQtPm1hc2sp CisJCXJldHVybiAtRUlOVkFMOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBvd2VyLT5sb2NrLCBm bGFncyk7CisJdmFsID0gX19yYXdfcmVhZGwocG93ZXItPmJhc2UpOworCWlmIChvbikKKwkJdmFs ICY9IH5wbWQtPm1hc2s7CisJZWxzZQorCQl2YWwgfD0gcG1kLT5tYXNrOworCV9fcmF3X3dyaXRl bCh2YWwsIHBvd2VyLT5iYXNlKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3dlci0+bG9j aywgZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjN4eF9wb3dlcl9v bihzdHJ1Y3QgZ2VuZXJpY19wbV9kb21haW4gKmdlbnBkKQoreworCXN0cnVjdCBiY202M3h4X3Bv d2VyX2RldiAqcG1kID0gY29udGFpbmVyX29mKGdlbnBkLAorCQlzdHJ1Y3QgYmNtNjN4eF9wb3dl cl9kZXYsIGdlbnBkKTsKKworCXJldHVybiBiY202M3h4X3Bvd2VyX3NldF9zdGF0ZShwbWQsIHRy dWUpOworfQorCitzdGF0aWMgaW50IGJjbTYzeHhfcG93ZXJfb2ZmKHN0cnVjdCBnZW5lcmljX3Bt X2RvbWFpbiAqZ2VucGQpCit7CisJc3RydWN0IGJjbTYzeHhfcG93ZXJfZGV2ICpwbWQgPSBjb250 YWluZXJfb2YoZ2VucGQsCisJCXN0cnVjdCBiY202M3h4X3Bvd2VyX2RldiwgZ2VucGQpOworCisJ cmV0dXJuIGJjbTYzeHhfcG93ZXJfc2V0X3N0YXRlKHBtZCwgZmFsc2UpOworfQorCitzdGF0aWMg aW50IGJjbTYzeHhfcG93ZXJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sK KwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAq bnAgPSBkZXYtPm9mX25vZGU7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisJY29uc3Qgc3RydWN0 IGJjbTYzeHhfcG93ZXJfZGF0YSAqZW50cnksICp0YWJsZTsKKwlzdHJ1Y3QgYmNtNjN4eF9wb3dl ciAqcG93ZXI7CisJdW5zaWduZWQgaW50IG5kb207CisJdWludDhfdCBtYXhfYml0ID0gMDsKKwlp bnQgcmV0OworCisJcG93ZXIgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnBvd2VyKSwgR0ZQ X0tFUk5FTCk7CisJaWYgKCFwb3dlcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXMgPSBwbGF0 Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCXBvd2VyLT5iYXNl ID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7CisJaWYgKElTX0VSUihw b3dlci0+YmFzZSkpCisJCXJldHVybiBQVFJfRVJSKHBvd2VyLT5iYXNlKTsKKworCXRhYmxlID0g b2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGRldik7CisJaWYgKCF0YWJsZSkKKwkJcmV0dXJuIC1F SU5WQUw7CisKKwlwb3dlci0+Z2VucGRfZGF0YS5udW1fZG9tYWlucyA9IDA7CisJbmRvbSA9IDA7 CisJZm9yIChlbnRyeSA9IHRhYmxlOyBlbnRyeS0+bmFtZTsgZW50cnkrKykgeworCQltYXhfYml0 ID0gbWF4KG1heF9iaXQsIGVudHJ5LT5iaXQpOworCQluZG9tKys7CisJfQorCisJaWYgKCFuZG9t KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXBvd2VyLT5nZW5wZF9kYXRhLm51bV9kb21haW5zID0g bWF4X2JpdCArIDE7CisKKwlwb3dlci0+ZGV2ID0gZGV2bV9rY2FsbG9jKGRldiwgcG93ZXItPmdl bnBkX2RhdGEubnVtX2RvbWFpbnMsCisJCQkJICBzaXplb2Yoc3RydWN0IGJjbTYzeHhfcG93ZXJf ZGV2KSwKKwkJCQkgIEdGUF9LRVJORUwpOworCWlmICghcG93ZXItPmRldikKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwlwb3dlci0+Z2VucGQgPSBkZXZtX2tjYWxsb2MoZGV2LCBwb3dlci0+Z2VucGRf ZGF0YS5udW1fZG9tYWlucywKKwkJCQkgICAgc2l6ZW9mKHN0cnVjdCBnZW5lcmljX3BtX2RvbWFp biAqKSwKKwkJCQkgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFwb3dlci0+Z2VucGQpCisJCXJldHVy biAtRU5PTUVNOworCisJcG93ZXItPmdlbnBkX2RhdGEuZG9tYWlucyA9IHBvd2VyLT5nZW5wZDsK KworCW5kb20gPSAwOworCWZvciAoZW50cnkgPSB0YWJsZTsgZW50cnktPm5hbWU7IGVudHJ5Kysp IHsKKwkJc3RydWN0IGJjbTYzeHhfcG93ZXJfZGV2ICpwbWQgPSAmcG93ZXItPmRldltuZG9tXTsK KwkJYm9vbCBpc19vbjsKKworCQlwbWQtPnBvd2VyID0gcG93ZXI7CisJCXBtZC0+bWFzayA9IEJJ VChlbnRyeS0+Yml0KTsKKwkJcG1kLT5nZW5wZC5uYW1lID0gZW50cnktPm5hbWU7CisJCXBtZC0+ Z2VucGQuZmxhZ3MgPSBlbnRyeS0+ZmxhZ3M7CisKKwkJcmV0ID0gYmNtNjN4eF9wb3dlcl9nZXRf c3RhdGUocG1kLCAmaXNfb24pOworCQlpZiAocmV0KQorCQkJZGV2X3dhcm4oZGV2LCAidW5hYmxl IHRvIGdldCBjdXJyZW50IHN0YXRlIGZvciAlc1xuIiwKKwkJCQkgcG1kLT5nZW5wZC5uYW1lKTsK KworCQlwbWQtPmdlbnBkLnBvd2VyX29uID0gYmNtNjN4eF9wb3dlcl9vbjsKKwkJcG1kLT5nZW5w ZC5wb3dlcl9vZmYgPSBiY202M3h4X3Bvd2VyX29mZjsKKworCQlwbV9nZW5wZF9pbml0KCZwbWQt PmdlbnBkLCBOVUxMLCAhaXNfb24pOworCQlwb3dlci0+Z2VucGRbZW50cnktPmJpdF0gPSAmcG1k LT5nZW5wZDsKKworCQluZG9tKys7CisJfQorCisJc3Bpbl9sb2NrX2luaXQoJnBvd2VyLT5sb2Nr KTsKKworCXJldCA9IG9mX2dlbnBkX2FkZF9wcm92aWRlcl9vbmVjZWxsKG5wLCAmcG93ZXItPmdl bnBkX2RhdGEpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0 ZXIgZ2VucGQgZHJpdmVyOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlkZXZf aW5mbyhkZXYsICJyZWdpc3RlcmVkICV1IHBvd2VyIGRvbWFpbnNcbiIsIG5kb20pOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9wb3dlcl9kYXRhIGJjbTYz MThfcG93ZXJfZG9tYWluc1tdID0geworCXsKKwkJLm5hbWUgPSAicGNpZSIsCisJCS5iaXQgPSBC Q002MzE4X1BPV0VSX0RPTUFJTl9QQ0lFLAorCX0sIHsKKwkJLm5hbWUgPSAidXNiIiwKKwkJLmJp dCA9IEJDTTYzMThfUE9XRVJfRE9NQUlOX1VTQiwKKwl9LCB7CisJCS5uYW1lID0gImVwaHkwIiwK KwkJLmJpdCA9IEJDTTYzMThfUE9XRVJfRE9NQUlOX0VQSFkwLAorCX0sIHsKKwkJLm5hbWUgPSAi ZXBoeTEiLAorCQkuYml0ID0gQkNNNjMxOF9QT1dFUl9ET01BSU5fRVBIWTEsCisJfSwgeworCQku bmFtZSA9ICJlcGh5MiIsCisJCS5iaXQgPSBCQ002MzE4X1BPV0VSX0RPTUFJTl9FUEhZMiwKKwl9 LCB7CisJCS5uYW1lID0gImVwaHkzIiwKKwkJLmJpdCA9IEJDTTYzMThfUE9XRVJfRE9NQUlOX0VQ SFkzLAorCX0sIHsKKwkJLm5hbWUgPSAibGRvMnA1IiwKKwkJLmJpdCA9IEJDTTYzMThfUE9XRVJf RE9NQUlOX0xETzJQNSwKKwkJLmZsYWdzID0gR0VOUERfRkxBR19BTFdBWVNfT04sCisJfSwgewor CQkubmFtZSA9ICJsZG8ycDkiLAorCQkuYml0ID0gQkNNNjMxOF9QT1dFUl9ET01BSU5fTERPMlA5 LAorCQkuZmxhZ3MgPSBHRU5QRF9GTEFHX0FMV0FZU19PTiwKKwl9LCB7CisJCS5uYW1lID0gInN3 MXAwIiwKKwkJLmJpdCA9IEJDTTYzMThfUE9XRVJfRE9NQUlOX1NXMVAwLAorCQkuZmxhZ3MgPSBH RU5QRF9GTEFHX0FMV0FZU19PTiwKKwl9LCB7CisJCS5uYW1lID0gInBhZCIsCisJCS5iaXQgPSBC Q002MzE4X1BPV0VSX0RPTUFJTl9QQUQsCisJCS5mbGFncyA9IEdFTlBEX0ZMQUdfQUxXQVlTX09O LAorCX0sIHsKKwkJLyogc2VudGluZWwgKi8KKwl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCBiY202M3h4X3Bvd2VyX2RhdGEgYmNtNjMyOF9wb3dlcl9kb21haW5zW10gPSB7CisJeworCQku bmFtZSA9ICJhZHNsMi1taXBzIiwKKwkJLmJpdCA9IEJDTTYzMjhfUE9XRVJfRE9NQUlOX0FEU0wy X01JUFMsCisJfSwgeworCQkubmFtZSA9ICJhZHNsMi1waHkiLAorCQkuYml0ID0gQkNNNjMyOF9Q T1dFUl9ET01BSU5fQURTTDJfUEhZLAorCX0sIHsKKwkJLm5hbWUgPSAiYWRzbDItYWZlIiwKKwkJ LmJpdCA9IEJDTTYzMjhfUE9XRVJfRE9NQUlOX0FEU0wyX0FGRSwKKwl9LCB7CisJCS5uYW1lID0g InNhciIsCisJCS5iaXQgPSBCQ002MzI4X1BPV0VSX0RPTUFJTl9TQVIsCisJfSwgeworCQkubmFt ZSA9ICJwY20iLAorCQkuYml0ID0gQkNNNjMyOF9QT1dFUl9ET01BSU5fUENNLAorCX0sIHsKKwkJ Lm5hbWUgPSAidXNiZCIsCisJCS5iaXQgPSBCQ002MzI4X1BPV0VSX0RPTUFJTl9VU0JELAorCX0s IHsKKwkJLm5hbWUgPSAidXNiaCIsCisJCS5iaXQgPSBCQ002MzI4X1BPV0VSX0RPTUFJTl9VU0JI LAorCX0sIHsKKwkJLm5hbWUgPSAicGNpZSIsCisJCS5iaXQgPSBCQ002MzI4X1BPV0VSX0RPTUFJ Tl9QQ0lFLAorCX0sIHsKKwkJLm5hbWUgPSAicm9ib3N3IiwKKwkJLmJpdCA9IEJDTTYzMjhfUE9X RVJfRE9NQUlOX1JPQk9TVywKKwl9LCB7CisJCS5uYW1lID0gImVwaHkiLAorCQkuYml0ID0gQkNN NjMyOF9QT1dFUl9ET01BSU5fRVBIWSwKKwl9LCB7CisJCS8qIHNlbnRpbmVsICovCisJfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9wb3dlcl9kYXRhIGJjbTYzNjJfcG93ZXJf ZG9tYWluc1tdID0geworCXsKKwkJLm5hbWUgPSAic2FyIiwKKwkJLmJpdCA9IEJDTTYzNjJfUE9X RVJfRE9NQUlOX1NBUiwKKwl9LCB7CisJCS5uYW1lID0gImlwc2VjIiwKKwkJLmJpdCA9IEJDTTYz NjJfUE9XRVJfRE9NQUlOX0lQU0VDLAorCX0sIHsKKwkJLm5hbWUgPSAibWlwcyIsCisJCS5iaXQg PSBCQ002MzYyX1BPV0VSX0RPTUFJTl9NSVBTLAorCQkuZmxhZ3MgPSBHRU5QRF9GTEFHX0FMV0FZ U19PTiwKKwl9LCB7CisJCS5uYW1lID0gImRlY3QiLAorCQkuYml0ID0gQkNNNjM2Ml9QT1dFUl9E T01BSU5fREVDVCwKKwl9LCB7CisJCS5uYW1lID0gInVzYmgiLAorCQkuYml0ID0gQkNNNjM2Ml9Q T1dFUl9ET01BSU5fVVNCSCwKKwl9LCB7CisJCS5uYW1lID0gInVzYmQiLAorCQkuYml0ID0gQkNN NjM2Ml9QT1dFUl9ET01BSU5fVVNCRCwKKwl9LCB7CisJCS5uYW1lID0gInJvYm9zdyIsCisJCS5i aXQgPSBCQ002MzYyX1BPV0VSX0RPTUFJTl9ST0JPU1csCisJfSwgeworCQkubmFtZSA9ICJwY20i LAorCQkuYml0ID0gQkNNNjM2Ml9QT1dFUl9ET01BSU5fUENNLAorCX0sIHsKKwkJLm5hbWUgPSAi cGVyaXBoIiwKKwkJLmJpdCA9IEJDTTYzNjJfUE9XRVJfRE9NQUlOX1BFUklQSCwKKwkJLmZsYWdz ID0gR0VOUERfRkxBR19BTFdBWVNfT04sCisJfSwgeworCQkubmFtZSA9ICJhZHNsLXBoeSIsCisJ CS5iaXQgPSBCQ002MzYyX1BPV0VSX0RPTUFJTl9BRFNMX1BIWSwKKwl9LCB7CisJCS5uYW1lID0g ImdtaWktcGFkcyIsCisJCS5iaXQgPSBCQ002MzYyX1BPV0VSX0RPTUFJTl9HTUlJX1BBRFMsCisJ fSwgeworCQkubmFtZSA9ICJmYXAiLAorCQkuYml0ID0gQkNNNjM2Ml9QT1dFUl9ET01BSU5fRkFQ LAorCX0sIHsKKwkJLm5hbWUgPSAicGNpZSIsCisJCS5iaXQgPSBCQ002MzYyX1BPV0VSX0RPTUFJ Tl9QQ0lFLAorCX0sIHsKKwkJLm5hbWUgPSAid2xhbi1wYWRzIiwKKwkJLmJpdCA9IEJDTTYzNjJf UE9XRVJfRE9NQUlOX1dMQU5fUEFEUywKKwl9LCB7CisJCS8qIHNlbnRpbmVsICovCisJfSwKK307 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4eF9wb3dlcl9kYXRhIGJjbTYzMjY4X3Bvd2Vy X2RvbWFpbnNbXSA9IHsKKwl7CisJCS5uYW1lID0gInNhciIsCisJCS5iaXQgPSBCQ002MzI2OF9Q T1dFUl9ET01BSU5fU0FSLAorCX0sIHsKKwkJLm5hbWUgPSAiaXBzZWMiLAorCQkuYml0ID0gQkNN NjMyNjhfUE9XRVJfRE9NQUlOX0lQU0VDLAorCX0sIHsKKwkJLm5hbWUgPSAibWlwcyIsCisJCS5i aXQgPSBCQ002MzI2OF9QT1dFUl9ET01BSU5fTUlQUywKKwkJLmZsYWdzID0gR0VOUERfRkxBR19B TFdBWVNfT04sCisJfSwgeworCQkubmFtZSA9ICJkZWN0IiwKKwkJLmJpdCA9IEJDTTYzMjY4X1BP V0VSX0RPTUFJTl9ERUNULAorCX0sIHsKKwkJLm5hbWUgPSAidXNiaCIsCisJCS5iaXQgPSBCQ002 MzI2OF9QT1dFUl9ET01BSU5fVVNCSCwKKwl9LCB7CisJCS5uYW1lID0gInVzYmQiLAorCQkuYml0 ID0gQkNNNjMyNjhfUE9XRVJfRE9NQUlOX1VTQkQsCisJfSwgeworCQkubmFtZSA9ICJyb2Jvc3ci LAorCQkuYml0ID0gQkNNNjMyNjhfUE9XRVJfRE9NQUlOX1JPQk9TVywKKwl9LCB7CisJCS5uYW1l ID0gInBjbSIsCisJCS5iaXQgPSBCQ002MzI2OF9QT1dFUl9ET01BSU5fUENNLAorCX0sIHsKKwkJ Lm5hbWUgPSAicGVyaXBoIiwKKwkJLmJpdCA9IEJDTTYzMjY4X1BPV0VSX0RPTUFJTl9QRVJJUEgs CisJCS5mbGFncyA9IEdFTlBEX0ZMQUdfQUxXQVlTX09OLAorCX0sIHsKKwkJLm5hbWUgPSAidmRz bC1waHkiLAorCQkuYml0ID0gQkNNNjMyNjhfUE9XRVJfRE9NQUlOX1ZEU0xfUEhZLAorCX0sIHsK KwkJLm5hbWUgPSAidmRzbC1taXBzIiwKKwkJLmJpdCA9IEJDTTYzMjY4X1BPV0VSX0RPTUFJTl9W RFNMX01JUFMsCisJfSwgeworCQkubmFtZSA9ICJmYXAiLAorCQkuYml0ID0gQkNNNjMyNjhfUE9X RVJfRE9NQUlOX0ZBUCwKKwl9LCB7CisJCS5uYW1lID0gInBjaWUiLAorCQkuYml0ID0gQkNNNjMy NjhfUE9XRVJfRE9NQUlOX1BDSUUsCisJfSwgeworCQkubmFtZSA9ICJ3bGFuLXBhZHMiLAorCQku Yml0ID0gQkNNNjMyNjhfUE9XRVJfRE9NQUlOX1dMQU5fUEFEUywKKwl9LCB7CisJCS8qIHNlbnRp bmVsICovCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGJjbTYz eHhfcG93ZXJfb2ZfbWF0Y2hbXSA9IHsKKwl7CisJCS5jb21wYXRpYmxlID0gImJyY20sYmNtNjMx OC1wb3dlci1jb250cm9sbGVyIiwKKwkJLmRhdGEgPSAmYmNtNjMxOF9wb3dlcl9kb21haW5zLAor CX0sIHsKKwkJLmNvbXBhdGlibGUgPSAiYnJjbSxiY202MzI4LXBvd2VyLWNvbnRyb2xsZXIiLAor CQkuZGF0YSA9ICZiY202MzI4X3Bvd2VyX2RvbWFpbnMsCisJfSwgeworCQkuY29tcGF0aWJsZSA9 ICJicmNtLGJjbTYzNjItcG93ZXItY29udHJvbGxlciIsCisJCS5kYXRhID0gJmJjbTYzNjJfcG93 ZXJfZG9tYWlucywKKwl9LCB7CisJCS5jb21wYXRpYmxlID0gImJyY20sYmNtNjMyNjgtcG93ZXIt Y29udHJvbGxlciIsCisJCS5kYXRhID0gJmJjbTYzMjY4X3Bvd2VyX2RvbWFpbnMsCisJfSwgewor CQkvKiBzZW50aW5lbCAqLworCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVy IGJjbTYzeHhfcG93ZXJfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gImJjbTYz eHgtcG93ZXItY29udHJvbGxlciIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGJjbTYzeHhfcG93ZXJf b2ZfbWF0Y2gsCisJfSwKKwkucHJvYmUgID0gYmNtNjN4eF9wb3dlcl9wcm9iZSwKK307CitidWls dGluX3BsYXRmb3JtX2RyaXZlcihiY202M3h4X3Bvd2VyX2RyaXZlcik7Ci0tIAoyLjI2LjIKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg==