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=-17.2 required=3.0 tests=BAYES_00,DATE_IN_PAST_03_06, 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 15BD2C64E8A for ; Tue, 1 Dec 2020 04:19:02 +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 6F21320658 for ; Tue, 1 Dec 2020 04:19:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="YoL+jKO4"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="IhqYATjL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6F21320658 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=7qYL899yVG1fQxTMIRd3Rcj1D8cBhmuQYo/x6OF2KYg=; b=YoL+jKO47SyMzbKSUQzB3hEK5 htZpe0EmWPntEDiKvQh6Cc2IQHW/ysp/cqEr+zvfkmKwiQ/mOC91/9qdhHPbyQv+jMCpktb8IvWLz FY+2b44QsJVFXFuflM/0dP5Mw0rd8OeWCJT3hpfWjxhSb0emiDQNqlDjdsqFjDl8b/ue30XoZ+/gk HnUL5w1hjyuauJCtoDYoeL6pTIqLLzdjuwBMYSmHbDFzy3a9Vxcn9/q17TNYHrLlG8VjU0oIQN++C 7s47wNH4bEQWBHnzVDtfQxLUKky8tLxAflxXsnadutzEClccTKiy0y1t55lT//g2+L/eKAp2YY34G T2QUNrBxA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjx6P-0000k3-4x; Tue, 01 Dec 2020 04:17:21 +0000 Received: from mout.gmx.net ([212.227.17.20]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjx6I-0000h1-Gh for linux-arm-kernel@lists.infradead.org; Tue, 01 Dec 2020 04:17:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1606796195; bh=0T3UEocwsPn/hPlwviHgNjuCGpncWvUMjQ4Tlsxzh80=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=IhqYATjLL7QsiJjwL4ngR/QmDAFEX3VitoYbAo6MQTI3VpSFJBHabpyrxQvU+gYfD ahf7UgY89hVjItqaWh8EmaClcGVMcfGiiFSf6HANJ++F1umh0GTIQ/dj5jKE96Joq8 2vGahUvwHgXP9pm3LE0ZAEgHPgTXUrLhli6GD4w4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([37.201.214.162]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Ma24y-1keRKJ2Q0S-00W0IV; Tue, 01 Dec 2020 05:16:35 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v5 3/7] mfd: Add base driver for Netronix embedded controller Date: Tue, 1 Dec 2020 02:15:09 +0100 Message-Id: <20201201011513.1627028-4-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201201011513.1627028-1-j.neuschaefer@gmx.net> References: <20201201011513.1627028-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 X-Provags-ID: V03:K1:KyjRfObjupaPBprNCa1SDzjAVtXseholwWLxTGq/p3HUSrrjt8v q9VE0NKgz7hIHZcqYHbxMsCSEvF+AA63pM81hozrtyOOVTJA23RKY723m22Izt/6/rC50q/ U7+UsQuFLDNbsrNl1KiqfR3Q+MPXbg8z/q7i+vX8Z7NsBFgdjeussdB6yy5/J6/tXms8o8q +gAm0n8b/v5TJV7jbGmVA== X-UI-Out-Filterresults: notjunk:1;V03:K0:oKUnGke6Oqw=:fpCTYWXTyYtrD5icjlHPQp /6A3AuflyXSkno0Tn3ROEgikVt77TltrmUhzsgXzumDMJg5o0hetJW786wBqcWrW0P6HHiPym gcrUEh5ebqFiAhVYSivicmrylFc7AW6ia6wnlyp5Zl4BkHLokpU8POA5JQQ6S6Dns3GVkia47 dWV9/Y8jL2fstDD48/ZUdTQk9TN7HEic/c5Pm+Rk7XFPWNp3JewfYHCcm+7iGCZvDakiEDSFu jXDRL62oZKl4H8Xif7ICBQw+dXfPlJIzwKwU/9eximFgyOdT98SyohTm7MnPzi1SCxJhy8Zvs flw7YRTi3XTVhgOCd9cwxfOxzEpVSBGT1Zc6GDOuBM66XYQnebDVQELn1qrHJ123p0wWcgVur Oyi1UUPz0XTy1KWau+2cRvRDK3DDxT4eI/BKukZcnao/3n0Vt/39QobAwIJ4NdzgU6wrgFSog 7BwcaJJUev3JvSVZ3X/93S/Kx56x5E33A9fPpX6c/qWJlu91/4fnmjKzx+u4/NH2qFU3wOdh0 mXOfFoAwU0a77/9Vgj/aLeH5olEITslE07+U7Hbd0feeoBHWMWtlxQ6jXgOQistTuxsnzNtyd e5UhJktXNAERGZsBIaqbCXr8Oe//BZNbJZ0pY2/n2leribNsvdj0miMjHESiinaNU4i0ZEa7F 6ORj2HqMtI3KN7fPhoKqazfvgudgxOUrPOhmsB14hjcSWNnlUhBCC4vi2cRoA7fxEAn00aFzK /loWXeLWCNLxXfbZq6Cj1SDJE2kmtOl+YZemo35qW3Z8e2lWHLbJj7p3oTCwoUzKUoIef6hrt 5nvY2cf1blfLBTLYqxU2W78qlgYNDfyMoTAOBeMvlc5Nx4tHrJCua+2fmuvb+Zw51SUf72kty Cvu3nyHaIDsjtepPFJrg== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201130_231714_817136_1F1023BC X-CRM114-Status: GOOD ( 37.77 ) 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 LWJ5OiBKb25hdGhhbiBOZXVzY2jDpGZlciA8ai5uZXVzY2hhZWZlckBnbXgubmV0PgotLS0KCnY1 OgotIG5vIGNoYW5nZXMKCnY0OgotIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMDEx MjIyMjI3MzkuMTQ1NTEzMi00LWoubmV1c2NoYWVmZXJAZ214Lm5ldC8KLSBpbmNsdWRlIGFzbS91 bmFsaWduZWQuaCBhZnRlciBsaW51eC8qCi0gVXNlIHB1dF91bmFsaWduZWRfYmUxNiBpbnN0ZWFk IG9mIG9wZW4tY29kZWQgYmlnLWVuZGlhbiBwYWNraW5nCi0gQ2xhcmlmeSB0aGF0IDB4OTA9MHhm ZjAwIGNhdXNlcyBhbiBlcnJvciBpbiBkb3duc3RyZWFtIGtlcm5lbCB0b28KLSBBZGQgY29tbWFz IGFmdGVyIG5vbi1zZW50aW5lbCBwb3NpdGlvbnMKLSBudHhlYy5oOiBkZWNsYXJlIHN0cnVjdHMg ZGV2aWNlIGFuZCByZWdtYXAKLSBSZXBsYWNlIFdBUk5fT04gdXNhZ2UgYW5kIGFkZCBjb21tZW50 cyB0byBleHBsYWluIGVycm9ycwotIFJlcGxhY2UgZGV2X2FsZXJ0IHdpdGggZGV2X3dhcm4gd2hl biB0aGUgcmVzdWx0IGlzbid0IGhhbmRsZWQKLSBDaGFuZ2Ugc3ViZGV2aWNlIHJlZ2lzdHJhdGlv biBlcnJvciBtZXNzYWdlIHRvIGRldl9lcnIKLSBEZWNsYXJlIG50eGVjX3JlZzggYXMgcmV0dXJu aW5nIF9fYmUxNgotIFJlc3RydWN0dXJlIHZlcnNpb24gZGV0ZWN0aW9uIGNvZGUKLSBTcGVsbCBv dXQgT0RNCgp2MzoKLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjAwOTI0MTkyNDU1 LjI0ODQwMDUtNC1qLm5ldXNjaGFlZmVyQGdteC5uZXQvCi0gQWRkIChFQykgdG8gQ09ORklHX01G RF9OVFhFQyBwcm9tcHQKLSBSZWxpY2Vuc2UgYXMgR1BMdjIgb3IgbGF0ZXIKLSBBZGQgZW1haWwg YWRkcmVzcyB0byBjb3B5cmlnaHQgbGluZQotIHJlbW92ZSBlbXB0eSBsaW5lcyBpbiBudHhlY19w b3dlcm9mZiBhbmQgbnR4ZWNfcmVzdGFydCBmdW5jdGlvbnMKLSBTcGxpdCBsb25nIGxpbmVzCi0g UmVtb3ZlICdJbnN0YWxsIC4uLiBoYW5kbGVyJyBjb21tZW50cwotIE1ha2UgbmFtaW5nIG9mIHN0 cnVjdCBpMmNfY2xpZW50IHBhcmFtZXRlciBjb25zaXN0ZW50Ci0gUmVtb3ZlIHN0cnVjdCBudHhl Y19pbmZvCi0gUmV3b3JrICdkZXBlbmRzIG9uJyBsaW5lcyBpbiBLY29uZmlnLCBoYXJkLWRlcGVu ZCBvbiBJMkMsIHNlbGVjdCBSRUdNQVBfSTJDIGFuZAogIE1GRF9DT1JFCi0gUmVnaXN0ZXIgc3Vi ZGV2aWNlcyB2aWEgbWZkX2NlbGxzCi0gTW92ZSA4LWJpdCByZWdpc3RlciBjb252ZXJzaW9uIHRv IG50eGVjLmgKCnYyOgotIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMDA5MDUxMzMy MzAuMTAxNDU4MS00LWoubmV1c2NoYWVmZXJAZ214Lm5ldC8KLSBBZGQgYSBkZXNjcmlwdGlvbiBv ZiB0aGUgZGV2aWNlIHRvIHRoZSBwYXRjaCB0ZXh0Ci0gVW5pZnkgc3BlbGxpbmcgYXMgJ05ldHJv bml4IGVtYmVkZGVkIGNvbnRyb2xsZXInLgogICdOZXRyb25peCcgaXMgdGhlIHByb3BlciBuYW1l IG9mIHRoZSBtYW51ZmFjdHVyZXIsIGJ1dCAnZW1iZWRkZWQgY29udHJvbGxlcicKICBpcyBqdXN0 IGEgbGFiZWwgdGhhdCBJIGhhdmUgYXNzaWduZWQgdG8gdGhlIGRldmljZS4KLSBTd2l0Y2ggdG8g cmVnbWFwLCBhdm9pZCByZWdtYXAgdXNlIGluIHBvd2Vyb2ZmIGFuZCByZWJvb3QgaGFuZGxlcnMu CiAgSW5zcGlyZWQgYnkgY2Y4NGRjMGJiNDBmNCAoIm1mZDogcm41dDYxODogTWFrZSByZXN0YXJ0 IGhhbmRsZXIgYXRvbWljIHNhZmUiKQotIFVzZSBhIGxpc3Qgb2Yga25vd24td29ya2luZyBmaXJt d2FyZSB2ZXJzaW9ucyBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvciBhCiAga25vd24taW5jb21wYXRp YmxlIHZlcnNpb24KLSBQcmVmaXggcmVnaXN0ZXJzIHdpdGggTlRYRUNfUkVHXwotIERlZmluZSBy ZWdpc3RlciB2YWx1ZXMgYXMgY29uc3RhbnRzCi0gVmFyaW91cyBzdHlsZSBjbGVhbnVwcyBhcyBz dWdnZXN0ZWQgYnkgTGVlIEpvbmVzCi0gRG9uJ3QgYWxpZ24gPSBzaWducyBpbiBzdHJ1Y3QgaW5p dGlhbGl6ZXJzIFtVd2UgS2xlaW5lLUvDtm5pZ10KLSBEb24ndCB1c2UgZGV2X2RiZyBmb3IgYW4g ZXJyb3IgbWVzc2FnZQotIEV4cGxhaW4gc2xlZXAgaW4gcG93ZXJvZmYgaGFuZGxlcgotIFJlbW92 ZSAoc3RydWN0IG50eGVjKS5jbGllbnQKLSBTd2l0Y2ggdG8gLnByb2JlX25ldyBpbiBpMmMgZHJp dmVyCi0gQWRkIC5yZW1vdmUgY2FsbGJhY2sKLSBNYWtlIENPTkZJR19NRkRfTlRYRUMgYSB0cmlz dGF0ZSBvcHRpb24KLS0tCiBkcml2ZXJzL21mZC9LY29uZmlnICAgICAgIHwgIDExICsrCiBkcml2 ZXJzL21mZC9NYWtlZmlsZSAgICAgIHwgICAxICsKIGRyaXZlcnMvbWZkL250eGVjLmMgICAgICAg fCAyMTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGlu dXgvbWZkL250eGVjLmggfCAgMzQgKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI2MiBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZmQvbnR4ZWMuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbWZkL250eGVjLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJz L21mZC9LY29uZmlnIGIvZHJpdmVycy9tZmQvS2NvbmZpZwppbmRleCA4Yjk5YTEzNjY5YmZjLi5k OTY3NTFmODg0ZGM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9LY29uZmlnCisrKyBiL2RyaXZl cnMvbWZkL0tjb25maWcKQEAgLTk5MCw2ICs5OTAsMTcgQEAgY29uZmlnIE1GRF9WSVBFUkJPQVJE CiAJICBZb3UgbmVlZCB0byBzZWxlY3QgdGhlIG1mZCBjZWxsIGRyaXZlcnMgc2VwYXJhdGVseS4K IAkgIFRoZSBkcml2ZXJzIGRvIG5vdCBzdXBwb3J0IGFsbCBmZWF0dXJlcyB0aGUgYm9hcmQgZXhw b3Nlcy4KCitjb25maWcgTUZEX05UWEVDCisJdHJpc3RhdGUgIk5ldHJvbml4IGVtYmVkZGVkIGNv bnRyb2xsZXIgKEVDKSIKKwlkZXBlbmRzIG9uIE9GIHx8IENPTVBJTEVfVEVTVAorCWRlcGVuZHMg b24gSTJDCisJc2VsZWN0IFJFR01BUF9JMkMKKwlzZWxlY3QgTUZEX0NPUkUKKwloZWxwCisJICBT YXkgeWVzIGhlcmUgaWYgeW91IHdhbnQgdG8gc3VwcG9ydCB0aGUgZW1iZWRkZWQgY29udHJvbGxl ciBmb3VuZCBpbgorCSAgY2VydGFpbiBlLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBieSB0aGUgb3Jp Z2luYWwgZGVzaWduIG1hbnVmYWN0dXJlcgorCSAgTmV0cm9uaXguCisKIGNvbmZpZyBNRkRfUkVU VQogCXRyaXN0YXRlICJOb2tpYSBSZXR1IGFuZCBUYWh2byBtdWx0aS1mdW5jdGlvbiBkZXZpY2Ui CiAJc2VsZWN0IE1GRF9DT1JFCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9NYWtlZmlsZSBiL2Ry aXZlcnMvbWZkL01ha2VmaWxlCmluZGV4IDE3ODAwMTlkMjQ3NDguLjgxNWM5OWI4NDAxOWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbWZkL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbWZkL01ha2VmaWxl CkBAIC0yMTgsNiArMjE4LDcgQEAgb2JqLSQoQ09ORklHX01GRF9JTlRFTF9NU0lDKQkrPSBpbnRl bF9tc2ljLm8KIG9iai0kKENPTkZJR19NRkRfSU5URUxfUE1DX0JYVCkJKz0gaW50ZWxfcG1jX2J4 dC5vCiBvYmotJChDT05GSUdfTUZEX1BBTE1BUykJKz0gcGFsbWFzLm8KIG9iai0kKENPTkZJR19N RkRfVklQRVJCT0FSRCkgICAgKz0gdmlwZXJib2FyZC5vCitvYmotJChDT05GSUdfTUZEX05UWEVD KQkJKz0gbnR4ZWMubwogb2JqLSQoQ09ORklHX01GRF9SQzVUNTgzKQkrPSByYzV0NTgzLm8gcmM1 dDU4My1pcnEubwogb2JqLSQoQ09ORklHX01GRF9SSzgwOCkJCSs9IHJrODA4Lm8KIG9iai0kKENP TkZJR19NRkRfUk41VDYxOCkJKz0gcm41dDYxOC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9u dHhlYy5jIGIvZHJpdmVycy9tZmQvbnR4ZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5jMTUxMDcxMWQ3MzYzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9t ZmQvbnR4ZWMuYwpAQCAtMCwwICsxLDIxNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBUaGUgTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxl ciBpcyBhIG1pY3JvY29udHJvbGxlciBmb3VuZCBpbiBzb21lCisgKiBlLWJvb2sgcmVhZGVycyBk ZXNpZ25lZCBieSB0aGUgb3JpZ2luYWwgZGVzaWduIG1hbnVmYWN0dXJlciBOZXRyb25peCwgSW5j LgorICogSXQgY29udGFpbnMgUlRDLCBiYXR0ZXJ5IG1vbml0b3JpbmcsIHN5c3RlbSBwb3dlciBt YW5hZ2VtZW50LCBhbmQgUFdNCisgKiBmdW5jdGlvbmFsaXR5LgorICoKKyAqIFRoaXMgZHJpdmVy IGltcGxlbWVudHMgcmVnaXN0ZXIgYWNjZXNzLCB2ZXJzaW9uIGRldGVjdGlvbiwgYW5kIHN5c3Rl bQorICogcG93ZXItb2ZmL3Jlc2V0LgorICoKKyAqIENvcHlyaWdodCAyMDIwIEpvbmF0aGFuIE5l dXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4 L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMu aD4KKyNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L21mZC9udHhl Yy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtLmg+Cisj aW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CisKKyNkZWZp bmUgTlRYRUNfUkVHX1ZFUlNJT04JMHgwMAorI2RlZmluZSBOVFhFQ19SRUdfUE9XRVJPRkYJMHg1 MAorI2RlZmluZSBOVFhFQ19SRUdfUE9XRVJLRUVQCTB4NzAKKyNkZWZpbmUgTlRYRUNfUkVHX1JF U0VUCQkweDkwCisKKyNkZWZpbmUgTlRYRUNfUE9XRVJPRkZfVkFMVUUJMHgwMTAwCisjZGVmaW5l IE5UWEVDX1BPV0VSS0VFUF9WQUxVRQkweDA4MDAKKyNkZWZpbmUgTlRYRUNfUkVTRVRfVkFMVUUJ MHhmZjAwCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCAqcG93ZXJvZmZfcmVzdGFydF9jbGll bnQ7CisKK3N0YXRpYyB2b2lkIG50eGVjX3Bvd2Vyb2ZmKHZvaWQpCit7CisJaW50IHJlczsKKwl1 OCBidWZbM10gPSB7IE5UWEVDX1JFR19QT1dFUk9GRiB9OworCXN0cnVjdCBpMmNfbXNnIG1zZ3Nb XSA9IHsKKwkJeworCQkJLmFkZHIgPSBwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+YWRkciwKKwkJ CS5mbGFncyA9IDAsCisJCQkubGVuID0gc2l6ZW9mKGJ1ZiksCisJCQkuYnVmID0gYnVmLAorCQl9 LAorCX07CisKKwlwdXRfdW5hbGlnbmVkX2JlMTYoTlRYRUNfUE9XRVJPRkZfVkFMVUUsIGJ1ZiAr IDEpOworCisJcmVzID0gaTJjX3RyYW5zZmVyKHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50LT5hZGFw dGVyLCBtc2dzLCBBUlJBWV9TSVpFKG1zZ3MpKTsKKwlpZiAocmVzIDwgMCkKKwkJZGV2X3dhcm4o JnBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50LT5kZXYsCisJCQkgIkZhaWxlZCB0byBwb3dlciBvZmYg KGVyciA9ICVkKVxuIiwgcmVzKTsKKworCS8qCisJICogVGhlIHRpbWUgZnJvbSB0aGUgcmVnaXN0 ZXIgd3JpdGUgdW50aWwgdGhlIGhvc3QgQ1BVIGlzIHBvd2VyZWQgb2ZmCisJICogaGFzIGJlZW4g b2JzZXJ2ZWQgdG8gYmUgYWJvdXQgMi41IHRvIDMgc2Vjb25kcy4gU2xlZXAgbG9uZyBlbm91Z2gg dG8KKwkgKiBzYWZlbHkgYXZvaWQgcmV0dXJuaW5nIGZyb20gdGhlIHBvd2Vyb2ZmIGhhbmRsZXIu CisJICovCisJbXNsZWVwKDUwMDApOworfQorCitzdGF0aWMgaW50IG50eGVjX3Jlc3RhcnQoc3Ry dWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKKwkJCSB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAq ZGF0YSkKK3sKKwlpbnQgcmVzOworCXU4IGJ1ZlszXSA9IHsgTlRYRUNfUkVHX1JFU0VUIH07CisJ LyoKKwkgKiBOT1RFOiBUaGUgbG93ZXIgaGFsZiBvZiB0aGUgcmVzZXQgdmFsdWUgaXMgbm90IHNl bnQsIGJlY2F1c2Ugc2VuZGluZworCSAqIGl0IGNhdXNlcyBhbiBJMkMgZXJyb3IuIChUaGUgcmVz ZXQgaGFuZGxlciBpbiB0aGUgZG93bnN0cmVhbSBkcml2ZXIKKwkgKiBkb2VzIHNlbmQgdGhlIGZ1 bGwgdHdvLWJ5dGUgdmFsdWUsIGJ1dCBkb2Vzbid0IGNoZWNrIHRoZSByZXN1bHQpLgorCSAqLwor CXN0cnVjdCBpMmNfbXNnIG1zZ3NbXSA9IHsKKwkJeworCQkJLmFkZHIgPSBwb3dlcm9mZl9yZXN0 YXJ0X2NsaWVudC0+YWRkciwKKwkJCS5mbGFncyA9IDAsCisJCQkubGVuID0gc2l6ZW9mKGJ1Zikg LSAxLAorCQkJLmJ1ZiA9IGJ1ZiwKKwkJfSwKKwl9OworCisJcHV0X3VuYWxpZ25lZF9iZTE2KE5U WEVDX1JFU0VUX1ZBTFVFLCBidWYgKyAxKTsKKworCXJlcyA9IGkyY190cmFuc2Zlcihwb3dlcm9m Zl9yZXN0YXJ0X2NsaWVudC0+YWRhcHRlciwgbXNncywgQVJSQVlfU0laRShtc2dzKSk7CisJaWYg KHJlcyA8IDApCisJCWRldl93YXJuKCZwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+ZGV2LAorCQkJ ICJGYWlsZWQgdG8gcmVzdGFydCAoZXJyID0gJWQpXG4iLCByZXMpOworCisJcmV0dXJuIE5PVElG WV9ET05FOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIG50eGVjX3Jlc3RhcnRf aGFuZGxlciA9IHsKKwkubm90aWZpZXJfY2FsbCA9IG50eGVjX3Jlc3RhcnQsCisJLnByaW9yaXR5 ID0gMTI4LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHJlZ21hcF9j b25maWcgPSB7CisJLm5hbWUgPSAibnR4ZWMiLAorCS5yZWdfYml0cyA9IDgsCisJLnZhbF9iaXRz ID0gMTYsCisJLmNhY2hlX3R5cGUgPSBSRUdDQUNIRV9OT05FLAorCS52YWxfZm9ybWF0X2VuZGlh biA9IFJFR01BUF9FTkRJQU5fQklHLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2Vs bCBudHhlY19zdWJkZXZpY2VzW10gPSB7CisJeyAubmFtZSA9ICJudHhlYy1ydGMiIH0sCisJeyAu bmFtZSA9ICJudHhlYy1wd20iIH0sCit9OworCitzdGF0aWMgaW50IG50eGVjX3Byb2JlKHN0cnVj dCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IG50eGVjICplYzsKKwl1bnNpZ25lZCBp bnQgdmVyc2lvbjsKKwlpbnQgcmVzOworCisJZWMgPSBkZXZtX2ttYWxsb2MoJmNsaWVudC0+ZGV2 LCBzaXplb2YoKmVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFlYykKKwkJcmV0dXJuIC1FTk9NRU07 CisKKwllYy0+ZGV2ID0gJmNsaWVudC0+ZGV2OworCisJZWMtPnJlZ21hcCA9IGRldm1fcmVnbWFw X2luaXRfaTJjKGNsaWVudCwgJnJlZ21hcF9jb25maWcpOworCWlmIChJU19FUlIoZWMtPnJlZ21h cCkpIHsKKwkJZGV2X2VycihlYy0+ZGV2LCAiRmFpbGVkIHRvIHNldCB1cCByZWdtYXAgZm9yIGRl dmljZVxuIik7CisJCXJldHVybiByZXM7CisJfQorCisJLyogRGV0ZXJtaW5lIHRoZSBmaXJtd2Fy ZSB2ZXJzaW9uICovCisJcmVzID0gcmVnbWFwX3JlYWQoZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1ZF UlNJT04sICZ2ZXJzaW9uKTsKKwlpZiAocmVzIDwgMCkgeworCQlkZXZfZXJyKGVjLT5kZXYsICJG YWlsZWQgdG8gcmVhZCBmaXJtd2FyZSB2ZXJzaW9uIG51bWJlclxuIik7CisJCXJldHVybiByZXM7 CisJfQorCisJLyogQmFpbCBvdXQgaWYgd2UgZW5jb3VudGVyIGFuIHVua25vd24gZmlybXdhcmUg dmVyc2lvbiAqLworCXN3aXRjaCAodmVyc2lvbikgeworCWNhc2UgMHhkNzI2OiAvKiBmb3VuZCBp biBLb2JvIEF1cmEgKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2VycihlYy0+ZGV2LAor CQkJIk5ldHJvbml4IGVtYmVkZGVkIGNvbnRyb2xsZXIgdmVyc2lvbiAlMDR4IGlzIG5vdCBzdXBw b3J0ZWQuXG4iLAorCQkJdmVyc2lvbik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWRldl9p bmZvKGVjLT5kZXYsCisJCSAiTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciB2ZXJzaW9uICUw NHggZGV0ZWN0ZWQuXG4iLCB2ZXJzaW9uKTsKKworCWlmIChvZl9kZXZpY2VfaXNfc3lzdGVtX3Bv d2VyX2NvbnRyb2xsZXIoZWMtPmRldi0+b2Zfbm9kZSkpIHsKKwkJLyoKKwkJICogU2V0IHRoZSAn cG93ZXJrZWVwJyBiaXQuIFRoaXMgaXMgbmVjZXNzYXJ5IG9uIHNvbWUgYm9hcmRzCisJCSAqIGlu IG9yZGVyIHRvIGtlZXAgdGhlIHN5c3RlbSBydW5uaW5nLgorCQkgKi8KKwkJcmVzID0gcmVnbWFw X3dyaXRlKGVjLT5yZWdtYXAsIE5UWEVDX1JFR19QT1dFUktFRVAsCisJCQkJICAgTlRYRUNfUE9X RVJLRUVQX1ZBTFVFKTsKKwkJaWYgKHJlcyA8IDApCisJCQlyZXR1cm4gcmVzOworCisJCWlmIChw b3dlcm9mZl9yZXN0YXJ0X2NsaWVudCkKKwkJCS8qCisJCQkgKiBBbm90aGVyIGluc3RhbmNlIG9m IHRoZSBkcml2ZXIgYWxyZWFkeSB0b29rCisJCQkgKiBwb3dlcm9mZi9yZXN0YXJ0IGR1dGllcy4K KwkJCSAqLworCQkJZGV2X2VycihlYy0+ZGV2LCAicG93ZXJvZmZfcmVzdGFydF9jbGllbnQgYWxy ZWFkeSBhc3NpZ25lZFxuIik7CisJCWVsc2UKKwkJCXBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50ID0g Y2xpZW50OworCisJCWlmIChwbV9wb3dlcl9vZmYpCisJCQkvKiBBbm90aGVyIGRyaXZlciBhbHJl YWR5IHJlZ2lzdGVyZWQgYSBwb3dlcm9mZiBoYW5kbGVyLiAqLworCQkJZGV2X2VycihlYy0+ZGV2 LCAicG1fcG93ZXJfb2ZmIGFscmVhZHkgYXNzaWduZWRcbiIpOworCQllbHNlCisJCQlwbV9wb3dl cl9vZmYgPSBudHhlY19wb3dlcm9mZjsKKworCQlyZXMgPSByZWdpc3Rlcl9yZXN0YXJ0X2hhbmRs ZXIoJm50eGVjX3Jlc3RhcnRfaGFuZGxlcik7CisJCWlmIChyZXMpCisJCQlkZXZfZXJyKGVjLT5k ZXYsCisJCQkJIkZhaWxlZCB0byByZWdpc3RlciByZXN0YXJ0IGhhbmRsZXI6ICVkXG4iLCByZXMp OworCX0KKworCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIGVjKTsKKworCXJlcyA9IGRldm1f bWZkX2FkZF9kZXZpY2VzKGVjLT5kZXYsIFBMQVRGT1JNX0RFVklEX05PTkUsIG50eGVjX3N1YmRl dmljZXMsCisJCQkJICAgQVJSQVlfU0laRShudHhlY19zdWJkZXZpY2VzKSwgTlVMTCwgMCwgTlVM TCk7CisJaWYgKHJlcykKKwkJZGV2X2VycihlYy0+ZGV2LCAiRmFpbGVkIHRvIGFkZCBzdWJkZXZp Y2VzOiAlZFxuIiwgcmVzKTsKKworCXJldHVybiByZXM7Cit9CisKK3N0YXRpYyBpbnQgbnR4ZWNf cmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJaWYgKGNsaWVudCA9PSBwb3dl cm9mZl9yZXN0YXJ0X2NsaWVudCkgeworCQlwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudCA9IE5VTEw7 CisJCXBtX3Bvd2VyX29mZiA9IE5VTEw7CisJCXVucmVnaXN0ZXJfcmVzdGFydF9oYW5kbGVyKCZu dHhlY19yZXN0YXJ0X2hhbmRsZXIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9udHhlY19tYXRjaF90YWJsZVtdID0geworCXsgLmNv bXBhdGlibGUgPSAibmV0cm9uaXgsbnR4ZWMiLCB9LAorCXt9Cit9OworCitzdGF0aWMgc3RydWN0 IGkyY19kcml2ZXIgbnR4ZWNfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gIm50 eGVjIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbnR4ZWNfbWF0Y2hfdGFibGUsCisJfSwKKwku cHJvYmVfbmV3ID0gbnR4ZWNfcHJvYmUsCisJLnJlbW92ZSA9IG50eGVjX3JlbW92ZSwKK307Citt b2R1bGVfaTJjX2RyaXZlcihudHhlY19kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9tZmQvbnR4ZWMuaCBiL2luY2x1ZGUvbGludXgvbWZkL250eGVjLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYjFkZTkxZjRmZGNhZAotLS0gL2Rldi9udWxsCisr KyBiL2luY2x1ZGUvbGludXgvbWZkL250eGVjLmgKQEAgLTAsMCArMSwzNCBAQAorLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoKKyAqIENvcHlyaWdodCAyMDIw IEpvbmF0aGFuIE5ldXNjaMOkZmVyCisgKgorICogUmVnaXN0ZXIgYWNjZXNzIGFuZCB2ZXJzaW9u IGluZm9ybWF0aW9uIGZvciB0aGUgTmV0cm9uaXggZW1iZWRkZWQKKyAqIGNvbnRyb2xsZXIuCisg Ki8KKworI2lmbmRlZiBOVFhFQ19ICisjZGVmaW5lIE5UWEVDX0gKKworI2luY2x1ZGUgPGxpbnV4 L3R5cGVzLmg+CisKK3N0cnVjdCBkZXZpY2U7CitzdHJ1Y3QgcmVnbWFwOworCitzdHJ1Y3QgbnR4 ZWMgeworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cit9Owor CisvKgorICogU29tZSByZWdpc3RlcnMsIHN1Y2ggYXMgdGhlIGJhdHRlcnkgc3RhdHVzIHJlZ2lz dGVyICgweDQxKSwgYXJlIGluCisgKiBiaWctZW5kaWFuLCBidXQgb3RoZXJzIG9ubHkgaGF2ZSBl aWdodCBzaWduaWZpY2FudCBiaXRzLCB3aGljaCBhcmUgaW4gdGhlCisgKiBmaXJzdCBieXRlIHRy YW5zbWl0dGVkIG92ZXIgSTJDICh0aGUgTVNCIG9mIHRoZSBiaWctZW5kaWFuIHZhbHVlKS4KKyAq IFRoaXMgY29udmVuaWVuY2UgZnVuY3Rpb24gY29udmVydHMgYW4gOC1iaXQgdmFsdWUgdG8gMTYt Yml0IGZvciB1c2UgaW4gdGhlCisgKiBzZWNvbmQga2luZCBvZiByZWdpc3Rlci4KKyAqLworc3Rh dGljIGlubGluZSBfX2JlMTYgbnR4ZWNfcmVnOCh1OCB2YWx1ZSkKK3sKKwlyZXR1cm4gdmFsdWUg PDwgODsKK30KKworI2VuZGlmCi0tCjIuMjkuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK