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.8 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,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 5E8D9C433E9 for ; Sun, 24 Jan 2021 22:45:23 +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 132C022C9F for ; Sun, 24 Jan 2021 22:45:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 132C022C9F 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=F+rjUShZbdQdJr+wn7tNE991qS6YhHpdiKX/6cVx2L0=; b=DW9ARrDJWMI9aRLirTK68XQhY uR88D3oGao/vQH14BcG8hCBihaQZ05o2JeIuqiTQq5o4WLGnHetZ7/VJ39XhLM5y4EGpQ+ihscQJW qatLOywk/DZF8T1H89PRbHXVbo/p16hdZsJ6ITF5bhJG8quthnAdFR3OHzACSuL47O3C5524GtUNt Wz3WSVTnzhbzHypgb6rE9rD8L880gRwA/eR/5ajHQtGZK9v7qPwu6Bu542sBfTY9NHO1ugtoC+Dyv bYGuyZ+aCLVDq2579WL8ViwkkgKM4UL5sppDgV5lS7laC/cUrco1mihXpikNebX9fgG/IdBUIPSvl wc3SjAO7Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l3o6l-0003cO-SL; Sun, 24 Jan 2021 22:43:47 +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 1l3o6g-0003c1-BK for linux-arm-kernel@lists.infradead.org; Sun, 24 Jan 2021 22:43:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611528183; bh=lSNWekm6862ykeKcP9D2OG5qE6fxZEmN3uJ3zTlZGc0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=abW8pCkFuonuHElu6fswRkXCI7Wvi99jCi54ZFApsGx0GOkChWBOZqKZjRmzZBYwB 5NloHbglL3C/86Zzz7qkU/ruHcPWgXa3CTueG5Nn6IaT+R7JhKi6PjmTNtMWpT+GPg eZy/+2kKWiBKM6L3EMFex6dVeT2KKFQ6uf+AwQ6Y= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([37.201.215.209]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MplXp-1lmRVD41zJ-00q89k; Sun, 24 Jan 2021 23:43:03 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v9 4/7] pwm: ntxec: Add driver for PWM function in Netronix EC Date: Sun, 24 Jan 2021 22:41:24 +0100 Message-Id: <20210124214127.3631530-5-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210124214127.3631530-1-j.neuschaefer@gmx.net> References: <20210124214127.3631530-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 X-Provags-ID: V03:K1:hA0CPIm1ZvUBpyqE/I8BqaaeeTiEqr0lWWiltlfHwR5gZh7PQI/ L4QGEcsSh4JzXSHYBg0U6jCTOxM/Jm3R+BSpHzvnvbCiFpD6gFf0z4i9jhsokK48e45Zkpj AMyKsL7z49tuq5P8kmaon2K3hxYEf9EG4Hhg3RgHIi8oXiKxxPpjonz0X5juDf38Ihl1/9G qUBnKFMXh4hVJ82JQfNqQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:DVSa4BFhq94=:irIx3TIizs5o1to6LgdE3h lsLU2rOggiFJHwP3AqwTUyeCPpE7IZzUKLS1kS76Ptr2ryfGuo2nuLULujuv+mS6QPLh7RwLm 0CB/gjkQinRqErD7B9zKu5/w4NzPBBzv2fI95MR+QYzYRWXQB0P0eMlqaQfo5+JvhrnfNUQeC tRLIa8/cwk4NGYyqWJSn6PC1+CXRs8Qh5CZIKDAsDHI1tvSEanCpPOWzHWVtk8q6GTElbuCzG VjEdxy9mPlhCCkyLUtahcFCqGm93OX2Po+8bHluLLfgMe/QX/AN6I+7Jx5F0CzG+S74EebPDX uhqOVDU1KLzpEC3CBLLWKnHL5WK8mbsyKiAa3KzwMjnCR0I5mwNquqnXyxdWJPBXsTwOoJ8VX 5N25hSOqOtQs9P1985gy1wCCkmjcc7/s0u8Ni0XU0FsniHxtf15ZGbyRJ9quy2lSI8jV3xMB3 gatGG2qjj9iBQCsQbVTPSfYyZPZHbLXYCF0p0JLpo1uyMPx57FonkX99z3peGKt5KqFe2of+p XilC1qUx/XCx9iKvzO698j6jjoRN2MWorGLUFa2phNyurN9BVCCBy/CvikohHRz5RetSAmfq5 FiICZQ4aFImxx0QG5iHVrHUC2un5vgEdIDEdexl4YCUuS4BFLCUBnf4ZwX/fqoVjR8QRLTgi/ mXS72xUnKeGqiM7Ez8qh7fbVlk1kNYMdwSNPpP17M6qRDTXuDe7Fu9TmGe7Anplel4ATDfwNB 9FyfPOxhWhi6RGnhY9Ex7Dz/yq0qrFKzHh3l4sYsxaoGbVmat8h3TUkGQh+9qztCKHKdbsFMO wOQvmwTBIPZegOjItf0VbnSUmYKcgjgiQOBYWu7Tjxfm6n/7Cxkvn+4R2OTHEMTEa8zMEIbxt 5ihcLFrLehEXQ9ZB8EnA== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210124_174342_681238_145B9903 X-CRM114-Status: GOOD ( 36.81 ) 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+CkFja2VkLWJ5OiBUaGllcnJ5IFJlZGluZyA8dGhp ZXJyeS5yZWRpbmdAZ21haWwuY29tPgotLS0Kdjk6Ci0gQWRkIFRoaWVycnkgUmVkaW5nJ3MgQS1i IHRhZwoKdjg6Ci0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIxMDExNjE5NDgyNi4z ODY2NTQwLTUtai5uZXVzY2hhZWZlckBnbXgubmV0LwotIEFkZCBVd2UgS2xlaW5lLUvDtm5pZydz IFItYiB0YWcKLSBDb3B5IGRldi5vZl9ub2RlIGZyb20gcGFyZW50IGRldmljZQoKdjc6Ci0gbm8g Y2hhbmdlcwoKdjY6Ci0gTW92ZSBwZXJpb2QgLyBkdXR5IGN5Y2xlIHNldHRpbmcgY29kZSB0byBh IGZ1bmN0aW9uCi0gUmVuYW1lIHB3bWNoaXBfdG9fcHJpdiB0byBudHhlY19wd21fZnJvbV9jaGlw Ci0gU2V0IHBlcmlvZCBhbmQgZHV0eSBjeWNsZSBvbmx5IGJlZm9yZSBlbmFibGluZyB0aGUgb3V0 cHV0Ci0gTWVudGlvbiB0aGF0IGR1dHk9MCwgZW5hYmxlPTEgaXMgYXNzdW1lZCBub3QgdG8gaGFw cGVuCi0gSW50ZXJsZWF2ZSB3cml0ZXMgdG8gdGhlIHBlcmlvZCBhbmQgZHV0eSBjeWNsZSByZWdp c3RlcnMsIHRvIG1pbmltaXplIHRoZQogIHdpbmRvdyBvZiB0aW1lIHRoYXQgYW4gaW5jb25zaXN0 ZW50IHN0YXRlIGlzIGNvbmZpZ3VyZWQKCnY1OgotIEF2b2lkIHRydW5jYXRpb24gb2YgcGVyaW9k IGFuZCBkdXR5IGN5Y2xlIHRvIDMyIGJpdHMKLSBNYWtlIG50eGVjX3B3bV9vcHMgY29uc3QKLSBV c2UgcmVnbWFwX211bHRpX3JlZ193cml0ZQotIEFkZCBjb21tZW50IGFib3V0IGdldF9zdGF0ZSB0 byBudHhlY19wd21fb3BzCi0gQWRkIGNvbW1lbnRzIGFib3V0IG5vbi1hdG9taWNpdHkgb2YgKHBl cmlvZCwgZHV0eSBjeWNsZSkgdXBkYXRlCgp2NDoKLSBEb2N1bWVudCBoYXJkd2FyZS9kcml2ZXIg bGltaXRhdGlvbnMKLSBPbmx5IGFjY2VwdCBub3JtYWwgcG9sYXJpdHkKLSBGaXggYSB0eXBvICgi em9uZSIgLT4gInplcm8iKQotIGNoYW5nZSBNQVhfUEVSSU9EX05TIHRvIDB4ZmZmZiAqIDEyNQot IENsYW1wIHBlcmlvZCB0byB0aGUgbWF4aW11bSByYXRoZXIgdGhhbiByZXR1cm5pbmcgYW4gZXJy b3IKLSBSZW5hbWUgcHJpdmF0ZSBzdHJ1Y3QgcG9pbnRlciB0byBwcml2Ci0gUmVhcnJhZ2UgY29u dHJvbCBmbG93IGluIF9wcm9iZSB0byBzYXZlIGEgZmV3IGxpbmVzIGFuZCBhIHRlbXBvcmFyeSB2 YXJpYWJsZQotIEFkZCBtaXNzaW5nIE1PRFVMRV9BTElBUyBsaW5lCi0gU3BlbGwgb3V0IE9ETQoK djM6Ci0gUmVsaWNlbnNlIGFzIEdQTHYyIG9yIGxhdGVyCi0gQWRkIGVtYWlsIGFkZHJlc3MgdG8g Y29weXJpZ2h0IGxpbmUKLSBSZW1vdmUgT0YgY29tcGF0aWJsZSBzdHJpbmcgYW5kIGRvbid0IGlu Y2x1ZGUgbGludXgvb2ZfZGV2aWNlLmgKLSBGaXggYm9ndXMgPzogaW4gcmV0dXJuIGxpbmUKLSBE b24ndCB1c2UgYSBjb21tYSBhZnRlciBzZW50aW5lbHMKLSBBdm9pZCByZXQgfD0gLi4uIHBhdHRl cm4KLSBNb3ZlIDgtYml0IHJlZ2lzdGVyIGNvbnZlcnNpb24gdG8gbnR4ZWMuaAoKdjI6Ci0gVmFy 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==