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 9DF2BC433DB for ; Sat, 16 Jan 2021 20:56:04 +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 4333422C97 for ; Sat, 16 Jan 2021 20:56:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4333422C97 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=YQZVuBgoSfEU1yLMIShk9bGldWUzUgfftVW+CTH15cI=; b=yuQlnDngS2urxI9PQwjeqt9rb 3rpJxn2+4feFi5fgS3ZSwKlnoVLpmrbqobZnHt9Pgq0TfhC/u7OFJwNzUhyjPeXw4sPPT3Ihtvewl sYrT+QlzvUlHolTBTGbY/ZIJXQjvNVzIbTm41KuFtpFfTEjcmGDUsoIgYdb86BIau2gJWFhTcJwkT fBV6KJPUJ+p21eHq0y+gA1udoI2njL6PV2+jo81f5dLKmjsOOK0FmBwRnCh8kk6OQ9acPCZJ8IHrd Arp2NSe+HnuC8L82nERdfsFUkD+/+HIZlMD42igF7qtGwVx7JOFtxuUvYoB1QmpX3HUt6vwW/hLxS 2xiEdwITA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l0san-0004vB-UG; Sat, 16 Jan 2021 20:54:41 +0000 Received: from mout.gmx.net ([212.227.15.19]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l0sag-0004sG-DR for linux-arm-kernel@lists.infradead.org; Sat, 16 Jan 2021 20:54:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1610830430; bh=CNBRA+c+NY/9LumPB+UY4n0iAV9NlGywmp537B5vKd8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=KiJ+6HQi0sh/5TcrGBksGevwJEAa39i2VCGib66pvYjsdlC1QSDp7m2NPRGzToIAM hRBYh2rB4z6qo7ACn12LzjY+QB7goGWLUZxkaZh5IT5MX2l9JJ4rq1t8xxefHDbxXP TXzEQ8M0WJLnihZ7FiqWA4OCyM23fnyPSeaI37Vo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([37.201.215.209]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mkpf3-1llXGr29q3-00mHL8; Sat, 16 Jan 2021 21:53:50 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v8 4/7] pwm: ntxec: Add driver for PWM function in Netronix EC Date: Sat, 16 Jan 2021 20:48:23 +0100 Message-Id: <20210116194826.3866540-5-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:sR0d3iqo8IyQZSTjKPwyjcol376hsZD6Y/nteZGtp/f6UWwNUfn 4UICbrr4QpIG3aUq8auyoRBckRdFWzg+sG8RFmnf/0IxP0wmoA4tZQemZ3dsqgqRW2o14fi I8aPDY+ijTb03qU1koS3VASpaAYb9qphVjur4vq1H/OCvWUKlPl1P8mlfoW4Gkt8UtlTQc0 2dScoDyVg8xEv1vdcz3uQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:AL4DOgyui78=:C8UVbU7Z4sDYtGu3aOjPpN LhHzT6kWMYSxJmRm7ED8GJa4yamikvi9OZvM6HqXVGSjxd8klRRQ3UjKpwI7PPz8eSYuI5hMs sH95aVzKWor6v8tRAU0CUusoSw7lu0U8PtRqWjqUITQ9o7/7QPbxuPxrlPCcXmSJ8Fsj5t3L8 PQ5ltcEcl+GCQ65CfeG0o3dcCyT2cVgLKhVJQ6vFAVlKH2BO2xnWbmTntA9lDI1eyGWL4GmuX qjTQ/ukymFL/lGJbDa81sBb33g2xm5TcfRos3pYFxCtWD9DS3QiuFyv0kvEyQ0Mz0SODsNv3k TJsJWqZAZ78jpFTxWfijoV3UfS9w1/vLkCXK0A4Rrm6C2N7aax9FxCfzAjQs2L6hGTu50bLTA XZS8QcmroRmEXos4eyvcxywaBslyAFZGuecbo744IXakFXBXXyzl1O4Y16/B/JDpEH1etr5uN IhDAsFBWzKQsPekso8RiEgvj5D56bbYlTKnYmp40Oh46tETIRZ1olBYdlo2vY/5+nDgETP3QF /7MBPn5j/+1+vd49QCmYppNGQ02Uap1HQxkB3f3/7OSFt/v6mObTiQGtNi06mPhiWKrzha4iC xpmDhqUz5SFPNHVN3jpqAJLb3NK8JgUFEQ3urPDACNr9GVDVtJblQKD/qekLQlxmOLavRBbs8 Xq13UPa+UXeG9QhnAW8mh0zl8GFPQudJH1zF+ahpgcMh6GcWEHiJNxHPb7S9/kFWacPDImWbA 5Ruc85iPSIssEHyZSOnbaMCf2yQGaQZd/EUOqcoMA2ufSXwNb3BoGeXY23Of57lVhtsTpKjIC WiTfA+uEbj5/ozndy6Ey2oScDOFndEQ08nsUkSO4KV2sPM5qD/0hz/8zGqLN/ulULkcgNFPvM JYZLgX/6k+PzfFSnuqcQ== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210116_155434_793263_AA008449 X-CRM114-Status: GOOD ( 35.45 ) 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 VGhlIE5ldHJvbml4IEVDIHByb3ZpZGVzIGEgUFdNIG91dHB1dCB3aGljaCBpcyB1c2VkIGZvciB0 aGUgYmFja2xpZ2h0Cm9uIHNvbWUgZWJvb2sgcmVhZGVycy4gVGhpcyBwYXRjaGVzIGFkZHMgYSBk cml2ZXIgZm9yIHRoZSBQV00gb3V0cHV0LgoKVGhlIC5nZXRfc3RhdGUgY2FsbGJhY2sgaXMgbm90 IGltcGxlbWVudGVkLCBiZWNhdXNlIHRoZSBQV00gc3RhdGUgY2FuJ3QKYmUgcmVhZCBiYWNrIGZy b20gdGhlIGhhcmR3YXJlLgoKU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gTmV1c2Now6RmZXIgPGou bmV1c2NoYWVmZXJAZ214Lm5ldD4KUmV2aWV3ZWQtYnk6IFV3ZSBLbGVpbmUtS8O2bmlnIDx1Lmts ZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Ci0tLQp2ODoKLSBBZGQgVXdlIEtsZWluZS1Lw7Zu aWcncyBSLWIgdGFnCi0gQ29weSBkZXYub2Zfbm9kZSBmcm9tIHBhcmVudCBkZXZpY2UKCnY3Ogot IG5vIGNoYW5nZXMKCnY2OgotIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMDEyMDgw MTEwMDAuMzA2MDIzOS01LWoubmV1c2NoYWVmZXJAZ214Lm5ldC8KLSBNb3ZlIHBlcmlvZCAvIGR1 dHkgY3ljbGUgc2V0dGluZyBjb2RlIHRvIGEgZnVuY3Rpb24KLSBSZW5hbWUgcHdtY2hpcF90b19w cml2IHRvIG50eGVjX3B3bV9mcm9tX2NoaXAKLSBTZXQgcGVyaW9kIGFuZCBkdXR5IGN5Y2xlIG9u bHkgYmVmb3JlIGVuYWJsaW5nIHRoZSBvdXRwdXQKLSBNZW50aW9uIHRoYXQgZHV0eT0wLCBlbmFi bGU9MSBpcyBhc3N1bWVkIG5vdCB0byBoYXBwZW4KLSBJbnRlcmxlYXZlIHdyaXRlcyB0byB0aGUg cGVyaW9kIGFuZCBkdXR5IGN5Y2xlIHJlZ2lzdGVycywgdG8gbWluaW1pemUgdGhlCiAgd2luZG93 IG9mIHRpbWUgdGhhdCBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgaXMgY29uZmlndXJlZAoKdjU6Ci0g aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIwMTIwMTAxMTUxMy4xNjI3MDI4LTUtai5u ZXVzY2hhZWZlckBnbXgubmV0LwotIEF2b2lkIHRydW5jYXRpb24gb2YgcGVyaW9kIGFuZCBkdXR5 IGN5Y2xlIHRvIDMyIGJpdHMKLSBNYWtlIG50eGVjX3B3bV9vcHMgY29uc3QKLSBVc2UgcmVnbWFw X211bHRpX3JlZ193cml0ZQotIEFkZCBjb21tZW50IGFib3V0IGdldF9zdGF0ZSB0byBudHhlY19w d21fb3BzCi0gQWRkIGNvbW1lbnRzIGFib3V0IG5vbi1hdG9taWNpdHkgb2YgKHBlcmlvZCwgZHV0 eSBjeWNsZSkgdXBkYXRlCgp2NDoKLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjAx MTIyMjIyNzM5LjE0NTUxMzItNS1qLm5ldXNjaGFlZmVyQGdteC5uZXQvCi0gRG9jdW1lbnQgaGFy ZHdhcmUvZHJpdmVyIGxpbWl0YXRpb25zCi0gT25seSBhY2NlcHQgbm9ybWFsIHBvbGFyaXR5Ci0g Rml4IGEgdHlwbyAoInpvbmUiIC0+ICJ6ZXJvIikKLSBjaGFuZ2UgTUFYX1BFUklPRF9OUyB0byAw eGZmZmYgKiAxMjUKLSBDbGFtcCBwZXJpb2QgdG8gdGhlIG1heGltdW0gcmF0aGVyIHRoYW4gcmV0 dXJuaW5nIGFuIGVycm9yCi0gUmVuYW1lIHByaXZhdGUgc3RydWN0IHBvaW50ZXIgdG8gcHJpdgot IFJlYXJyYWdlIGNvbnRyb2wgZmxvdyBpbiBfcHJvYmUgdG8gc2F2ZSBhIGZldyBsaW5lcyBhbmQg YSB0ZW1wb3JhcnkgdmFyaWFibGUKLSBBZGQgbWlzc2luZyBNT0RVTEVfQUxJQVMgbGluZQotIFNw ZWxsIG91dCBPRE0KCnYzOgotIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMDA5MjQx OTI0NTUuMjQ4NDAwNS01LWoubmV1c2NoYWVmZXJAZ214Lm5ldC8KLSBSZWxpY2Vuc2UgYXMgR1BM djIgb3IgbGF0ZXIKLSBBZGQgZW1haWwgYWRkcmVzcyB0byBjb3B5cmlnaHQgbGluZQotIFJlbW92 ZSBPRiBjb21wYXRpYmxlIHN0cmluZyBhbmQgZG9uJ3QgaW5jbHVkZSBsaW51eC9vZl9kZXZpY2Uu aAotIEZpeCBib2d1cyA/OiBpbiByZXR1cm4gbGluZQotIERvbid0IHVzZSBhIGNvbW1hIGFmdGVy IHNlbnRpbmVscwotIEF2b2lkIHJldCB8PSAuLi4gcGF0dGVybgotIE1vdmUgOC1iaXQgcmVnaXN0 ZXIgY29udmVyc2lvbiB0byBudHhlYy5oCgp2MjoKLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9s a21sLzIwMjAwOTA1MTMzMjMwLjEwMTQ1ODEtNi1qLm5ldXNjaGFlZmVyQGdteC5uZXQvCi0gVmFy aW91cyBncmFtbWFyIGFuZCBzdHlsZSBpbXByb3ZlbWVudHMsIGFzIHN1Z2dlc3RlZCBieSBVd2Ug S2xlaW5lLUvDtm5pZywKICBMZWUgSm9uZXMsIGFuZCBBbGV4YW5kcmUgQmVsbG9uaQotIFN3aXRj aCB0byByZWdtYXAKLSBQcmVmaXggcmVnaXN0ZXJzIHdpdGggTlRYRUNfUkVHXwotIEFkZCBoZWxw IHRleHQgdG8gdGhlIEtjb25maWcgb3B0aW9uCi0gVXNlIHRoZSAuYXBwbHkgY2FsbGJhY2sgaW5z dGVhZCBvZiB0aGUgb2xkIEFQSQotIEFkZCBhICNkZWZpbmUgZm9yIHRoZSB0aW1lIGJhc2UgKDEy NW5zKQotIERvbid0IGNoYW5nZSBkZXZpY2Ugc3RhdGUgaW4gLnByb2JlOyB0aGlzIGF2b2lkcyBt dWx0aXBsZSBwcm9ibGVtcwotIFJld29yayBkaXZpc2lvbiBhbmQgb3ZlcmZsb3cgY2hlY2sgbG9n aWMgdG8gcGVyZm9ybSBkaXZpc2lvbnMgaW4gMzIgYml0cwotIEF2b2lkIHNldHRpbmcgZHV0eSBj eWNsZSB0byB6ZXJvLCB0byB3b3JrIGFyb3VuZCBhIGhhcmR3YXJlIHF1aXJrCi0tLQogZHJpdmVy cy9wd20vS2NvbmZpZyAgICAgfCAgIDggKysKIGRyaXZlcnMvcHdtL01ha2VmaWxlICAgIHwgICAx ICsKIGRyaXZlcnMvcHdtL3B3bS1udHhlYy5jIHwgMTg0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3B3bS9wd20tbnR4ZWMuYwoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvcHdtL0tjb25maWcgYi9kcml2ZXJzL3B3bS9LY29uZmlnCmluZGV4IDA5MzdlMWMwNDdh Y2IuLmEyODMwYjg4MzJiOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL0tjb25maWcKKysrIGIv ZHJpdmVycy9wd20vS2NvbmZpZwpAQCAtMzkzLDYgKzM5MywxNCBAQCBjb25maWcgUFdNX01YUwog CSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhl IG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgcHdtLW14cy4KCitjb25maWcgUFdNX05UWEVDCisJ dHJpc3RhdGUgIk5ldHJvbml4IGVtYmVkZGVkIGNvbnRyb2xsZXIgUFdNIHN1cHBvcnQiCisJZGVw ZW5kcyBvbiBNRkRfTlRYRUMKKwloZWxwCisJICBTYXkgeWVzIGhlcmUgaWYgeW91IHdhbnQgdG8g c3VwcG9ydCB0aGUgUFdNIG91dHB1dCBvZiB0aGUgZW1iZWRkZWQKKwkgIGNvbnRyb2xsZXIgZm91 bmQgaW4gY2VydGFpbiBlLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBieSB0aGUgb3JpZ2luYWwKKwkg IGRlc2lnbiBtYW51ZmFjdHVyZXIgTmV0cm9uaXguCisKIGNvbmZpZyBQV01fT01BUF9ETVRJTUVS CiAJdHJpc3RhdGUgIk9NQVAgRHVhbC1Nb2RlIFRpbWVyIFBXTSBzdXBwb3J0IgogCWRlcGVuZHMg b24gT0YKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL01ha2VmaWxlIGIvZHJpdmVycy9wd20vTWFr ZWZpbGUKaW5kZXggMThiODlkN2ZkMDkyYS4uN2Q5N2ViNTk1YmJlZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9wd20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9wd20vTWFrZWZpbGUKQEAgLTM1LDYgKzM1 LDcgQEAgb2JqLSQoQ09ORklHX1BXTV9NRVNPTikJCSs9IHB3bS1tZXNvbi5vCiBvYmotJChDT05G SUdfUFdNX01FRElBVEVLKQkrPSBwd20tbWVkaWF0ZWsubwogb2JqLSQoQ09ORklHX1BXTV9NVEtf RElTUCkJKz0gcHdtLW10ay1kaXNwLm8KIG9iai0kKENPTkZJR19QV01fTVhTKQkJKz0gcHdtLW14 cy5vCitvYmotJChDT05GSUdfUFdNX05UWEVDKQkJKz0gcHdtLW50eGVjLm8KIG9iai0kKENPTkZJ R19QV01fT01BUF9ETVRJTUVSKQkrPSBwd20tb21hcC1kbXRpbWVyLm8KIG9iai0kKENPTkZJR19Q V01fUENBOTY4NSkJKz0gcHdtLXBjYTk2ODUubwogb2JqLSQoQ09ORklHX1BXTV9QWEEpCQkrPSBw d20tcHhhLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bS1udHhlYy5jIGIvZHJpdmVycy9w d20vcHdtLW50eGVjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u NTBjNDU0YzU1M2M0NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcHdtL3B3bS1udHhlYy5j CkBAIC0wLDAgKzEsMTg0IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v ci1sYXRlcgorLyoKKyAqIFRoZSBOZXRyb25peCBlbWJlZGRlZCBjb250cm9sbGVyIGlzIGEgbWlj cm9jb250cm9sbGVyIGZvdW5kIGluIHNvbWUKKyAqIGUtYm9vayByZWFkZXJzIGRlc2lnbmVkIGJ5 IHRoZSBvcmlnaW5hbCBkZXNpZ24gbWFudWZhY3R1cmVyIE5ldHJvbml4LCBJbmMuCisgKiBJdCBj b250YWlucyBSVEMsIGJhdHRlcnkgbW9uaXRvcmluZywgc3lzdGVtIHBvd2VyIG1hbmFnZW1lbnQs IGFuZCBQV00KKyAqIGZ1bmN0aW9uYWxpdHkuCisgKgorICogVGhpcyBkcml2ZXIgaW1wbGVtZW50 cyBQV00gb3V0cHV0LgorICoKKyAqIENvcHlyaWdodCAyMDIwIEpvbmF0aGFuIE5ldXNjaMOkZmVy IDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+CisgKgorICogTGltaXRhdGlvbnM6CisgKiAtIFRoZSBn ZXRfc3RhdGUgY2FsbGJhY2sgaXMgbm90IGltcGxlbWVudGVkLCBiZWNhdXNlIHRoZSBjdXJyZW50 IHN0YXRlIG9mCisgKiAgIHRoZSBQV00gb3V0cHV0IGNhbid0IGJlIHJlYWQgYmFjayBmcm9tIHRo ZSBoYXJkd2FyZS4KKyAqIC0gVGhlIGhhcmR3YXJlIGNhbiBvbmx5IGdlbmVyYXRlIG5vcm1hbCBw b2xhcml0eSBvdXRwdXQuCisgKiAtIFRoZSBwZXJpb2QgYW5kIGR1dHkgY3ljbGUgY2FuJ3QgYmUg Y2hhbmdlZCB0b2dldGhlciBpbiBvbmUgYXRvbWljIGFjdGlvbi4KKyAqLworCisjaW5jbHVkZSA8 bGludXgvbWZkL250eGVjLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcHdtLmg+CisjaW5jbHVk ZSA8bGludXgvcmVnbWFwLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworc3RydWN0IG50 eGVjX3B3bSB7CisJc3RydWN0IGRldmljZSAqZGV2OworCXN0cnVjdCBudHhlYyAqZWM7CisJc3Ry dWN0IHB3bV9jaGlwIGNoaXA7Cit9OworCitzdGF0aWMgc3RydWN0IG50eGVjX3B3bSAqbnR4ZWNf cHdtX2Zyb21fY2hpcChzdHJ1Y3QgcHdtX2NoaXAgKmNoaXApCit7CisJcmV0dXJuIGNvbnRhaW5l cl9vZihjaGlwLCBzdHJ1Y3QgbnR4ZWNfcHdtLCBjaGlwKTsKK30KKworI2RlZmluZSBOVFhFQ19S RUdfQVVUT19PRkZfSEkJMHhhMQorI2RlZmluZSBOVFhFQ19SRUdfQVVUT19PRkZfTE8JMHhhMgor I2RlZmluZSBOVFhFQ19SRUdfRU5BQkxFCTB4YTMKKyNkZWZpbmUgTlRYRUNfUkVHX1BFUklPRF9M T1cJMHhhNAorI2RlZmluZSBOVFhFQ19SRUdfUEVSSU9EX0hJR0gJMHhhNQorI2RlZmluZSBOVFhF Q19SRUdfRFVUWV9MT1cJMHhhNgorI2RlZmluZSBOVFhFQ19SRUdfRFVUWV9ISUdICTB4YTcKKwor LyoKKyAqIFRoZSB0aW1lIGJhc2UgdXNlZCBpbiB0aGUgRUMgaXMgOE1Ieiwgb3IgMTI1bnMuIFBl cmlvZCBhbmQgZHV0eSBjeWNsZSBhcmUKKyAqIG1lYXN1cmVkIGluIHRoaXMgdW5pdC4KKyAqLwor I2RlZmluZSBUSU1FX0JBU0VfTlMgMTI1CisKKy8qCisgKiBUaGUgbWF4aW11bSBpbnB1dCB2YWx1 ZSAoaW4gbmFub3NlY29uZHMpIGlzIGRldGVybWluZWQgYnkgdGhlIHRpbWUgYmFzZSBhbmQKKyAq IHRoZSByYW5nZSBvZiB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzIHRoYXQgaG9sZCB0aGUgY29udmVy dGVkIHZhbHVlLgorICogSXQgZml0cyBpbnRvIDMyIGJpdHMsIHNvIHdlIGNhbiBkbyBvdXIgY2Fs Y3VsYXRpb25zIGluIDMyIGJpdHMgYXMgd2VsbC4KKyAqLworI2RlZmluZSBNQVhfUEVSSU9EX05T IChUSU1FX0JBU0VfTlMgKiAweGZmZmYpCisKK3N0YXRpYyBpbnQgbnR4ZWNfcHdtX3NldF9yYXdf cGVyaW9kX2FuZF9kdXR5X2N5Y2xlKHN0cnVjdCBwd21fY2hpcCAqY2hpcCwKKwkJCQkJCSAgIGlu dCBwZXJpb2QsIGludCBkdXR5KQoreworCXN0cnVjdCBudHhlY19wd20gKnByaXYgPSBudHhlY19w d21fZnJvbV9jaGlwKGNoaXApOworCisJLyoKKwkgKiBDaGFuZ2VzIHRvIHRoZSBwZXJpb2QgYW5k IGR1dHkgY3ljbGUgdGFrZSBlZmZlY3QgYXMgc29vbiBhcyB0aGUKKwkgKiBjb3JyZXNwb25kaW5n IGxvdyBieXRlIGlzIHdyaXR0ZW4sIHNvIHRoZSBoYXJkd2FyZSBtYXkgYmUgY29uZmlndXJlZAor CSAqIHRvIGFuIGluY29uc2lzdGVudCBzdGF0ZSBhZnRlciB0aGUgcGVyaW9kIGlzIHdyaXR0ZW4g YW5kIGJlZm9yZSB0aGUKKwkgKiBkdXR5IGN5Y2xlIGlzIGZ1bGx5IHdyaXR0ZW4uIElmLCBpbiBz dWNoIGEgY2FzZSwgdGhlIG9sZCBkdXR5IGN5Y2xlCisJICogaXMgbG9uZ2VyIHRoYW4gdGhlIG5l dyBwZXJpb2QsIHRoZSBFQyBtYXkgb3V0cHV0IDEwMCUgZm9yIGEgbW9tZW50LgorCSAqCisJICog VG8gbWluaW1pemUgdGhlIHRpbWUgYmV0d2VlbiB0aGUgY2hhbmdlcyB0byBwZXJpb2QgYW5kIGR1 dHkgY3ljbGUKKwkgKiB0YWtpbmcgZWZmZWN0LCB0aGUgd3JpdGVzIGFyZSBpbnRlcmxlYXZlZC4K KwkgKi8KKworCXN0cnVjdCByZWdfc2VxdWVuY2UgcmVnc1tdID0geworCQl7IE5UWEVDX1JFR19Q RVJJT0RfSElHSCwgbnR4ZWNfcmVnOChwZXJpb2QgPj4gOCkgfSwKKwkJeyBOVFhFQ19SRUdfRFVU WV9ISUdILCBudHhlY19yZWc4KGR1dHkgPj4gOCkgfSwKKwkJeyBOVFhFQ19SRUdfUEVSSU9EX0xP VywgbnR4ZWNfcmVnOChwZXJpb2QpIH0sCisJCXsgTlRYRUNfUkVHX0RVVFlfTE9XLCBudHhlY19y ZWc4KGR1dHkpIH0sCisJfTsKKworCXJldHVybiByZWdtYXBfbXVsdGlfcmVnX3dyaXRlKHByaXYt PmVjLT5yZWdtYXAsIHJlZ3MsIEFSUkFZX1NJWkUocmVncykpOworfQorCitzdGF0aWMgaW50IG50 eGVjX3B3bV9hcHBseShzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAsIHN0cnVjdCBwd21fZGV2aWNlICpw d21fZGV2LAorCQkJICAgY29uc3Qgc3RydWN0IHB3bV9zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0 IG50eGVjX3B3bSAqcHJpdiA9IG50eGVjX3B3bV9mcm9tX2NoaXAoY2hpcCk7CisJdW5zaWduZWQg aW50IHBlcmlvZCwgZHV0eTsKKwlpbnQgcmVzOworCisJaWYgKHN0YXRlLT5wb2xhcml0eSAhPSBQ V01fUE9MQVJJVFlfTk9STUFMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXBlcmlvZCA9IG1pbl90 KHU2NCwgc3RhdGUtPnBlcmlvZCwgTUFYX1BFUklPRF9OUyk7CisJZHV0eSAgID0gbWluX3QodTY0 LCBzdGF0ZS0+ZHV0eV9jeWNsZSwgcGVyaW9kKTsKKworCXBlcmlvZCAvPSBUSU1FX0JBU0VfTlM7 CisJZHV0eSAgIC89IFRJTUVfQkFTRV9OUzsKKworCS8qCisJICogV3JpdGluZyBhIGR1dHkgY3lj bGUgb2YgemVybyBwdXRzIHRoZSBkZXZpY2UgaW50byBhIHN0YXRlIHdoZXJlCisJICogd3JpdGlu ZyBhIGhpZ2hlciBkdXR5IGN5Y2xlIGRvZXNuJ3QgcmVzdWx0IGluIHRoZSBicmlnaHRuZXNzIHRo YXQgaXQKKwkgKiB1c3VhbGx5IHJlc3VsdHMgaW4uIFRoaXMgY2FuIGJlIGZpeGVkIGJ5IGN5Y2xp bmcgdGhlIEVOQUJMRSByZWdpc3Rlci4KKwkgKgorCSAqIEFzIGEgd29ya2Fyb3VuZCwgd3JpdGUg RU5BQkxFPTAgd2hlbiB0aGUgZHV0eSBjeWNsZSBpcyB6ZXJvLgorCSAqIFRoZSBjYXNlIHRoYXQg c29tZXRoaW5nIGhhcyBwcmV2aW91c2x5IHNldCB0aGUgZHV0eSBjeWNsZSB0byB6ZXJvCisJICog YnV0IEVOQUJMRT0xLCBpcyBub3QgaGFuZGxlZC4KKwkgKi8KKwlpZiAoc3RhdGUtPmVuYWJsZWQg JiYgZHV0eSAhPSAwKSB7CisJCXJlcyA9IG50eGVjX3B3bV9zZXRfcmF3X3BlcmlvZF9hbmRfZHV0 eV9jeWNsZShjaGlwLCBwZXJpb2QsIGR1dHkpOworCQlpZiAocmVzKQorCQkJcmV0dXJuIHJlczsK KworCQlyZXMgPSByZWdtYXBfd3JpdGUocHJpdi0+ZWMtPnJlZ21hcCwgTlRYRUNfUkVHX0VOQUJM RSwgbnR4ZWNfcmVnOCgxKSk7CisJCWlmIChyZXMpCisJCQlyZXR1cm4gcmVzOworCisJCS8qIERp c2FibGUgdGhlIGF1dG8tb2ZmIHRpbWVyICovCisJCXJlcyA9IHJlZ21hcF93cml0ZShwcml2LT5l Yy0+cmVnbWFwLCBOVFhFQ19SRUdfQVVUT19PRkZfSEksIG50eGVjX3JlZzgoMHhmZikpOworCQlp ZiAocmVzKQorCQkJcmV0dXJuIHJlczsKKworCQlyZXR1cm4gcmVnbWFwX3dyaXRlKHByaXYtPmVj LT5yZWdtYXAsIE5UWEVDX1JFR19BVVRPX09GRl9MTywgbnR4ZWNfcmVnOCgweGZmKSk7CisJfSBl bHNlIHsKKwkJcmV0dXJuIHJlZ21hcF93cml0ZShwcml2LT5lYy0+cmVnbWFwLCBOVFhFQ19SRUdf RU5BQkxFLCBudHhlY19yZWc4KDApKTsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdt X29wcyBudHhlY19wd21fb3BzID0geworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS5hcHBseSA9 IG50eGVjX3B3bV9hcHBseSwKKwkvKgorCSAqIE5vIC5nZXRfc3RhdGUgY2FsbGJhY2ssIGJlY2F1 c2UgdGhlIGN1cnJlbnQgc3RhdGUgY2Fubm90IGJlIHJlYWQKKwkgKiBiYWNrIGZyb20gdGhlIGhh cmR3YXJlLgorCSAqLworfTsKKworc3RhdGljIGludCBudHhlY19wd21fcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgbnR4ZWMgKmVjID0gZGV2X2dldF9kcnZk YXRhKHBkZXYtPmRldi5wYXJlbnQpOworCXN0cnVjdCBudHhlY19wd20gKnByaXY7CisJc3RydWN0 IHB3bV9jaGlwICpjaGlwOworCisJcGRldi0+ZGV2Lm9mX25vZGUgPSBwZGV2LT5kZXYucGFyZW50 LT5vZl9ub2RlOworCisJcHJpdiA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKnBy aXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJcHJp di0+ZWMgPSBlYzsKKwlwcml2LT5kZXYgPSAmcGRldi0+ZGV2OworCisJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgcHJpdik7CisKKwljaGlwID0gJnByaXYtPmNoaXA7CisJY2hpcC0+ZGV2ID0g JnBkZXYtPmRldjsKKwljaGlwLT5vcHMgPSAmbnR4ZWNfcHdtX29wczsKKwljaGlwLT5iYXNlID0g LTE7CisJY2hpcC0+bnB3bSA9IDE7CisKKwlyZXR1cm4gcHdtY2hpcF9hZGQoY2hpcCk7Cit9CisK K3N0YXRpYyBpbnQgbnR4ZWNfcHdtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQoreworCXN0cnVjdCBudHhlY19wd20gKnByaXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2 KTsKKwlzdHJ1Y3QgcHdtX2NoaXAgKmNoaXAgPSAmcHJpdi0+Y2hpcDsKKworCXJldHVybiBwd21j aGlwX3JlbW92ZShjaGlwKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbnR4 ZWNfcHdtX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJudHhlYy1wd20iLAor CX0sCisJLnByb2JlID0gbnR4ZWNfcHdtX3Byb2JlLAorCS5yZW1vdmUgPSBudHhlY19wd21fcmVt b3ZlLAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobnR4ZWNfcHdtX2RyaXZlcik7CisKK01P RFVMRV9BVVRIT1IoIkpvbmF0aGFuIE5ldXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+ Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlBXTSBkcml2ZXIgZm9yIE5ldHJvbml4IEVDIik7CitN T0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOm50eGVjLXB3bSIp OwotLQoyLjI5LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==