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=-13.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,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 25EDBC433DB for ; Sat, 20 Mar 2021 18:22:30 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 8D2ED61924 for ; Sat, 20 Mar 2021 18:22:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D2ED61924 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=PyYYfCU5eXhBjyVM/RPmgp8M1VxO0JL1ztq5NRWEOyo=; b=gq3NgVZU3936wGiQuNh/ZJoky Z7i4y/hBtsRC4YRzuv7v7gjgVNJMlpNjnA5wuFLu5OXsDeJXRhmEzs3ObuuMz/utRF6yFmiKV/OUF 84q8UEcvCfT49I7nPC9aaJOZQUWGFHebh6Ck0KbZQ/kHAtDZ+s61VbJmjhp8jBkpQ5X3ADhZoZbY4 yTzk1Wv0bVVutmAzTqirKF23WXvt+tL5dqStYO3sjvZ24qlLgnuO38qrviOiLR0sLOWPPu2Mg7+dr 6dOqy6DwExLF/3ZPJO+WK4Frlqum4/yplkG27/CSPp0ShM2Wt37fSsBxSBoy9X7VgNiE4+6RckVL+ 7pPtVTWtQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lNgDo-0097T7-Rf; Sat, 20 Mar 2021 18:21:13 +0000 Received: from mout.gmx.net ([212.227.17.20]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lNgDh-0097Qm-U4 for linux-arm-kernel@lists.infradead.org; Sat, 20 Mar 2021 18:21:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1616264451; bh=fYnk+0aVGf2OivWiHr/yd+MuJt17pR5QiE8V9sY/L84=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=kJCXeSYIQflE8F2nnFtbcqsTbmW8dAbS6c8rwYSxFnUWJ/pPJ5UCXSUmGH/+AEARM 4Y1WVMKdikrG6WusBpWrZ1QlUjeUIg32l/GMtRybsFuxpOsXvKNhWQZa4z58SjgmEV Qym+BEF4HXiun3UoEpB0pLAzPsnKRYcI7cgCyVBc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([37.201.215.134]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MFsYx-1lSqEO19fr-00HP46; Sat, 20 Mar 2021 19:20:51 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: openbmc@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Avi Fishman , Tomer Maimon , Tali Perry , Patrick Venture , Nancy Yuen , Benjamin Fair , Russell King , Thomas Gleixner , Marc Zyngier Subject: [PATCH 08/14] irqchip: Add driver for WPCM450 interrupt controller Date: Sat, 20 Mar 2021 19:16:04 +0100 Message-Id: <20210320181610.680870-9-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210320181610.680870-1-j.neuschaefer@gmx.net> References: <20210320181610.680870-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 X-Provags-ID: V03:K1:6DpsB2llwLLicXhl87VXK6OBN2xTwr0hoEzpTf2akKkuV8Vf27l WLnsrdeW8anF93k/Yw+X6C4k6HobYfLWpdd5LlG54WUiXztIfmcu4m134EUagVSJeJgGWNr 41XFcYrB6dNsryDd+/hh0qJ2FWyyYnLPjyaDb0wSJbZk6YC9EDjbSGXZLP0GXEDudksAeBX lJb16YQsPCk5v/IParNRg== X-UI-Out-Filterresults: notjunk:1;V03:K0:TwTQpQ5Sxhw=:HH/NolGr/WeAqbaOI0kLl5 GamHGrE3W/u9huj8e6zBVAWXwMaUDSHf/Wk1aO/AXU3ezSpsyj3dQfxNVMl29uGu3kMosQC+6 XBg0pqIlSxVdbZngJyjD0VpU0PPNhgEAxxZEuyVnq3nxB/RnLUFrml5NxH3vtgrMMmz2G1SJJ 6gvAU7Ehh5Dg++xY2pMJ01ZzKv7EKlM4rddGFX7wV2DWgZf2gRTwf1KcMj7twWNXc+LzxA7VG AvYZERL9PIzPY/is6aA2zX1wZrHmxl+EGuNnC/heISlqbE+eCQC3dGGZoQymggb8tt0Fmj122 PQbJu+HmaTPTMP2KneNMSYTWNxWwggCjQroW07Q1smmUeCTIKZRTuDwr9x70O3BfnEMOVU+UX a7SD2N09dBz31i1HZsdKicON5YCZQkZ0i/c+gTf0FpLAeK3g6j4vqVWRInKoHq6Ehi5O4CW91 iyqWuVNer+cE6folFdbAFceWPPA0NlpDSpLEy85bDmym77+mKR3bz1kn6UzuloeHr6oB6gPem iHeAK/1hcNck6PEREd9pZ+ZvaDidq8170CE+XsjyzcwTZksfIBnVFr+0wljXM5JbXWkqdOaC2 vsJlvUF8gMONvfzEVHt0+vJw1f4iZxZieNAKgAwVxqaJpQEyx6MHpm5uoUsrjUxhBNBCWjYCm f91e7JctWh5ZNcDKKnnfBKxOFaAKDSWCagRew3nZPI5An0dzXTpbc5h/HVeuFfJ1pNU/1FO/0 pc2tp4HFLZaHORcrMgK5rq4lT/N1GfCCXHjEVWGVYafSFsOLKeXQeuNJZCxYc5FIzEbjmTrvQ XXvT9h1+6wcnszy3c/2ED7iSYdZejMr0kULgTBBm/0rpJAP7bR91B8XlKSiH9UVrYhArsZupr AM8hEbsqJdzX1p0v3kErcIjS9Ge6Wso8jo+DMeawkcTDi6plaBwz7KQCRRyN8liVaHh4FZ/7V TrJW7VohNRGoqCfdx/UK97pJiJN4mrEtjFLrkIxD8iXti8WWXC8jutAZfggZK/REgIIHXccKp VsHYQ+DGo5TFq73k+1p85i33H3n1ttvy8tlwubyOd16k/mkWCtCx90EF3sItM35jWfUc/VV7K HQut983toZ9h7lX1QSV+CPCSgQikfZnKVt1+BfkdBcv3G8v+3CPKI3o4eyzvPvbyJiawbN6NP V1edc3n2ubr7g1g6JcfK8Rk64uTVy46owWlyzg1kwJLv5Ckfm5dd6WHzoji/C1mMekZqipXRV bZElo4NtL3C7SHdW0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210320_182106_205989_7AE66D97 X-CRM114-Status: GOOD ( 24.58 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 VGhlIFdQQ000NTAgQUlDICgiQWR2YW5jZWQgSW50ZXJydXB0IENvbnRyb2xsZXIiKSBpcyB0aGUg aW50ZXJydXB0CmNvbnRyb2xsZXIgZm91bmQgaW4gdGhlIE51dm90b24gV1BDTTQ1MCBTb0MgYW5k IG90aGVyIFdpbmJvbmQvTnV2b3RvbgpTb0NzLgoKVGhlIGxpc3Qgb2YgcmVnaXN0ZXJzIGlmIGJh c2VkIG9uIHRoZSBBTUkgdmVuZG9yIGtlcm5lbCBhbmQgdGhlCk51dm90b24gVzkwTjc0NSBkYXRh c2hlZXQuCgpBbHRob3VnaCB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgb3RoZXIgaW50ZXJydXB0IG1v ZGVzLCB0aGUgZHJpdmVyIG9ubHkKc3VwcG9ydHMgaGlnaC1sZXZlbCBpbnRlcnJ1cHRzIGF0IHRo ZSBtb21lbnQsIGJlY2F1c2Ugb3RoZXIgbW9kZXMgY291bGQKbm90IGJlIHRlc3RlZCBzbyBmYXIu CgpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBOZXVzY2jDpGZlciA8ai5uZXVzY2hhZWZlckBnbXgu bmV0PgotLS0KIGFyY2gvYXJtL21hY2gtbnBjbS9LY29uZmlnICAgICAgICB8ICAgMSArCiBkcml2 ZXJzL2lycWNoaXAvS2NvbmZpZyAgICAgICAgICAgfCAgIDYgKysKIGRyaXZlcnMvaXJxY2hpcC9N YWtlZmlsZSAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2lycWNoaXAvaXJxLXdwY200NTAtYWlj LmMgfCAxNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQs IDE3MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9pcnFjaGlwL2ly cS13cGNtNDUwLWFpYy5jCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1ucGNtL0tjb25maWcg Yi9hcmNoL2FybS9tYWNoLW5wY20vS2NvbmZpZwppbmRleCA2NThjOGVmYjRjYTE0Li5hNzFjZjFk MTg5YWU1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW5wY20vS2NvbmZpZworKysgYi9hcmNo L2FybS9tYWNoLW5wY20vS2NvbmZpZwpAQCAtMTAsNiArMTAsNyBAQCBjb25maWcgQVJDSF9XUENN NDUwCiAJYm9vbCAiU3VwcG9ydCBmb3IgV1BDTTQ1MCBCTUMgKEhlcm1vbikiCiAJZGVwZW5kcyBv biBBUkNIX01VTFRJX1Y1CiAJc2VsZWN0IENQVV9BUk05MjZUCisJc2VsZWN0IFdQQ000NTBfQUlD CiAJc2VsZWN0IE5QQ003WFhfVElNRVIKIAloZWxwCiAJICBHZW5lcmFsIHN1cHBvcnQgZm9yIFdQ Q000NTAgQk1DIChIZXJtb24pLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pcnFjaGlwL0tjb25maWcg Yi9kcml2ZXJzL2lycWNoaXAvS2NvbmZpZwppbmRleCBlNzRmYTIwNjI0MGExLi5iYWY0ZWZlYzMx YzY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lycWNoaXAvS2NvbmZpZworKysgYi9kcml2ZXJzL2ly cWNoaXAvS2NvbmZpZwpAQCAtNTg2LDQgKzU4NiwxMCBAQCBjb25maWcgTVNUX0lSUQogCWhlbHAK IAkgIFN1cHBvcnQgTVN0YXIgSW50ZXJydXB0IENvbnRyb2xsZXIuCgorY29uZmlnIFdQQ000NTBf QUlDCisJYm9vbCAiTnV2b3RvbiBXUENNNDUwIEFkdmFuY2VkIEludGVycnVwdCBDb250cm9sbGVy IgorCWRlcGVuZHMgb24gQVJDSF9XUENNNDUwIHx8IENPTVBJTEVfVEVTVAorCWhlbHAKKwkgIFN1 cHBvcnQgZm9yIHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlciBpbiB0aGUgTnV2b3RvbiBXUENNNDUw IEJNQyBTb0MuCisKIGVuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXJxY2hpcC9NYWtlZmls ZSBiL2RyaXZlcnMvaXJxY2hpcC9NYWtlZmlsZQppbmRleCBjNTliOTVhMDUzMmM5Li5iZWY1Nzkz N2U3Mjk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lycWNoaXAvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9pcnFjaGlwL01ha2VmaWxlCkBAIC0xMTMsMyArMTEzLDQgQEAgb2JqLSQoQ09ORklHX0xPT05H U09OX1BDSF9NU0kpCQkrPSBpcnEtbG9vbmdzb24tcGNoLW1zaS5vCiBvYmotJChDT05GSUdfTVNU X0lSUSkJCQkrPSBpcnEtbXN0LWludGMubwogb2JqLSQoQ09ORklHX1NMMjhDUExEX0lOVEMpCQkr PSBpcnEtc2wyOGNwbGQubwogb2JqLSQoQ09ORklHX01BQ0hfUkVBTFRFS19SVEwpCQkrPSBpcnEt cmVhbHRlay1ydGwubworb2JqLSQoQ09ORklHX1dQQ000NTBfQUlDKQkJKz0gaXJxLXdwY200NTAt YWljLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXJxY2hpcC9pcnEtd3BjbTQ1MC1haWMuYyBiL2Ry aXZlcnMvaXJxY2hpcC9pcnEtd3BjbTQ1MC1haWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwLi4wZDZkZDhiMWZjODI0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9pcnFjaGlwL2lycS13cGNtNDUwLWFpYy5jCkBAIC0wLDAgKzEsMTYyIEBACisvLyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvLyBDb3B5cmlnaHQgMjAyMSBKb25hdGhh biBOZXVzY2jDpGZlcgorCisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgorI2luY2x1ZGUgPGxp bnV4L2lycWNoaXAuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+CisjaW5jbHVkZSA8 bGludXgvb2ZfaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vZXhjZXB0aW9uLmg+CisKKyNkZWZpbmUg QUlDX1NDUih4KQkoKHgpKjQpCS8qIFNvdXJjZSBjb250cm9sIHJlZ2lzdGVycyAqLworI2RlZmlu ZSBBSUNfR0VOCQkweDg0CisjZGVmaW5lIEFJQ19HUlNSCTB4ODgKKyNkZWZpbmUgQUlDX0lSU1IJ MHgxMDAJLyogSW50ZXJydXB0IHJhdyBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQUlDX0lB U1IJMHgxMDQJLyogSW50ZXJydXB0IGFjdGl2ZSBzdGF0dXMgcmVnaXN0ZXIgKi8KKyNkZWZpbmUg QUlDX0lTUgkJMHgxMDgJLyogSW50ZXJydXB0IHN0YXR1cyByZWdpc3RlciAqLworI2RlZmluZSBB SUNfSVBFUgkweDEwYwkvKiBJbnRlcnJ1cHQgcHJpb3JpdHkgZW5jb2RpbmcgcmVnaXN0ZXIgKi8K KyNkZWZpbmUgQUlDX0lTTlIJMHgxMTAJLyogSW50ZXJydXB0IHNvdXJjZSBudW1iZXIgcmVnaXN0 ZXIgKi8KKyNkZWZpbmUgQUlDX0lNUgkJMHgxMTQJLyogSW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIg Ki8KKyNkZWZpbmUgQUlDX09JU1IJMHgxMTgJLyogT3V0cHV0IGludGVycnVwdCBzdGF0dXMgcmVn aXN0ZXIgKi8KKyNkZWZpbmUgQUlDX01FQ1IJMHgxMjAJLyogTWFzayBlbmFibGUgY29tbWFuZCBy ZWdpc3RlciAqLworI2RlZmluZSBBSUNfTURDUgkweDEyNAkvKiBNYXNrIGRpc2FibGUgY29tbWFu ZCByZWdpc3RlciAqLworI2RlZmluZSBBSUNfU1NDUgkweDEyOAkvKiBTb3VyY2Ugc2V0IGNvbW1h bmQgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQUlDX1NDQ1IJMHgxMmMJLyogU291cmNlIGNsZWFyIGNv bW1hbmQgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQUlDX0VPU0NSCTB4MTMwCS8qIEVuZCBvZiBzZXJ2 aWNlIGNvbW1hbmQgcmVnaXN0ZXIgKi8KKworI2RlZmluZSBBSUNfU0NSX1NSQ1RZUEVfTE9XX0xF VkVMCSgwIDw8IDYpCisjZGVmaW5lIEFJQ19TQ1JfU1JDVFlQRV9ISUdIX0xFVkVMCSgxIDw8IDYp CisjZGVmaW5lIEFJQ19TQ1JfU1JDVFlQRV9ORUdfRURHRQkoMiA8PCA2KQorI2RlZmluZSBBSUNf U0NSX1NSQ1RZUEVfUE9TX0VER0UJKDMgPDwgNikKKyNkZWZpbmUgQUlDX1NDUl9QUklPUklUWSh4 KQkJKHgpCisKKyNkZWZpbmUgSVJRUwkJMzIKKworc3RydWN0IHdwY200NTBfYWljIHsKKwl2b2lk IF9faW9tZW0gKnJlZ3M7CisJc3RydWN0IGlycV9kb21haW4gKmRvbWFpbjsKK307CisKK3N0YXRp YyBzdHJ1Y3Qgd3BjbTQ1MF9haWMgKmFpYzsKKworc3RhdGljIHZvaWQgd3BjbTQ1MF9haWNfaW5p dF9odyh2b2lkKQoreworCWludCBpOworCisJLyogRGlzYWJsZSAobWFzaykgYWxsIGludGVycnVw dHMgKi8KKwl3cml0ZWwoMHhmZmZmZmZmZiwgYWljLT5yZWdzICsgQUlDX01EQ1IpOworCisJLyoK KwkgKiBNYWtlIHN1cmUgdGhlIGludGVycnVwdCBjb250cm9sbGVyIGlzIHJlYWR5IHRvIHNlcnZl IG5ldyBpbnRlcnJ1cHRzLgorCSAqIFJlYWRpbmcgZnJvbSBJUEVSIGluZGljYXRlcyB0aGF0IHRo ZSBuSVJRIHNpZ25hbCBtYXkgYmUgZGVhc3NlcnRlZCwKKwkgKiBhbmQgd3JpdGluZyB0byBFT1ND UiBpbmRpY2F0ZXMgdGhhdCBpbnRlcnJ1cHQgaGFuZGxpbmcgaGFzIGZpbmlzaGVkLgorCSAqLwor CXJlYWRsKGFpYy0+cmVncyArIEFJQ19JUEVSKTsKKwl3cml0ZWwoMCwgYWljLT5yZWdzICsgQUlD X0VPU0NSKTsKKworCS8qIEluaXRpYWxpemUgdHJpZ2dlciBtb2RlIGFuZCBwcmlvcml0eSBvZiBl YWNoIGludGVycnVwdCBzb3VyY2UgKi8KKwlmb3IgKGkgPSAwOyBpIDwgSVJRUzsgaSsrKQorCQl3 cml0ZWwoQUlDX1NDUl9TUkNUWVBFX0hJR0hfTEVWRUwgfCBBSUNfU0NSX1BSSU9SSVRZKDcpLAor CQkgICAgICAgYWljLT5yZWdzICsgQUlDX1NDUihpKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhj ZXB0aW9uX2lycV9lbnRyeSB3cGNtNDUwX2FpY19oYW5kbGVfaXJxKHN0cnVjdCBwdF9yZWdzICpy ZWdzKQoreworCWludCBod2lycTsKKworCS8qIERldGVybWluZSB0aGUgaW50ZXJydXB0IHNvdXJj ZSAqLworCS8qIFJlYWQgSVBFUiB0byBzaWduYWwgdGhhdCBuSVJRIGNhbiBiZSBkZS1hc3NlcnRl ZCAqLworCWh3aXJxID0gcmVhZGwoYWljLT5yZWdzICsgQUlDX0lQRVIpIC8gNDsKKworCWhhbmRs ZV9kb21haW5faXJxKGFpYy0+ZG9tYWluLCBod2lycSwgcmVncyk7Cit9CisKK3N0YXRpYyB2b2lk IHdwY200NTBfYWljX2FjayhzdHJ1Y3QgaXJxX2RhdGEgKmQpCit7CisJLyogU2lnbmFsIGVuZC1v Zi1zZXJ2aWNlICovCisJd3JpdGVsKDAsIGFpYy0+cmVncyArIEFJQ19FT1NDUik7Cit9CisKK3N0 YXRpYyB2b2lkIHdwY200NTBfYWljX21hc2soc3RydWN0IGlycV9kYXRhICpkKQoreworCXVuc2ln bmVkIGludCBtYXNrID0gMVUgPDwgZC0+aHdpcnE7CisKKwkvKiBEaXNhYmxlIChtYXNrKSB0aGUg aW50ZXJydXB0ICovCisJd3JpdGVsKG1hc2ssIGFpYy0+cmVncyArIEFJQ19NRENSKTsKK30KKwor c3RhdGljIHZvaWQgd3BjbTQ1MF9haWNfdW5tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZCkKK3sKKwl1 bnNpZ25lZCBpbnQgbWFzayA9IDFVIDw8IGQtPmh3aXJxOworCisJLyogRW5hYmxlICh1bm1hc2sp IHRoZSBpbnRlcnJ1cHQgKi8KKwl3cml0ZWwobWFzaywgYWljLT5yZWdzICsgQUlDX01FQ1IpOwor fQorCitzdGF0aWMgaW50IHdwY200NTBfYWljX3NldF90eXBlKHN0cnVjdCBpcnFfZGF0YSAqZCwg dW5zaWduZWQgaW50IGZsb3dfdHlwZSkKK3sKKwkvKgorCSAqIFRoZSBoYXJkd2FyZSBzdXBwb3J0 cyBoaWdoL2xvdyBsZXZlbCwgYXMgd2VsbCBhcyByaXNpbmcvZmFsbGluZyBlZGdlCisJICogbW9k ZXMsIGFuZCB0aGUgRFQgYmluZGluZyBhY2NvbW1vZGF0ZXMgZm9yIHRoYXQsIGJ1dCBhcyBsb25n IGFzCisJICogb3RoZXIgbW9kZXMgdGhhbiBoaWdoIGxldmVsIG1vZGUgYXJlIG5vdCB1c2VkIGFu ZCBjYW4ndCBiZSB0ZXN0ZWQsCisJICogdGhleSBhcmUgcmVqZWN0ZWQgaW4gdGhpcyBkcml2ZXIu CisJICovCisJaWYgKChmbG93X3R5cGUgJiBJUlFfVFlQRV9TRU5TRV9NQVNLKSAhPSBJUlFfVFlQ RV9MRVZFTF9ISUdIKSB7CisJCXByX2VycigiSVJRIG1vZGUgJSN4IGlzIG5vdCBzdXBwb3J0ZWRc biIsIGZsb3dfdHlwZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQor CitzdGF0aWMgc3RydWN0IGlycV9jaGlwIHdwY200NTBfYWljX2NoaXAgPSB7CisJLm5hbWUgPSAi d3BjbTQ1MC1haWMiLAorCS5pcnFfYWNrID0gd3BjbTQ1MF9haWNfYWNrLAorCS5pcnFfbWFzayA9 IHdwY200NTBfYWljX21hc2ssCisJLmlycV91bm1hc2sgPSB3cGNtNDUwX2FpY191bm1hc2ssCisJ LmlycV9zZXRfdHlwZSA9IHdwY200NTBfYWljX3NldF90eXBlLAorfTsKKworc3RhdGljIGludCB3 cGNtNDUwX2FpY19tYXAoc3RydWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEsIGly cV9od19udW1iZXJfdCBod2lycSkKK3sKKwlpZiAoaHdpcnEgPiBJUlFTKQorCQlyZXR1cm4gLUVQ RVJNOworCisJaXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgJndwY200NTBfYWljX2NoaXAs IGhhbmRsZV9sZXZlbF9pcnEpOworCWlycV9zZXRfY2hpcF9kYXRhKGlycSwgYWljKTsKKwlpcnFf c2V0X3Byb2JlKGlycSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBp cnFfZG9tYWluX29wcyB3cGNtNDUwX2FpY19vcHMgPSB7CisJLm1hcCA9IHdwY200NTBfYWljX21h cCwKKwkueGxhdGUgPSBpcnFfZG9tYWluX3hsYXRlX3R3b2NlbGwsCit9OworCitzdGF0aWMgaW50 IF9faW5pdCB3cGNtNDUwX2FpY19vZl9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKKwkJ CQkgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhcmVudCkKK3sKKwlpZiAocGFyZW50KQorCQly ZXR1cm4gLUVJTlZBTDsKKworCWFpYyA9IGt6YWxsb2Moc2l6ZW9mKCphaWMpLCBHRlBfS0VSTkVM KTsKKwlpZiAoIWFpYykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlhaWMtPnJlZ3MgPSBvZl9pb21h cChub2RlLCAwKTsKKwlpZiAoIWFpYy0+cmVncykgeworCQlwcl9lcnIoIkZhaWxlZCB0byBtYXAg V1BDTTQ1MCBBSUMgcmVnaXN0ZXJzXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJd3Bj bTQ1MF9haWNfaW5pdF9odygpOworCisJc2V0X2hhbmRsZV9pcnEod3BjbTQ1MF9haWNfaGFuZGxl X2lycSk7CisKKwlhaWMtPmRvbWFpbiA9IGlycV9kb21haW5fYWRkX2xpbmVhcihub2RlLCBJUlFT LCAmd3BjbTQ1MF9haWNfb3BzLCBhaWMpOworCisJcmV0dXJuIDA7Cit9CisKK0lSUUNISVBfREVD TEFSRSh3cGNtNDUwX2FpYywgIm51dm90b24sd3BjbTQ1MC1haWMiLCB3cGNtNDUwX2FpY19vZl9p bml0KTsKLS0KMi4zMC4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=