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=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED 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 5E90FC43381 for ; Fri, 22 Feb 2019 08:43:24 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 27B60207E0 for ; Fri, 22 Feb 2019 08:43:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="S+YsrTNS"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Gz7AFVhR" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 27B60207E0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=50AdXcN5k0KI+79FuN5HVqzLa5LN8de5BhIrIEpoBAA=; b=S+YsrTNSHyvQnH BOs5hzbZ/yPJhh5wC+YEFw/Lz7e7PljSsdx2FYYvB3qiLkjYCj0GOMG9hs567K36YAASmGm0rd9y5 5txeCNJeXyA9nKmpoVmFiLYdbC1Ij8wpYJmMGmvN4O3LUJaWHPfIMkquVstziH5U785zH6Y82zBfM 2LMgJvDlco0NtKy8Z1iH6dpEKjXYRKOFWD03F3GeZww4Y53PIgnARMQusueS9+YTdFLoXVaFsmpzE nzTPwEsahdKGg+dHHUc9w2VvlawfeLkPuPZ9YeIktFmDSxmtTA0pAnsyGEersIZKffwSGEwm8sdpU bYED3NgnyOAEdRZBE/gA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gx6QT-0003md-2e; Fri, 22 Feb 2019 08:43:21 +0000 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gx6QO-0003m4-6l for linux-arm-kernel@lists.infradead.org; Fri, 22 Feb 2019 08:43:18 +0000 Received: by mail-wr1-x442.google.com with SMTP id l5so1422830wrw.6 for ; Fri, 22 Feb 2019 00:43:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=TIMkDMfthmAAU01Oq36l3p4cue8tx03A0VQKFdmbIZw=; b=Gz7AFVhRwOSNT+tQySrUlUGAvyQiopdU4n81tghKucl4i+HPPLU60RiXs9863r351E Jfr3h4+ELupqHIr0fpnOjuloSmfzPAzlimnU13TeWMWADaQLTCD+cW0aWV/RVgiAHs1l MsRE0/zwlx5T9Ep6E87BUIWAbegnZiVIVr0pl3bym9a/i2/2XfRVnbV3qGkzj3yCtJ1f S2Qd0NqZyzRREjVJBV9YqwJ/Eg5DMXZQSTbdFwpTx8bIZu5wx719nnz85iva4E3zeIZS nWnM/Wny0sgQUd5U+rnfWpW4VHg35U2v54NlUbT8C+Q5LmXfQLGM220esA8sDCGfoTMk Xjzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=TIMkDMfthmAAU01Oq36l3p4cue8tx03A0VQKFdmbIZw=; b=B1FB6p0BCn8G1TXkVfwM9qlGWk3aKRrs14LGSdRFZOP+GcSlubG3FycVZTVwdQ9ttY aeLIO2l/uyjtJb5AcM67C+UonTWDcWj6yqls3MpkdVFeR0vFyoh7fQgMTBtNpgh5jTnl f1Asz3SK/rerlChmpKhhL+62agIyH29ruS8pRegkm+ZtQ6TifmzanH2TS2zV36H5hPlK URWnImEFKI776f022TysE1DQ0qljcmuWYcw2CodZ6aXE+r8hu3krcDKqbxKkM7WtMxR7 Yvf6QOaxpfGH2evIdu9F6PyVxPDaZtD5wc/L0zBiDn7ugkB+PJcc0xsl6RPVmv6FgXR2 jCUg== X-Gm-Message-State: AHQUAua+FpondwaVD1h9TGqx5AIZUZ7QFioKoFUy5wZp22A+UQM9mL5U HBvqHh7zEjjoUGXyEukyYs/b3A== X-Google-Smtp-Source: AHgI3IZ2BKOL/A3JExPYC2/A1kohCzIeackHfd17ynsdQnQ8NHEKrqtY8tEP7poycygAnZEEK8LaCg== X-Received: by 2002:adf:9f54:: with SMTP id f20mr2107268wrg.88.1550824994114; Fri, 22 Feb 2019 00:43:14 -0800 (PST) Received: from [192.168.0.41] (222.51.92.92.rev.sfr.net. [92.92.51.222]) by smtp.googlemail.com with ESMTPSA id 132sm2772605wmd.27.2019.02.22.00.43.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 00:43:13 -0800 (PST) Subject: Re: [PATCH V7 2/8] clocksource: tegra: add Tegra210 timer support To: Joseph Lo , Thierry Reding , Jonathan Hunter , Thomas Gleixner References: <20190221072150.4395-1-josephl@nvidia.com> <20190221072150.4395-3-josephl@nvidia.com> From: Daniel Lezcano Message-ID: <6dbc34d0-6922-0eab-48ca-ddcae4554655@linaro.org> Date: Fri, 22 Feb 2019 09:43:12 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <20190221072150.4395-3-josephl@nvidia.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190222_004316_255805_49A935FD X-CRM114-Status: GOOD ( 31.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-tegra@vger.kernel.org, Thierry Reding , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjEvMDIvMjAxOSAwODoyMSwgSm9zZXBoIExvIHdyb3RlOgo+IEFkZCBzdXBwb3J0IGZvciB0 aGUgVGVncmEyMTAgdGltZXIgdGhhdCBydW5zIGF0IG9zY2lsbGF0b3IgY2xvY2sKPiAoVE1SMTAt VE1SMTMpLiBXZSBuZWVkIHRoZXNlIHRpbWVycyB0byB3b3JrIGFzIGNsb2NrIGV2ZW50IGRldmlj ZSBhbmQgdG8KPiByZXBsYWNlIHRoZSBBUk12OCBhcmNoaXRlY3RlZCB0aW1lciBkdWUgdG8gaXQg Y2FuJ3Qgc3Vydml2ZSBhY3Jvc3MgdGhlCj4gcG93ZXIgY3ljbGUgb2YgdGhlIENQVSBjb3JlIG9y IENQVVBPUkVTRVQgc2lnbmFsLiBTbyBpdCBjYW4ndCBiZSBhIHdha2UtdXAKPiBzb3VyY2Ugd2hl biBDUFUgc3VzcGVuZHMgaW4gcG93ZXIgZG93biBzdGF0ZS4KPiAKPiBBbHNvIGNvbnZlcnQgdGhl IG9yaWdpbmFsIGRyaXZlciB0byB1c2UgdGltZXItb2YgQVBJLgo+IAo+IENjOiBEYW5pZWwgTGV6 Y2FubyA8ZGFuaWVsLmxlemNhbm9AbGluYXJvLm9yZz4KPiBDYzogVGhvbWFzIEdsZWl4bmVyIDx0 Z2x4QGxpbnV0cm9uaXguZGU+Cj4gQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKPiBT aWduZWQtb2ZmLWJ5OiBKb3NlcGggTG8gPGpvc2VwaGxAbnZpZGlhLmNvbT4KPiBBY2tlZC1ieTog VGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiBBY2tlZC1ieTogSm9uIEh1bnRl ciA8am9uYXRoYW5oQG52aWRpYS5jb20+Cj4gLS0tCgpBY2tlZC1ieTogRGFuaWVsIExlemNhbm8g PGRhbmllbC5sZXpjYW5vQGxpbmFyby5vcmc+CgpXaWxsIHlvdSB0YWtlIGNhcmUgb2YgZHJvcHBp bmcgdGhlIHBlcnNpc3RlbnQgY2xvY2tzb3VyY2UgY29kZSBpbiB0aGlzCmRyaXZlcj8KCj4gdjc6 Cj4gICoga2NvbmZpZyBmaXggZm9yICdkZXBlbmRzIG9uIEFSTSB8fCBBUk02NCcKPiAgKiBtb3Zl IHN1c3BlbmQvcmVzdW1lIHRvIGNsa2V2dAo+ICAqIHJlZmluZSB0aGUgdXNhZ2UgZm9yIHRoZSBt YWNybyBvZiBUSU1FUl9PRl9ERUNMQVJFCj4gdjY6Cj4gICogcmVmaW5lIHRoZSB0aW1lciBkZWZp bmVzCj4gICogYWRkIGFjayB0YWcgZnJvbSBKb24uCj4gdjU6Cj4gICogYWRkIGFjayB0YWcgZnJv bSBUaGllcnJ5Cj4gdjQ6Cj4gICogbWVyZ2UgdGltZXItdGVncmEyMTAuYyBpbiBwcmV2aW91cyB2 ZXJzaW9uIGludG8gdGltZXItdGVncmEyMC5jCj4gdjM6Cj4gICogdXNlIHRpbWVyLW9mIEFQSQo+ IHYyOgo+ICAqIGFkZCBlcnJvciBjbGVhbi11cCBjb2RlCj4gLS0tCj4gIGRyaXZlcnMvY2xvY2tz b3VyY2UvS2NvbmZpZyAgICAgICAgIHwgICAzICstCj4gIGRyaXZlcnMvY2xvY2tzb3VyY2UvdGlt ZXItdGVncmEyMC5jIHwgMzcwICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgaW5jbHVk ZS9saW51eC9jcHVob3RwbHVnLmggICAgICAgICAgfCAgIDEgKwo+ICAzIGZpbGVzIGNoYW5nZWQs IDI2MiBpbnNlcnRpb25zKCspLCAxMTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY2xvY2tzb3VyY2UvS2NvbmZpZyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvS2NvbmZpZwo+ IGluZGV4IDhkZmQzYmM0NDhkMC4uNWQ5M2U1ODBlNWRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Y2xvY2tzb3VyY2UvS2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvS2NvbmZpZwo+ IEBAIC0xMzEsNyArMTMxLDggQEAgY29uZmlnIFNVTjVJX0hTVElNRVIKPiAgY29uZmlnIFRFR1JB X1RJTUVSCj4gIAlib29sICJUZWdyYSB0aW1lciBkcml2ZXIiIGlmIENPTVBJTEVfVEVTVAo+ICAJ c2VsZWN0IENMS1NSQ19NTUlPCj4gLQlkZXBlbmRzIG9uIEFSTQo+ICsJc2VsZWN0IFRJTUVSX09G Cj4gKwlkZXBlbmRzIG9uIEFSTSB8fCBBUk02NAo+ICAJaGVscAo+ICAJICBFbmFibGVzIHN1cHBv cnQgZm9yIHRoZSBUZWdyYSBkcml2ZXIuCj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsb2Nr c291cmNlL3RpbWVyLXRlZ3JhMjAuYyBiL2RyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXItdGVncmEy MC5jCj4gaW5kZXggNDI5Mzk0M2Y0ZTJiLi5mZGIzZDc5NWE0MDkgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9jbG9ja3NvdXJjZS90aW1lci10ZWdyYTIwLmMKPiArKysgYi9kcml2ZXJzL2Nsb2Nrc291 cmNlL3RpbWVyLXRlZ3JhMjAuYwo+IEBAIC0xNSwyMSArMTUsMjQgQEAKPiAgICoKPiAgICovCj4g IAo+IC0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4g KyNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jcHUuaD4K PiArI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+ Cj4gICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KPiAg I2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+IC0jaW5jbHVkZSA8bGludXgvaXJxLmg+Cj4g LSNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9jbG9ja3Nv dXJjZS5oPgo+IC0jaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9pby5o Pgo+ICAjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgo+ICAjaW5jbHVkZSA8bGludXgvb2Zf aXJxLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3Nj aGVkX2Nsb2NrLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+ICsjaW5jbHVkZSA8bGlu dXgvdGltZS5oPgo+ICsKPiArI2luY2x1ZGUgInRpbWVyLW9mLmgiCj4gIAo+ICsjaWZkZWYgQ09O RklHX0FSTQo+ICAjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgo+ICsjZW5kaWYKPiAgCj4gICNk ZWZpbmUgUlRDX1NFQ09ORFMgICAgICAgICAgICAweDA4Cj4gICNkZWZpbmUgUlRDX1NIQURPV19T RUNPTkRTICAgICAweDBjCj4gQEAgLTM5LDc0ICs0MiwxNjEgQEAKPiAgI2RlZmluZSBUSU1FUlVT X1VTRUNfQ0ZHIDB4MTQKPiAgI2RlZmluZSBUSU1FUlVTX0NOVFJfRlJFRVpFIDB4NGMKPiAgCj4g LSNkZWZpbmUgVElNRVIxX0JBU0UgMHgwCj4gLSNkZWZpbmUgVElNRVIyX0JBU0UgMHg4Cj4gLSNk ZWZpbmUgVElNRVIzX0JBU0UgMHg1MAo+IC0jZGVmaW5lIFRJTUVSNF9CQVNFIDB4NTgKPiAtCj4g LSNkZWZpbmUgVElNRVJfUFRWIDB4MAo+IC0jZGVmaW5lIFRJTUVSX1BDUiAweDQKPiAtCj4gKyNk ZWZpbmUgVElNRVJfUFRWCQkweDAKPiArI2RlZmluZSBUSU1FUl9QVFZfRU4JCUJJVCgzMSkKPiAr I2RlZmluZSBUSU1FUl9QVFZfUEVSCQlCSVQoMzApCj4gKyNkZWZpbmUgVElNRVJfUENSCQkweDQK PiArI2RlZmluZSBUSU1FUl9QQ1JfSU5UUl9DTFIJQklUKDMwKQo+ICsKPiArI2lmZGVmIENPTkZJ R19BUk0KPiArI2RlZmluZSBUSU1FUl9DUFUwCQkweDUwIC8qIFRJTUVSMyAqLwo+ICsjZWxzZQo+ ICsjZGVmaW5lIFRJTUVSX0NQVTAJCTB4OTAgLyogVElNRVIxMCAqLwo+ICsjZGVmaW5lIFRJTUVS MTBfSVJRX0lEWAkJMTAKPiArI2RlZmluZSBJUlFfSURYX0ZPUl9DUFUoY3B1KQkoVElNRVIxMF9J UlFfSURYICsgY3B1KQo+ICsjZW5kaWYKPiArI2RlZmluZSBUSU1FUl9CQVNFX0ZPUl9DUFUoY3B1 KSAoVElNRVJfQ1BVMCArIChjcHUpICogOCkKPiArCj4gK3N0YXRpYyB1MzIgdXNlY19jb25maWc7 Cj4gIHN0YXRpYyB2b2lkIF9faW9tZW0gKnRpbWVyX3JlZ19iYXNlOwo+ICsjaWZkZWYgQ09ORklH X0FSTQo+ICBzdGF0aWMgdm9pZCBfX2lvbWVtICpydGNfYmFzZTsKPiAtCj4gIHN0YXRpYyBzdHJ1 Y3QgdGltZXNwZWM2NCBwZXJzaXN0ZW50X3RzOwo+ICBzdGF0aWMgdTY0IHBlcnNpc3RlbnRfbXMs IGxhc3RfcGVyc2lzdGVudF9tczsKPiAtCj4gIHN0YXRpYyBzdHJ1Y3QgZGVsYXlfdGltZXIgdGVn cmFfZGVsYXlfdGltZXI7Cj4gLQo+IC0jZGVmaW5lIHRpbWVyX3dyaXRlbCh2YWx1ZSwgcmVnKSBc Cj4gLQl3cml0ZWxfcmVsYXhlZCh2YWx1ZSwgdGltZXJfcmVnX2Jhc2UgKyAocmVnKSkKPiAtI2Rl ZmluZSB0aW1lcl9yZWFkbChyZWcpIFwKPiAtCXJlYWRsX3JlbGF4ZWQodGltZXJfcmVnX2Jhc2Ug KyAocmVnKSkKPiArI2VuZGlmCj4gIAo+ICBzdGF0aWMgaW50IHRlZ3JhX3RpbWVyX3NldF9uZXh0 X2V2ZW50KHVuc2lnbmVkIGxvbmcgY3ljbGVzLAo+ICAJCQkJCSBzdHJ1Y3QgY2xvY2tfZXZlbnRf ZGV2aWNlICpldnQpCj4gIHsKPiAtCXUzMiByZWc7Cj4gKwl2b2lkIF9faW9tZW0gKnJlZ19iYXNl ID0gdGltZXJfb2ZfYmFzZSh0b190aW1lcl9vZihldnQpKTsKPiAgCj4gLQlyZWcgPSAweDgwMDAw MDAwIHwgKChjeWNsZXMgPiAxKSA/IChjeWNsZXMtMSkgOiAwKTsKPiAtCXRpbWVyX3dyaXRlbChy ZWcsIFRJTUVSM19CQVNFICsgVElNRVJfUFRWKTsKPiArCXdyaXRlbChUSU1FUl9QVFZfRU4gfAo+ ICsJICAgICAgICgoY3ljbGVzID4gMSkgPyAoY3ljbGVzIC0gMSkgOiAwKSwgLyogbisxIHNjaGVt ZSAqLwo+ICsJICAgICAgIHJlZ19iYXNlICsgVElNRVJfUFRWKTsKPiAgCj4gIAlyZXR1cm4gMDsK PiAgfQo+ICAKPiAtc3RhdGljIGlubGluZSB2b2lkIHRpbWVyX3NodXRkb3duKHN0cnVjdCBjbG9j a19ldmVudF9kZXZpY2UgKmV2dCkKPiArc3RhdGljIGludCB0ZWdyYV90aW1lcl9zaHV0ZG93bihz dHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCj4gIHsKPiAtCXRpbWVyX3dyaXRlbCgwLCBU SU1FUjNfQkFTRSArIFRJTUVSX1BUVik7Cj4gKwl2b2lkIF9faW9tZW0gKnJlZ19iYXNlID0gdGlt ZXJfb2ZfYmFzZSh0b190aW1lcl9vZihldnQpKTsKPiArCj4gKwl3cml0ZWwoMCwgcmVnX2Jhc2Ug KyBUSU1FUl9QVFYpOwo+ICsKPiArCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHRl Z3JhX3RpbWVyX3NodXRkb3duKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKPiArc3Rh dGljIGludCB0ZWdyYV90aW1lcl9zZXRfcGVyaW9kaWMoc3RydWN0IGNsb2NrX2V2ZW50X2Rldmlj ZSAqZXZ0KQo+ICB7Cj4gLQl0aW1lcl9zaHV0ZG93bihldnQpOwo+ICsJdm9pZCBfX2lvbWVtICpy ZWdfYmFzZSA9IHRpbWVyX29mX2Jhc2UodG9fdGltZXJfb2YoZXZ0KSk7Cj4gKwo+ICsJd3JpdGVs KFRJTUVSX1BUVl9FTiB8IFRJTUVSX1BUVl9QRVIgfAo+ICsJICAgICAgICgodGltZXJfb2ZfcmF0 ZSh0b190aW1lcl9vZihldnQpKSAvIEhaKSAtIDEpLAo+ICsJICAgICAgIHJlZ19iYXNlICsgVElN RVJfUFRWKTsKPiArCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCB0ZWdyYV90 aW1lcl9zZXRfcGVyaW9kaWMoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQo+ICtzdGF0 aWMgaXJxcmV0dXJuX3QgdGVncmFfdGltZXJfaXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiAr ewo+ICsJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0ID0gKHN0cnVjdCBjbG9ja19ldmVu dF9kZXZpY2UgKilkZXZfaWQ7Cj4gKwl2b2lkIF9faW9tZW0gKnJlZ19iYXNlID0gdGltZXJfb2Zf YmFzZSh0b190aW1lcl9vZihldnQpKTsKPiArCj4gKwl3cml0ZWwoVElNRVJfUENSX0lOVFJfQ0xS LCByZWdfYmFzZSArIFRJTUVSX1BDUik7Cj4gKwlldnQtPmV2ZW50X2hhbmRsZXIoZXZ0KTsKPiAr Cj4gKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3Rp bWVyX3N1c3BlbmQoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQo+ICt7Cj4gKwl2b2lk IF9faW9tZW0gKnJlZ19iYXNlID0gdGltZXJfb2ZfYmFzZSh0b190aW1lcl9vZihldnQpKTsKPiAr Cj4gKwl3cml0ZWwoVElNRVJfUENSX0lOVFJfQ0xSLCByZWdfYmFzZSArIFRJTUVSX1BDUik7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIHRlZ3JhX3RpbWVyX3Jlc3VtZShzdHJ1Y3QgY2xvY2tfZXZl bnRfZGV2aWNlICpldnQpCj4gK3sKPiArCXdyaXRlbCh1c2VjX2NvbmZpZywgdGltZXJfcmVnX2Jh c2UgKyBUSU1FUlVTX1VTRUNfQ0ZHKTsKPiArfQo+ICsKPiArI2lmZGVmIENPTkZJR19BUk02NAo+ ICtzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRpbWVyX29mLCB0ZWdyYV90bykgPSB7Cj4g KwkuZmxhZ3MgPSBUSU1FUl9PRl9DTE9DSyB8IFRJTUVSX09GX0JBU0UsCj4gKwo+ICsJLmNsa2V2 dCA9IHsKPiArCQkubmFtZSA9ICJ0ZWdyYV90aW1lciIsCj4gKwkJLnJhdGluZyA9IDQ2MCwKPiAr CQkuZmVhdHVyZXMgPSBDTE9DS19FVlRfRkVBVF9PTkVTSE9UIHwgQ0xPQ0tfRVZUX0ZFQVRfUEVS SU9ESUMsCj4gKwkJLnNldF9uZXh0X2V2ZW50ID0gdGVncmFfdGltZXJfc2V0X25leHRfZXZlbnQs Cj4gKwkJLnNldF9zdGF0ZV9zaHV0ZG93biA9IHRlZ3JhX3RpbWVyX3NodXRkb3duLAo+ICsJCS5z ZXRfc3RhdGVfcGVyaW9kaWMgPSB0ZWdyYV90aW1lcl9zZXRfcGVyaW9kaWMsCj4gKwkJLnNldF9z dGF0ZV9vbmVzaG90ID0gdGVncmFfdGltZXJfc2h1dGRvd24sCj4gKwkJLnRpY2tfcmVzdW1lID0g dGVncmFfdGltZXJfc2h1dGRvd24sCj4gKwkJLnN1c3BlbmQgPSB0ZWdyYV90aW1lcl9zdXNwZW5k LAo+ICsJCS5yZXN1bWUgPSB0ZWdyYV90aW1lcl9yZXN1bWUsCj4gKwl9LAo+ICt9Owo+ICsKPiAr c3RhdGljIGludCB0ZWdyYV90aW1lcl9zZXR1cCh1bnNpZ25lZCBpbnQgY3B1KQo+ICB7Cj4gLQl1 MzIgcmVnID0gMHhDMDAwMDAwMCB8ICgoMTAwMDAwMCAvIEhaKSAtIDEpOwo+ICsJc3RydWN0IHRp bWVyX29mICp0byA9IHBlcl9jcHVfcHRyKCZ0ZWdyYV90bywgY3B1KTsKPiArCj4gKwlpcnFfZm9y Y2VfYWZmaW5pdHkodG8tPmNsa2V2dC5pcnEsIGNwdW1hc2tfb2YoY3B1KSk7Cj4gKwllbmFibGVf aXJxKHRvLT5jbGtldnQuaXJxKTsKPiArCj4gKwljbG9ja2V2ZW50c19jb25maWdfYW5kX3JlZ2lz dGVyKCZ0by0+Y2xrZXZ0LCB0aW1lcl9vZl9yYXRlKHRvKSwKPiArCQkJCQkxLCAvKiBtaW4gKi8K PiArCQkJCQkweDFmZmZmZmZmKTsgLyogMjkgYml0cyAqLwo+ICAKPiAtCXRpbWVyX3NodXRkb3du KGV2dCk7Cj4gLQl0aW1lcl93cml0ZWwocmVnLCBUSU1FUjNfQkFTRSArIFRJTUVSX1BUVik7Cj4g IAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2Ug dGVncmFfY2xvY2tldmVudCA9IHsKPiAtCS5uYW1lCQkJPSAidGltZXIwIiwKPiAtCS5yYXRpbmcJ CQk9IDMwMCwKPiAtCS5mZWF0dXJlcwkJPSBDTE9DS19FVlRfRkVBVF9PTkVTSE9UIHwKPiAtCQkJ CSAgQ0xPQ0tfRVZUX0ZFQVRfUEVSSU9ESUMgfAo+IC0JCQkJICBDTE9DS19FVlRfRkVBVF9EWU5J UlEsCj4gLQkuc2V0X25leHRfZXZlbnQJCT0gdGVncmFfdGltZXJfc2V0X25leHRfZXZlbnQsCj4g LQkuc2V0X3N0YXRlX3NodXRkb3duCT0gdGVncmFfdGltZXJfc2h1dGRvd24sCj4gLQkuc2V0X3N0 YXRlX3BlcmlvZGljCT0gdGVncmFfdGltZXJfc2V0X3BlcmlvZGljLAo+IC0JLnNldF9zdGF0ZV9v bmVzaG90CT0gdGVncmFfdGltZXJfc2h1dGRvd24sCj4gLQkudGlja19yZXN1bWUJCT0gdGVncmFf dGltZXJfc2h1dGRvd24sCj4gK3N0YXRpYyBpbnQgdGVncmFfdGltZXJfc3RvcCh1bnNpZ25lZCBp bnQgY3B1KQo+ICt7Cj4gKwlzdHJ1Y3QgdGltZXJfb2YgKnRvID0gcGVyX2NwdV9wdHIoJnRlZ3Jh X3RvLCBjcHUpOwo+ICsKPiArCXRvLT5jbGtldnQuc2V0X3N0YXRlX3NodXRkb3duKCZ0by0+Y2xr ZXZ0KTsKPiArCWRpc2FibGVfaXJxX25vc3luYyh0by0+Y2xrZXZ0LmlycSk7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArI2Vsc2UgLyogQ09ORklHX0FSTSAqLwo+ICtzdGF0aWMgc3RydWN0IHRp bWVyX29mIHRlZ3JhX3RvID0gewo+ICsJLmZsYWdzID0gVElNRVJfT0ZfQ0xPQ0sgfCBUSU1FUl9P Rl9CQVNFIHwgVElNRVJfT0ZfSVJRLAo+ICsKPiArCS5jbGtldnQgPSB7Cj4gKwkJLm5hbWUgPSAi dGVncmFfdGltZXIiLAo+ICsJCS5yYXRpbmcJPSAzMDAsCj4gKwkJLmZlYXR1cmVzID0gQ0xPQ0tf RVZUX0ZFQVRfT05FU0hPVCB8Cj4gKwkJCSAgICBDTE9DS19FVlRfRkVBVF9QRVJJT0RJQyB8Cj4g KwkJCSAgICBDTE9DS19FVlRfRkVBVF9EWU5JUlEsCj4gKwkJLnNldF9uZXh0X2V2ZW50CT0gdGVn cmFfdGltZXJfc2V0X25leHRfZXZlbnQsCj4gKwkJLnNldF9zdGF0ZV9zaHV0ZG93biA9IHRlZ3Jh X3RpbWVyX3NodXRkb3duLAo+ICsJCS5zZXRfc3RhdGVfcGVyaW9kaWMgPSB0ZWdyYV90aW1lcl9z ZXRfcGVyaW9kaWMsCj4gKwkJLnNldF9zdGF0ZV9vbmVzaG90ID0gdGVncmFfdGltZXJfc2h1dGRv d24sCj4gKwkJLnRpY2tfcmVzdW1lID0gdGVncmFfdGltZXJfc2h1dGRvd24sCj4gKwkJLnN1c3Bl bmQgPSB0ZWdyYV90aW1lcl9zdXNwZW5kLAo+ICsJCS5yZXN1bWUgPSB0ZWdyYV90aW1lcl9yZXN1 bWUsCj4gKwkJLmNwdW1hc2sgPSBjcHVfcG9zc2libGVfbWFzaywKPiArCX0sCj4gKwo+ICsJLm9m X2lycSA9IHsKPiArCQkuaW5kZXggPSAyLAo+ICsJCS5mbGFncyA9IElSUUZfVElNRVIgfCBJUlFG X1RSSUdHRVJfSElHSCwKPiArCQkuaGFuZGxlciA9IHRlZ3JhX3RpbWVyX2lzciwKPiArCX0sCj4g IH07Cj4gIAo+ICBzdGF0aWMgdTY0IG5vdHJhY2UgdGVncmFfcmVhZF9zY2hlZF9jbG9jayh2b2lk KQo+ICB7Cj4gLQlyZXR1cm4gdGltZXJfcmVhZGwoVElNRVJVU19DTlRSXzFVUyk7Cj4gKwlyZXR1 cm4gcmVhZGwodGltZXJfcmVnX2Jhc2UgKyBUSU1FUlVTX0NOVFJfMVVTKTsKPiArfQo+ICsKPiAr c3RhdGljIHVuc2lnbmVkIGxvbmcgdGVncmFfZGVsYXlfdGltZXJfcmVhZF9jb3VudGVyX2xvbmco dm9pZCkKPiArewo+ICsJcmV0dXJuIHJlYWRsKHRpbWVyX3JlZ19iYXNlICsgVElNRVJVU19DTlRS XzFVUyk7Cj4gIH0KPiAgCj4gIC8qCj4gQEAgLTE0MywxMDAgKzIzMywxNTUgQEAgc3RhdGljIHZv aWQgdGVncmFfcmVhZF9wZXJzaXN0ZW50X2Nsb2NrNjQoc3RydWN0IHRpbWVzcGVjNjQgKnRzKQo+ ICAJdGltZXNwZWM2NF9hZGRfbnMoJnBlcnNpc3RlbnRfdHMsIGRlbHRhICogTlNFQ19QRVJfTVNF Qyk7Cj4gIAkqdHMgPSBwZXJzaXN0ZW50X3RzOwo+ICB9Cj4gKyNlbmRpZgo+ICAKPiAtc3RhdGlj IHVuc2lnbmVkIGxvbmcgdGVncmFfZGVsYXlfdGltZXJfcmVhZF9jb3VudGVyX2xvbmcodm9pZCkK PiAtewo+IC0JcmV0dXJuIHJlYWRsKHRpbWVyX3JlZ19iYXNlICsgVElNRVJVU19DTlRSXzFVUyk7 Cj4gLX0KPiAtCj4gLXN0YXRpYyBpcnFyZXR1cm5fdCB0ZWdyYV90aW1lcl9pbnRlcnJ1cHQoaW50 IGlycSwgdm9pZCAqZGV2X2lkKQo+IC17Cj4gLQlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpl dnQgPSAoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqKWRldl9pZDsKPiAtCXRpbWVyX3dyaXRl bCgxPDwzMCwgVElNRVIzX0JBU0UgKyBUSU1FUl9QQ1IpOwo+IC0JZXZ0LT5ldmVudF9oYW5kbGVy KGV2dCk7Cj4gLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gLX0KPiAtCj4gLXN0YXRpYyBzdHJ1Y3Qg aXJxYWN0aW9uIHRlZ3JhX3RpbWVyX2lycSA9IHsKPiAtCS5uYW1lCQk9ICJ0aW1lcjAiLAo+IC0J LmZsYWdzCQk9IElSUUZfVElNRVIgfCBJUlFGX1RSSUdHRVJfSElHSCwKPiAtCS5oYW5kbGVyCT0g dGVncmFfdGltZXJfaW50ZXJydXB0LAo+IC0JLmRldl9pZAkJPSAmdGVncmFfY2xvY2tldmVudCwK PiAtfTsKPiAtCj4gLXN0YXRpYyBpbnQgX19pbml0IHRlZ3JhMjBfaW5pdF90aW1lcihzdHJ1Y3Qg ZGV2aWNlX25vZGUgKm5wKQo+ICtzdGF0aWMgaW50IHRlZ3JhX3RpbWVyX2NvbW1vbl9pbml0KHN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHN0cnVjdCB0aW1lcl9vZiAqdG8pCj4gIHsKPiAtCXN0cnVj dCBjbGsgKmNsazsKPiAtCXVuc2lnbmVkIGxvbmcgcmF0ZTsKPiAtCWludCByZXQ7Cj4gLQo+IC0J dGltZXJfcmVnX2Jhc2UgPSBvZl9pb21hcChucCwgMCk7Cj4gLQlpZiAoIXRpbWVyX3JlZ19iYXNl KSB7Cj4gLQkJcHJfZXJyKCJDYW4ndCBtYXAgdGltZXIgcmVnaXN0ZXJzXG4iKTsKPiAtCQlyZXR1 cm4gLUVOWElPOwo+IC0JfQo+ICsJaW50IHJldCA9IDA7Cj4gIAo+IC0JdGVncmFfdGltZXJfaXJx LmlycSA9IGlycV9vZl9wYXJzZV9hbmRfbWFwKG5wLCAyKTsKPiAtCWlmICh0ZWdyYV90aW1lcl9p cnEuaXJxIDw9IDApIHsKPiAtCQlwcl9lcnIoIkZhaWxlZCB0byBtYXAgdGltZXIgSVJRXG4iKTsK PiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiArCXJldCA9IHRpbWVyX29mX2luaXQobnAsIHRv KTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8gb3V0Owo+ICAKPiAtCWNsayA9IG9mX2Nsa19n ZXQobnAsIDApOwo+IC0JaWYgKElTX0VSUihjbGspKSB7Cj4gLQkJcHJfd2FybigiVW5hYmxlIHRv IGdldCB0aW1lciBjbG9jay4gQXNzdW1pbmcgMTJNaHogaW5wdXQgY2xvY2suXG4iKTsKPiAtCQly YXRlID0gMTIwMDAwMDA7Cj4gLQl9IGVsc2Ugewo+IC0JCWNsa19wcmVwYXJlX2VuYWJsZShjbGsp Owo+IC0JCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrKTsKPiAtCX0KPiArCXRpbWVyX3JlZ19iYXNl ID0gdGltZXJfb2ZfYmFzZSh0byk7Cj4gIAo+IC0Jc3dpdGNoIChyYXRlKSB7Cj4gKwkvKgo+ICsJ ICogQ29uZmlndXJlIG1pY3Jvc2Vjb25kIHRpbWVycyB0byBoYXZlIDFNSHogY2xvY2sKPiArCSAq IENvbmZpZyByZWdpc3RlciBpcyAweHFxd3csIHdoZXJlIHFxIGlzICJkaXZpZGVuZCIsIHd3IGlz ICJkaXZpc29yIgo+ICsJICogVXNlcyBuKzEgc2NoZW1lCj4gKwkgKi8KPiArCXN3aXRjaCAodGlt ZXJfb2ZfcmF0ZSh0bykpIHsKPiAgCWNhc2UgMTIwMDAwMDA6Cj4gLQkJdGltZXJfd3JpdGVsKDB4 MDAwYiwgVElNRVJVU19VU0VDX0NGRyk7Cj4gKwkJdXNlY19jb25maWcgPSAweDAwMGI7IC8qICgx MSsxKS8oMCsxKSAqLwo+ICsJCWJyZWFrOwo+ICsJY2FzZSAxMjgwMDAwMDoKPiArCQl1c2VjX2Nv bmZpZyA9IDB4MDQzZjsgLyogKDYzKzEpLyg0KzEpICovCj4gIAkJYnJlYWs7Cj4gIAljYXNlIDEz MDAwMDAwOgo+IC0JCXRpbWVyX3dyaXRlbCgweDAwMGMsIFRJTUVSVVNfVVNFQ19DRkcpOwo+ICsJ CXVzZWNfY29uZmlnID0gMHgwMDBjOyAvKiAoMTIrMSkvKDArMSkgKi8KPiArCQlicmVhazsKPiAr CWNhc2UgMTY4MDAwMDA6Cj4gKwkJdXNlY19jb25maWcgPSAweDA0NTM7IC8qICg4MysxKS8oNCsx KSAqLwo+ICAJCWJyZWFrOwo+ICAJY2FzZSAxOTIwMDAwMDoKPiAtCQl0aW1lcl93cml0ZWwoMHgw NDVmLCBUSU1FUlVTX1VTRUNfQ0ZHKTsKPiArCQl1c2VjX2NvbmZpZyA9IDB4MDQ1ZjsgLyogKDk1 KzEpLyg0KzEpICovCj4gIAkJYnJlYWs7Cj4gIAljYXNlIDI2MDAwMDAwOgo+IC0JCXRpbWVyX3dy aXRlbCgweDAwMTksIFRJTUVSVVNfVVNFQ19DRkcpOwo+ICsJCXVzZWNfY29uZmlnID0gMHgwMDE5 OyAvKiAoMjUrMSkvKDArMSkgKi8KPiArCQlicmVhazsKPiArCWNhc2UgMzg0MDAwMDA6Cj4gKwkJ dXNlY19jb25maWcgPSAweDA0YmY7IC8qICgxOTErMSkvKDQrMSkgKi8KPiArCQlicmVhazsKPiAr CWNhc2UgNDgwMDAwMDA6Cj4gKwkJdXNlY19jb25maWcgPSAweDAwMmY7IC8qICg0NysxKS8oMCsx KSAqLwo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAtCQlXQVJOKDEsICJVbmtub3duIGNsb2Nr IHJhdGUiKTsKPiArCQlyZXQgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiAr CXdyaXRlbCh1c2VjX2NvbmZpZywgdGltZXJfb2ZfYmFzZSh0bykgKyBUSU1FUlVTX1VTRUNfQ0ZH KTsKPiArCj4gK291dDoKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gKyNpZmRlZiBDT05GSUdf QVJNNjQKPiArc3RhdGljIGludCBfX2luaXQgdGVncmFfaW5pdF90aW1lcihzdHJ1Y3QgZGV2aWNl X25vZGUgKm5wKQo+ICt7Cj4gKwlpbnQgY3B1LCByZXQgPSAwOwo+ICsJc3RydWN0IHRpbWVyX29m ICp0bzsKPiArCj4gKwl0byA9IHRoaXNfY3B1X3B0cigmdGVncmFfdG8pOwo+ICsJcmV0ID0gdGVn cmFfdGltZXJfY29tbW9uX2luaXQobnAsIHRvKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8g b3V0Owo+ICsKPiArCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKPiArCQlzdHJ1Y3QgdGlt ZXJfb2YgKmNwdV90bzsKPiArCj4gKwkJY3B1X3RvID0gcGVyX2NwdV9wdHIoJnRlZ3JhX3RvLCBj cHUpOwo+ICsJCWNwdV90by0+b2ZfYmFzZS5iYXNlID0gdGltZXJfcmVnX2Jhc2UgKyBUSU1FUl9C QVNFX0ZPUl9DUFUoY3B1KTsKPiArCQljcHVfdG8tPm9mX2Nsay5yYXRlID0gdGltZXJfb2ZfcmF0 ZSh0byk7Cj4gKwkJY3B1X3RvLT5jbGtldnQuY3B1bWFzayA9IGNwdW1hc2tfb2YoY3B1KTsKPiAr CQljcHVfdG8tPmNsa2V2dC5pcnEgPQo+ICsJCQlpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgSVJR X0lEWF9GT1JfQ1BVKGNwdSkpOwo+ICsJCWlmICghY3B1X3RvLT5jbGtldnQuaXJxKSB7Cj4gKwkJ CXByX2VycigiJXM6IGNhbid0IG1hcCBJUlEgZm9yIENQVSVkXG4iLAo+ICsJCQkgICAgICAgX19m dW5jX18sIGNwdSk7Cj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJCWdvdG8gb3V0Owo+ICsJCX0K PiArCj4gKwkJaXJxX3NldF9zdGF0dXNfZmxhZ3MoY3B1X3RvLT5jbGtldnQuaXJxLCBJUlFfTk9B VVRPRU4pOwo+ICsJCXJldCA9IHJlcXVlc3RfaXJxKGNwdV90by0+Y2xrZXZ0LmlycSwgdGVncmFf dGltZXJfaXNyLAo+ICsJCQkJICBJUlFGX1RJTUVSIHwgSVJRRl9OT0JBTEFOQ0lORywKPiArCQkJ CSAgY3B1X3RvLT5jbGtldnQubmFtZSwgJmNwdV90by0+Y2xrZXZ0KTsKPiArCQlpZiAocmV0KSB7 Cj4gKwkJCXByX2VycigiJXM6IGNhbm5vdCBzZXR1cCBpcnEgJWQgZm9yIENQVSVkXG4iLAo+ICsJ CQkJX19mdW5jX18sIGNwdV90by0+Y2xrZXZ0LmlycSwgY3B1KTsKPiArCQkJcmV0ID0gLUVJTlZB TDsKPiArCQkJZ290byBvdXRfaXJxOwo+ICsJCX0KPiArCX0KPiArCj4gKwljcHVocF9zZXR1cF9z dGF0ZShDUFVIUF9BUF9URUdSQV9USU1FUl9TVEFSVElORywKPiArCQkJICAiQVBfVEVHUkFfVElN RVJfU1RBUlRJTkciLCB0ZWdyYV90aW1lcl9zZXR1cCwKPiArCQkJICB0ZWdyYV90aW1lcl9zdG9w KTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICtvdXRfaXJxOgo+ICsJZm9yX2VhY2hfcG9zc2libGVf Y3B1KGNwdSkgewo+ICsJCXN0cnVjdCB0aW1lcl9vZiAqY3B1X3RvOwo+ICsKPiArCQljcHVfdG8g PSBwZXJfY3B1X3B0cigmdGVncmFfdG8sIGNwdSk7Cj4gKwkJaWYgKGNwdV90by0+Y2xrZXZ0Lmly cSkgewo+ICsJCQlmcmVlX2lycShjcHVfdG8tPmNsa2V2dC5pcnEsICZjcHVfdG8tPmNsa2V2dCk7 Cj4gKwkJCWlycV9kaXNwb3NlX21hcHBpbmcoY3B1X3RvLT5jbGtldnQuaXJxKTsKPiArCQl9Cj4g IAl9Cj4gK291dDoKPiArCXRpbWVyX29mX2NsZWFudXAodG8pOwo+ICsJcmV0dXJuIHJldDsKPiAr fQo+ICsjZWxzZSAvKiBDT05GSUdfQVJNICovCj4gK3N0YXRpYyBpbnQgX19pbml0IHRlZ3JhX2lu aXRfdGltZXIoc3RydWN0IGRldmljZV9ub2RlICpucCkKPiArewo+ICsJaW50IHJldCA9IDA7Cj4g Kwo+ICsJcmV0ID0gdGVncmFfdGltZXJfY29tbW9uX2luaXQobnAsICZ0ZWdyYV90byk7Cj4gKwlp ZiAocmV0IDwgMCkKPiArCQlnb3RvIG91dDsKPiAgCj4gLQlzY2hlZF9jbG9ja19yZWdpc3Rlcih0 ZWdyYV9yZWFkX3NjaGVkX2Nsb2NrLCAzMiwgMTAwMDAwMCk7Cj4gKwl0ZWdyYV90by5vZl9iYXNl LmJhc2UgPSB0aW1lcl9yZWdfYmFzZSArIFRJTUVSX0JBU0VfRk9SX0NQVSgwKTsKPiArCXRlZ3Jh X3RvLm9mX2Nsay5yYXRlID0gMTAwMDAwMDsgLyogbWljcm9zZWNvbmQgdGltZXIgKi8KPiAgCj4g KwlzY2hlZF9jbG9ja19yZWdpc3Rlcih0ZWdyYV9yZWFkX3NjaGVkX2Nsb2NrLCAzMiwKPiArCQkJ ICAgICB0aW1lcl9vZl9yYXRlKCZ0ZWdyYV90bykpOwo+ICAJcmV0ID0gY2xvY2tzb3VyY2VfbW1p b19pbml0KHRpbWVyX3JlZ19iYXNlICsgVElNRVJVU19DTlRSXzFVUywKPiAtCQkJCSAgICAidGlt ZXJfdXMiLCAxMDAwMDAwLCAzMDAsIDMyLAo+IC0JCQkJICAgIGNsb2Nrc291cmNlX21taW9fcmVh ZGxfdXApOwo+ICsJCQkJICAgICJ0aW1lcl91cyIsIHRpbWVyX29mX3JhdGUoJnRlZ3JhX3RvKSwK PiArCQkJCSAgICAzMDAsIDMyLCBjbG9ja3NvdXJjZV9tbWlvX3JlYWRsX3VwKTsKPiAgCWlmIChy ZXQpIHsKPiAgCQlwcl9lcnIoIkZhaWxlZCB0byByZWdpc3RlciBjbG9ja3NvdXJjZVxuIik7Cj4g LQkJcmV0dXJuIHJldDsKPiArCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gIAl0ZWdyYV9kZWxheV90 aW1lci5yZWFkX2N1cnJlbnRfdGltZXIgPQo+ICAJCQl0ZWdyYV9kZWxheV90aW1lcl9yZWFkX2Nv dW50ZXJfbG9uZzsKPiAtCXRlZ3JhX2RlbGF5X3RpbWVyLmZyZXEgPSAxMDAwMDAwOwo+ICsJdGVn cmFfZGVsYXlfdGltZXIuZnJlcSA9IHRpbWVyX29mX3JhdGUoJnRlZ3JhX3RvKTsKPiAgCXJlZ2lz dGVyX2N1cnJlbnRfdGltZXJfZGVsYXkoJnRlZ3JhX2RlbGF5X3RpbWVyKTsKPiAgCj4gLQlyZXQg PSBzZXR1cF9pcnEodGVncmFfdGltZXJfaXJxLmlycSwgJnRlZ3JhX3RpbWVyX2lycSk7Cj4gLQlp ZiAocmV0KSB7Cj4gLQkJcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIgdGltZXIgSVJROiAlZFxu IiwgcmV0KTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+ICsJY2xvY2tldmVudHNfY29uZmlnX2Fu ZF9yZWdpc3RlcigmdGVncmFfdG8uY2xrZXZ0LAo+ICsJCQkJCXRpbWVyX29mX3JhdGUoJnRlZ3Jh X3RvKSwKPiArCQkJCQkweDEsCj4gKwkJCQkJMHgxZmZmZmZmZik7Cj4gIAo+IC0JdGVncmFfY2xv Y2tldmVudC5jcHVtYXNrID0gY3B1X3Bvc3NpYmxlX21hc2s7Cj4gLQl0ZWdyYV9jbG9ja2V2ZW50 LmlycSA9IHRlZ3JhX3RpbWVyX2lycS5pcnE7Cj4gLQljbG9ja2V2ZW50c19jb25maWdfYW5kX3Jl Z2lzdGVyKCZ0ZWdyYV9jbG9ja2V2ZW50LCAxMDAwMDAwLAo+IC0JCQkJCTB4MSwgMHgxZmZmZmZm Zik7Cj4gKwlyZXR1cm4gcmV0Owo+ICtvdXQ6Cj4gKwl0aW1lcl9vZl9jbGVhbnVwKCZ0ZWdyYV90 byk7Cj4gIAo+IC0JcmV0dXJuIDA7Cj4gKwlyZXR1cm4gcmV0Owo+ICB9Cj4gLVRJTUVSX09GX0RF Q0xBUkUodGVncmEyMF90aW1lciwgIm52aWRpYSx0ZWdyYTIwLXRpbWVyIiwgdGVncmEyMF9pbml0 X3RpbWVyKTsKPiAgCj4gIHN0YXRpYyBpbnQgX19pbml0IHRlZ3JhMjBfaW5pdF9ydGMoc3RydWN0 IGRldmljZV9ub2RlICpucCkKPiAgewo+IEBAIC0yNjEsMyArNDA2LDYgQEAgc3RhdGljIGludCBf X2luaXQgdGVncmEyMF9pbml0X3J0YyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQo+ICAJcmV0dXJu IHJlZ2lzdGVyX3BlcnNpc3RlbnRfY2xvY2sodGVncmFfcmVhZF9wZXJzaXN0ZW50X2Nsb2NrNjQp Owo+ICB9Cj4gIFRJTUVSX09GX0RFQ0xBUkUodGVncmEyMF9ydGMsICJudmlkaWEsdGVncmEyMC1y dGMiLCB0ZWdyYTIwX2luaXRfcnRjKTsKPiArI2VuZGlmCj4gK1RJTUVSX09GX0RFQ0xBUkUodGVn cmEyMTBfdGltZXIsICJudmlkaWEsdGVncmEyMTAtdGltZXIiLCB0ZWdyYV9pbml0X3RpbWVyKTsK PiArVElNRVJfT0ZfREVDTEFSRSh0ZWdyYTIwX3RpbWVyLCAibnZpZGlhLHRlZ3JhMjAtdGltZXIi LCB0ZWdyYV9pbml0X3RpbWVyKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcHVob3Rw bHVnLmggYi9pbmNsdWRlL2xpbnV4L2NwdWhvdHBsdWcuaAo+IGluZGV4IGZkNTg2ZDAzMDFlNy4u ZTc4MjgxZDA3YjcwIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvY3B1aG90cGx1Zy5oCj4g KysrIGIvaW5jbHVkZS9saW51eC9jcHVob3RwbHVnLmgKPiBAQCAtMTIxLDYgKzEyMSw3IEBAIGVu dW0gY3B1aHBfc3RhdGUgewo+ICAJQ1BVSFBfQVBfRVhZTk9TNF9NQ1RfVElNRVJfU1RBUlRJTkcs Cj4gIAlDUFVIUF9BUF9BUk1fVFdEX1NUQVJUSU5HLAo+ICAJQ1BVSFBfQVBfUUNPTV9USU1FUl9T VEFSVElORywKPiArCUNQVUhQX0FQX1RFR1JBX1RJTUVSX1NUQVJUSU5HLAo+ICAJQ1BVSFBfQVBf QVJNQURBX1RJTUVSX1NUQVJUSU5HLAo+ICAJQ1BVSFBfQVBfTUFSQ09fVElNRVJfU1RBUlRJTkcs Cj4gIAlDUFVIUF9BUF9NSVBTX0dJQ19USU1FUl9TVEFSVElORywKPiAKCgotLSAKIDxodHRwOi8v d3d3LmxpbmFyby5vcmcvPiBMaW5hcm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3Ig QVJNIFNvQ3MKCkZvbGxvdyBMaW5hcm86ICA8aHR0cDovL3d3dy5mYWNlYm9vay5jb20vcGFnZXMv TGluYXJvPiBGYWNlYm9vayB8CjxodHRwOi8vdHdpdHRlci5jb20vIyEvbGluYXJvb3JnPiBUd2l0 dGVyIHwKPGh0dHA6Ly93d3cubGluYXJvLm9yZy9saW5hcm8tYmxvZy8+IEJsb2cKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==