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=-14.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 EE012C433E2 for ; Tue, 8 Sep 2020 13:31:09 +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 87D1521919 for ; Tue, 8 Sep 2020 13:31:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Z+6WJs+o"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="f0ukX8fw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87D1521919 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org 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:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=cUBYgDk8RyZOOT14XqBz9uFCF+wToC1lmauVdKCer8w=; b=Z+6WJs+oAR2BDoqAazYgA1+F5 +vdxqCXhOgfe6sYaCZnaXcw/FutVVz3ud149K3Kgw4MVUPsOW0DU2348NNRN0Z/QbIOZRpjYCqEKQ qfbDf9jcXAjgkqkHLxDKpUnzzWbRxufqRfQy+RGHsxZ4qOTztvdqTViHZyfIdM7G/3Pki1A8fCTEr wC2FFHHlMk5U9Y5kc57rykNzHQUMXiVMXtEITLCt4skfaEXfhb/LjGLmCpvA+DgNMYEYONG9qipd2 cUXRbx/R2GdKrAsI4xxKLdv63X3+8+VFaAk8cqx81H7q8IEp6Dfl9GXKqKayUmcxxXL0p4sEa6fiu OAXqVR3lw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFdgr-00031q-85; Tue, 08 Sep 2020 13:29:41 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFdgp-00031B-1c for linux-arm-kernel@lists.infradead.org; Tue, 08 Sep 2020 13:29:40 +0000 Received: by mail-wm1-x343.google.com with SMTP id b79so17178079wmb.4 for ; Tue, 08 Sep 2020 06:29:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=GJ8f45V/YQ+Eng4fxZFpuD78DaTJ/jouOJPgvPqWatM=; b=f0ukX8fwPzIqcAj9jAjsHyPPhe4xG58+3ZKxfhlG9kjhYN5vVOOSEWSeeGc0rcC+bb s0k5bpWJACmfUERh+ptbvJAbSZoMxC/pzxVM7tWH10OeavQ3p93BRNV+J/0pzKu4jVcL Qu99W9zF6DDZIVCMOTOQ03CCW6Xy9ioATE4SzAx+sEUSKRouw4Ytsup8RrzjQgSGw5Vh j73PawIRIfN1Q08LH9ZLGu6ODpqWqGUVNxoVMxO9UJ5j6w0wncEDmNfAJnZcJYpC8Zwm FMCrdZwmt+RA5+bk0/lopZLWMrYcea575WC1KQ9XvtHILF1DTXAOnhWiHu6PSC845fm2 5JEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=GJ8f45V/YQ+Eng4fxZFpuD78DaTJ/jouOJPgvPqWatM=; b=ivg9DZYUcd1ZwDndDMfn6ekZRvj7DpEBkBzn5lIvsoLgQciBli1LdJx/qBj+ZfnbLj /AREtiKxuGZOqqqAIxGgwE5l8/9Q/7rQGSi7rl0XM9DqmTDYpFEY3G1U3mmdhaoBVSFO 9RHbXoiezOprv5d65PNaDVs/w0CEilZYfMBmn5LiRhIQVIlSpJvrygIpbu7SQ03rBacH GqNnIh1h44mG2KhFqXI3fw/SZdR4TEOwOzUaLnMrDdHopd/NMI1xoXScB44Mn/pb5aj9 PveGnh2yos6s1eZcWwpjb3mgiDDpADvT4zPYcjufkZFn2UPm5CV0Yhau5sgFH38tC4EY sCyg== X-Gm-Message-State: AOAM533ATu97/eBIbdlgkK09BcDjBdI3eJ7v8xvlzVLrPh787Mu5d6Hd zgJbH8zD5+0GAfzz9mZH/k3otA== X-Google-Smtp-Source: ABdhPJypEa53OzaHDX/+LCTq6rRzpTOD+oW/vOD+O8phED5GyB/dsYhfp3BKrZbR5mOjmBP6f20jsg== X-Received: by 2002:a1c:4d12:: with SMTP id o18mr4787212wmh.177.1599571777534; Tue, 08 Sep 2020 06:29:37 -0700 (PDT) Received: from dell ([91.110.221.179]) by smtp.gmail.com with ESMTPSA id t16sm34490237wrm.57.2020.09.08.06.29.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Sep 2020 06:29:36 -0700 (PDT) Date: Tue, 8 Sep 2020 14:29:34 +0100 From: Lee Jones To: Jonathan =?iso-8859-1?Q?Neusch=E4fer?= Subject: Re: [PATCH v2 03/10] mfd: Add base driver for Netronix embedded controller Message-ID: <20200908132934.GT4400@dell> References: <20200905133230.1014581-1-j.neuschaefer@gmx.net> <20200905133230.1014581-4-j.neuschaefer@gmx.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200905133230.1014581-4-j.neuschaefer@gmx.net> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200908_092939_110248_45FFAA70 X-CRM114-Status: GOOD ( 49.11 ) 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 , devicetree@vger.kernel.org, Linus Walleij , Thierry Reding , Sam Ravnborg , linux-rtc@vger.kernel.org, Arnd Bergmann , Mauro Carvalho Chehab , Fabio Estevam , Daniel Palmer , Andreas Kemnade , NXP Linux Team , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , linux-pwm@vger.kernel.org, Stephan Gerhold , allen , Sascha Hauer , Lubomir Rintel , Mark Brown , linux-arm-kernel@lists.infradead.org, Alessandro Zummo , linux-kernel@vger.kernel.org, Rob Herring , 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 T24gU2F0LCAwNSBTZXAgMjAyMCwgSm9uYXRoYW4gTmV1c2Now6RmZXIgd3JvdGU6Cgo+IFRoZSBO ZXRyb25peCBlbWJlZGRlZCBjb250cm9sbGVyIGlzIGEgbWljcm9jb250cm9sbGVyIGZvdW5kIGlu IHNvbWUKPiBlLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBieSB0aGUgT0RNIE5ldHJvbml4LCBJbmMu IEl0IGNvbnRhaW5zIFJUQywKPiBiYXR0ZXJ5IG1vbml0b3JpbmcsIHN5c3RlbSBwb3dlciBtYW5h Z2VtZW50LCBhbmQgUFdNIGZ1bmN0aW9uYWxpdHkuCj4gCj4gVGhpcyBkcml2ZXIgaW1wbGVtZW50 cyByZWdpc3RlciBhY2Nlc3MgYW5kIHZlcnNpb24gZGV0ZWN0aW9uLgo+IAo+IFRoaXJkLXBhcnR5 IGhhcmR3YXJlIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0Ogo+IAo+ICAgaHR0cHM6Ly9n aXRodWIuY29tL25ldXNjaGFlZmVyL2xpbnV4L3dpa2kvTmV0cm9uaXgtTVNQNDMwLWVtYmVkZGVk LWNvbnRyb2xsZXIKPiAKPiBUaGUgRUMgc3VwcG9ydHMgaW50ZXJydXB0cywgYnV0IHRoZSBkcml2 ZXIgZG9lc24ndCBtYWtlIHVzZSBvZiB0aGVtIHNvCj4gZmFyLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IEpvbmF0aGFuIE5ldXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+Cj4gLS0tCj4gCj4g djI6Cj4gLSBBZGQgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZGV2aWNlIHRvIHRoZSBwYXRjaCB0ZXh0 Cj4gLSBVbmlmeSBzcGVsbGluZyBhcyAnTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlcicuCj4g ICAnTmV0cm9uaXgnIGlzIHRoZSBwcm9wZXIgbmFtZSBvZiB0aGUgbWFudWZhY3R1cmVyLCBidXQg J2VtYmVkZGVkIGNvbnRyb2xsZXInCj4gICBpcyBqdXN0IGEgbGFiZWwgdGhhdCBJIGhhdmUgYXNz aWduZWQgdG8gdGhlIGRldmljZS4KPiAtIFN3aXRjaCB0byByZWdtYXAsIGF2b2lkIHJlZ21hcCB1 c2UgaW4gcG93ZXJvZmYgYW5kIHJlYm9vdCBoYW5kbGVycy4KPiAgIEluc3BpcmVkIGJ5IGNmODRk YzBiYjQwZjQgKCJtZmQ6IHJuNXQ2MTg6IE1ha2UgcmVzdGFydCBoYW5kbGVyIGF0b21pYyBzYWZl IikKPiAtIFVzZSBhIGxpc3Qgb2Yga25vd24td29ya2luZyBmaXJtd2FyZSB2ZXJzaW9ucyBpbnN0 ZWFkIG9mIGNoZWNraW5nIGZvciBhCj4gICBrbm93bi1pbmNvbXBhdGlibGUgdmVyc2lvbgo+IC0g UHJlZml4IHJlZ2lzdGVycyB3aXRoIE5UWEVDX1JFR18KPiAtIERlZmluZSByZWdpc3RlciB2YWx1 ZXMgYXMgY29uc3RhbnRzCj4gLSBWYXJpb3VzIHN0eWxlIGNsZWFudXBzIGFzIHN1Z2dlc3RlZCBi eSBMZWUgSm9uZXMKPiAtIERvbid0IGFsaWduID0gc2lnbnMgaW4gc3RydWN0IGluaXRpYWxpemVy cyBbVXdlIEtsZWluZS1Lw7ZuaWddCj4gLSBEb24ndCB1c2UgZGV2X2RiZyBmb3IgYW4gZXJyb3Ig bWVzc2FnZQo+IC0gRXhwbGFpbiBzbGVlcCBpbiBwb3dlcm9mZiBoYW5kbGVyCj4gLSBSZW1vdmUg KHN0cnVjdCBudHhlYykuY2xpZW50Cj4gLSBTd2l0Y2ggdG8gLnByb2JlX25ldyBpbiBpMmMgZHJp dmVyCj4gLSBBZGQgLnJlbW92ZSBjYWxsYmFjawo+IC0gTWFrZSBDT05GSUdfTUZEX05UWEVDIGEg dHJpc3RhdGUgb3B0aW9uCj4gLS0tCj4gIGRyaXZlcnMvbWZkL0tjb25maWcgICAgICAgfCAgIDcg KysKPiAgZHJpdmVycy9tZmQvTWFrZWZpbGUgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvbWZkL250 eGVjLmMgICAgICAgfCAyMTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgaW5jbHVkZS9saW51eC9tZmQvbnR4ZWMuaCB8ICAyNCArKysrKwo+ICA0IGZpbGVzIGNoYW5n ZWQsIDI0OSBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21mZC9u dHhlYy5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L21mZC9udHhlYy5oCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL0tjb25maWcgYi9kcml2ZXJzL21mZC9LY29uZmln Cj4gaW5kZXggMzNkZjA4MzdhYjQxNS4uYmFiOTk5MDgxZjMyZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL21mZC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+IEBAIC05NzgsNiAr OTc4LDEzIEBAIGNvbmZpZyBNRkRfVklQRVJCT0FSRAo+ICAJICBZb3UgbmVlZCB0byBzZWxlY3Qg dGhlIG1mZCBjZWxsIGRyaXZlcnMgc2VwYXJhdGVseS4KPiAgCSAgVGhlIGRyaXZlcnMgZG8gbm90 IHN1cHBvcnQgYWxsIGZlYXR1cmVzIHRoZSBib2FyZCBleHBvc2VzLgo+IAo+ICtjb25maWcgTUZE X05UWEVDCj4gKwl0cmlzdGF0ZSAiTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciIKCk5pdDog IkVtYmVkZGVkIENvbnRyb2xsZXIgKEVDKSIKCj4gKwlkZXBlbmRzIG9uIEkyQyAmJiBPRgoKCWRl cGVuZHMgb24gKEkyQyAmJiBPRikgfHwgQ09NUElMRV9URVNUCgo+ICsJaGVscAo+ICsJICBTYXkg eWVzIGhlcmUgaWYgeW91IHdhbnQgdG8gc3VwcG9ydCB0aGUgZW1iZWRkZWQgY29udHJvbGxlciBm b3VuZCBpbgo+ICsJICBjZXJ0YWluIGUtYm9vayByZWFkZXJzIGRlc2lnbmVkIGJ5IHRoZSBPRE0g TmV0cm9uaXguCj4gKwo+ICBjb25maWcgTUZEX1JFVFUKPiAgCXRyaXN0YXRlICJOb2tpYSBSZXR1 IGFuZCBUYWh2byBtdWx0aS1mdW5jdGlvbiBkZXZpY2UiCj4gIAlzZWxlY3QgTUZEX0NPUkUKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvTWFrZWZpbGUgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQo+ IGluZGV4IGE2MGU1ZjgzNTI4M2UuLjIzNmE4YWNkOTE3YTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9tZmQvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQo+IEBAIC0yMTcsNiAr MjE3LDcgQEAgb2JqLSQoQ09ORklHX01GRF9JTlRFTF9NU0lDKQkrPSBpbnRlbF9tc2ljLm8KPiAg b2JqLSQoQ09ORklHX01GRF9JTlRFTF9QTUNfQlhUKQkrPSBpbnRlbF9wbWNfYnh0Lm8KPiAgb2Jq LSQoQ09ORklHX01GRF9QQUxNQVMpCSs9IHBhbG1hcy5vCj4gIG9iai0kKENPTkZJR19NRkRfVklQ RVJCT0FSRCkgICAgKz0gdmlwZXJib2FyZC5vCj4gK29iai0kKENPTkZJR19NRkRfTlRYRUMpCQkr PSBudHhlYy5vCj4gIG9iai0kKENPTkZJR19NRkRfUkM1VDU4MykJKz0gcmM1dDU4My5vIHJjNXQ1 ODMtaXJxLm8KPiAgb2JqLSQoQ09ORklHX01GRF9SSzgwOCkJCSs9IHJrODA4Lm8KPiAgb2JqLSQo Q09ORklHX01GRF9STjVUNjE4KQkrPSBybjV0NjE4Lm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZmQvbnR4ZWMuYyBiL2RyaXZlcnMvbWZkL250eGVjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAwMDAwMDAuLjQ5Y2M0ZmEzNWI5ZmUKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9tZmQvbnR4ZWMuYwo+IEBAIC0wLDAgKzEsMjE3IEBACj4gKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKCldoeSAyIG9ubHk/Cgo+ICsvKgo+ICsgKiBU aGUgTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciBpcyBhIG1pY3JvY29udHJvbGxlciBmb3Vu ZCBpbiBzb21lCj4gKyAqIGUtYm9vayByZWFkZXJzIGRlc2lnbmVkIGJ5IHRoZSBPRE0gTmV0cm9u aXgsIEluYy4gSXQgY29udGFpbnMgUlRDLAo+ICsgKiBiYXR0ZXJ5IG1vbml0b3JpbmcsIHN5c3Rl bSBwb3dlciBtYW5hZ2VtZW50LCBhbmQgUFdNIGZ1bmN0aW9uYWxpdHkuCj4gKyAqCj4gKyAqIFRo aXMgZHJpdmVyIGltcGxlbWVudHMgcmVnaXN0ZXIgYWNjZXNzLCB2ZXJzaW9uIGRldGVjdGlvbiwg YW5kIHN5c3RlbQo+ICsgKiBwb3dlci1vZmYvcmVzZXQuCj4gKyAqCj4gKyAqIENvcHlyaWdodCAy MDIwIEpvbmF0aGFuIE5ldXNjaMOkZmVyCgpFbWFpbD8KCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUg PGFzbS91bmFsaWduZWQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gKyNpbmNsdWRl IDxsaW51eC9lcnJuby5oPgo+ICsjaW5jbHVkZSA8bGludXgvaTJjLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9tZmQvbnR4ZWMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5jbHVk ZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BtLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9yZWJvb3QuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgo+ICsjaW5j bHVkZSA8bGludXgvdHlwZXMuaD4KPiArCj4gKyNkZWZpbmUgTlRYRUNfUkVHX1ZFUlNJT04JMHgw MAo+ICsjZGVmaW5lIE5UWEVDX1JFR19QT1dFUk9GRgkweDUwCj4gKyNkZWZpbmUgTlRYRUNfUkVH X1BPV0VSS0VFUAkweDcwCj4gKyNkZWZpbmUgTlRYRUNfUkVHX1JFU0VUCQkweDkwCj4gKwo+ICsj ZGVmaW5lIE5UWEVDX1BPV0VST0ZGX1ZBTFVFCTB4MDEwMAo+ICsjZGVmaW5lIE5UWEVDX1BPV0VS S0VFUF9WQUxVRQkweDA4MDAKPiArI2RlZmluZSBOVFhFQ19SRVNFVF9WQUxVRQkweGZmMDAKPiAr Cj4gK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCAqcG93ZXJvZmZfcmVzdGFydF9jbGllbnQ7Cj4g Kwo+ICtzdGF0aWMgdm9pZCBudHhlY19wb3dlcm9mZih2b2lkKQo+ICt7Cj4gKwlpbnQgcmVzOwo+ ICsKClJlbW92ZSB0aGlzIGxpbmUgcGxlYXNlLgoKPiArCXU4IGJ1ZltdID0gewo+ICsJCU5UWEVD X1JFR19QT1dFUk9GRiwKPiArCQkoTlRYRUNfUE9XRVJPRkZfVkFMVUUgPj4gOCkgJiAweGZmLAo+ ICsJCU5UWEVDX1BPV0VST0ZGX1ZBTFVFICYgMHhmZiwKPiArCX07Cj4gKwoKQW5kIHRoaXMgb25l LgoKPiArCXN0cnVjdCBpMmNfbXNnIG1zZ3NbXSA9IHsKPiArCQl7Cj4gKwkJCS5hZGRyID0gcG93 ZXJvZmZfcmVzdGFydF9jbGllbnQtPmFkZHIsCj4gKwkJCS5mbGFncyA9IDAsCj4gKwkJCS5sZW4g PSBzaXplb2YoYnVmKSwKPiArCQkJLmJ1ZiA9IGJ1Zgo+ICsJCX0KPiArCX07Cj4gKwo+ICsJcmVz ID0gaTJjX3RyYW5zZmVyKHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50LT5hZGFwdGVyLCBtc2dzLCBB UlJBWV9TSVpFKG1zZ3MpKTsKPiArCgpBbmQgdGhpcyBvbmUuCgo+ICsJaWYgKHJlcyA8IDApCj4g KwkJZGV2X2FsZXJ0KCZwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+ZGV2LCAiRmFpbGVkIHRvIHBv d2VyIG9mZiAoZXJyID0gJWQpXG4iLCByZXMpOwoKVGhpcyBsb29rcyB3YXkgb3ZlciA4MCBjaGFy cy4KCkRpZCB5b3UgcnVuIGNoZWNrcGF0Y2gucGw/Cgo+ICsJLyoKPiArCSAqIFRoZSB0aW1lIGZy b20gdGhlIHJlZ2lzdGVyIHdyaXRlIHVudGlsIHRoZSBob3N0IENQVSBpcyBwb3dlcmVkIG9mZgo+ ICsJICogaGFzIGJlZW4gb2JzZXJ2ZWQgdG8gYmUgYWJvdXQgMi41IHRvIDMgc2Vjb25kcy4gU2xl ZXAgbG9uZyBlbm91Z2ggdG8KPiArCSAqIHNhZmVseSBhdm9pZCByZXR1cm5pbmcgZnJvbSB0aGUg cG93ZXJvZmYgaGFuZGxlci4KPiArCSAqLwo+ICsJbXNsZWVwKDUwMDApOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IG50eGVjX3Jlc3RhcnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKPiArCQkJ IHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlpbnQgcmVzOwo+ICsK PiArCS8qCj4gKwkgKiBOT1RFOiBUaGUgbG93ZXIgaGFsZiBvZiB0aGUgcmVzZXQgdmFsdWUgaXMg bm90IHNlbnQsIGJlY2F1c2Ugc2VuZGluZwo+ICsJICogaXQgY2F1c2VzIGFuIGVycm9yCj4gKwkg Ki8KPiArCXU4IGJ1ZltdID0gewo+ICsJCU5UWEVDX1JFR19SRVNFVCwKPiArCQkoTlRYRUNfUkVT RVRfVkFMVUUgPj4gOCkgJiAweGZmLAo+ICsJfTsKPiArCj4gKwlzdHJ1Y3QgaTJjX21zZyBtc2dz W10gPSB7Cj4gKwkJewo+ICsJCQkuYWRkciA9IHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50LT5hZGRy LAo+ICsJCQkuZmxhZ3MgPSAwLAo+ICsJCQkubGVuID0gc2l6ZW9mKGJ1ZiksCj4gKwkJCS5idWYg PSBidWYKPiArCQl9Cj4gKwl9Owo+ICsKPiArCXJlcyA9IGkyY190cmFuc2Zlcihwb3dlcm9mZl9y ZXN0YXJ0X2NsaWVudC0+YWRhcHRlciwgbXNncywgQVJSQVlfU0laRShtc2dzKSk7Cj4gKwo+ICsJ aWYgKHJlcyA8IDApCj4gKwkJZGV2X2FsZXJ0KCZwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudC0+ZGV2 LCAiRmFpbGVkIHRvIHJlc3RhcnQgKGVyciA9ICVkKVxuIiwgcmVzKTsKPiArCj4gKwlyZXR1cm4g Tk9USUZZX0RPTkU7Cj4gK30KCkFsbCBhcyBhYm92ZSBmb3IgdGhpcyBmdW5jdGlvbi4KCj4gK3N0 YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbnR4ZWNfcmVzdGFydF9oYW5kbGVyID0gewo+ICsJ Lm5vdGlmaWVyX2NhbGwgPSBudHhlY19yZXN0YXJ0LAo+ICsJLnByaW9yaXR5ID0gMTI4Cj4gK307 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgcmVnbWFwX2NvbmZpZyA9 IHsKPiArCS5uYW1lID0gIm50eGVjIiwKPiArCS5yZWdfYml0cyA9IDgsCj4gKwkudmFsX2JpdHMg PSAxNiwKPiArCS5jYWNoZV90eXBlID0gUkVHQ0FDSEVfTk9ORSwKPiArCS52YWxfZm9ybWF0X2Vu ZGlhbiA9IFJFR01BUF9FTkRJQU5fQklHLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBudHhlY19pbmZvIG50eGVjX2tub3duX3ZlcnNpb25zW10gPSB7Cj4gKwl7IDB4ZDcyNiB9LCAv KiBmb3VuZCBpbiBLb2JvIEF1cmEgKi8KPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg bnR4ZWNfaW5mbyAqbnR4ZWNfbG9va3VwX2luZm8odTE2IHZlcnNpb24pCj4gK3sKPiArCWludCBp Owo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG50eGVjX2tub3duX3ZlcnNpb25z KTsgaSsrKSB7Cj4gKwkJY29uc3Qgc3RydWN0IG50eGVjX2luZm8gKmluZm8gPSAmbnR4ZWNfa25v d25fdmVyc2lvbnNbaV07Cj4gKwo+ICsJCWlmIChpbmZvLT52ZXJzaW9uID09IHZlcnNpb24pCj4g KwkJCXJldHVybiBpbmZvOwo+ICsJfQo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9CgpXYWl0LCB3 aGF0PyAgVGhpcyBpcyBvdmVyLWVuZ2luZWVyZWQuCgpKdXN0IGhhdmUgYSBsb29rLXVwIHRhYmxl IChzd2l0Y2gpIG9mIHN1cHBvcnRlZCBkZXZpY2VzLgoKPiArc3RhdGljIGludCBudHhlY19wcm9i ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICt7Cj4gKwlzdHJ1Y3QgbnR4ZWMgKmVjOwo+ ICsJdW5zaWduZWQgaW50IHZlcnNpb247Cj4gKwlpbnQgcmVzOwo+ICsKPiArCWVjID0gZGV2bV9r bWFsbG9jKCZjbGllbnQtPmRldiwgc2l6ZW9mKCplYyksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFl YykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwllYy0+ZGV2ID0gJmNsaWVudC0+ZGV2Owo+ ICsKPiArCWVjLT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsICZyZWdtYXBf Y29uZmlnKTsKPiArCWlmIChJU19FUlIoZWMtPnJlZ21hcCkpIHsKPiArCQlkZXZfZXJyKGVjLT5k ZXYsICJGYWlsZWQgdG8gc2V0IHVwIHJlZ21hcCBmb3IgZGV2aWNlXG4iKTsKPiArCQlyZXR1cm4g cmVzOwo+ICsJfQo+ICsKPiArCS8qIERldGVybWluZSB0aGUgZmlybXdhcmUgdmVyc2lvbiAqLwo+ ICsJcmVzID0gcmVnbWFwX3JlYWQoZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1ZFUlNJT04sICZ2ZXJz aW9uKTsKPiArCWlmIChyZXMgPCAwKSB7Cj4gKwkJZGV2X2VycihlYy0+ZGV2LCAiRmFpbGVkIHRv IHJlYWQgZmlybXdhcmUgdmVyc2lvbiBudW1iZXJcbiIpOwo+ICsJCXJldHVybiByZXM7Cj4gKwl9 Cj4gKwlkZXZfaW5mbyhlYy0+ZGV2LAo+ICsJCSAiTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxl ciB2ZXJzaW9uICUwNHggZGV0ZWN0ZWQuXG4iLAo+ICsJCSB2ZXJzaW9uKTsKPiArCj4gKwkvKiBC YWlsIG91dCBpZiB3ZSBlbmNvdW50ZXIgYW4gdW5rbm93biBmaXJtd2FyZSB2ZXJzaW9uICovCj4g KwllYy0+aW5mbyA9IG50eGVjX2xvb2t1cF9pbmZvKHZlcnNpb24pOwo+ICsJaWYgKCFlYy0+aW5m bykKPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7CgojZGVmaW5lIEVPUE5PVFNVUFAgICAgICA5NSAg ICAgIC8qIE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkIG9uIHRyYW5zcG9ydCBlbmRwb2ludCAqLwoK SSB0aGluayB5b3Ugd2FudDoKCiNkZWZpbmUgRU5PREVWICAgICAgICAgIDE5ICAgICAgLyogTm8g c3VjaCBkZXZpY2UgKi8KCj4gKwlpZiAob2ZfZGV2aWNlX2lzX3N5c3RlbV9wb3dlcl9jb250cm9s bGVyKGVjLT5kZXYtPm9mX25vZGUpKSB7Cj4gKwkJLyoKPiArCQkgKiBTZXQgdGhlICdwb3dlcmtl ZXAnIGJpdC4gVGhpcyBpcyBuZWNlc3Nhcnkgb24gc29tZSBib2FyZHMKPiArCQkgKiBpbiBvcmRl ciB0byBrZWVwIHRoZSBzeXN0ZW0gcnVubmluZy4KPiArCQkgKi8KPiArCQlyZXMgPSByZWdtYXBf d3JpdGUoZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1BPV0VSS0VFUCwKPiArCQkJCSAgIE5UWEVDX1BP V0VSS0VFUF9WQUxVRSk7Cj4gKwkJaWYgKHJlcyA8IDApCj4gKwkJCXJldHVybiByZXM7Cj4gKwo+ ICsJCS8qIEluc3RhbGwgcG93ZXJvZmYgaGFuZGxlciAqLwoKRG9uJ3QgdGhpbmsgdGhpcyBjb21t ZW50IGlzIHJlcXVpcmVkLgoKPiArCQlXQVJOX09OKHBvd2Vyb2ZmX3Jlc3RhcnRfY2xpZW50KTsK PiArCQlwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudCA9IGNsaWVudDsKPiArCQlpZiAocG1fcG93ZXJf b2ZmKQo+ICsJCQlkZXZfZXJyKGVjLT5kZXYsICJwbV9wb3dlcl9vZmYgYWxyZWFkeSBhc3NpZ25l ZFxuIik7Cj4gKwkJZWxzZQo+ICsJCQlwbV9wb3dlcl9vZmYgPSBudHhlY19wb3dlcm9mZjsKPiAr Cj4gKwkJLyogSW5zdGFsbCBib2FyZCByZXNldCBoYW5kbGVyICovCgpOb3IgdGhpcy4KCj4gKwkJ cmVzID0gcmVnaXN0ZXJfcmVzdGFydF9oYW5kbGVyKCZudHhlY19yZXN0YXJ0X2hhbmRsZXIpOwo+ ICsJCWlmIChyZXMpCj4gKwkJCWRldl9lcnIoZWMtPmRldiwKPiArCQkJCSJGYWlsZWQgdG8gcmVn aXN0ZXIgcmVzdGFydCBoYW5kbGVyOiAlZFxuIiwgcmVzKTsKPiArCX0KPiArCj4gKwlpMmNfc2V0 X2NsaWVudGRhdGEoY2xpZW50LCBlYyk7Cj4gKwo+ICsJcmV0dXJuIGRldm1fb2ZfcGxhdGZvcm1f cG9wdWxhdGUoZWMtPmRldik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbnR4ZWNfcmVtb3ZlKHN0 cnVjdCBpMmNfY2xpZW50ICppMmMpCgpXaHkgZG8geW91IGNhbGwgaXQgJ2NsaWVudCcgaW4gLnBy b2JlLCBidXQgJ2kyYycgaW4gLnJlbW92ZT8KCj4gK3sKPiArCWlmIChpMmMgPT0gcG93ZXJvZmZf cmVzdGFydF9jbGllbnQpIHsKPiArCQlwb3dlcm9mZl9yZXN0YXJ0X2NsaWVudCA9IE5VTEw7Cj4g KwkJcG1fcG93ZXJfb2ZmID0gTlVMTDsKPiArCQl1bnJlZ2lzdGVyX3Jlc3RhcnRfaGFuZGxlcigm bnR4ZWNfcmVzdGFydF9oYW5kbGVyKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2ZfbnR4ZWNfbWF0Y2hfdGFibGVb XSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAibmV0cm9uaXgsbnR4ZWMiLCB9LAo+ICsJe30KPiAr fTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBudHhlY19kcml2ZXIgPSB7Cj4gKwku ZHJpdmVyID0gewo+ICsJCS5uYW1lID0gIm50eGVjIiwKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBv Zl9udHhlY19tYXRjaF90YWJsZSwKPiArCX0sCj4gKwkucHJvYmVfbmV3ID0gbnR4ZWNfcHJvYmUs Cj4gKwkucmVtb3ZlID0gbnR4ZWNfcmVtb3ZlLAo+ICt9Owo+ICttb2R1bGVfaTJjX2RyaXZlcihu dHhlY19kcml2ZXIpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9udHhlYy5oIGIv aW5jbHVkZS9saW51eC9tZmQvbnR4ZWMuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAwMDAwMC4uNjVlMzg5YWY3OWRhNgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNs dWRlL2xpbnV4L21mZC9udHhlYy5oCj4gQEAgLTAsMCArMSwyNCBAQAo+ICsvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCj4gKy8qCj4gKyAqIENvcHlyaWdodCAyMDIw IEpvbmF0aGFuIE5ldXNjaMOkZmVyCj4gKyAqCj4gKyAqIFJlZ2lzdGVyIGFjY2VzcyBhbmQgdmVy c2lvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIE5ldHJvbml4IGVtYmVkZGVkCj4gKyAqIGNvbnRyb2xs ZXIuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBOVFhFQ19ICj4gKyNkZWZpbmUgTlRYRUNfSAo+ICsK PiArI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gKwo+ICtzdHJ1Y3QgbnR4ZWNfaW5mbyB7Cj4g Kwl1MTYgdmVyc2lvbjsKPiArfTsKPiArCj4gK3N0cnVjdCBudHhlYyB7Cj4gKwlzdHJ1Y3QgZGV2 aWNlICpkZXY7Cj4gKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7Cgo+ICsJY29uc3Qgc3RydWN0IG50 eGVjX2luZm8gKmluZm87CgpXaGF0IGlzIHRoaXMgdXNlZCBmb3I/Cgo+ICt9Owo+ICsKPiArI2Vu ZGlmCgotLSAKTGVlIEpvbmVzIFvmnY7nkLzmlq9dClNlbmlvciBUZWNobmljYWwgTGVhZCAtIERl dmVsb3BlciBTZXJ2aWNlcwpMaW5hcm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3Ig QXJtIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sgfCBUd2l0dGVyIHwgQmxvZwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=