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=-12.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,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 47724C433E2 for ; Sat, 5 Sep 2020 13:36:21 +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 E14642072D for ; Sat, 5 Sep 2020 13:36:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="p71cRLrV"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="PZZAz0sW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E14642072D 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=lGjJPTDhKiUDhv/4oujFPKMfPgjYs/KZ7S9h11HESB0=; b=p71cRLrV/Y9ni2bltYnwsZr8v MrjOf/W8qAy4koe0gqvJdASIK+o0L3cvTEaUKyGw2eZ3Fv7ynyfaTbUYTCqZkB9AiwgMEmWHWBRYo ZiUsywIuUN9+8FoYKC0AA+hlbrc/W/MWaqag/RNAYwYteKS8pNtf1Rcd+ybzKhXvpib0Gm4JKK1Qr /Dmclef/MpjKK6Sv9d8kSmLKCxnhiX4rRcq/4x9oUWOfIKun3krV81lDIceoKMIIQuvMZqBm/zN6B nbyRlYSPVobFN/WrDbvRRjzOEzvQVVq2Om8gEWaqX5F2OppdXqZBCy69xBTaDOj2af6gfpoZe8FhR TXcil79Ww==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kEYLT-0006IE-Pu; Sat, 05 Sep 2020 13:35:07 +0000 Received: from mout.gmx.net ([212.227.15.15]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kEYLR-0006Gz-Ec for linux-arm-kernel@lists.infradead.org; Sat, 05 Sep 2020 13:35:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1599312876; bh=NYuBBLNYiGIhFA8o9V2DO+rgKTITXVswEb0z0J0XHbQ=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=PZZAz0sWRcfz36991DP8m6xp3eKauhXE0K4YfzOn+5QIZBC90lhhZDJG1nKjqtzTK p6b+ujbvUAxEabLeXQbGQwXYQ51UjtfS+dAX+gVqZnVTNIA/Vx6DxkPcLbqTN9JWIO bfSOsbcnupi2poRxHd9JqGb9YfRvcgC5mu2txxSQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([5.146.195.151]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MFbRs-1kLjKk2AD0-00H3tl; Sat, 05 Sep 2020 15:34:36 +0200 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v2 05/10] pwm: ntxec: Add driver for PWM function in Netronix EC Date: Sat, 5 Sep 2020 15:32:25 +0200 Message-Id: <20200905133230.1014581-6-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:5pnqftFZLWVKcseh85w/XixgLxNOAvblrI3RkgnBGCnWbcUdOQO oR6pTp5i1i9KRv6AEMAEDIyzQAlJojtBLaPfURJpdu1/0ASyla0RXdIjvkOFjaP4sc3LlJ8 xJh02xjBlZutvFYchDqsCsNhLQrB5vxUZosPqH6NoGqqqXBqmBv/M0bZA8KktA2q35/a5tA iCf1U3MUMlRq4AH+juyPw== X-UI-Out-Filterresults: notjunk:1;V03:K0:cf/EYcs42qM=:Litgd/tjvyuyvzxMu1YSS2 fLvKl54JHoKIZ1yz5yGT8zsafFeUBLXMsLyAwwPQ1iOg4nVSfvmt1/RcORbHMgwrfAqvftoV9 J3Yv+phuDNvr75ci2KGj/034Ok1MbTwUSHKWMfEaoMPvsV+Hof1cu/UU5FO5Po6MqsSYT02OE z7TDap1Uo+0ZPUXfuMJbvPdF7YCo64VWmWlv/MQOXS2/vSR0ZqEHNloPxnmSVTobSJEoXHIGu 8zctdgQs0SkKbxtTJmv/uJi9cyOU5WzDd9udffMShAnOkV22w/nsBFX6Jg3pnZbkuqfb6eVlN 83Uudbkx08QoY4ieXs3aVt9OSHylJnj7ggKBnUR0W5U5L6kZzaeies/ffCvqCiQYAfjnmvMHz Fq9WIAZxhjP92fvAddD8VfvvlF/oXgfmAj+1TYzPiT1lXU/fj1QeoFVZv9XMAqUWVprs7d0pb nwd5vaCf+SyTW5JtDFtp7y0uZaJf4+sWsce87DnLMCLYLA92Tqv2h025DjC3ZCusjxP2HjKa6 3PLrghEwkGsbeerM+SeLDPmnbcO/Qw2mJteHVG6NJGaWr4iFa630RzEnDqvT0ZIaBzjLSB7kU KHzjYDh+UOcVPdf0Wx5P0dXKxIHOcY7Q6G0NGmd3OROAJtaD/pA66L2jXGnhWOTC+zrK5z9Kx klK8TreMmie5KAyJdgDimR4Xh2JmtWLR4fyggCzLNdzbPeTfC8VGbUFcJei54Lc6jcZ1N6LY/ hsLpMLjbYCP58rM5Vz11THQEhvCV2eod5Ca1UlEROJMOHOgeGzeBRfmSVAy5hZwVl362qwVMN INdHDDqHMt3GDVgkeMqsCjwgq/IwsCqVZE+zRo84i6FvckQ1G5f5CZwb2odoH+mQS9Mpu6ZX4 Gq7mqzj0j+DbEiCy0PGWN6TCnJHhpamvBffkkmuEH8/175wX62wfgZ6WDeDF5nVTL11n4igLK TrV4xWY/9TI3EgnZH8LSqXg51VnNGGMTqQWh31Vx/qVZVwPfGNV4Pez4ZEfRuNwI5R6j72NlF l3moxh8K5MQZ0OMKQ8MKONtT6nUs/AuR0E+LYhB3YDH6ixGDqas4WEK5C+xs58w0bQ3HELsG4 mxnMPP8i793R3UI0OatXaaf+FdOMil+QGbReqxvY+JpvVD3fFjCYXAgXlf4GfxA0Dtd16uyVJ YfGjX3iscSx7JKYYXWJ/P2XBbIFkhtd4mTbN7g2SRNRbkh19ppqw7nwQ4vMJhzTnqDiVfKn2I c4kGV/RCiw6PquXi36muUXOT19y2In45ftIAsbQ== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200905_093505_699477_630456E5 X-CRM114-Status: GOOD ( 31.26 ) 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 VGhlIE5ldHJvbml4IEVDIHByb3ZpZGVzIGEgUFdNIG91dHB1dCB3aGljaCBpcyB1c2VkIGZvciB0 aGUgYmFja2xpZ2h0Cm9uIHNvbWUgZWJvb2sgcmVhZGVycy4gVGhpcyBwYXRjaGVzIGFkZHMgYSBk cml2ZXIgZm9yIHRoZSBQV00gb3V0cHV0LgoKU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gTmV1c2No w6RmZXIgPGoubmV1c2NoYWVmZXJAZ214Lm5ldD4KLS0tCgp2MjoKLSBWYXJpb3VzIGdyYW1tYXIg YW5kIHN0eWxlIGltcHJvdmVtZW50cywgYXMgc3VnZ2VzdGVkIGJ5IFV3ZSBLbGVpbmUtS8O2bmln LAogIExlZSBKb25lcywgYW5kIEFsZXhhbmRyZSBCZWxsb25pCi0gU3dpdGNoIHRvIHJlZ21hcAot IFByZWZpeCByZWdpc3RlcnMgd2l0aCBOVFhFQ19SRUdfCi0gQWRkIGhlbHAgdGV4dCB0byB0aGUg S2NvbmZpZyBvcHRpb24KLSBVc2UgdGhlIC5hcHBseSBjYWxsYmFjayBpbnN0ZWFkIG9mIHRoZSBv bGQgQVBJCi0gQWRkIGEgI2RlZmluZSBmb3IgdGhlIHRpbWUgYmFzZSAoMTI1bnMpCi0gRG9uJ3Qg Y2hhbmdlIGRldmljZSBzdGF0ZSBpbiAucHJvYmU7IHRoaXMgYXZvaWRzIG11bHRpcGxlIHByb2Js ZW1zCi0gUmV3b3JrIGRpdmlzaW9uIGFuZCBvdmVyZmxvdyBjaGVjayBsb2dpYyB0byBwZXJmb3Jt IGRpdmlzaW9ucyBpbiAzMiBiaXRzCi0gQXZvaWQgc2V0dGluZyBkdXR5IGN5Y2xlIHRvIHplcm8s IHRvIHdvcmsgYXJvdW5kIGEgaGFyZHdhcmUgcXVpcmsKLS0tCiBkcml2ZXJzL3B3bS9LY29uZmln ICAgICB8ICAgOCArKwogZHJpdmVycy9wd20vTWFrZWZpbGUgICAgfCAgIDEgKwogZHJpdmVycy9w d20vcHdtLW50eGVjLmMgfCAxNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvcHdtL3B3bS1udHhlYy5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wd20vS2Nv bmZpZyBiL2RyaXZlcnMvcHdtL0tjb25maWcKaW5kZXggN2RiY2Y2OTczZDMzNS4uN2ZkMTdjNmNk YTk1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wd20vS2NvbmZpZworKysgYi9kcml2ZXJzL3B3bS9L Y29uZmlnCkBAIC0zNTAsNiArMzUwLDE0IEBAIGNvbmZpZyBQV01fTVhTCiAJICBUbyBjb21waWxl IHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3 aWxsIGJlIGNhbGxlZCBwd20tbXhzLgoKK2NvbmZpZyBQV01fTlRYRUMKKwl0cmlzdGF0ZSAiTmV0 cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciBQV00gc3VwcG9ydCIKKwlkZXBlbmRzIG9uIE1GRF9O VFhFQyAmJiBPRgorCWhlbHAKKwkgIFNheSB5ZXMgaGVyZSBpZiB5b3Ugd2FudCB0byBzdXBwb3J0 IHRoZSBQV00gb3V0cHV0IG9mIHRoZSBlbWJlZGRlZAorCSAgY29udHJvbGxlciBmb3VuZCBpbiBj ZXJ0YWluIGUtYm9vayByZWFkZXJzIGRlc2lnbmVkIGJ5IHRoZSBPRE0KKwkgIE5ldHJvbml4Lgor CiBjb25maWcgUFdNX09NQVBfRE1USU1FUgogCXRyaXN0YXRlICJPTUFQIER1YWwtTW9kZSBUaW1l ciBQV00gc3VwcG9ydCIKIAlkZXBlbmRzIG9uIE9GCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3bS9N YWtlZmlsZSBiL2RyaXZlcnMvcHdtL01ha2VmaWxlCmluZGV4IDJjMmJhMGEwMzU1NzcuLjFjYzUw ZGJhMjJkMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcHdtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMv cHdtL01ha2VmaWxlCkBAIC0zMiw2ICszMiw3IEBAIG9iai0kKENPTkZJR19QV01fTUVTT04pCQkr PSBwd20tbWVzb24ubwogb2JqLSQoQ09ORklHX1BXTV9NRURJQVRFSykJKz0gcHdtLW1lZGlhdGVr Lm8KIG9iai0kKENPTkZJR19QV01fTVRLX0RJU1ApCSs9IHB3bS1tdGstZGlzcC5vCiBvYmotJChD T05GSUdfUFdNX01YUykJCSs9IHB3bS1teHMubworb2JqLSQoQ09ORklHX1BXTV9OVFhFQykJCSs9 IHB3bS1udHhlYy5vCiBvYmotJChDT05GSUdfUFdNX09NQVBfRE1USU1FUikJKz0gcHdtLW9tYXAt ZG10aW1lci5vCiBvYmotJChDT05GSUdfUFdNX1BDQTk2ODUpCSs9IHB3bS1wY2E5Njg1Lm8KIG9i ai0kKENPTkZJR19QV01fUFhBKQkJKz0gcHdtLXB4YS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3B3 bS9wd20tbnR4ZWMuYyBiL2RyaXZlcnMvcHdtL3B3bS1udHhlYy5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjMyNWVjMGU4ZjE5OTYKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL3B3bS9wd20tbnR4ZWMuYwpAQCAtMCwwICsxLDE2MCBAQAorLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorLyoKKyAqIFRoZSBOZXRyb25peCBlbWJlZGRl ZCBjb250cm9sbGVyIGlzIGEgbWljcm9jb250cm9sbGVyIGZvdW5kIGluIHNvbWUKKyAqIGUtYm9v ayByZWFkZXJzIGRlc2lnbmVkIGJ5IHRoZSBPRE0gTmV0cm9uaXgsIEluYy4gSXQgY29udGFpbnMg UlRDLAorICogYmF0dGVyeSBtb25pdG9yaW5nLCBzeXN0ZW0gcG93ZXIgbWFuYWdlbWVudCwgYW5k IFBXTSBmdW5jdGlvbmFsaXR5LgorICoKKyAqIFRoaXMgZHJpdmVyIGltcGxlbWVudHMgUFdNIG91 dHB1dC4KKyAqCisgKiBDb3B5cmlnaHQgMjAyMCBKb25hdGhhbiBOZXVzY2jDpGZlcgorICovCisK KyNpbmNsdWRlIDxsaW51eC9tZmQvbnR4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K KyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9k ZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAu aD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitzdHJ1Y3QgbnR4ZWNfcHdtIHsKKwlzdHJ1 Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IG50eGVjICplYzsKKwlzdHJ1Y3QgcHdtX2NoaXAgY2hp cDsKK307CisKK3N0YXRpYyBzdHJ1Y3QgbnR4ZWNfcHdtICpwd21jaGlwX3RvX3B3bShzdHJ1Y3Qg cHdtX2NoaXAgKmNoaXApCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgbnR4 ZWNfcHdtLCBjaGlwKTsKK30KKworI2RlZmluZSBOVFhFQ19SRUdfQVVUT19PRkZfSEkJMHhhMQor I2RlZmluZSBOVFhFQ19SRUdfQVVUT19PRkZfTE8JMHhhMgorI2RlZmluZSBOVFhFQ19SRUdfRU5B QkxFCTB4YTMKKyNkZWZpbmUgTlRYRUNfUkVHX1BFUklPRF9MT1cJMHhhNAorI2RlZmluZSBOVFhF Q19SRUdfUEVSSU9EX0hJR0gJMHhhNQorI2RlZmluZSBOVFhFQ19SRUdfRFVUWV9MT1cJMHhhNgor I2RlZmluZSBOVFhFQ19SRUdfRFVUWV9ISUdICTB4YTcKKworLyogQ29udmVydCBhbiA4LWJpdCB2 YWx1ZSBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdCBmb3Igd3JpdGluZyBpbnRvIGEgcmVnaXN0ZXIg Ki8KKyNkZWZpbmUgdThfdG9fcmVnKHgpICgoKHgpICYgMHhmZikgPDwgOCkKKworLyoKKyAqIFRo ZSB0aW1lIGJhc2UgdXNlZCBpbiB0aGUgRUMgaXMgOE1Ieiwgb3IgMTI1bnMuIFBlcmlvZCBhbmQg ZHV0eSBjeWNsZSBhcmUKKyAqIG1lYXN1cmVkIGluIHRoaXMgdW5pdC4KKyAqLworI2RlZmluZSBU SU1FX0JBU0VfTlMgMTI1CisKKy8qCisgKiBUaGUgbWF4aW11bSBpbnB1dCB2YWx1ZSAoaW4gbmFu b3NlY29uZHMpIGlzIGRldGVybWluZWQgYnkgdGhlIHRpbWUgYmFzZSBhbmQKKyAqIHRoZSByYW5n ZSBvZiB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzIHRoYXQgaG9sZCB0aGUgY29udmVydGVkIHZhbHVl LgorICogSXQgZml0cyBpbnRvIDMyIGJpdHMsIHNvIHdlIGNhbiBkbyBvdXIgY2FsY3VsYXRpb25z IGluIDMyIGJpdHMgYXMgd2VsbC4KKyAqLworI2RlZmluZSBNQVhfUEVSSU9EX05TIChUSU1FX0JB U0VfTlMgKiAweDEwMDAwIC0gMSkKKworc3RhdGljIGludCBudHhlY19wd21fYXBwbHkoc3RydWN0 IHB3bV9jaGlwICpjaGlwLCBzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX2RldiwKKwkJCSAgIGNvbnN0 IHN0cnVjdCBwd21fc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBudHhlY19wd20gKnB3bSA9IHB3 bWNoaXBfdG9fcHdtKHB3bV9kZXYtPmNoaXApOworCXVuc2lnbmVkIGludCBkdXR5ID0gc3RhdGUt PmR1dHlfY3ljbGU7CisJdW5zaWduZWQgaW50IHBlcmlvZCA9IHN0YXRlLT5wZXJpb2Q7CisJaW50 IHJlcyA9IDA7CisKKwlpZiAocGVyaW9kID4gTUFYX1BFUklPRF9OUykgeworCQlkZXZfd2Fybihw d20tPmRldiwKKwkJCSAiUGVyaW9kIGlzIG5vdCByZXByZXNlbnRhYmxlIGluIDE2IGJpdHMgYWZ0 ZXIgZGl2aXNpb24gYnkgJXU6ICV1XG4iLAorCQkJIFRJTUVfQkFTRV9OUywgcGVyaW9kKTsKKwkJ cmV0dXJuIC1FUkFOR0U7CisJfQorCisJcGVyaW9kIC89IFRJTUVfQkFTRV9OUzsKKwlkdXR5IC89 IFRJTUVfQkFTRV9OUzsKKworCXJlcyB8PSByZWdtYXBfd3JpdGUocHdtLT5lYy0+cmVnbWFwLCBO VFhFQ19SRUdfUEVSSU9EX0hJR0gsIHU4X3RvX3JlZyhwZXJpb2QgPj4gOCkpOworCXJlcyB8PSBy ZWdtYXBfd3JpdGUocHdtLT5lYy0+cmVnbWFwLCBOVFhFQ19SRUdfUEVSSU9EX0xPVywgdThfdG9f cmVnKHBlcmlvZCkpOworCXJlcyB8PSByZWdtYXBfd3JpdGUocHdtLT5lYy0+cmVnbWFwLCBOVFhF Q19SRUdfRFVUWV9ISUdILCB1OF90b19yZWcoZHV0eSA+PiA4KSk7CisJcmVzIHw9IHJlZ21hcF93 cml0ZShwd20tPmVjLT5yZWdtYXAsIE5UWEVDX1JFR19EVVRZX0xPVywgdThfdG9fcmVnKGR1dHkp KTsKKworCWlmIChyZXMgPCAwKQorCQlyZXR1cm4gLUVJTzsKKworCS8qCisJICogV3JpdGluZyBh IGR1dHkgY3ljbGUgb2Ygem9uZSBwdXRzIHRoZSBkZXZpY2UgaW50byBhIHN0YXRlIHdoZXJlCisJ ICogd3JpdGluZyBhIGhpZ2hlciBkdXR5IGN5Y2xlIGRvZXNuJ3QgcmVzdWx0IGluIHRoZSBicmln aHRuZXNzIHRoYXQgaXQKKwkgKiB1c3VhbGx5IHJlc3VsdHMgaW4uIFRoaXMgY2FuIGJlIGZpeGVk IGJ5IGN5Y2xpbmcgdGhlIEVOQUJMRSByZWdpc3Rlci4KKwkgKgorCSAqIEFzIGEgd29ya2Fyb3Vu ZCwgd3JpdGUgRU5BQkxFPTAgd2hlbiB0aGUgZHV0eSBjeWNsZSBpcyB6ZXJvLgorCSAqLworCWlm IChzdGF0ZS0+ZW5hYmxlZCAmJiBkdXR5ICE9IDApIHsKKwkJcmVzIHw9IHJlZ21hcF93cml0ZShw d20tPmVjLT5yZWdtYXAsIE5UWEVDX1JFR19FTkFCTEUsIHU4X3RvX3JlZygxKSk7CisKKwkJLyog RGlzYWJsZSB0aGUgYXV0by1vZmYgdGltZXIgKi8KKwkJcmVzIHw9IHJlZ21hcF93cml0ZShwd20t PmVjLT5yZWdtYXAsIE5UWEVDX1JFR19BVVRPX09GRl9ISSwgdThfdG9fcmVnKDB4ZmYpKTsKKwkJ cmVzIHw9IHJlZ21hcF93cml0ZShwd20tPmVjLT5yZWdtYXAsIE5UWEVDX1JFR19BVVRPX09GRl9M TywgdThfdG9fcmVnKDB4ZmYpKTsKKwkJcmV0dXJuIHJlcyA/IC1FSU8gOiAwOworCX0gZWxzZSB7 CisJCXJldHVybiByZWdtYXBfd3JpdGUocHdtLT5lYy0+cmVnbWFwLCBOVFhFQ19SRUdfRU5BQkxF LCB1OF90b19yZWcoMCkpOworCX0KK30KKworc3RhdGljIHN0cnVjdCBwd21fb3BzIG50eGVjX3B3 bV9vcHMgPSB7CisJLmFwcGx5ID0gbnR4ZWNfcHdtX2FwcGx5LAorCS5vd25lciA9IFRISVNfTU9E VUxFLAorfTsKKworc3RhdGljIGludCBudHhlY19wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgbnR4ZWMgKmVjID0gZGV2X2dldF9kcnZkYXRhKHBkZXYt PmRldi5wYXJlbnQpOworCXN0cnVjdCBudHhlY19wd20gKnB3bTsKKwlzdHJ1Y3QgcHdtX2NoaXAg KmNoaXA7CisJaW50IHJlczsKKworCXB3bSA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXpl b2YoKnB3bSksIEdGUF9LRVJORUwpOworCWlmICghcHdtKQorCQlyZXR1cm4gLUVOT01FTTsKKwor CXB3bS0+ZWMgPSBlYzsKKwlwd20tPmRldiA9ICZwZGV2LT5kZXY7CisKKwljaGlwID0gJnB3bS0+ Y2hpcDsKKwljaGlwLT5kZXYgPSAmcGRldi0+ZGV2OworCWNoaXAtPm9wcyA9ICZudHhlY19wd21f b3BzOworCWNoaXAtPmJhc2UgPSAtMTsKKwljaGlwLT5ucHdtID0gMTsKKworCXJlcyA9IHB3bWNo aXBfYWRkKGNoaXApOworCWlmIChyZXMgPCAwKQorCQlyZXR1cm4gcmVzOworCisJcGxhdGZvcm1f c2V0X2RydmRhdGEocGRldiwgcHdtKTsKKworCXJldHVybiAocmVzIDwgMCkgPyAtRUlPIDogMDsK K30KKworc3RhdGljIGludCBudHhlY19wd21fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCit7CisJc3RydWN0IG50eGVjX3B3bSAqcHdtID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEo cGRldik7CisJc3RydWN0IHB3bV9jaGlwICpjaGlwID0gJnB3bS0+Y2hpcDsKKworCXJldHVybiBw d21jaGlwX3JlbW92ZShjaGlwKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgbnR4ZWNfcHdtX29mX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJuZXRyb25peCxu dHhlYy1wd20iIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG50eGVjX3B3 bV9vZl9tYXRjaCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG50eGVjX3B3bV9k cml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAibnR4ZWMtcHdtIiwKKwkJLm9mX21h dGNoX3RhYmxlID0gbnR4ZWNfcHdtX29mX21hdGNoLAorCX0sCisJLnByb2JlID0gbnR4ZWNfcHdt X3Byb2JlLAorCS5yZW1vdmUgPSBudHhlY19wd21fcmVtb3ZlLAorfTsKK21vZHVsZV9wbGF0Zm9y bV9kcml2ZXIobnR4ZWNfcHdtX2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIkpvbmF0aGFuIE5l dXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04o IlBXTSBkcml2ZXIgZm9yIE5ldHJvbml4IEVDIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0t CjIuMjguMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK