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 E6A48C433E0 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 8ED7822CAE for ; Sat, 16 Jan 2021 20:56:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8ED7822CAE 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=Px6F0khhwFJoSaQq4XpECv4wVP6yvg3BMeN4UhutnIc=; b=rp3eIfybFgh56kPSrY06alMKi /OiQ76XuyNTQq3agYyBhGtHXMVBtc9sSJt30wopg/E8JEej3bb2SXJy17mGEmsDHug6q8XN17pNK+ zpyGON4MT8XS3FoRWcbZnxfpmCQqt23kidixpSlnn/PlPnbTf404tM7sIx0PzZtiXkCUBTft/iTYg ghTpeZLRxdjy61ZV+nr2CjbWP/wrfV2yxsHHjOgYgA7cu57R3VbOveLdZwIMY05PRk23upt/PodlP F2LgarEf8dbfJcuYfxr5I11Xi47znkAFCsdZzJ+id9QZcvKC1mCnN+FoIiAZPpQdlMIxKI9YxkwSi 5e5M6Gvzw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l0saf-0004sI-Ef; Sat, 16 Jan 2021 20:54:33 +0000 Received: from mout.gmx.net ([212.227.17.22]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l0sac-0004rm-Fu for linux-arm-kernel@lists.infradead.org; Sat, 16 Jan 2021 20:54:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1610830437; bh=htvvCNs4FySpgIx3KYqNE7hzLBDcFLrrcug3g/cjWQ4=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=K0S5ysApmYyApHZI4XTHMUxXGPE4ejKD/DO3A9vF6BVjKTdiYfcfe7Nca717K+u33 JiHvEq1yhe5zfkr+aM4bRt61B0XGdhTfmO+z3q2Z78e0LLLiSYRYtvAVOK49baCAQJ 50BdFguXt8lG3hb+ox0zYhmPFZHERnJf3xpQDmFE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from longitude ([37.201.215.209]) by mail.gmx.com (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M7sDq-1l4i4V0S2c-0054kN; Sat, 16 Jan 2021 21:53:57 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Subject: [PATCH v8 5/7] rtc: New driver for RTC in Netronix embedded controller Date: Sat, 16 Jan 2021 20:48:24 +0100 Message-Id: <20210116194826.3866540-6-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:hDgiveW+962CxPjTkilMmElkf+a6Dxrv5YTjcrlDHEGgXquWnAz 2AFXjvbONsrcdIp760AjFzkhkgP2GOUPCT3OGPCnghZB40/3v1eVPgx3rVLMHerbHuXWikb dztTqAvlY98v5hAetMGlLKA2TCVwYPmQq8CPebOAiUkQuhfc2qqHc6NHY3hGKipBij1vmCf MHmagwWiX7bNzb2jLU5Bw== X-UI-Out-Filterresults: notjunk:1;V03:K0:F2IcZSfByuE=:3uqeR2rNH6N2RD/v3MTuIS n9/dGBP9s7WnOfI96UuNyI4mGNz1JAxHsZOk6703tpd+ys7IId55L6LHGkLJFqqJBLyMPWAAK 1L7x5ZUvKkkYfJPKfM8ydqURW+MjKFkOJFuekzWVmoF7DaGsD3sAlZEiQlM5ya9QQvkzxPQUq WsClsRT+KpBhSkh1LJPyiPvSDkZkoMN5SwPo6Ja/mK9WR6jF36tR8euR/zEUbfrB/u4oKZaMx BKcyKO2eEoybqNRQDJdDmGxeImfyzj7emwpbEE4FS9oMrSyB9xe8s/m2AqQiIiVjMft6VjkqR 4vLA5xOZ/UrehtmGFv74TOXEMMJvyGgTqgeJQPwxh156rK8G5uvJDELBjfxHrB136G4LB56K/ lYi306rcpnsorzoVbWKewGldnrZ70omeQJ4eAjmWkGHXchy+Fy433vCZDdy/KxyH2n6YqBE62 uga5JoZQ7Fv8sSMTaXpgyqHHoYcWP8xZB9pU8e4B+ClykUY0xLrUNZM13JwIeXv+OSqzSFAVi OMINReyPsw39s6JS9Nb+PK3gxc+DsJB72bWG0gzqPOYLE9sPllGWoNix5uZ4ViMYUXUKzAe1h yEsn8zyvFoaP98Sg26jHqXCn31enZ3fVd9hS60cmOqTeiWtWkAL3sr5yZ+6HLmMRQgdgFx/Yw x1iEJsuZosepYxZjkF2uUjF1i+GeUHtT1Xm6pOwFNRfBwy0EdkZiQ9xI0XtA045TJR75tDZRr hA8DxVRgbMJQ4d8ZP2PyhwaQPTN8hX47Nt3VBMwqbY71vvBpvgELk6N4h972kk4aVzxvPsMBB q23db0zumyu0VUONFUHRLlOdnF22fbdsLAjSZilbeiAvNlNbG6b/50Ndx1rrtGmFjakc0pe5d ZOA0KjXG185AWPUiDvuQ== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210116_155430_887413_6DD1D12D X-CRM114-Status: GOOD ( 30.97 ) 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 V2l0aCB0aGlzIGRyaXZlciwgbWFpbmxpbmUgTGludXggY2FuIGtlZXAgaXRzIHRpbWUgYW5kIGRh dGUgaW4gc3luYyB3aXRoCnRoZSB2ZW5kb3Iga2VybmVsLgoKQWR2YW5jZWQgZnVuY3Rpb25hbGl0 eSBsaWtlIGFsYXJtIGFuZCBhdXRvbWF0aWMgcG93ZXItb24gaXMgbm90IHlldApzdXBwb3J0ZWQu CgpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBOZXVzY2jDpGZlciA8ai5uZXVzY2hhZWZlckBnbXgu bmV0PgpBY2tlZC1ieTogQWxleGFuZHJlIEJlbGxvbmkgPGFsZXhhbmRyZS5iZWxsb25pQGJvb3Rs aW4uY29tPgotLS0Kdjg6Ci0gQ29weSBkZXYub2Zfbm9kZSBmcm9tIHBhcmVudCBkZXZpY2UKCnY3 OgotIEFkanVzdCB0byByZWNlbnQgUlRDIEFQSSBjaGFuZ2UgKHJ0Y19yZWdpc3Rlcl9kZXZpY2Ug LT4gZGV2bV9ydGNfcmVnaXN0ZXJfZGV2aWNlKQoKdjY6Ci0gbm8gY2hhbmdlcwoKdjU6Ci0gaHR0 cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIwMTIwMTAxMTUxMy4xNjI3MDI4LTYtai5uZXVz Y2hhZWZlckBnbXgubmV0LwotIEFkZCBBbGV4YW5kcmUgQmVsbG9uaSdzIEEtYgotIFVzZSByZWdt YXBfbXVsdGlfcmVnX3dyaXRlCgp2NDoKLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIw MjAxMTIyMjIyNzM5LjE0NTUxMzItNi1qLm5ldXNjaGFlZmVyQGdteC5uZXQvCi0gUmVtb3ZlICJk cml2ZXIiIGZyb20gS2NvbmZpZyBlbnRyeSBmb3IgY29uc2lzdGVuY3kgd2l0aCBtb3N0IG90aGVy IGVudHJpZXMKLSBBZGQgbWlzc2luZyBNT0RVTEVfQUxJQVMgbGluZQotIEdpdmUgTlRYRUNfUkVH X1JFQURfIG1hY3JvcyBsb25nZXIgbmFtZXMKLSBTb2x2ZSB0aGUgcmVhZCB0ZWFyaW5nIGlzc3Vl IHVzaW5nIEFsZXhhbmRyZSBCZWxsb25pJ3MgYWxnb3JpdGhtCi0gU29sdmUgdGhlIHdyaXRlIHRl YXJpbmcgaXNzdWUgdXNpbmcgVXdlIEtsZWluZS1Lw7ZuaWcncyBhbGdvcml0aG0KLSBTcGVsbCBv dXQgT0RNCgp2MzoKLSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjAwOTI0MTkyNDU1 LjI0ODQwMDUtNi1qLm5ldXNjaGFlZmVyQGdteC5uZXQvCi0gQWRkIGVtYWlsIGFkZHJlc3MgdG8g Y29weXJpZ2h0IGxpbmUKLSBSZW1vdmUgT0YgY29tcGF0aWJsZSBzdHJpbmcgYW5kIGRvbid0IGlu Y2x1ZGUgbGludXgvb2ZfZGV2aWNlLmgKLSBEb24ndCB1c2UgYSBjb21tYSBhZnRlciBzZW50aW5l bHMKLSBBdm9pZCByZXQgfD0gLi4uIHBhdHRlcm4KLSBNb3ZlIDgtYml0IHJlZ2lzdGVyIGNvbnZl cnNpb24gdG8gbnR4ZWMuaAotIFJlbGljZW5zZSBhcyBHUEx2MiBvciBsYXRlcgoKdjI6Ci0gaHR0 cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIwMDkwNTEzMzIzMC4xMDE0NTgxLTctai5uZXVz Y2hhZWZlckBnbXgubmV0LwotIFJld29yayB0b3Atb2YtZmlsZSBjb21tZW50IFtMZWUgSm9uZXNd Ci0gU29ydCB0aGUgI2luY2x1ZGUgbGluZXMgW0FsZXhhbmRyZSBCZWxsb25pXQotIGRvbid0IGFs aWduID0gc2lnbnMgaW4gc3RydWN0IGluaXRpYWxpemVycyBbVXdlIEtsZWluZS1Lw7ZuaWddCi0g U3dpdGNoIHRvIHJlZ21hcAotIEZpeCByZWdpc3RlciBudW1iZXIgdXNlZCB0byByZWFkIG1pbnV0 ZXMgYW5kIHNlY29uZHMKLSBQcmVmaXggcmVnaXN0ZXJzIHdpdGggTlRYRUNfUkVHXwotIEFkZCBo ZWxwIHRleHQgdG8gdGhlIEtjb25maWcgb3B0aW9uCi0gVXNlIGRldm1fcnRjX2FsbG9jYXRlX2Rl dmljZSBhbmQgcnRjX3JlZ2lzdGVyX2RldmljZSwgc2V0IC0+cmFuZ2VfbWluIGFuZCAtPnJhbmdl X21heAotLS0KIGRyaXZlcnMvcnRjL0tjb25maWcgICAgIHwgICA4ICsrKwogZHJpdmVycy9ydGMv TWFrZWZpbGUgICAgfCAgIDEgKwogZHJpdmVycy9ydGMvcnRjLW50eGVjLmMgfCAxNDUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNTQg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcnRjL3J0Yy1udHhlYy5j CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvS2NvbmZpZyBiL2RyaXZlcnMvcnRjL0tjb25maWcK aW5kZXggNjEyM2Y5ZjRmYmM5MC4uZDQ5Y2YzODdhZGQxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9y dGMvS2NvbmZpZworKysgYi9kcml2ZXJzL3J0Yy9LY29uZmlnCkBAIC0xMzE1LDYgKzEzMTUsMTQg QEAgY29uZmlnIFJUQ19EUlZfQ1JPU19FQwogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVp bHQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBydGMt Y3Jvcy1lYy4KCitjb25maWcgUlRDX0RSVl9OVFhFQworCXRyaXN0YXRlICJOZXRyb25peCBlbWJl ZGRlZCBjb250cm9sbGVyIFJUQyIKKwlkZXBlbmRzIG9uIE1GRF9OVFhFQworCWhlbHAKKwkgIFNh eSB5ZXMgaGVyZSBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IHRoZSBSVEMgZnVuY3Rpb25hbGl0eSBv ZiB0aGUKKwkgIGVtYmVkZGVkIGNvbnRyb2xsZXIgZm91bmQgaW4gY2VydGFpbiBlLWJvb2sgcmVh ZGVycyBkZXNpZ25lZCBieSB0aGUKKwkgIG9yaWdpbmFsIGRlc2lnbiBtYW51ZmFjdHVyZXIgTmV0 cm9uaXguCisKIGNvbW1lbnQgIm9uLUNQVSBSVEMgZHJpdmVycyIKCiBjb25maWcgUlRDX0RSVl9B U005MjYwCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9NYWtlZmlsZSBiL2RyaXZlcnMvcnRjL01h a2VmaWxlCmluZGV4IGJiOGYzMTliMDlmYmYuLjkyYzI2ZWFmZTcwY2UgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvcnRjL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcnRjL01ha2VmaWxlCkBAIC0xMTAsNiAr MTEwLDcgQEAgb2JqLSQoQ09ORklHX1JUQ19EUlZfTVQ3NjIyKQkrPSBydGMtbXQ3NjIyLm8KIG9i ai0kKENPTkZJR19SVENfRFJWX01WKQkrPSBydGMtbXYubwogb2JqLSQoQ09ORklHX1JUQ19EUlZf TVhDKQkrPSBydGMtbXhjLm8KIG9iai0kKENPTkZJR19SVENfRFJWX01YQ19WMikJKz0gcnRjLW14 Y192Mi5vCitvYmotJChDT05GSUdfUlRDX0RSVl9OVFhFQykJKz0gcnRjLW50eGVjLm8KIG9iai0k KENPTkZJR19SVENfRFJWX09NQVApCSs9IHJ0Yy1vbWFwLm8KIG9iai0kKENPTkZJR19SVENfRFJW X09QQUwpCSs9IHJ0Yy1vcGFsLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1BBTE1BUykJKz0gcnRj LXBhbG1hcy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtbnR4ZWMuYyBiL2RyaXZlcnMv cnRjL3J0Yy1udHhlYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAu Ljg1MGNhNDkxODZmZGMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3J0Yy9ydGMtbnR4ZWMu YwpAQCAtMCwwICsxLDE0NSBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAt b3ItbGF0ZXIKKy8qCisgKiBUaGUgTmV0cm9uaXggZW1iZWRkZWQgY29udHJvbGxlciBpcyBhIG1p Y3JvY29udHJvbGxlciBmb3VuZCBpbiBzb21lCisgKiBlLWJvb2sgcmVhZGVycyBkZXNpZ25lZCBi eSB0aGUgb3JpZ2luYWwgZGVzaWduIG1hbnVmYWN0dXJlciBOZXRyb25peCwgSW5jLgorICogSXQg Y29udGFpbnMgUlRDLCBiYXR0ZXJ5IG1vbml0b3JpbmcsIHN5c3RlbSBwb3dlciBtYW5hZ2VtZW50 LCBhbmQgUFdNCisgKiBmdW5jdGlvbmFsaXR5LgorICoKKyAqIFRoaXMgZHJpdmVyIGltcGxlbWVu dHMgYWNjZXNzIHRvIHRoZSBSVEMgdGltZSBhbmQgZGF0ZS4KKyAqCisgKiBDb3B5cmlnaHQgMjAy MCBKb25hdGhhbiBOZXVzY2jDpGZlciA8ai5uZXVzY2hhZWZlckBnbXgubmV0PgorICovCisKKyNp bmNsdWRlIDxsaW51eC9tZmQvbnR4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNp bmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAu aD4KKyNpbmNsdWRlIDxsaW51eC9ydGMuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCitz dHJ1Y3QgbnR4ZWNfcnRjIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IG50eGVjICpl YzsKK307CisKKyNkZWZpbmUgTlRYRUNfUkVHX1dSSVRFX1lFQVIJMHgxMAorI2RlZmluZSBOVFhF Q19SRUdfV1JJVEVfTU9OVEgJMHgxMQorI2RlZmluZSBOVFhFQ19SRUdfV1JJVEVfREFZCTB4MTIK KyNkZWZpbmUgTlRYRUNfUkVHX1dSSVRFX0hPVVIJMHgxMworI2RlZmluZSBOVFhFQ19SRUdfV1JJ VEVfTUlOVVRFCTB4MTQKKyNkZWZpbmUgTlRYRUNfUkVHX1dSSVRFX1NFQ09ORAkweDE1CisKKyNk ZWZpbmUgTlRYRUNfUkVHX1JFQURfWUVBUl9NT05USAkweDIwCisjZGVmaW5lIE5UWEVDX1JFR19S RUFEX01EQVlfSE9VUgkweDIxCisjZGVmaW5lIE5UWEVDX1JFR19SRUFEX01JTlVURV9TRUNPTkQJ MHgyMworCitzdGF0aWMgaW50IG50eGVjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBydGNfdGltZSAqdG0pCit7CisJc3RydWN0IG50eGVjX3J0YyAqcnRjID0gZGV2X2dldF9k cnZkYXRhKGRldik7CisJdW5zaWduZWQgaW50IHZhbHVlOworCWludCByZXM7CisKK3JldHJ5Ogor CXJlcyA9IHJlZ21hcF9yZWFkKHJ0Yy0+ZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1JFQURfTUlOVVRF X1NFQ09ORCwgJnZhbHVlKTsKKwlpZiAocmVzIDwgMCkKKwkJcmV0dXJuIHJlczsKKworCXRtLT50 bV9taW4gPSB2YWx1ZSA+PiA4OworCXRtLT50bV9zZWMgPSB2YWx1ZSAmIDB4ZmY7CisKKwlyZXMg PSByZWdtYXBfcmVhZChydGMtPmVjLT5yZWdtYXAsIE5UWEVDX1JFR19SRUFEX01EQVlfSE9VUiwg JnZhbHVlKTsKKwlpZiAocmVzIDwgMCkKKwkJcmV0dXJuIHJlczsKKworCXRtLT50bV9tZGF5ID0g dmFsdWUgPj4gODsKKwl0bS0+dG1faG91ciA9IHZhbHVlICYgMHhmZjsKKworCXJlcyA9IHJlZ21h cF9yZWFkKHJ0Yy0+ZWMtPnJlZ21hcCwgTlRYRUNfUkVHX1JFQURfWUVBUl9NT05USCwgJnZhbHVl KTsKKwlpZiAocmVzIDwgMCkKKwkJcmV0dXJuIHJlczsKKworCXRtLT50bV95ZWFyID0gKHZhbHVl ID4+IDgpICsgMTAwOworCXRtLT50bV9tb24gPSAodmFsdWUgJiAweGZmKSAtIDE7CisKKwkvKgor CSAqIFJlYWQgdGhlIG1pbnV0ZXMvc2Vjb25kcyBmaWVsZCBhZ2Fpbi4gSWYgaXQgY2hhbmdlZCBz aW5jZSB0aGUgZmlyc3QKKwkgKiByZWFkLCB3ZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUgdmFsdWVz IHJlYWQgc28gZmFyIGFyZSBjb25zaXN0ZW50LAorCSAqIGFuZCBzaG91bGQgc3RhcnQgZnJvbSB0 aGUgYmVnaW5uaW5nLgorCSAqLworCXJlcyA9IHJlZ21hcF9yZWFkKHJ0Yy0+ZWMtPnJlZ21hcCwg TlRYRUNfUkVHX1JFQURfTUlOVVRFX1NFQ09ORCwgJnZhbHVlKTsKKwlpZiAocmVzIDwgMCkKKwkJ cmV0dXJuIHJlczsKKworCWlmICh0bS0+dG1fbWluICE9IHZhbHVlID4+IDggfHwgdG0tPnRtX3Nl YyAhPSAodmFsdWUgJiAweGZmKSkKKwkJZ290byByZXRyeTsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IG50eGVjX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190 aW1lICp0bSkKK3sKKwlzdHJ1Y3QgbnR4ZWNfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKKworCS8qCisJICogVG8gYXZvaWQgdGltZSBvdmVyZmxvd3Mgd2hpbGUgd2UncmUgd3JpdGlu ZyB0aGUgZnVsbCBkYXRlL3RpbWUsCisJICogc2V0IHRoZSBzZWNvbmRzIGZpZWxkIHRvIHplcm8g YmVmb3JlIGRvaW5nIGFueXRoaW5nIGVsc2UuIEZvciB0aGUKKwkgKiBuZXh0IDU5IHNlY29uZHMg KHBsdXMgaG93ZXZlciBsb25nIGl0IHRha2VzIHVudGlsIHRoZSBSVEMncyBuZXh0CisJICogdXBk YXRlIG9mIHRoZSBzZWNvbmQgZmllbGQpLCB0aGUgc2Vjb25kcyBmaWVsZCB3aWxsIG5vdCBvdmVy ZmxvdworCSAqIGludG8gdGhlIG90aGVyIGZpZWxkcy4KKwkgKi8KKwlzdHJ1Y3QgcmVnX3NlcXVl bmNlIHJlZ3NbXSA9IHsKKwkJeyBOVFhFQ19SRUdfV1JJVEVfU0VDT05ELCBudHhlY19yZWc4KDAp IH0sCisJCXsgTlRYRUNfUkVHX1dSSVRFX1lFQVIsIG50eGVjX3JlZzgodG0tPnRtX3llYXIgLSAx MDApIH0sCisJCXsgTlRYRUNfUkVHX1dSSVRFX01PTlRILCBudHhlY19yZWc4KHRtLT50bV9tb24g KyAxKSB9LAorCQl7IE5UWEVDX1JFR19XUklURV9EQVksIG50eGVjX3JlZzgodG0tPnRtX21kYXkp IH0sCisJCXsgTlRYRUNfUkVHX1dSSVRFX0hPVVIsIG50eGVjX3JlZzgodG0tPnRtX2hvdXIpIH0s CisJCXsgTlRYRUNfUkVHX1dSSVRFX01JTlVURSwgbnR4ZWNfcmVnOCh0bS0+dG1fbWluKSB9LAor CQl7IE5UWEVDX1JFR19XUklURV9TRUNPTkQsIG50eGVjX3JlZzgodG0tPnRtX3NlYykgfSwKKwl9 OworCisJcmV0dXJuIHJlZ21hcF9tdWx0aV9yZWdfd3JpdGUocnRjLT5lYy0+cmVnbWFwLCByZWdz LCBBUlJBWV9TSVpFKHJlZ3MpKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nf b3BzIG50eGVjX3J0Y19vcHMgPSB7CisJLnJlYWRfdGltZSA9IG50eGVjX3JlYWRfdGltZSwKKwku c2V0X3RpbWUgPSBudHhlY19zZXRfdGltZSwKK307CisKK3N0YXRpYyBpbnQgbnR4ZWNfcnRjX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHJ0Y19kZXZpY2Ug KmRldjsKKwlzdHJ1Y3QgbnR4ZWNfcnRjICpydGM7CisKKwlwZGV2LT5kZXYub2Zfbm9kZSA9IHBk ZXYtPmRldi5wYXJlbnQtPm9mX25vZGU7CisKKwlydGMgPSBkZXZtX2t6YWxsb2MoJnBkZXYtPmRl diwgc2l6ZW9mKCpydGMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJ0YykKKwkJcmV0dXJuIC1FTk9N RU07CisKKwlydGMtPmRldiA9ICZwZGV2LT5kZXY7CisJcnRjLT5lYyA9IGRldl9nZXRfZHJ2ZGF0 YShwZGV2LT5kZXYucGFyZW50KTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBydGMpOwor CisJZGV2ID0gZGV2bV9ydGNfYWxsb2NhdGVfZGV2aWNlKCZwZGV2LT5kZXYpOworCWlmIChJU19F UlIoZGV2KSkKKwkJcmV0dXJuIFBUUl9FUlIoZGV2KTsKKworCWRldi0+b3BzID0gJm50eGVjX3J0 Y19vcHM7CisJZGV2LT5yYW5nZV9taW4gPSBSVENfVElNRVNUQU1QX0JFR0lOXzIwMDA7CisJZGV2 LT5yYW5nZV9tYXggPSA5MDI1MjU3NTk5TEw7IC8qIDIyNTUtMTItMzEgMjM6NTk6NTkgKi8KKwor CXJldHVybiBkZXZtX3J0Y19yZWdpc3Rlcl9kZXZpY2UoZGV2KTsKK30KKworc3RhdGljIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgbnR4ZWNfcnRjX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQku bmFtZSA9ICJudHhlYy1ydGMiLAorCX0sCisJLnByb2JlID0gbnR4ZWNfcnRjX3Byb2JlLAorfTsK K21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIobnR4ZWNfcnRjX2RyaXZlcik7CisKK01PRFVMRV9BVVRI T1IoIkpvbmF0aGFuIE5ldXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+Iik7CitNT0RV TEVfREVTQ1JJUFRJT04oIlJUQyBkcml2ZXIgZm9yIE5ldHJvbml4IEVDIik7CitNT0RVTEVfTElD RU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOm50eGVjLXJ0YyIpOwotLQoyLjI5 LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h cm0ta2VybmVsCg==