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=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,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 0B99EC433DB for ; Sat, 16 Jan 2021 19:57:01 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 B116422DBF for ; Sat, 16 Jan 2021 19:57:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B116422DBF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmx.net 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=merlin.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=VyPxYBYju+NomZsS4jnJ9+HDJYXPuqGJNFIWjLwKwIY=; b=VqLOlMN6s/mmMotK6wWO0vW14 Q4l2tfW6x99pUbI8A0yMagcd+WD1nanb79V1iEJMWfa8xA2hRdkL8vnwV6CcL+anGk8jD/1oLpaeu SsNwNnalrUnEk2zoRIt4JdkMyXVNzM2E+cgNoh4l/8VrD9fxrf/ke948mNLeHe5Sp7x1sVw1z4fz+ wF9FGvqmCPdZt8/ezE3AaJ0/3dJLhmoyaUtwnzNA4vSpRhRrlVf4yaHoc7rMnjxWAROQoB50MXvOT /FKeXd/phUW7GaHLR7oA9JSxZ3u+Z0ZRRpJwUP4F8MxvtZi5Ef6N+9HP7nIutT5EFH5MXKtsF+Hpk WtMYW0tJg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l0reZ-0000dV-Cs; Sat, 16 Jan 2021 19:54:31 +0000 Received: from mout.gmx.net ([212.227.15.18]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l0reW-0000d6-H9 for linux-arm-kernel@lists.infradead.org; Sat, 16 Jan 2021 19:54:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1610826825; bh=yqay8au2NQbusO7OLfRS71680dKdjQTt4LqNh7KMh4g=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=gVBGN9qACEP3BhkhH5ZuhWRR7fZS+Wcy+8AEg5kNCQWe9iQSoTWHCpDJgCl7T/oA0 9R/SoLg20My2lJfMTJBBOVEBqRgM95UEVQgNjcVIJ3VYl5l0ckhgkLSkApVZbGG79u PQxtdbpzhfJ+CuR3Sn/5ct6gY2wolkLH8/Zl9f2s= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([37.201.215.209]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M3DJv-1l3tVk0XAT-003fu1; Sat, 16 Jan 2021 20:53:45 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v8 3/7] mfd: Add base driver for Netronix embedded controller Date: Sat, 16 Jan 2021 20:48:22 +0100 Message-Id: <20210116194826.3866540-4-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210116194826.3866540-1-j.neuschaefer@gmx.net> References: <20210116194826.3866540-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 X-Provags-ID: V03:K1:ZO8MXnyNhSdw2eqn2FrxYAPzGIGgLmqjhfoziYhRZoUbICVN5eL o5QNZTJ67/sE/g/AtRZBO5ORRVPXZhffvHcfYwvDhGWnC1bVgJg+uZEpl7S7hObDc9J98ai 0qvp9hz9gz/ojakzD01IAMZcOll3kPqLUyuXyliYZJC9TrE4FlCphlPsp3wKy30UwskDCd1 YZmViY6y+3LpyNKmko2Jw== X-UI-Out-Filterresults: notjunk:1;V03:K0:1eonLJSSPnI=:wwZFSzM/8XR1tZMopU6oyc 7TokuiY0mkYBFEPW0YgwZ16DKRDUNl09Vuqh4eKR9uT4bXzl4S1y6il0Y7qJ7+6grMztDBT17 ks2AeSai8rgCmEMHZNBvIAQTZoNIgYZMwvIOetW80NUevPJ6Dojd5QUZMO25GnbDHy/uKFNf3 arBLxWRhwW9KhviNyGOEEUo7QVgmbsewpiIaPgxSnFY0vRseInk+DfXd1LWAvoXdF8uG+ppRE dcHlNzn2LhF/+7fxFw9ztrn/zUmp/4owSFqX85TBdeDg27HjU99wtdyix4teFkXv+j+qSoRYZ fJcYp4PCBjf9eRmdwrAInfHKeVIEg6oIaCW1guCUvS2QNRLg8dYnBy/zRtSYmu7w0VnTjctqF HiP3YfrgyxRcr7AGk46W0Y2nUiN7dTZefY0kSsOXocpk7wwGvrQsywMnNHk/VecJla5C/MuNC bC1v/nOHHForuqgCbxBA2TXhjRUXQ6neeL++Vc6CYoPlmrVH1edUOGr29bbomEyvtM+xBXcgZ w/30YO0FO+DCM3HwI/jr/gRS9qtVPmfi7Bzzpgbrm45A/UC6xNU890neQpo3Xb2gXOpZFD38w MDVwsMjTU22ejApNHU5G3QI3BzrzovvU9/ddsx4Ier4RbxcaugLDRDHrkBd9kubjE4v2YwNXq 6fYbIU57MntQrpU/VElbAqX3DpnZkxdKlg/LU/+E4mWcVHZvLWTim387mcFYcytE45AenvemZ npZzqtOPf8viP3bnF3CpEGb1bSCGoBKuPIMVh9jU4rmmzWQj1GG0ueNacXNV5M4pI85a3mIH1 NdXdVxu4Ct+jDUJf6TyLP8fBJSI3oPeQSshWDxLNIFK4lp/smFZwsbO3oHczzZv7HF6G3mHxQ tmsy5C38aljWnBQwcqWQ== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210116_145428_839361_1AC0853C X-CRM114-Status: GOOD ( 37.18 ) 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: Alexandre Belloni , Heiko Stuebner , linux-pwm@vger.kernel.org, Linus Walleij , Thierry Reding , Fabio Estevam , linux-rtc@vger.kernel.org, Arnd Bergmann , Mauro Carvalho Chehab , Sam Ravnborg , Daniel Palmer , Andy Shevchenko , Andreas Kemnade , NXP Linux Team , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, Stephan Gerhold , allen , Sascha Hauer , =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Lubomir Rintel , Rob Herring , Lee Jones , linux-arm-kernel@lists.infradead.org, Alessandro Zummo , Mark Brown , Pengutronix Kernel Team , Heiko Stuebner , Josua Mayer , Shawn Guo , "David S. Miller" 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 VGhlIE5ldHJvbml4IGVtYmVkZGVkIGNvbnRyb2xsZXIgaXMgYSBtaWNyb2NvbnRyb2xsZXIgZm91 bmQgaW4gc29tZQplLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBieSB0aGUgb3JpZ2luYWwgZGVzaWdu IG1hbnVmYWN0dXJlciBOZXRyb25peCwKSW5jLiBJdCBjb250YWlucyBSVEMsIGJhdHRlcnkgbW9u aXRvcmluZywgc3lzdGVtIHBvd2VyIG1hbmFnZW1lbnQsIGFuZApQV00gZnVuY3Rpb25hbGl0eS4K ClRoaXMgZHJpdmVyIGltcGxlbWVudHMgcmVnaXN0ZXIgYWNjZXNzIGFuZCB2ZXJzaW9uIGRldGVj dGlvbi4KClRoaXJkLXBhcnR5IGhhcmR3YXJlIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0 OgoKICBodHRwczovL2dpdGh1Yi5jb20vbmV1c2NoYWVmZXIvbGludXgvd2lraS9OZXRyb25peC1N U1A0MzAtZW1iZWRkZWQtY29udHJvbGxlcgoKVGhlIEVDIHN1cHBvcnRzIGludGVycnVwdHMsIGJ1 dCB0aGUgZHJpdmVyIGRvZXNuJ3QgbWFrZSB1c2Ugb2YgdGhlbSBzbwpmYXIuCgpTaWduZWQtb2Zm LWJ5OiBKb25hdGhhbiBOZXVzY2jDpGZlciA8ai5uZXVzY2hhZWZlckBnbXgubmV0PgpBY2tlZC1m b3ItTUZELWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPgotLS0Kdjg6Ci0gQWRk IG1pc3NpbmcgTU9EVUxFX0RFVklDRV9UQUJMRQotIEFkZCBtb2R1bGUgbWV0YWRhdGEgKGF1dGhv ciwgZGVzY3JpcHRpb24sIGxpY2Vuc2UpCgp2NzoKLSBBZGQgI2RlZmluZSBmb3IgdmVyc2lvbiBu dW1iZXIgKHN1Z2dlc3RlZCBieSBMZWUgSm9uZXMpLgoKdjY6Ci0gaHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvbGttbC8yMDIwMTIwODAxMTAwMC4zMDYwMjM5LTQtai5uZXVzY2hhZWZlckBnbXgubmV0 LwotIEFkZCBMZWUgSm9uZXMnIEFDSwoKdjU6Ci0gbm8gY2hhbmdlcwoKdjQ6Ci0gaHR0cHM6Ly9s b3JlLmtlcm5lbC5vcmcvbGttbC8yMDIwMTEyMjIyMjczOS4xNDU1MTMyLTQtai5uZXVzY2hhZWZl ckBnbXgubmV0LwotIGluY2x1ZGUgYXNtL3VuYWxpZ25lZC5oIGFmdGVyIGxpbnV4LyoKLSBVc2Ug cHV0X3VuYWxpZ25lZF9iZTE2IGluc3RlYWQgb2Ygb3Blbi1jb2RlZCBiaWctZW5kaWFuIHBhY2tp bmcKLSBDbGFyaWZ5IHRoYXQgMHg5MD0weGZmMDAgY2F1c2VzIGFuIGVycm9yIGluIGRvd25zdHJl YW0ga2VybmVsIHRvbwotIEFkZCBjb21tYXMgYWZ0ZXIgbm9uLXNlbnRpbmVsIHBvc2l0aW9ucwot IG50eGVjLmg6IGRlY2xhcmUgc3RydWN0cyBkZXZpY2UgYW5kIHJlZ21hcAotIFJlcGxhY2UgV0FS Tl9PTiB1c2FnZSBhbmQgYWRkIGNvbW1lbnRzIHRvIGV4cGxhaW4gZXJyb3JzCi0gUmVwbGFjZSBk ZXZfYWxlcnQgd2l0aCBkZXZfd2FybiB3aGVuIHRoZSByZXN1bHQgaXNuJ3QgaGFuZGxlZAotIENo YW5nZSBzdWJkZXZpY2UgcmVnaXN0cmF0aW9uIGVycm9yIG1lc3NhZ2UgdG8gZGV2X2VycgotIERl Y2xhcmUgbnR4ZWNfcmVnOCBhcyByZXR1cm5pbmcgX19iZTE2Ci0gUmVzdHJ1Y3R1cmUgdmVyc2lv biBkZXRlY3Rpb24gY29kZQotIFNwZWxsIG91dCBPRE0KCnYzOgotIGh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL2xrbWwvMjAyMDA5MjQxOTI0NTUuMjQ4NDAwNS00LWoubmV1c2NoYWVmZXJAZ214Lm5l dC8KLSBBZGQgKEVDKSB0byBDT05GSUdfTUZEX05UWEVDIHByb21wdAotIFJlbGljZW5zZSBhcyBH UEx2MiBvciBsYXRlcgotIEFkZCBlbWFpbCBhZGRyZXNzIHRvIGNvcHlyaWdodCBsaW5lCi0gcmVt b3ZlIGVtcHR5IGxpbmVzIGluIG50eGVjX3Bvd2Vyb2ZmIGFuZCBudHhlY19yZXN0YXJ0IGZ1bmN0 aW9ucwotIFNwbGl0IGxvbmcgbGluZXMKLSBSZW1vdmUgJ0luc3RhbGwgLi4uIGhhbmRsZXInIGNv bW1lbnRzCi0gTWFrZSBuYW1pbmcgb2Ygc3RydWN0IGkyY19jbGllbnQgcGFyYW1ldGVyIGNvbnNp c3RlbnQKLSBSZW1vdmUgc3RydWN0IG50eGVjX2luZm8KLSBSZXdvcmsgJ2RlcGVuZHMgb24nIGxp bmVzIGluIEtjb25maWcsIGhhcmQtZGVwZW5kIG9uIEkyQywgc2VsZWN0IFJFR01BUF9JMkMgYW5k CiAgTUZEX0NPUkUKLSBSZWdpc3RlciBzdWJkZXZpY2VzIHZpYSBtZmRfY2VsbHMKLSBNb3ZlIDgt Yml0IHJlZ2lzdGVyIGNvbnZlcnNpb24gdG8gbnR4ZWMuaAoKdjI6Ci0gaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvbGttbC8yMDIwMDkwNTEzMzIzMC4xMDE0NTgxLTQtai5uZXVzY2hhZWZlckBnbXgu bmV0LwotIEFkZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSBkZXZpY2UgdG8gdGhlIHBhdGNoIHRleHQK LSBVbmlmeSBzcGVsbGluZyBhcyAnTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlcicuCiAgJ05l dHJvbml4JyBpcyB0aGUgcHJvcGVyIG5hbWUgb2YgdGhlIG1hbnVmYWN0dXJlciwgYnV0ICdlbWJl ZGRlZCBjb250cm9sbGVyJwogIGlzIGp1c3QgYSBsYWJlbCB0aGF0IEkgaGF2ZSBhc3NpZ25lZCB0 byB0aGUgZGV2aWNlLgotIFN3aXRjaCB0byByZWdtYXAsIGF2b2lkIHJlZ21hcCB1c2UgaW4gcG93 ZXJvZmYgYW5kIHJlYm9vdCBoYW5kbGVycy4KICBJbnNwaXJlZCBieSBjZjg0ZGMwYmI0MGY0ICgi bWZkOiBybjV0NjE4OiBNYWtlIHJlc3RhcnQgaGFuZGxlciBhdG9taWMgc2FmZSIpCi0gVXNlIGEg bGlzdCBvZiBrbm93bi13b3JraW5nIGZpcm13YXJlIHZlcnNpb25zIGluc3RlYWQgb2YgY2hlY2tp bmcgZm9yIGEKICBrbm93bi1pbmNvbXBhdGlibGUgdmVyc2lvbgotIFByZWZpeCByZWdpc3RlcnMg d2l0aCBOVFhFQ19SRUdfCi0gRGVmaW5lIHJlZ2lzdGVyIHZhbHVlcyBhcyBjb25zdGFudHMKLSBW YXJpb3VzIHN0eWxlIGNsZWFudXBzIGFzIHN1Z2dlc3RlZCBieSBMZWUgSm9uZXMKLSBEb24ndCBh bGlnbiA9IHNpZ25zIGluIHN0cnVjdCBpbml0aWFsaXplcnMgW1V3ZSBLbGVpbmUtS8O2bmlnXQot IERvbid0IHVzZSBkZXZfZGJnIGZvciBhbiBlcnJvciBtZXNzYWdlCi0gRXhwbGFpbiBzbGVlcCBp biBwb3dlcm9mZiBoYW5kbGVyCi0gUmVtb3ZlIChzdHJ1Y3QgbnR4ZWMpLmNsaWVudAotIFN3aXRj aCB0byAucHJvYmVfbmV3IGluIGkyYyBkcml2ZXIKLSBBZGQgLnJlbW92ZSBjYWxsYmFjawotIE1h a2UgQ09ORklHX01GRF9OVFhFQyBhIHRyaXN0YXRlIG9wdGlvbgotLS0KIGRyaXZlcnMvbWZkL0tj b25maWcgICAgICAgfCAgMTEgKysKIGRyaXZlcnMvbWZkL01ha2VmaWxlICAgICAgfCAgIDEgKwog ZHJpdmVycy9tZmQvbnR4ZWMuYyAgICAgICB8IDIyMSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogaW5jbHVkZS9saW51eC9tZmQvbnR4ZWMuaCB8ICAzNyArKysrKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDI3MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9tZmQvbnR4ZWMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbWZkL250 eGVjLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9LY29uZmlnIGIvZHJpdmVycy9tZmQvS2Nv bmZpZwppbmRleCBiZGZjZTdiMTU2MjE2Li40MjgwYmNkNDdlYzdkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL21mZC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWZkL0tjb25maWcKQEAgLTk3Niw2ICs5NzYs MTcgQEAgY29uZmlnIE1GRF9WSVBFUkJPQVJECiAJICBZb3UgbmVlZCB0byBzZWxlY3QgdGhlIG1m ZCBjZWxsIGRyaXZlcnMgc2VwYXJhdGVseS4KIAkgIFRoZSBkcml2ZXJzIGRvIG5vdCBzdXBwb3J0 IGFsbCBmZWF0dXJlcyB0aGUgYm9hcmQgZXhwb3Nlcy4KCitjb25maWcgTUZEX05UWEVDCisJdHJp c3RhdGUgIk5ldHJvbml4IGVtYmVkZGVkIGNvbnRyb2xsZXIgKEVDKSIKKwlkZXBlbmRzIG9uIE9G IHx8IENPTVBJTEVfVEVTVAorCWRlcGVuZHMgb24gSTJDCisJc2VsZWN0IFJFR01BUF9JMkMKKwlz ZWxlY3QgTUZEX0NPUkUKKwloZWxwCisJICBTYXkgeWVzIGhlcmUgaWYgeW91IHdhbnQgdG8gc3Vw cG9ydCB0aGUgZW1iZWRkZWQgY29udHJvbGxlciBmb3VuZCBpbgorCSAgY2VydGFpbiBlLWJvb2sg cmVhZGVycyBkZXNpZ25lZCBieSB0aGUgb3JpZ2luYWwgZGVzaWduIG1hbnVmYWN0dXJlcgorCSAg TmV0cm9uaXguCisKIGNvbmZpZyBNRkRfUkVUVQogCXRyaXN0YXRlICJOb2tpYSBSZXR1IGFuZCBU YWh2byBtdWx0aS1mdW5jdGlvbiBkZXZpY2UiCiAJc2VsZWN0IE1GRF9DT1JFCmRpZmYgLS1naXQg YS9kcml2ZXJzL21mZC9NYWtlZmlsZSBiL2RyaXZlcnMvbWZkL01ha2VmaWxlCmluZGV4IDE0ZmRi MTg4YWYwMjIuLjk0OGEzYmY4ZTNlNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL01ha2VmaWxl CisrKyBiL2RyaXZlcnMvbWZkL01ha2VmaWxlCkBAIC0yMTksNiArMjE5LDcgQEAgb2JqLSQoQ09O RklHX01GRF9JTlRFTF9QTUNfQlhUKQkrPSBpbnRlbF9wbWNfYnh0Lm8KIG9iai0kKENPTkZJR19N RkRfSU5URUxfUE1UKQkrPSBpbnRlbF9wbXQubwogb2JqLSQoQ09ORklHX01GRF9QQUxNQVMpCSs9 IHBhbG1hcy5vCiBvYmotJChDT05GSUdfTUZEX1ZJUEVSQk9BUkQpICAgICs9IHZpcGVyYm9hcmQu bworb2JqLSQoQ09ORklHX01GRF9OVFhFQykJCSs9IG50eGVjLm8KIG9iai0kKENPTkZJR19NRkRf UkM1VDU4MykJKz0gcmM1dDU4My5vIHJjNXQ1ODMtaXJxLm8KIG9iai0kKENPTkZJR19NRkRfUks4 MDgpCQkrPSByazgwOC5vCiBvYmotJChDT05GSUdfTUZEX1JONVQ2MTgpCSs9IHJuNXQ2MTgubwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbnR4ZWMuYyBiL2RyaXZlcnMvbWZkL250eGVjLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOWM0MzViY2Q5ZDg4YQotLS0g L2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWZkL250eGVjLmMKQEAgLTAsMCArMSwyMjEgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyCisvKgorICogVGhlIE5l dHJvbml4IGVtYmVkZGVkIGNvbnRyb2xsZXIgaXMgYSBtaWNyb2NvbnRyb2xsZXIgZm91bmQgaW4g c29tZQorICogZS1ib29rIHJlYWRlcnMgZGVzaWduZWQgYnkgdGhlIG9yaWdpbmFsIGRlc2lnbiBt YW51ZmFjdHVyZXIgTmV0cm9uaXgsIEluYy4KKyAqIEl0IGNvbnRhaW5zIFJUQywgYmF0dGVyeSBt b25pdG9yaW5nLCBzeXN0ZW0gcG93ZXIgbWFuYWdlbWVudCwgYW5kIFBXTQorICogZnVuY3Rpb25h bGl0eS4KKyAqCisgKiBUaGlzIGRyaXZlciBpbXBsZW1lbnRzIHJlZ2lzdGVyIGFjY2VzcywgdmVy c2lvbiBkZXRlY3Rpb24sIGFuZCBzeXN0ZW0KKyAqIHBvd2VyLW9mZi9yZXNldC4KKyAqCisgKiBD b3B5cmlnaHQgMjAyMCBKb25hdGhhbiBOZXVzY2jDpGZlciA8ai5uZXVzY2hhZWZlckBnbXgubmV0 PgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5v Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2NvcmUuaD4K KyNpbmNsdWRlIDxsaW51eC9tZmQvbnR4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K KyNpbmNsdWRlIDxsaW51eC9wbS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorI2luY2x1 ZGUgPGxpbnV4L3JlZ21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8 YXNtL3VuYWxpZ25lZC5oPgorCisjZGVmaW5lIE5UWEVDX1JFR19WRVJTSU9OCTB4MDAKKyNkZWZp bmUgTlRYRUNfUkVHX1BPV0VST0ZGCTB4NTAKKyNkZWZpbmUgTlRYRUNfUkVHX1BPV0VSS0VFUAkw eDcwCisjZGVmaW5lIE5UWEVDX1JFR19SRVNFVAkJMHg5MAorCisjZGVmaW5lIE5UWEVDX1BPV0VS T0ZGX1ZBTFVFCTB4MDEwMAorI2RlZmluZSBOVFhFQ19QT1dFUktFRVBfVkFMVUUJMHgwODAwCisj ZGVmaW5lIE5UWEVDX1JFU0VUX1ZBTFVFCTB4ZmYwMAorCitzdGF0aWMgc3RydWN0IGkyY19jbGll bnQgKnBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50OworCitzdGF0aWMgdm9pZCBudHhlY19wb3dlcm9m Zih2b2lkKQoreworCWludCByZXM7CisJdTggYnVmWzNdID0geyBOVFhFQ19SRUdfUE9XRVJPRkYg fTsKKwlzdHJ1Y3QgaTJjX21zZyBtc2dzW10gPSB7CisJCXsKKwkJCS5hZGRyID0gcG93ZXJvZmZf cmVzdGFydF9jbGllbnQtPmFkZHIsCisJCQkuZmxhZ3MgPSAwLAorCQkJLmxlbiA9IHNpemVvZihi dWYpLAorCQkJLmJ1ZiA9IGJ1ZiwKKwkJfSwKKwl9OworCisJcHV0X3VuYWxpZ25lZF9iZTE2KE5U WEVDX1BPV0VST0ZGX1ZBTFVFLCBidWYgKyAxKTsKKworCXJlcyA9IGkyY190cmFuc2Zlcihwb3dl cm9mZl9yZXN0YXJ0X2NsaWVudC0+YWRhcHRlciwgbXNncywgQVJSQVlfU0laRShtc2dzKSk7CisJ aWYgKHJlcyA8IDApCisJCWRldl93YXJuKCZwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+ZGV2LAor CQkJICJGYWlsZWQgdG8gcG93ZXIgb2ZmIChlcnIgPSAlZClcbiIsIHJlcyk7CisKKwkvKgorCSAq IFRoZSB0aW1lIGZyb20gdGhlIHJlZ2lzdGVyIHdyaXRlIHVudGlsIHRoZSBob3N0IENQVSBpcyBw b3dlcmVkIG9mZgorCSAqIGhhcyBiZWVuIG9ic2VydmVkIHRvIGJlIGFib3V0IDIuNSB0byAzIHNl Y29uZHMuIFNsZWVwIGxvbmcgZW5vdWdoIHRvCisJICogc2FmZWx5IGF2b2lkIHJldHVybmluZyBm cm9tIHRoZSBwb3dlcm9mZiBoYW5kbGVyLgorCSAqLworCW1zbGVlcCg1MDAwKTsKK30KKworc3Rh dGljIGludCBudHhlY19yZXN0YXJ0KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCisJCQkgdW5z aWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpCit7CisJaW50IHJlczsKKwl1OCBidWZbM10g PSB7IE5UWEVDX1JFR19SRVNFVCB9OworCS8qCisJICogTk9URTogVGhlIGxvd2VyIGhhbGYgb2Yg dGhlIHJlc2V0IHZhbHVlIGlzIG5vdCBzZW50LCBiZWNhdXNlIHNlbmRpbmcKKwkgKiBpdCBjYXVz ZXMgYW4gSTJDIGVycm9yLiAoVGhlIHJlc2V0IGhhbmRsZXIgaW4gdGhlIGRvd25zdHJlYW0gZHJp dmVyCisJICogZG9lcyBzZW5kIHRoZSBmdWxsIHR3by1ieXRlIHZhbHVlLCBidXQgZG9lc24ndCBj aGVjayB0aGUgcmVzdWx0KS4KKwkgKi8KKwlzdHJ1Y3QgaTJjX21zZyBtc2dzW10gPSB7CisJCXsK KwkJCS5hZGRyID0gcG93ZXJvZmZfcmVzdGFydF9jbGllbnQtPmFkZHIsCisJCQkuZmxhZ3MgPSAw LAorCQkJLmxlbiA9IHNpemVvZihidWYpIC0gMSwKKwkJCS5idWYgPSBidWYsCisJCX0sCisJfTsK KworCXB1dF91bmFsaWduZWRfYmUxNihOVFhFQ19SRVNFVF9WQUxVRSwgYnVmICsgMSk7CisKKwly ZXMgPSBpMmNfdHJhbnNmZXIocG93ZXJvZmZfcmVzdGFydF9jbGllbnQtPmFkYXB0ZXIsIG1zZ3Ms IEFSUkFZX1NJWkUobXNncykpOworCWlmIChyZXMgPCAwKQorCQlkZXZfd2FybigmcG93ZXJvZmZf cmVzdGFydF9jbGllbnQtPmRldiwKKwkJCSAiRmFpbGVkIHRvIHJlc3RhcnQgKGVyciA9ICVkKVxu IiwgcmVzKTsKKworCXJldHVybiBOT1RJRllfRE9ORTsKK30KKworc3RhdGljIHN0cnVjdCBub3Rp Zmllcl9ibG9jayBudHhlY19yZXN0YXJ0X2hhbmRsZXIgPSB7CisJLm5vdGlmaWVyX2NhbGwgPSBu dHhlY19yZXN0YXJ0LAorCS5wcmlvcml0eSA9IDEyOCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgcmVnbWFwX2NvbmZpZyByZWdtYXBfY29uZmlnID0geworCS5uYW1lID0gIm50eGVjIiwKKwku cmVnX2JpdHMgPSA4LAorCS52YWxfYml0cyA9IDE2LAorCS5jYWNoZV90eXBlID0gUkVHQ0FDSEVf Tk9ORSwKKwkudmFsX2Zvcm1hdF9lbmRpYW4gPSBSRUdNQVBfRU5ESUFOX0JJRywKK307CisKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgbnR4ZWNfc3ViZGV2aWNlc1tdID0geworCXsgLm5h bWUgPSAibnR4ZWMtcnRjIiB9LAorCXsgLm5hbWUgPSAibnR4ZWMtcHdtIiB9LAorfTsKKworc3Rh dGljIGludCBudHhlY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVj dCBudHhlYyAqZWM7CisJdW5zaWduZWQgaW50IHZlcnNpb247CisJaW50IHJlczsKKworCWVjID0g ZGV2bV9rbWFsbG9jKCZjbGllbnQtPmRldiwgc2l6ZW9mKCplYyksIEdGUF9LRVJORUwpOworCWlm ICghZWMpCisJCXJldHVybiAtRU5PTUVNOworCisJZWMtPmRldiA9ICZjbGllbnQtPmRldjsKKwor CWVjLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsICZyZWdtYXBfY29uZmln KTsKKwlpZiAoSVNfRVJSKGVjLT5yZWdtYXApKSB7CisJCWRldl9lcnIoZWMtPmRldiwgIkZhaWxl ZCB0byBzZXQgdXAgcmVnbWFwIGZvciBkZXZpY2VcbiIpOworCQlyZXR1cm4gcmVzOworCX0KKwor CS8qIERldGVybWluZSB0aGUgZmlybXdhcmUgdmVyc2lvbiAqLworCXJlcyA9IHJlZ21hcF9yZWFk KGVjLT5yZWdtYXAsIE5UWEVDX1JFR19WRVJTSU9OLCAmdmVyc2lvbik7CisJaWYgKHJlcyA8IDAp IHsKKwkJZGV2X2VycihlYy0+ZGV2LCAiRmFpbGVkIHRvIHJlYWQgZmlybXdhcmUgdmVyc2lvbiBu dW1iZXJcbiIpOworCQlyZXR1cm4gcmVzOworCX0KKworCS8qIEJhaWwgb3V0IGlmIHdlIGVuY291 bnRlciBhbiB1bmtub3duIGZpcm13YXJlIHZlcnNpb24gKi8KKwlzd2l0Y2ggKHZlcnNpb24pIHsK KwljYXNlIE5UWEVDX1ZFUlNJT05fS09CT19BVVJBOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlk ZXZfZXJyKGVjLT5kZXYsCisJCQkiTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciB2ZXJzaW9u ICUwNHggaXMgbm90IHN1cHBvcnRlZC5cbiIsCisJCQl2ZXJzaW9uKTsKKwkJcmV0dXJuIC1FTk9E RVY7CisJfQorCisJZGV2X2luZm8oZWMtPmRldiwKKwkJICJOZXRyb25peCBlbWJlZGRlZCBjb250 cm9sbGVyIHZlcnNpb24gJTA0eCBkZXRlY3RlZC5cbiIsIHZlcnNpb24pOworCisJaWYgKG9mX2Rl dmljZV9pc19zeXN0ZW1fcG93ZXJfY29udHJvbGxlcihlYy0+ZGV2LT5vZl9ub2RlKSkgeworCQkv KgorCQkgKiBTZXQgdGhlICdwb3dlcmtlZXAnIGJpdC4gVGhpcyBpcyBuZWNlc3Nhcnkgb24gc29t ZSBib2FyZHMKKwkJICogaW4gb3JkZXIgdG8ga2VlcCB0aGUgc3lzdGVtIHJ1bm5pbmcuCisJCSAq LworCQlyZXMgPSByZWdtYXBfd3JpdGUoZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1BPV0VSS0VFUCwK KwkJCQkgICBOVFhFQ19QT1dFUktFRVBfVkFMVUUpOworCQlpZiAocmVzIDwgMCkKKwkJCXJldHVy biByZXM7CisKKwkJaWYgKHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50KQorCQkJLyoKKwkJCSAqIEFu b3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGRyaXZlciBhbHJlYWR5IHRvb2sKKwkJCSAqIHBvd2Vyb2Zm L3Jlc3RhcnQgZHV0aWVzLgorCQkJICovCisJCQlkZXZfZXJyKGVjLT5kZXYsICJwb3dlcm9mZl9y ZXN0YXJ0X2NsaWVudCBhbHJlYWR5IGFzc2lnbmVkXG4iKTsKKwkJZWxzZQorCQkJcG93ZXJvZmZf cmVzdGFydF9jbGllbnQgPSBjbGllbnQ7CisKKwkJaWYgKHBtX3Bvd2VyX29mZikKKwkJCS8qIEFu b3RoZXIgZHJpdmVyIGFscmVhZHkgcmVnaXN0ZXJlZCBhIHBvd2Vyb2ZmIGhhbmRsZXIuICovCisJ CQlkZXZfZXJyKGVjLT5kZXYsICJwbV9wb3dlcl9vZmYgYWxyZWFkeSBhc3NpZ25lZFxuIik7CisJ CWVsc2UKKwkJCXBtX3Bvd2VyX29mZiA9IG50eGVjX3Bvd2Vyb2ZmOworCisJCXJlcyA9IHJlZ2lz dGVyX3Jlc3RhcnRfaGFuZGxlcigmbnR4ZWNfcmVzdGFydF9oYW5kbGVyKTsKKwkJaWYgKHJlcykK KwkJCWRldl9lcnIoZWMtPmRldiwKKwkJCQkiRmFpbGVkIHRvIHJlZ2lzdGVyIHJlc3RhcnQgaGFu ZGxlcjogJWRcbiIsIHJlcyk7CisJfQorCisJaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgZWMp OworCisJcmVzID0gZGV2bV9tZmRfYWRkX2RldmljZXMoZWMtPmRldiwgUExBVEZPUk1fREVWSURf Tk9ORSwgbnR4ZWNfc3ViZGV2aWNlcywKKwkJCQkgICBBUlJBWV9TSVpFKG50eGVjX3N1YmRldmlj ZXMpLCBOVUxMLCAwLCBOVUxMKTsKKwlpZiAocmVzKQorCQlkZXZfZXJyKGVjLT5kZXYsICJGYWls ZWQgdG8gYWRkIHN1YmRldmljZXM6ICVkXG4iLCByZXMpOworCisJcmV0dXJuIHJlczsKK30KKwor c3RhdGljIGludCBudHhlY19yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlp ZiAoY2xpZW50ID09IHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50KSB7CisJCXBvd2Vyb2ZmX3Jlc3Rh cnRfY2xpZW50ID0gTlVMTDsKKwkJcG1fcG93ZXJfb2ZmID0gTlVMTDsKKwkJdW5yZWdpc3Rlcl9y ZXN0YXJ0X2hhbmRsZXIoJm50eGVjX3Jlc3RhcnRfaGFuZGxlcik7CisJfQorCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX250eGVjX21hdGNoX3Rh YmxlW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJuZXRyb25peCxudHhlYyIsIH0sCisJe30KK307 CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9udHhlY19tYXRjaF90YWJsZSk7CisKK3N0YXRp YyBzdHJ1Y3QgaTJjX2RyaXZlciBudHhlY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5h bWUgPSAibnR4ZWMiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9udHhlY19tYXRjaF90YWJsZSwK Kwl9LAorCS5wcm9iZV9uZXcgPSBudHhlY19wcm9iZSwKKwkucmVtb3ZlID0gbnR4ZWNfcmVtb3Zl LAorfTsKK21vZHVsZV9pMmNfZHJpdmVyKG50eGVjX2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1Io IkpvbmF0aGFuIE5ldXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+Iik7CitNT0RVTEVf REVTQ1JJUFRJT04oIkNvcmUgZHJpdmVyIGZvciBOZXRyb25peCBFQyIpOworTU9EVUxFX0xJQ0VO U0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZmQvbnR4ZWMuaCBiL2luY2x1 ZGUvbGludXgvbWZkL250eGVjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uMzYxMjA0ZDEyNWYxYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbWZk L250eGVjLmgKQEAgLTAsMCArMSwzNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAtb25seSAqLworLyoKKyAqIENvcHlyaWdodCAyMDIwIEpvbmF0aGFuIE5ldXNjaMOkZmVy CisgKgorICogUmVnaXN0ZXIgYWNjZXNzIGFuZCB2ZXJzaW9uIGluZm9ybWF0aW9uIGZvciB0aGUg TmV0cm9uaXggZW1iZWRkZWQKKyAqIGNvbnRyb2xsZXIuCisgKi8KKworI2lmbmRlZiBOVFhFQ19I CisjZGVmaW5lIE5UWEVDX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVjdCBk ZXZpY2U7CitzdHJ1Y3QgcmVnbWFwOworCitzdHJ1Y3QgbnR4ZWMgeworCXN0cnVjdCBkZXZpY2Ug KmRldjsKKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cit9OworCisvKgorICogU29tZSByZWdpc3Rl cnMsIHN1Y2ggYXMgdGhlIGJhdHRlcnkgc3RhdHVzIHJlZ2lzdGVyICgweDQxKSwgYXJlIGluCisg KiBiaWctZW5kaWFuLCBidXQgb3RoZXJzIG9ubHkgaGF2ZSBlaWdodCBzaWduaWZpY2FudCBiaXRz LCB3aGljaCBhcmUgaW4gdGhlCisgKiBmaXJzdCBieXRlIHRyYW5zbWl0dGVkIG92ZXIgSTJDICh0 aGUgTVNCIG9mIHRoZSBiaWctZW5kaWFuIHZhbHVlKS4KKyAqIFRoaXMgY29udmVuaWVuY2UgZnVu Y3Rpb24gY29udmVydHMgYW4gOC1iaXQgdmFsdWUgdG8gMTYtYml0IGZvciB1c2UgaW4gdGhlCisg KiBzZWNvbmQga2luZCBvZiByZWdpc3Rlci4KKyAqLworc3RhdGljIGlubGluZSBfX2JlMTYgbnR4 ZWNfcmVnOCh1OCB2YWx1ZSkKK3sKKwlyZXR1cm4gdmFsdWUgPDwgODsKK30KKworLyogS25vd24g ZmlybXdhcmUgdmVyc2lvbnMgKi8KKyNkZWZpbmUgTlRYRUNfVkVSU0lPTl9LT0JPX0FVUkEJMHhk NzI2CS8qIGZvdW5kIGluIEtvYm8gQXVyYSAqLworCisjZW5kaWYKLS0KMi4yOS4yCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=