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.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,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 1A3EBC43461 for ; Sat, 5 Sep 2020 13:36: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 9AAFB2072D for ; Sat, 5 Sep 2020 13:36: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="jkh819pv"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="Wge91bLk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9AAFB2072D Authentication-Results: mail.kernel.org; dmarc=none (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=wXmbzbNe+hpjcYAIKYP+32l1fPSJTZdk40XxmEgFDd0=; b=jkh819pvlLpH9YTWwiuClN0G+ 8VULy77igeXeoEP3L5mDSFhzxx/GjLP6qvVKe0bswVCEDfQS1Cbs+IewMI5sItvAfMSAPj3p2V4dT F8SncF3ZYdJAsvd0wT4wgHqB0ebAuqbOl0tODL4IFHSv/53ZD9FWTGpdowOVVuHAc5BOOrlPtxSXy g89RC2PamxJfBwD9SZ0KAYbPQiTkFce9cbwlMpOeoRGgCSKg43baj0bwDlfYDjIgjC3utd1lGS5pM TBmBccG1Bfk+387gPgpD4THTmqDL6MCYvbUod8QvKwv0Pnep+jOaXs+DdwnXkw1K4pXvfDqfOin+p SsG++LNKQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kEYL5-0006Dc-FU; Sat, 05 Sep 2020 13:34:43 +0000 Received: from mout.gmx.net ([212.227.17.21]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kEYL0-0006C6-Jx for linux-arm-kernel@lists.infradead.org; Sat, 05 Sep 2020 13:34:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1599312843; bh=lFP4+48b1q9wMps2dhvfqju3YXkQySHJhiYh5hsMw8s=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=Wge91bLkSC8JeDMRv2xoC7qIr/ccP9aTthWA9Z/RA1ByqkvieReeA2RRMVrpoIBNN Jq3/x+3iCZlvr+tTN3FRE3T91dapHwktkOg9Cx/O0v7Cq7iiXPa6EX320kyNnx2Czm gteuOJDiciQz4Sz9iIICaUMdRlJXEvDzca/F3AOI= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([5.146.195.151]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MnakX-1kxH5C1QLl-00jVm9; Sat, 05 Sep 2020 15:34:03 +0200 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v2 03/10] mfd: Add base driver for Netronix embedded controller Date: Sat, 5 Sep 2020 15:32:23 +0200 Message-Id: <20200905133230.1014581-4-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200905133230.1014581-1-j.neuschaefer@gmx.net> References: <20200905133230.1014581-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 X-Provags-ID: V03:K1:9nyrMwTGKpf8aFfMoAAzhrvimxGgK1Ibt7IlLGUdrACY1CUOER5 2GSjH+eh6PDU9Iec7TWg/lwHJDr9kUkRIxU4QIXbZ5Ij/ubOVjhFySYN9zcRMiG5svJgC9O 2bb38VILsliYSS1xPc7zOFZhMKcMvAm6tnY2Cwlbc1kiYnozFVo8vB/qMBf/Wcngcon1aPP sudH74a8PDxuVW8o3iMVg== X-UI-Out-Filterresults: notjunk:1;V03:K0:tcXlN4wr7mI=:NkyhodHlWwhy65wMxx1icg MjIRdgKrVnGotYB8jNs+x0SEFFE3EB5RAA9Ya9TLtr8vK2gSQBxt6guFmrtUUmqJWUh5eAvpT WBMCWmI09MxjbT1ZbAcNfmumZaoDX215M4fJAWirCVj5+yEEOZspZnV2U8cPLdyJR2zyPJ/Gk FgV3DSYkpQiXwZ2d2qdPeLNHgYRyJbNomuP1QOg3NiV2GlpOH+ku4sPPqTUv/U4U2QnBfOVyi p2/3DKKZE3c+IQTus5IGA8gC26iTGFlA8w7Hz1Id7oPT7I80v2663Z1HgS/BLDsQGXhoLubJv cgKq9NWKxQyXh4ecypi6mN+UQQtlESx+LQvEgegqHj0mig02fgfKbaloWNPLG9DELDB4owNfw kK4H2q2erIWVbNTjfZVVqUlNa5m3qT6LVgoo2/dolNopaBmgOrIjO2KTmN0Y/om1U+Dz5wT/o i9YRNHjLxLcUTvtQowO8F/+G0MxVDOw0NoX4jStv/MelPWezFJqnbiFeLdnMNn3npPzlXQLzr 0FimdbaYLmjnJg3Y8b+XTUzRg+6bfURKiSMLjrGHhNTg+XF25Ns6sN1kOaoX+1RseVp5gY8pO v6DVKQ7BHePTYbS7L5gumW/KcIYAv5gIcAi6XQFBaDKcQKkW0nHxt0ERDxs3nxATmpBqE0oa+ wXdoR2ZMZEWgDPh1NzWi9+AXkFvItoCdhvQoeFGwp++J2oC5ZGztzxdlNKwtv3su7Nxv20dG3 cwRk/53AHHT712hOsZLCpkZDX2wVag3S9GnNh35F9apF/QIz6UbvJkTjDq7IE6iTeseP+h48E RBW0x1PPy0Xf0D1SX2eb5N1Y4/FSjBsciA//S3BSGS1jddIfA5Rwvanjq4EE39f4uKRV+jZoJ nGcnNLeSgsJLWnSN58HDebwfmHajzyvYc+kniw+OBwksvGU6F2DBOdgI330pjJPXyvadBBJEF ry7ZhPCOT3h0fcClSrMVhpDJA2PCGDQj8fUMcAj+t04ANO2/M83Drq9yJ6f9cu/yBCKDCUJJT dzkhKwKibheArntmVF8YzRZ9BWWjtcUwS/S6fK4gPITG1ZNGpfLWgnsa6Q6uIVu2PzdLxLIq/ nLP9PEHD8cjDCkkayNlOMHQfsh0P18s26aYm4RmioytR1896ILph/637feoQzlFdEU/SVFI+F 0WlF1+Cpu+goFEjskAIm3pq9BIAKgBgCJJJj6jfuQxDt871CY7S+/VjDh9KKfC8e50N5l0YsB FNGZlc0ZflJ5RokLud3oaTihbER+DAFOgR4RveA== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200905_093438_855159_2025ED6A X-CRM114-Status: GOOD ( 34.43 ) 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 , 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 bmQgaW4gc29tZQplLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBieSB0aGUgT0RNIE5ldHJvbml4LCBJ bmMuIEl0IGNvbnRhaW5zIFJUQywKYmF0dGVyeSBtb25pdG9yaW5nLCBzeXN0ZW0gcG93ZXIgbWFu YWdlbWVudCwgYW5kIFBXTSBmdW5jdGlvbmFsaXR5LgoKVGhpcyBkcml2ZXIgaW1wbGVtZW50cyBy ZWdpc3RlciBhY2Nlc3MgYW5kIHZlcnNpb24gZGV0ZWN0aW9uLgoKVGhpcmQtcGFydHkgaGFyZHdh cmUgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgYXQ6CgogIGh0dHBzOi8vZ2l0aHViLmNvbS9u ZXVzY2hhZWZlci9saW51eC93aWtpL05ldHJvbml4LU1TUDQzMC1lbWJlZGRlZC1jb250cm9sbGVy CgpUaGUgRUMgc3VwcG9ydHMgaW50ZXJydXB0cywgYnV0IHRoZSBkcml2ZXIgZG9lc24ndCBtYWtl IHVzZSBvZiB0aGVtIHNvCmZhci4KClNpZ25lZC1vZmYtYnk6IEpvbmF0aGFuIE5ldXNjaMOkZmVy IDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+Ci0tLQoKdjI6Ci0gQWRkIGEgZGVzY3JpcHRpb24gb2Yg dGhlIGRldmljZSB0byB0aGUgcGF0Y2ggdGV4dAotIFVuaWZ5IHNwZWxsaW5nIGFzICdOZXRyb25p eCBlbWJlZGRlZCBjb250cm9sbGVyJy4KICAnTmV0cm9uaXgnIGlzIHRoZSBwcm9wZXIgbmFtZSBv ZiB0aGUgbWFudWZhY3R1cmVyLCBidXQgJ2VtYmVkZGVkIGNvbnRyb2xsZXInCiAgaXMganVzdCBh IGxhYmVsIHRoYXQgSSBoYXZlIGFzc2lnbmVkIHRvIHRoZSBkZXZpY2UuCi0gU3dpdGNoIHRvIHJl Z21hcCwgYXZvaWQgcmVnbWFwIHVzZSBpbiBwb3dlcm9mZiBhbmQgcmVib290IGhhbmRsZXJzLgog IEluc3BpcmVkIGJ5IGNmODRkYzBiYjQwZjQgKCJtZmQ6IHJuNXQ2MTg6IE1ha2UgcmVzdGFydCBo YW5kbGVyIGF0b21pYyBzYWZlIikKLSBVc2UgYSBsaXN0IG9mIGtub3duLXdvcmtpbmcgZmlybXdh cmUgdmVyc2lvbnMgaW5zdGVhZCBvZiBjaGVja2luZyBmb3IgYQogIGtub3duLWluY29tcGF0aWJs ZSB2ZXJzaW9uCi0gUHJlZml4IHJlZ2lzdGVycyB3aXRoIE5UWEVDX1JFR18KLSBEZWZpbmUgcmVn aXN0ZXIgdmFsdWVzIGFzIGNvbnN0YW50cwotIFZhcmlvdXMgc3R5bGUgY2xlYW51cHMgYXMgc3Vn Z2VzdGVkIGJ5IExlZSBKb25lcwotIERvbid0IGFsaWduID0gc2lnbnMgaW4gc3RydWN0IGluaXRp YWxpemVycyBbVXdlIEtsZWluZS1Lw7ZuaWddCi0gRG9uJ3QgdXNlIGRldl9kYmcgZm9yIGFuIGVy cm9yIG1lc3NhZ2UKLSBFeHBsYWluIHNsZWVwIGluIHBvd2Vyb2ZmIGhhbmRsZXIKLSBSZW1vdmUg KHN0cnVjdCBudHhlYykuY2xpZW50Ci0gU3dpdGNoIHRvIC5wcm9iZV9uZXcgaW4gaTJjIGRyaXZl cgotIEFkZCAucmVtb3ZlIGNhbGxiYWNrCi0gTWFrZSBDT05GSUdfTUZEX05UWEVDIGEgdHJpc3Rh dGUgb3B0aW9uCi0tLQogZHJpdmVycy9tZmQvS2NvbmZpZyAgICAgICB8ICAgNyArKwogZHJpdmVy cy9tZmQvTWFrZWZpbGUgICAgICB8ICAgMSArCiBkcml2ZXJzL21mZC9udHhlYy5jICAgICAgIHwg MjE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4 L21mZC9udHhlYy5oIHwgIDI0ICsrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZmQvbnR4ZWMuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvbGludXgvbWZkL250eGVjLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL21m ZC9LY29uZmlnIGIvZHJpdmVycy9tZmQvS2NvbmZpZwppbmRleCAzM2RmMDgzN2FiNDE1Li5iYWI5 OTkwODFmMzJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9LY29uZmlnCisrKyBiL2RyaXZlcnMv bWZkL0tjb25maWcKQEAgLTk3OCw2ICs5NzgsMTMgQEAgY29uZmlnIE1GRF9WSVBFUkJPQVJECiAJ ICBZb3UgbmVlZCB0byBzZWxlY3QgdGhlIG1mZCBjZWxsIGRyaXZlcnMgc2VwYXJhdGVseS4KIAkg IFRoZSBkcml2ZXJzIGRvIG5vdCBzdXBwb3J0IGFsbCBmZWF0dXJlcyB0aGUgYm9hcmQgZXhwb3Nl cy4KCitjb25maWcgTUZEX05UWEVDCisJdHJpc3RhdGUgIk5ldHJvbml4IGVtYmVkZGVkIGNvbnRy b2xsZXIiCisJZGVwZW5kcyBvbiBJMkMgJiYgT0YKKwloZWxwCisJICBTYXkgeWVzIGhlcmUgaWYg eW91IHdhbnQgdG8gc3VwcG9ydCB0aGUgZW1iZWRkZWQgY29udHJvbGxlciBmb3VuZCBpbgorCSAg Y2VydGFpbiBlLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBieSB0aGUgT0RNIE5ldHJvbml4LgorCiBj b25maWcgTUZEX1JFVFUKIAl0cmlzdGF0ZSAiTm9raWEgUmV0dSBhbmQgVGFodm8gbXVsdGktZnVu Y3Rpb24gZGV2aWNlIgogCXNlbGVjdCBNRkRfQ09SRQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQv TWFrZWZpbGUgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQppbmRleCBhNjBlNWY4MzUyODNlLi4yMzZh OGFjZDkxN2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC9NYWtlZmlsZQorKysgYi9kcml2ZXJz L21mZC9NYWtlZmlsZQpAQCAtMjE3LDYgKzIxNyw3IEBAIG9iai0kKENPTkZJR19NRkRfSU5URUxf TVNJQykJKz0gaW50ZWxfbXNpYy5vCiBvYmotJChDT05GSUdfTUZEX0lOVEVMX1BNQ19CWFQpCSs9 IGludGVsX3BtY19ieHQubwogb2JqLSQoQ09ORklHX01GRF9QQUxNQVMpCSs9IHBhbG1hcy5vCiBv YmotJChDT05GSUdfTUZEX1ZJUEVSQk9BUkQpICAgICs9IHZpcGVyYm9hcmQubworb2JqLSQoQ09O RklHX01GRF9OVFhFQykJCSs9IG50eGVjLm8KIG9iai0kKENPTkZJR19NRkRfUkM1VDU4MykJKz0g cmM1dDU4My5vIHJjNXQ1ODMtaXJxLm8KIG9iai0kKENPTkZJR19NRkRfUks4MDgpCQkrPSByazgw OC5vCiBvYmotJChDT05GSUdfTUZEX1JONVQ2MTgpCSs9IHJuNXQ2MTgubwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZmQvbnR4ZWMuYyBiL2RyaXZlcnMvbWZkL250eGVjLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNDljYzRmYTM1YjlmZQotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvbWZkL250eGVjLmMKQEAgLTAsMCArMSwyMTcgQEAKKy8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKy8qCisgKiBUaGUgTmV0cm9uaXggZW1iZWRkZWQg Y29udHJvbGxlciBpcyBhIG1pY3JvY29udHJvbGxlciBmb3VuZCBpbiBzb21lCisgKiBlLWJvb2sg cmVhZGVycyBkZXNpZ25lZCBieSB0aGUgT0RNIE5ldHJvbml4LCBJbmMuIEl0IGNvbnRhaW5zIFJU QywKKyAqIGJhdHRlcnkgbW9uaXRvcmluZywgc3lzdGVtIHBvd2VyIG1hbmFnZW1lbnQsIGFuZCBQ V00gZnVuY3Rpb25hbGl0eS4KKyAqCisgKiBUaGlzIGRyaXZlciBpbXBsZW1lbnRzIHJlZ2lzdGVy IGFjY2VzcywgdmVyc2lvbiBkZXRlY3Rpb24sIGFuZCBzeXN0ZW0KKyAqIHBvd2VyLW9mZi9yZXNl dC4KKyAqCisgKiBDb3B5cmlnaHQgMjAyMCBKb25hdGhhbiBOZXVzY2jDpGZlcgorICovCisKKyNp bmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNs dWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxp bnV4L21mZC9udHhlYy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxp bnV4L29mX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51 eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC90 eXBlcy5oPgorCisjZGVmaW5lIE5UWEVDX1JFR19WRVJTSU9OCTB4MDAKKyNkZWZpbmUgTlRYRUNf UkVHX1BPV0VST0ZGCTB4NTAKKyNkZWZpbmUgTlRYRUNfUkVHX1BPV0VSS0VFUAkweDcwCisjZGVm aW5lIE5UWEVDX1JFR19SRVNFVAkJMHg5MAorCisjZGVmaW5lIE5UWEVDX1BPV0VST0ZGX1ZBTFVF CTB4MDEwMAorI2RlZmluZSBOVFhFQ19QT1dFUktFRVBfVkFMVUUJMHgwODAwCisjZGVmaW5lIE5U WEVDX1JFU0VUX1ZBTFVFCTB4ZmYwMAorCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgKnBvd2Vy b2ZmX3Jlc3RhcnRfY2xpZW50OworCitzdGF0aWMgdm9pZCBudHhlY19wb3dlcm9mZih2b2lkKQor eworCWludCByZXM7CisKKwl1OCBidWZbXSA9IHsKKwkJTlRYRUNfUkVHX1BPV0VST0ZGLAorCQko TlRYRUNfUE9XRVJPRkZfVkFMVUUgPj4gOCkgJiAweGZmLAorCQlOVFhFQ19QT1dFUk9GRl9WQUxV RSAmIDB4ZmYsCisJfTsKKworCXN0cnVjdCBpMmNfbXNnIG1zZ3NbXSA9IHsKKwkJeworCQkJLmFk ZHIgPSBwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+YWRkciwKKwkJCS5mbGFncyA9IDAsCisJCQku bGVuID0gc2l6ZW9mKGJ1ZiksCisJCQkuYnVmID0gYnVmCisJCX0KKwl9OworCisJcmVzID0gaTJj X3RyYW5zZmVyKHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50LT5hZGFwdGVyLCBtc2dzLCBBUlJBWV9T SVpFKG1zZ3MpKTsKKworCWlmIChyZXMgPCAwKQorCQlkZXZfYWxlcnQoJnBvd2Vyb2ZmX3Jlc3Rh cnRfY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gcG93ZXIgb2ZmIChlcnIgPSAlZClcbiIsIHJlcyk7 CisKKwkvKgorCSAqIFRoZSB0aW1lIGZyb20gdGhlIHJlZ2lzdGVyIHdyaXRlIHVudGlsIHRoZSBo b3N0IENQVSBpcyBwb3dlcmVkIG9mZgorCSAqIGhhcyBiZWVuIG9ic2VydmVkIHRvIGJlIGFib3V0 IDIuNSB0byAzIHNlY29uZHMuIFNsZWVwIGxvbmcgZW5vdWdoIHRvCisJICogc2FmZWx5IGF2b2lk IHJldHVybmluZyBmcm9tIHRoZSBwb3dlcm9mZiBoYW5kbGVyLgorCSAqLworCW1zbGVlcCg1MDAw KTsKK30KKworc3RhdGljIGludCBudHhlY19yZXN0YXJ0KHN0cnVjdCBub3RpZmllcl9ibG9jayAq bmIsCisJCQkgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmRhdGEpCit7CisJaW50IHJlczsK KworCS8qCisJICogTk9URTogVGhlIGxvd2VyIGhhbGYgb2YgdGhlIHJlc2V0IHZhbHVlIGlzIG5v dCBzZW50LCBiZWNhdXNlIHNlbmRpbmcKKwkgKiBpdCBjYXVzZXMgYW4gZXJyb3IKKwkgKi8KKwl1 OCBidWZbXSA9IHsKKwkJTlRYRUNfUkVHX1JFU0VULAorCQkoTlRYRUNfUkVTRVRfVkFMVUUgPj4g OCkgJiAweGZmLAorCX07CisKKwlzdHJ1Y3QgaTJjX21zZyBtc2dzW10gPSB7CisJCXsKKwkJCS5h ZGRyID0gcG93ZXJvZmZfcmVzdGFydF9jbGllbnQtPmFkZHIsCisJCQkuZmxhZ3MgPSAwLAorCQkJ LmxlbiA9IHNpemVvZihidWYpLAorCQkJLmJ1ZiA9IGJ1ZgorCQl9CisJfTsKKworCXJlcyA9IGky Y190cmFuc2Zlcihwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+YWRhcHRlciwgbXNncywgQVJSQVlf U0laRShtc2dzKSk7CisKKwlpZiAocmVzIDwgMCkKKwkJZGV2X2FsZXJ0KCZwb3dlcm9mZl9yZXN0 YXJ0X2NsaWVudC0+ZGV2LCAiRmFpbGVkIHRvIHJlc3RhcnQgKGVyciA9ICVkKVxuIiwgcmVzKTsK KworCXJldHVybiBOT1RJRllfRE9ORTsKK30KKworc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9j ayBudHhlY19yZXN0YXJ0X2hhbmRsZXIgPSB7CisJLm5vdGlmaWVyX2NhbGwgPSBudHhlY19yZXN0 YXJ0LAorCS5wcmlvcml0eSA9IDEyOAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBf Y29uZmlnIHJlZ21hcF9jb25maWcgPSB7CisJLm5hbWUgPSAibnR4ZWMiLAorCS5yZWdfYml0cyA9 IDgsCisJLnZhbF9iaXRzID0gMTYsCisJLmNhY2hlX3R5cGUgPSBSRUdDQUNIRV9OT05FLAorCS52 YWxfZm9ybWF0X2VuZGlhbiA9IFJFR01BUF9FTkRJQU5fQklHLAorfTsKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBudHhlY19pbmZvIG50eGVjX2tub3duX3ZlcnNpb25zW10gPSB7CisJeyAweGQ3MjYg fSwgLyogZm91bmQgaW4gS29ibyBBdXJhICovCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG50 eGVjX2luZm8gKm50eGVjX2xvb2t1cF9pbmZvKHUxNiB2ZXJzaW9uKQoreworCWludCBpOworCisJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUobnR4ZWNfa25vd25fdmVyc2lvbnMpOyBpKyspIHsK KwkJY29uc3Qgc3RydWN0IG50eGVjX2luZm8gKmluZm8gPSAmbnR4ZWNfa25vd25fdmVyc2lvbnNb aV07CisKKwkJaWYgKGluZm8tPnZlcnNpb24gPT0gdmVyc2lvbikKKwkJCXJldHVybiBpbmZvOwor CX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50IG50eGVjX3Byb2JlKHN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IG50eGVjICplYzsKKwl1bnNpZ25lZCBpbnQg dmVyc2lvbjsKKwlpbnQgcmVzOworCisJZWMgPSBkZXZtX2ttYWxsb2MoJmNsaWVudC0+ZGV2LCBz aXplb2YoKmVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFlYykKKwkJcmV0dXJuIC1FTk9NRU07CisK KwllYy0+ZGV2ID0gJmNsaWVudC0+ZGV2OworCisJZWMtPnJlZ21hcCA9IGRldm1fcmVnbWFwX2lu aXRfaTJjKGNsaWVudCwgJnJlZ21hcF9jb25maWcpOworCWlmIChJU19FUlIoZWMtPnJlZ21hcCkp IHsKKwkJZGV2X2VycihlYy0+ZGV2LCAiRmFpbGVkIHRvIHNldCB1cCByZWdtYXAgZm9yIGRldmlj ZVxuIik7CisJCXJldHVybiByZXM7CisJfQorCisJLyogRGV0ZXJtaW5lIHRoZSBmaXJtd2FyZSB2 ZXJzaW9uICovCisJcmVzID0gcmVnbWFwX3JlYWQoZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1ZFUlNJ T04sICZ2ZXJzaW9uKTsKKwlpZiAocmVzIDwgMCkgeworCQlkZXZfZXJyKGVjLT5kZXYsICJGYWls ZWQgdG8gcmVhZCBmaXJtd2FyZSB2ZXJzaW9uIG51bWJlclxuIik7CisJCXJldHVybiByZXM7CisJ fQorCWRldl9pbmZvKGVjLT5kZXYsCisJCSAiTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciB2 ZXJzaW9uICUwNHggZGV0ZWN0ZWQuXG4iLAorCQkgdmVyc2lvbik7CisKKwkvKiBCYWlsIG91dCBp ZiB3ZSBlbmNvdW50ZXIgYW4gdW5rbm93biBmaXJtd2FyZSB2ZXJzaW9uICovCisJZWMtPmluZm8g PSBudHhlY19sb29rdXBfaW5mbyh2ZXJzaW9uKTsKKwlpZiAoIWVjLT5pbmZvKQorCQlyZXR1cm4g LUVPUE5PVFNVUFA7CisKKwlpZiAob2ZfZGV2aWNlX2lzX3N5c3RlbV9wb3dlcl9jb250cm9sbGVy KGVjLT5kZXYtPm9mX25vZGUpKSB7CisJCS8qCisJCSAqIFNldCB0aGUgJ3Bvd2Vya2VlcCcgYml0 LiBUaGlzIGlzIG5lY2Vzc2FyeSBvbiBzb21lIGJvYXJkcworCQkgKiBpbiBvcmRlciB0byBrZWVw IHRoZSBzeXN0ZW0gcnVubmluZy4KKwkJICovCisJCXJlcyA9IHJlZ21hcF93cml0ZShlYy0+cmVn bWFwLCBOVFhFQ19SRUdfUE9XRVJLRUVQLAorCQkJCSAgIE5UWEVDX1BPV0VSS0VFUF9WQUxVRSk7 CisJCWlmIChyZXMgPCAwKQorCQkJcmV0dXJuIHJlczsKKworCQkvKiBJbnN0YWxsIHBvd2Vyb2Zm IGhhbmRsZXIgKi8KKwkJV0FSTl9PTihwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudCk7CisJCXBvd2Vy b2ZmX3Jlc3RhcnRfY2xpZW50ID0gY2xpZW50OworCQlpZiAocG1fcG93ZXJfb2ZmKQorCQkJZGV2 X2VycihlYy0+ZGV2LCAicG1fcG93ZXJfb2ZmIGFscmVhZHkgYXNzaWduZWRcbiIpOworCQllbHNl CisJCQlwbV9wb3dlcl9vZmYgPSBudHhlY19wb3dlcm9mZjsKKworCQkvKiBJbnN0YWxsIGJvYXJk IHJlc2V0IGhhbmRsZXIgKi8KKwkJcmVzID0gcmVnaXN0ZXJfcmVzdGFydF9oYW5kbGVyKCZudHhl Y19yZXN0YXJ0X2hhbmRsZXIpOworCQlpZiAocmVzKQorCQkJZGV2X2VycihlYy0+ZGV2LAorCQkJ CSJGYWlsZWQgdG8gcmVnaXN0ZXIgcmVzdGFydCBoYW5kbGVyOiAlZFxuIiwgcmVzKTsKKwl9CisK KwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBlYyk7CisKKwlyZXR1cm4gZGV2bV9vZl9wbGF0 Zm9ybV9wb3B1bGF0ZShlYy0+ZGV2KTsKK30KKworc3RhdGljIGludCBudHhlY19yZW1vdmUoc3Ry dWN0IGkyY19jbGllbnQgKmkyYykKK3sKKwlpZiAoaTJjID09IHBvd2Vyb2ZmX3Jlc3RhcnRfY2xp ZW50KSB7CisJCXBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50ID0gTlVMTDsKKwkJcG1fcG93ZXJfb2Zm ID0gTlVMTDsKKwkJdW5yZWdpc3Rlcl9yZXN0YXJ0X2hhbmRsZXIoJm50eGVjX3Jlc3RhcnRfaGFu ZGxlcik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG9mX250eGVjX21hdGNoX3RhYmxlW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJuZXRy b25peCxudHhlYyIsIH0sCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBudHhl Y19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAibnR4ZWMiLAorCQkub2ZfbWF0 Y2hfdGFibGUgPSBvZl9udHhlY19tYXRjaF90YWJsZSwKKwl9LAorCS5wcm9iZV9uZXcgPSBudHhl Y19wcm9iZSwKKwkucmVtb3ZlID0gbnR4ZWNfcmVtb3ZlLAorfTsKK21vZHVsZV9pMmNfZHJpdmVy KG50eGVjX2RyaXZlcik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9udHhlYy5oIGIv aW5jbHVkZS9saW51eC9tZmQvbnR4ZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi42NWUzODlhZjc5ZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51 eC9tZmQvbnR4ZWMuaApAQCAtMCwwICsxLDI0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vbmx5ICovCisvKgorICogQ29weXJpZ2h0IDIwMjAgSm9uYXRoYW4gTmV1c2No w6RmZXIKKyAqCisgKiBSZWdpc3RlciBhY2Nlc3MgYW5kIHZlcnNpb24gaW5mb3JtYXRpb24gZm9y IHRoZSBOZXRyb25peCBlbWJlZGRlZAorICogY29udHJvbGxlci4KKyAqLworCisjaWZuZGVmIE5U WEVDX0gKKyNkZWZpbmUgTlRYRUNfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3Ry dWN0IG50eGVjX2luZm8geworCXUxNiB2ZXJzaW9uOworfTsKKworc3RydWN0IG50eGVjIHsKKwlz dHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IHJlZ21hcCAqcmVnbWFwOworCWNvbnN0IHN0cnVj dCBudHhlY19pbmZvICppbmZvOworfTsKKworI2VuZGlmCi0tCjIuMjguMAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK