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=-10.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable 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 431A7C43461 for ; Wed, 19 May 2021 07:24:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0CC9460725 for ; Wed, 19 May 2021 07:24:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239298AbhESH0J (ORCPT ); Wed, 19 May 2021 03:26:09 -0400 Received: from mail-bn8nam11on2045.outbound.protection.outlook.com ([40.107.236.45]:5997 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S230292AbhESH0G (ORCPT ); Wed, 19 May 2021 03:26:06 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cbxgCJ9+WPWg9EFk9Gt57x1KU7Cfr8tXrQ5DQOdM1YxeTy0nDxHB9cNigLPabHDe0KOQogLETXNZtzFMJP9fbPnBVZCpHVIA+LMLP6EMNaPw/H+hh6KFILoxKPqCxyCeoHM2mxlT4Hyffx0iUMEw87OrxaQQUUvcpQXWuKMzWsmJvS5OzuANLqZ2Qj+KUgY634gjjDVQjXhlKIko+MEobYIYgIewa50v2+rn01z/FYvJ8wZ3VG8/FbyHDOFD/Gq92+NiO22P6o4ayBBnkuco8txWbd1kCYsJKNwkqus9ZVb8emryiOaJh5I4WgVOiYrCQ3fX3e7dEx/9DaHOvFmVrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=guREZVyG9B2ZyL2M1fG5DfRo18rpMxZCovgU0Y6lerU=; b=TNnsvzrBBgZNw3LVnkT72lb++dE5YLkrpS8sIt0+Nabqgy7Bw2BGjUQrXZpRB9JRXsj1A8NSc0RL6Vv4nW4HqQ4JwHAfdu47UEMz7yHHhmntwhEpvScZZj90xEZj9EU22i8OPd+t9b/Gc+cDiZjKXVurbmXshRwhFZykbFCHooF0Hz+sy62uTZbI5Ln3sLO9a50L3RczfvYeupOMi5WefaPEMRRcOy8nh7pe/ZZP5oeKHOxWr1qi3JztiNoOXEVfOyBUW1u+EIRwByoFeOigI2FMJoL3Funx2m/vKGHFHNz6A8Z5lVKPr/nuxv3cqfGiDOgWXsUUPHQeW9hhO4F4VQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=pengutronix.de smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=guREZVyG9B2ZyL2M1fG5DfRo18rpMxZCovgU0Y6lerU=; b=De4LOTPUSzLLeK9Z32phljSX4qO6g4f/6CZSIZt8Nn3z3B4THWxqz0pjExgZVekJE/PHdmZ4f4B/g3Df6+w98t0Ig4ZbANAOZgdUR0YSSMC6UQLimAXS3qHnMepqdO0z0Ev/YJIeThWZ4fpFYFrtspnrbcXfG48QAEGis+HT1pw= Received: from DM3PR12CA0113.namprd12.prod.outlook.com (2603:10b6:0:55::33) by DM6PR02MB4475.namprd02.prod.outlook.com (2603:10b6:5:2d::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Wed, 19 May 2021 07:24:44 +0000 Received: from DM3NAM02FT016.eop-nam02.prod.protection.outlook.com (2603:10b6:0:55:cafe::7f) by DM3PR12CA0113.outlook.office365.com (2603:10b6:0:55::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Wed, 19 May 2021 07:24:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; pengutronix.de; dkim=none (message not signed) header.d=none;pengutronix.de; dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by DM3NAM02FT016.mail.protection.outlook.com (10.13.4.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4129.27 via Frontend Transport; Wed, 19 May 2021 07:24:44 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 19 May 2021 00:24:43 -0700 Received: from smtp.xilinx.com (172.19.127.96) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.2 via Frontend Transport; Wed, 19 May 2021 00:24:43 -0700 Envelope-to: u.kleine-koenig@pengutronix.de, tglx@linutronix.de, thierry.reding@gmail.com, lee.jones@linaro.org, daniel.lezcano@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, alvaro.gamez@hazent.com, robh+dt@kernel.org, devicetree@vger.kernel.org, linux-pwm@vger.kernel.org, sean.anderson@seco.com Received: from [172.30.17.109] (port=43588) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1ljGZP-0006Wv-Db; Wed, 19 May 2021 00:24:43 -0700 To: Sean Anderson , Michal Simek , , , Rob Herring CC: Alvaro Gamez , , , Daniel Lezcano , Lee Jones , Thierry Reding , Thomas Gleixner , =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= References: <20210511191239.774570-1-sean.anderson@seco.com> <20210511191239.774570-2-sean.anderson@seco.com> <5f960034-174d-0ed8-9f52-3d5fde90e16a@seco.com> <9f227f96-a310-0fbd-fd34-91eb386306b9@xilinx.com> <7a06cf46-0f85-1edb-ca08-abd7b2543ad9@seco.com> From: Michal Simek Subject: Re: [PATCH v3 2/2] clocksource: Add support for Xilinx AXI Timer Message-ID: <41542760-3967-4f9a-0f0c-1206e03ff494@xilinx.com> Date: Wed, 19 May 2021 09:24:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <7a06cf46-0f85-1edb-ca08-abd7b2543ad9@seco.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc28cbba-82b2-4b34-6cad-08d91a972cda X-MS-TrafficTypeDiagnostic: DM6PR02MB4475: X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mlKDPD99otYJPiML3jZmQCazfaavTkS4B1US/5JtLvqvKx3y8PNS9+y2hsqzLim6HkkfPmhHUVGftzALnKk461BeK8NPgm0vrnsPe/CCKnpPtrRQnbrBDdme3ffvXUAJJbSJfjPxjaz8P48m06OzShsCr1aL8ApiJI8lReySZ7Zu92f5kRP6Cm1sAZxDaskmvT/Dq38qGMqd2FaXynvXfLXXLhH78nR7fMwzDyYb9lpr2vqxJTgEQZhL47K/lmFqgwGe0yRs71xqD23riQ0e5kviIvtbtvMIsWBeDcqQl7didqWZ73tVgu7ULmd6M8FOfglqNRqkZTQuvEJsVoGAroARXxFZ284WEVzr6uVAzXeBVTeX4KdiScFJi5lVtqdaXtp1WW2INDl61frzoM8YxaLUztlr+C5pZ2pzd/Cp7F6+orOxRqzt0kn7D/F6AP+6cXsEeAbKZqRIJyv7hO61TVmMs5CqGSoq6ad8TJUz2E4TyO3KDTgHhVhWZGArJcJknivYOSzWNRW3UfCiBitISx/uOUqymO55DhBNAa8A5udMLRLrYuPbxA3jOp8LPZLsv4VW3x/csxbYe45q4BCaX8fUhF85EIBkcj8s2HfyTcT/zsWQiyYe/D5EZhuK3B/UaMCulAzMSeX3ACxi5jIQsxBtaDV5pEegGiFJhveRt7muzd/oxVBfFCIAvxPJe8qXnbkeL9WJKEFLX8Zc/lucjo7qqLJfCQAqr6ouczeCvLGLUo6GzUPdD5CjCGaRQ86GXxiBD3WhZ3ypRpUDX0RwD6RYezxPLvIgCbkexgoQLNk= X-Forefront-Antispam-Report: CIP:149.199.62.198;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:xsj-pvapexch02.xlnx.xilinx.com;PTR:unknown-62-198.xilinx.com;CAT:NONE;SFS:(4636009)(39830400003)(376002)(136003)(396003)(346002)(46966006)(36840700001)(966005)(186003)(426003)(53546011)(26005)(36860700001)(7636003)(5660300002)(8676002)(478600001)(31686004)(70206006)(70586007)(44832011)(2616005)(31696002)(36756003)(4326008)(9786002)(7416002)(47076005)(110136005)(83380400001)(54906003)(356005)(82310400003)(336012)(8936002)(2906002)(316002)(36906005)(50156003)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2021 07:24:44.3622 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cc28cbba-82b2-4b34-6cad-08d91a972cda X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.62.198];Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: DM3NAM02FT016.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4475 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/18/21 12:15 AM, Sean Anderson wrote: > > > On 5/17/21 3:54 AM, Michal Simek wrote: >> >> >> On 5/14/21 4:40 PM, Sean Anderson wrote: >>> >>> >>> On 5/14/21 4:59 AM, Michal Simek wrote: >>>> >>>> >>>> On 5/11/21 9:12 PM, Sean Anderson wrote: >>>>> This adds generic clocksource and clockevent support for Xilinx >>> LogiCORE IP >>>>> AXI soft timers commonly found on Xilinx FPGAs. This timer is also the >>>>> primary timer for Microblaze processors. This commit also adds >>> support for >>>>> configuring this timer as a PWM (though this could be split off if >>>>> necessary). This whole driver lives in clocksource because it is >>> primarily >>>>> clocksource stuff now (even though it started out as a PWM driver). I >>> think >>>>> teasing apart the driver would not be worth it since they share so > many >>>>> functions. >>>>> >>>>> This driver configures timer 0 (which is always present) as a >>> clocksource, >>>>> and timer 1 (which might be missing) as a clockevent. I don't know if >>> this >>>>> is the correct priority for these timers, or whether we should be >>> using a >>>>> more dynamic allocation scheme. >>>>> >>>>> At the moment clock control is very basic: we just enable the clock >>> during >>>>> probe and pin the frequency. In the future, someone could add support >>> for >>>>> disabling the clock when not in use. Cascade mode is also unsupported. >>>>> >>>>> This driver was written with reference to Xilinx DS764 for v1.03.a > [1]. >>>>> >>>>> [1] >>> > https://www.xilinx.com/support/documentation/ip_documentation/axi_timer/v1_03_a/axi_timer_ds764.pdf > >>> >>>>> >>>>> Signed-off-by: Sean Anderson >>>>> --- >>>>> Please let me know if I should organize this differently or if it > should >>>>> be broken up. >>>>> >>>>> Changes in v3: >>>>> - Add clockevent and clocksource support >>>>> - Rewrite probe to only use a device_node, since timers may need to be >>>>>      initialized before we have proper devices. This does bloat the >>> code a bit >>>>>      since we can no longer rely on helpers such as dev_err_probe. > We also >>>>>      cannot rely on device resources being free'd on failure, so we >>> must free >>>>>      them manually. >>>>> - We now access registers through xilinx_timer_(read|write). This >>> allows us >>>>>      to deal with endianness issues, as originally seen in the > microblaze >>>>>      driver. CAVEAT EMPTOR: I have not tested this on big-endian! >>>>> - Remove old microblaze driver >>>>> >>>>> Changes in v2: >>>>> - Don't compile this module by default for arm64 >>>>> - Add dependencies on COMMON_CLK and HAS_IOMEM >>>>> - Add comment explaining why we depend on !MICROBLAZE >>>>> - Add comment describing device >>>>> - Rename TCSR_(SET|CLEAR) to TCSR_RUN_(SET|CLEAR) >>>>> - Use NSEC_TO_SEC instead of defining our own >>>>> - Use TCSR_RUN_MASK to check if the PWM is enabled, as suggested by > Uwe >>>>> - Cast dividends to u64 to avoid overflow >>>>> - Check for over- and underflow when calculating TLR >>>>> - Set xilinx_pwm_ops.owner >>>>> - Don't set pwmchip.base to -1 >>>>> - Check range of xlnx,count-width >>>>> - Ensure the clock is always running when the pwm is registered >>>>> - Remove debugfs file :l >>>>> - Report errors with dev_error_probe >>>>> >>>>>     arch/microblaze/kernel/Makefile    |   2 +- >>>>>     arch/microblaze/kernel/timer.c     | 326 --------------- >>>>>     drivers/clocksource/Kconfig        |  15 + >>>>>     drivers/clocksource/Makefile       |   1 + >>>>>     drivers/clocksource/timer-xilinx.c | 650 > +++++++++++++++++++++++++++++ >>>>>     5 files changed, 667 insertions(+), 327 deletions(-) >>>>>     delete mode 100644 arch/microblaze/kernel/timer.c >>>>>     create mode 100644 drivers/clocksource/timer-xilinx.c >>>> >>>> I don't think this is the right way to go. >>>> The first patch should be move current timer driver from microblaze to >>>> generic location and then apply patches on the top based on what you > are >>>> adding/fixing to be able to review every change separately. >>>> When any issue happens it can be bisected and exact patch is > identified. >>>> With this way we will end up in this patch and it will take a lot of >>>> time to find where that problem is. >>> >>> What parts would you like to see split? Fundamentally, this current >>> patch is a reimplementation of the driver. I think the only reasonable >>> split would be to add PWM support in a separate patch. >>> >>> I do not think that genericizing the microblaze timer driver is an >>> integral part of adding PWM support. This is especially since you seem >>> opposed to using existing devicetree properties to inform the driver. I >>> am inclined to just add a patch adding a check for '#-pwm-cells' to the >>> existing driver and otherwise leave it untouched. >> >> As I said I think the patches should be like this. >> 1. Cover existing DT binding based on current code. >> 2. Move time out of arch/microblaze to drivers/clocksource/ and even >> enable it via Kconfig just for Microblaze. >> 3. Remove dependency on Microblaze and enable build for others. I have >> seen at least one cpuinfo.cpu_clock_freq assignment. This code can be >> likely completely removed or deprecate. > > This could be deprecated, but cannot be removed since existing device > trees (e.g. qemu) have neither clocks nor clock-frequency properties. Rob: Do we have any obligation to keep properties for other projects? >> 4. Make driver as module >> 5. Do whatever changes you want before adding pwm support >> 6. Extend DT binding doc for PWM support >> 7. Add PWM support > > Frankly, I am inclined to just leave the microblaze timer as-is. The PWM > driver is completely independent. I have already put too much effort into > this driver, and I don't have the energy to continue working on the > microblaze timer. I understand. I am actually using axi timer as pwm driver in one of my project but never had time to upstream it because of couple of steps above. We need to do it right based on steps listed above. If this is too much work it will have to wait. I will NACK all attempts to add separate driver for IP which we already support in the tree. Thanks, Michal 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=-10.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 3576DC43460 for ; Wed, 19 May 2021 07:27:18 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 83B256135B for ; Wed, 19 May 2021 07:27:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 83B256135B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=xilinx.com 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:Subject: From:References:CC:To:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8xgCZUD6cD9dIV1YP5rRj+pj+qtLDV/pjD/4nHDxJBo=; b=EfEMIUkk6AIBObSTKDtVHfVAK PI8pue0vLN4+ydZMDuZynRnreFUHDHW5HXjMZczPRHnRPMJj505QaqNu7xzpdT9pjqbH/BNDBoekD XuKo4HnPcGIHBoHs0xskTBPnJ2eHzXD/xTeH+1lIyC7Vn9ONfwN3dX4wXv+bw8CMMRssr0SCYDBAi 2DTb1t5EiSPHuAUh012AvwBAbOEFlIVPA/Vli4OM1apTCZLLR8zz38/JqfOevspwJ8NhCdOa8ls5S a7SmVFMCBi6TbyXT6B/R+gwhifr77FHTfvC5/mR6T877q/pKp1LYptIcVxwPV/lzpvDWOGjWWCXvS QncbQPEdw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljGZc-0039qL-91; Wed, 19 May 2021 07:24:57 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljGZY-0039pj-GS for linux-arm-kernel@desiato.infradead.org; Wed, 19 May 2021 07:24:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:Subject:From:References :CC:To:Sender:Reply-To:Content-ID:Content-Description; bh=guREZVyG9B2ZyL2M1fG5DfRo18rpMxZCovgU0Y6lerU=; b=jBQibYhZOem/13+Gt6hodEVgH1 5iQ31E4PIWqLrN0iq7OdhzEmAGv5jTqrQPtREKofK5D2jnyPXy5x6BB87q/MCgjISTE6zQ5dXIUy1 j28EbmfsHOT35LodE8rN/I3xtuGdgU6NvUzP5wwgXn/6PnsUh6Mfmxjtx+6gCNJfIqgkqlwSpTDPg 7dJu+b43iWtLA2j+KX9qqetvC3AiSjT9WPq8EFAFT/dCiIhqT9lJPe77plu3Ka8QbK/51ctZ8HM5z gVMbYxPoHf9Q6jsQDimj+g/716guMFqBFTsFfxBlBW33HZiTn6pK+DorISvzM/8E7k9wthCMssAIS NQGhBBxA==; Received: from mail-bn8nam11on2071.outbound.protection.outlook.com ([40.107.236.71] helo=NAM11-BN8-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljGZV-00FDWn-5v for linux-arm-kernel@lists.infradead.org; Wed, 19 May 2021 07:24:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cbxgCJ9+WPWg9EFk9Gt57x1KU7Cfr8tXrQ5DQOdM1YxeTy0nDxHB9cNigLPabHDe0KOQogLETXNZtzFMJP9fbPnBVZCpHVIA+LMLP6EMNaPw/H+hh6KFILoxKPqCxyCeoHM2mxlT4Hyffx0iUMEw87OrxaQQUUvcpQXWuKMzWsmJvS5OzuANLqZ2Qj+KUgY634gjjDVQjXhlKIko+MEobYIYgIewa50v2+rn01z/FYvJ8wZ3VG8/FbyHDOFD/Gq92+NiO22P6o4ayBBnkuco8txWbd1kCYsJKNwkqus9ZVb8emryiOaJh5I4WgVOiYrCQ3fX3e7dEx/9DaHOvFmVrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=guREZVyG9B2ZyL2M1fG5DfRo18rpMxZCovgU0Y6lerU=; b=TNnsvzrBBgZNw3LVnkT72lb++dE5YLkrpS8sIt0+Nabqgy7Bw2BGjUQrXZpRB9JRXsj1A8NSc0RL6Vv4nW4HqQ4JwHAfdu47UEMz7yHHhmntwhEpvScZZj90xEZj9EU22i8OPd+t9b/Gc+cDiZjKXVurbmXshRwhFZykbFCHooF0Hz+sy62uTZbI5Ln3sLO9a50L3RczfvYeupOMi5WefaPEMRRcOy8nh7pe/ZZP5oeKHOxWr1qi3JztiNoOXEVfOyBUW1u+EIRwByoFeOigI2FMJoL3Funx2m/vKGHFHNz6A8Z5lVKPr/nuxv3cqfGiDOgWXsUUPHQeW9hhO4F4VQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 149.199.62.198) smtp.rcpttodomain=pengutronix.de smtp.mailfrom=xilinx.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=guREZVyG9B2ZyL2M1fG5DfRo18rpMxZCovgU0Y6lerU=; b=De4LOTPUSzLLeK9Z32phljSX4qO6g4f/6CZSIZt8Nn3z3B4THWxqz0pjExgZVekJE/PHdmZ4f4B/g3Df6+w98t0Ig4ZbANAOZgdUR0YSSMC6UQLimAXS3qHnMepqdO0z0Ev/YJIeThWZ4fpFYFrtspnrbcXfG48QAEGis+HT1pw= Received: from DM3PR12CA0113.namprd12.prod.outlook.com (2603:10b6:0:55::33) by DM6PR02MB4475.namprd02.prod.outlook.com (2603:10b6:5:2d::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Wed, 19 May 2021 07:24:44 +0000 Received: from DM3NAM02FT016.eop-nam02.prod.protection.outlook.com (2603:10b6:0:55:cafe::7f) by DM3PR12CA0113.outlook.office365.com (2603:10b6:0:55::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Wed, 19 May 2021 07:24:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 149.199.62.198) smtp.mailfrom=xilinx.com; pengutronix.de; dkim=none (message not signed) header.d=none;pengutronix.de; dmarc=pass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.62.198 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.62.198; helo=xsj-pvapexch02.xlnx.xilinx.com; Received: from xsj-pvapexch02.xlnx.xilinx.com (149.199.62.198) by DM3NAM02FT016.mail.protection.outlook.com (10.13.4.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4129.27 via Frontend Transport; Wed, 19 May 2021 07:24:44 +0000 Received: from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 19 May 2021 00:24:43 -0700 Received: from smtp.xilinx.com (172.19.127.96) by xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id 15.1.2176.2 via Frontend Transport; Wed, 19 May 2021 00:24:43 -0700 Received: from [172.30.17.109] (port=43588) by smtp.xilinx.com with esmtp (Exim 4.90) (envelope-from ) id 1ljGZP-0006Wv-Db; Wed, 19 May 2021 00:24:43 -0700 To: Sean Anderson , Michal Simek , , , Rob Herring CC: Alvaro Gamez , , , Daniel Lezcano , Lee Jones , Thierry Reding , Thomas Gleixner , =?UTF-8?Q?Uwe_Kleine-K=c3=b6nig?= References: <20210511191239.774570-1-sean.anderson@seco.com> <20210511191239.774570-2-sean.anderson@seco.com> <5f960034-174d-0ed8-9f52-3d5fde90e16a@seco.com> <9f227f96-a310-0fbd-fd34-91eb386306b9@xilinx.com> <7a06cf46-0f85-1edb-ca08-abd7b2543ad9@seco.com> From: Michal Simek Subject: Re: [PATCH v3 2/2] clocksource: Add support for Xilinx AXI Timer Message-ID: <41542760-3967-4f9a-0f0c-1206e03ff494@xilinx.com> Date: Wed, 19 May 2021 09:24:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <7a06cf46-0f85-1edb-ca08-abd7b2543ad9@seco.com> Content-Language: en-US X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc28cbba-82b2-4b34-6cad-08d91a972cda X-MS-TrafficTypeDiagnostic: DM6PR02MB4475: X-Microsoft-Antispam-PRVS: X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mlKDPD99otYJPiML3jZmQCazfaavTkS4B1US/5JtLvqvKx3y8PNS9+y2hsqzLim6HkkfPmhHUVGftzALnKk461BeK8NPgm0vrnsPe/CCKnpPtrRQnbrBDdme3ffvXUAJJbSJfjPxjaz8P48m06OzShsCr1aL8ApiJI8lReySZ7Zu92f5kRP6Cm1sAZxDaskmvT/Dq38qGMqd2FaXynvXfLXXLhH78nR7fMwzDyYb9lpr2vqxJTgEQZhL47K/lmFqgwGe0yRs71xqD23riQ0e5kviIvtbtvMIsWBeDcqQl7didqWZ73tVgu7ULmd6M8FOfglqNRqkZTQuvEJsVoGAroARXxFZ284WEVzr6uVAzXeBVTeX4KdiScFJi5lVtqdaXtp1WW2INDl61frzoM8YxaLUztlr+C5pZ2pzd/Cp7F6+orOxRqzt0kn7D/F6AP+6cXsEeAbKZqRIJyv7hO61TVmMs5CqGSoq6ad8TJUz2E4TyO3KDTgHhVhWZGArJcJknivYOSzWNRW3UfCiBitISx/uOUqymO55DhBNAa8A5udMLRLrYuPbxA3jOp8LPZLsv4VW3x/csxbYe45q4BCaX8fUhF85EIBkcj8s2HfyTcT/zsWQiyYe/D5EZhuK3B/UaMCulAzMSeX3ACxi5jIQsxBtaDV5pEegGiFJhveRt7muzd/oxVBfFCIAvxPJe8qXnbkeL9WJKEFLX8Zc/lucjo7qqLJfCQAqr6ouczeCvLGLUo6GzUPdD5CjCGaRQ86GXxiBD3WhZ3ypRpUDX0RwD6RYezxPLvIgCbkexgoQLNk= X-Forefront-Antispam-Report: CIP:149.199.62.198; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:xsj-pvapexch02.xlnx.xilinx.com; PTR:unknown-62-198.xilinx.com; CAT:NONE; SFS:(4636009)(39830400003)(376002)(136003)(396003)(346002)(46966006)(36840700001)(966005)(186003)(426003)(53546011)(26005)(36860700001)(7636003)(5660300002)(8676002)(478600001)(31686004)(70206006)(70586007)(44832011)(2616005)(31696002)(36756003)(4326008)(9786002)(7416002)(47076005)(110136005)(83380400001)(54906003)(356005)(82310400003)(336012)(8936002)(2906002)(316002)(36906005)(50156003)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2021 07:24:44.3622 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cc28cbba-82b2-4b34-6cad-08d91a972cda X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.62.198]; Helo=[xsj-pvapexch02.xlnx.xilinx.com] X-MS-Exchange-CrossTenant-AuthSource: DM3NAM02FT016.eop-nam02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4475 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210519_002449_253756_E695DE03 X-CRM114-Status: GOOD ( 48.07 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 CgpPbiA1LzE4LzIxIDEyOjE1IEFNLCBTZWFuIEFuZGVyc29uIHdyb3RlOgo+IAo+IAo+IE9uIDUv MTcvMjEgMzo1NCBBTSwgTWljaGFsIFNpbWVrIHdyb3RlOgo+Pgo+Pgo+PiBPbiA1LzE0LzIxIDQ6 NDAgUE0sIFNlYW4gQW5kZXJzb24gd3JvdGU6Cj4+Pgo+Pj4KPj4+IE9uIDUvMTQvMjEgNDo1OSBB TSwgTWljaGFsIFNpbWVrIHdyb3RlOgo+Pj4+Cj4+Pj4KPj4+PiBPbiA1LzExLzIxIDk6MTIgUE0s IFNlYW4gQW5kZXJzb24gd3JvdGU6Cj4+Pj4+IFRoaXMgYWRkcyBnZW5lcmljIGNsb2Nrc291cmNl IGFuZCBjbG9ja2V2ZW50IHN1cHBvcnQgZm9yIFhpbGlueAo+Pj4gTG9naUNPUkUgSVAKPj4+Pj4g QVhJIHNvZnQgdGltZXJzIGNvbW1vbmx5IGZvdW5kIG9uIFhpbGlueCBGUEdBcy4gVGhpcyB0aW1l ciBpcyBhbHNvIHRoZQo+Pj4+PiBwcmltYXJ5IHRpbWVyIGZvciBNaWNyb2JsYXplIHByb2Nlc3Nv cnMuIFRoaXMgY29tbWl0IGFsc28gYWRkcwo+Pj4gc3VwcG9ydCBmb3IKPj4+Pj4gY29uZmlndXJp bmcgdGhpcyB0aW1lciBhcyBhIFBXTSAodGhvdWdoIHRoaXMgY291bGQgYmUgc3BsaXQgb2ZmIGlm Cj4+Pj4+IG5lY2Vzc2FyeSkuIFRoaXMgd2hvbGUgZHJpdmVyIGxpdmVzIGluIGNsb2Nrc291cmNl IGJlY2F1c2UgaXQgaXMKPj4+IHByaW1hcmlseQo+Pj4+PiBjbG9ja3NvdXJjZSBzdHVmZiBub3cg KGV2ZW4gdGhvdWdoIGl0IHN0YXJ0ZWQgb3V0IGFzIGEgUFdNIGRyaXZlcikuIEkKPj4+IHRoaW5r Cj4+Pj4+IHRlYXNpbmcgYXBhcnQgdGhlIGRyaXZlciB3b3VsZCBub3QgYmUgd29ydGggaXQgc2lu Y2UgdGhleSBzaGFyZSBzbwo+IG1hbnkKPj4+Pj4gZnVuY3Rpb25zLgo+Pj4+Pgo+Pj4+PiBUaGlz IGRyaXZlciBjb25maWd1cmVzIHRpbWVyIDAgKHdoaWNoIGlzIGFsd2F5cyBwcmVzZW50KSBhcyBh Cj4+PiBjbG9ja3NvdXJjZSwKPj4+Pj4gYW5kIHRpbWVyIDEgKHdoaWNoIG1pZ2h0IGJlIG1pc3Np bmcpIGFzIGEgY2xvY2tldmVudC4gSSBkb24ndCBrbm93IGlmCj4+PiB0aGlzCj4+Pj4+IGlzIHRo ZSBjb3JyZWN0IHByaW9yaXR5IGZvciB0aGVzZSB0aW1lcnMsIG9yIHdoZXRoZXIgd2Ugc2hvdWxk IGJlCj4+PiB1c2luZyBhCj4+Pj4+IG1vcmUgZHluYW1pYyBhbGxvY2F0aW9uIHNjaGVtZS4KPj4+ Pj4KPj4+Pj4gQXQgdGhlIG1vbWVudCBjbG9jayBjb250cm9sIGlzIHZlcnkgYmFzaWM6IHdlIGp1 c3QgZW5hYmxlIHRoZSBjbG9jawo+Pj4gZHVyaW5nCj4+Pj4+IHByb2JlIGFuZCBwaW4gdGhlIGZy ZXF1ZW5jeS4gSW4gdGhlIGZ1dHVyZSwgc29tZW9uZSBjb3VsZCBhZGQgc3VwcG9ydAo+Pj4gZm9y Cj4+Pj4+IGRpc2FibGluZyB0aGUgY2xvY2sgd2hlbiBub3QgaW4gdXNlLiBDYXNjYWRlIG1vZGUg aXMgYWxzbyB1bnN1cHBvcnRlZC4KPj4+Pj4KPj4+Pj4gVGhpcyBkcml2ZXIgd2FzIHdyaXR0ZW4g d2l0aCByZWZlcmVuY2UgdG8gWGlsaW54IERTNzY0IGZvciB2MS4wMy5hCj4gWzFdLgo+Pj4+Pgo+ Pj4+PiBbMV0KPj4+Cj4gaHR0cHM6Ly93d3cueGlsaW54LmNvbS9zdXBwb3J0L2RvY3VtZW50YXRp b24vaXBfZG9jdW1lbnRhdGlvbi9heGlfdGltZXIvdjFfMDNfYS9heGlfdGltZXJfZHM3NjQucGRm Cj4gCj4+Pgo+Pj4+Pgo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBTZWFuIEFuZGVyc29uIDxzZWFuLmFu ZGVyc29uQHNlY28uY29tPgo+Pj4+PiAtLS0KPj4+Pj4gUGxlYXNlIGxldCBtZSBrbm93IGlmIEkg c2hvdWxkIG9yZ2FuaXplIHRoaXMgZGlmZmVyZW50bHkgb3IgaWYgaXQKPiBzaG91bGQKPj4+Pj4g YmUgYnJva2VuIHVwLgo+Pj4+Pgo+Pj4+PiBDaGFuZ2VzIGluIHYzOgo+Pj4+PiAtIEFkZCBjbG9j a2V2ZW50IGFuZCBjbG9ja3NvdXJjZSBzdXBwb3J0Cj4+Pj4+IC0gUmV3cml0ZSBwcm9iZSB0byBv bmx5IHVzZSBhIGRldmljZV9ub2RlLCBzaW5jZSB0aW1lcnMgbWF5IG5lZWQgdG8gYmUKPj4+Pj7C oMKgwqDCoMKgIGluaXRpYWxpemVkIGJlZm9yZSB3ZSBoYXZlIHByb3BlciBkZXZpY2VzLiBUaGlz IGRvZXMgYmxvYXQgdGhlCj4+PiBjb2RlIGEgYml0Cj4+Pj4+wqDCoMKgwqDCoCBzaW5jZSB3ZSBj YW4gbm8gbG9uZ2VyIHJlbHkgb24gaGVscGVycyBzdWNoIGFzIGRldl9lcnJfcHJvYmUuCj4gV2Ug YWxzbwo+Pj4+PsKgwqDCoMKgwqAgY2Fubm90IHJlbHkgb24gZGV2aWNlIHJlc291cmNlcyBiZWlu ZyBmcmVlJ2Qgb24gZmFpbHVyZSwgc28gd2UKPj4+IG11c3QgZnJlZQo+Pj4+PsKgwqDCoMKgwqAg dGhlbSBtYW51YWxseS4KPj4+Pj4gLSBXZSBub3cgYWNjZXNzIHJlZ2lzdGVycyB0aHJvdWdoIHhp bGlueF90aW1lcl8ocmVhZHx3cml0ZSkuIFRoaXMKPj4+IGFsbG93cyB1cwo+Pj4+PsKgwqDCoMKg wqAgdG8gZGVhbCB3aXRoIGVuZGlhbm5lc3MgaXNzdWVzLCBhcyBvcmlnaW5hbGx5IHNlZW4gaW4g dGhlCj4gbWljcm9ibGF6ZQo+Pj4+PsKgwqDCoMKgwqAgZHJpdmVyLiBDQVZFQVQgRU1QVE9SOiBJ IGhhdmUgbm90IHRlc3RlZCB0aGlzIG9uIGJpZy1lbmRpYW4hCj4+Pj4+IC0gUmVtb3ZlIG9sZCBt aWNyb2JsYXplIGRyaXZlcgo+Pj4+Pgo+Pj4+PiBDaGFuZ2VzIGluIHYyOgo+Pj4+PiAtIERvbid0 IGNvbXBpbGUgdGhpcyBtb2R1bGUgYnkgZGVmYXVsdCBmb3IgYXJtNjQKPj4+Pj4gLSBBZGQgZGVw ZW5kZW5jaWVzIG9uIENPTU1PTl9DTEsgYW5kIEhBU19JT01FTQo+Pj4+PiAtIEFkZCBjb21tZW50 IGV4cGxhaW5pbmcgd2h5IHdlIGRlcGVuZCBvbiAhTUlDUk9CTEFaRQo+Pj4+PiAtIEFkZCBjb21t ZW50IGRlc2NyaWJpbmcgZGV2aWNlCj4+Pj4+IC0gUmVuYW1lIFRDU1JfKFNFVHxDTEVBUikgdG8g VENTUl9SVU5fKFNFVHxDTEVBUikKPj4+Pj4gLSBVc2UgTlNFQ19UT19TRUMgaW5zdGVhZCBvZiBk ZWZpbmluZyBvdXIgb3duCj4+Pj4+IC0gVXNlIFRDU1JfUlVOX01BU0sgdG8gY2hlY2sgaWYgdGhl IFBXTSBpcyBlbmFibGVkLCBhcyBzdWdnZXN0ZWQgYnkKPiBVd2UKPj4+Pj4gLSBDYXN0IGRpdmlk ZW5kcyB0byB1NjQgdG8gYXZvaWQgb3ZlcmZsb3cKPj4+Pj4gLSBDaGVjayBmb3Igb3Zlci0gYW5k IHVuZGVyZmxvdyB3aGVuIGNhbGN1bGF0aW5nIFRMUgo+Pj4+PiAtIFNldCB4aWxpbnhfcHdtX29w cy5vd25lcgo+Pj4+PiAtIERvbid0IHNldCBwd21jaGlwLmJhc2UgdG8gLTEKPj4+Pj4gLSBDaGVj ayByYW5nZSBvZiB4bG54LGNvdW50LXdpZHRoCj4+Pj4+IC0gRW5zdXJlIHRoZSBjbG9jayBpcyBh bHdheXMgcnVubmluZyB3aGVuIHRoZSBwd20gaXMgcmVnaXN0ZXJlZAo+Pj4+PiAtIFJlbW92ZSBk ZWJ1Z2ZzIGZpbGUgOmwKPj4+Pj4gLSBSZXBvcnQgZXJyb3JzIHdpdGggZGV2X2Vycm9yX3Byb2Jl Cj4+Pj4+Cj4+Pj4+wqDCoMKgwqAgYXJjaC9taWNyb2JsYXplL2tlcm5lbC9NYWtlZmlsZcKgwqDC oCB8wqDCoCAyICstCj4+Pj4+wqDCoMKgwqAgYXJjaC9taWNyb2JsYXplL2tlcm5lbC90aW1lci5j wqDCoMKgwqAgfCAzMjYgLS0tLS0tLS0tLS0tLS0tCj4+Pj4+wqDCoMKgwqAgZHJpdmVycy9jbG9j a3NvdXJjZS9LY29uZmlnwqDCoMKgwqDCoMKgwqAgfMKgIDE1ICsKPj4+Pj7CoMKgwqDCoCBkcml2 ZXJzL2Nsb2Nrc291cmNlL01ha2VmaWxlwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+Pj4+PsKgwqDC oMKgIGRyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXIteGlsaW54LmMgfCA2NTAKPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+Pj4+PsKgwqDCoMKgIDUgZmlsZXMgY2hhbmdlZCwgNjY3IGlu c2VydGlvbnMoKyksIDMyNyBkZWxldGlvbnMoLSkKPj4+Pj7CoMKgwqDCoCBkZWxldGUgbW9kZSAx MDA2NDQgYXJjaC9taWNyb2JsYXplL2tlcm5lbC90aW1lci5jCj4+Pj4+wqDCoMKgwqAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvY2xvY2tzb3VyY2UvdGltZXIteGlsaW54LmMKPj4+Pgo+Pj4+ IEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyB0aGUgcmlnaHQgd2F5IHRvIGdvLgo+Pj4+IFRoZSBmaXJz dCBwYXRjaCBzaG91bGQgYmUgbW92ZSBjdXJyZW50IHRpbWVyIGRyaXZlciBmcm9tIG1pY3JvYmxh emUgdG8KPj4+PiBnZW5lcmljIGxvY2F0aW9uIGFuZCB0aGVuIGFwcGx5IHBhdGNoZXMgb24gdGhl IHRvcCBiYXNlZCBvbiB3aGF0IHlvdQo+IGFyZQo+Pj4+IGFkZGluZy9maXhpbmcgdG8gYmUgYWJs ZSB0byByZXZpZXcgZXZlcnkgY2hhbmdlIHNlcGFyYXRlbHkuCj4+Pj4gV2hlbiBhbnkgaXNzdWUg aGFwcGVucyBpdCBjYW4gYmUgYmlzZWN0ZWQgYW5kIGV4YWN0IHBhdGNoIGlzCj4gaWRlbnRpZmll ZC4KPj4+PiBXaXRoIHRoaXMgd2F5IHdlIHdpbGwgZW5kIHVwIGluIHRoaXMgcGF0Y2ggYW5kIGl0 IHdpbGwgdGFrZSBhIGxvdCBvZgo+Pj4+IHRpbWUgdG8gZmluZCB3aGVyZSB0aGF0IHByb2JsZW0g aXMuCj4+Pgo+Pj4gV2hhdCBwYXJ0cyB3b3VsZCB5b3UgbGlrZSB0byBzZWUgc3BsaXQ/IEZ1bmRh bWVudGFsbHksIHRoaXMgY3VycmVudAo+Pj4gcGF0Y2ggaXMgYSByZWltcGxlbWVudGF0aW9uIG9m IHRoZSBkcml2ZXIuIEkgdGhpbmsgdGhlIG9ubHkgcmVhc29uYWJsZQo+Pj4gc3BsaXQgd291bGQg YmUgdG8gYWRkIFBXTSBzdXBwb3J0IGluIGEgc2VwYXJhdGUgcGF0Y2guCj4+Pgo+Pj4gSSBkbyBu b3QgdGhpbmsgdGhhdCBnZW5lcmljaXppbmcgdGhlIG1pY3JvYmxhemUgdGltZXIgZHJpdmVyIGlz IGFuCj4+PiBpbnRlZ3JhbCBwYXJ0IG9mIGFkZGluZyBQV00gc3VwcG9ydC4gVGhpcyBpcyBlc3Bl Y2lhbGx5IHNpbmNlIHlvdSBzZWVtCj4+PiBvcHBvc2VkIHRvIHVzaW5nIGV4aXN0aW5nIGRldmlj ZXRyZWUgcHJvcGVydGllcyB0byBpbmZvcm0gdGhlIGRyaXZlci4gSQo+Pj4gYW0gaW5jbGluZWQg dG8ganVzdCBhZGQgYSBwYXRjaCBhZGRpbmcgYSBjaGVjayBmb3IgJyMtcHdtLWNlbGxzJyB0byB0 aGUKPj4+IGV4aXN0aW5nIGRyaXZlciBhbmQgb3RoZXJ3aXNlIGxlYXZlIGl0IHVudG91Y2hlZC4K Pj4KPj4gQXMgSSBzYWlkIEkgdGhpbmsgdGhlIHBhdGNoZXMgc2hvdWxkIGJlIGxpa2UgdGhpcy4K Pj4gMS4gQ292ZXIgZXhpc3RpbmcgRFQgYmluZGluZyBiYXNlZCBvbiBjdXJyZW50IGNvZGUuCj4+ IDIuIE1vdmUgdGltZSBvdXQgb2YgYXJjaC9taWNyb2JsYXplIHRvIGRyaXZlcnMvY2xvY2tzb3Vy Y2UvIGFuZCBldmVuCj4+IGVuYWJsZSBpdCB2aWEgS2NvbmZpZyBqdXN0IGZvciBNaWNyb2JsYXpl Lgo+PiAzLiBSZW1vdmUgZGVwZW5kZW5jeSBvbiBNaWNyb2JsYXplIGFuZCBlbmFibGUgYnVpbGQg Zm9yIG90aGVycy4gSSBoYXZlCj4+IHNlZW4gYXQgbGVhc3Qgb25lIGNwdWluZm8uY3B1X2Nsb2Nr X2ZyZXEgYXNzaWdubWVudC4gVGhpcyBjb2RlIGNhbiBiZQo+PiBsaWtlbHkgY29tcGxldGVseSBy ZW1vdmVkIG9yIGRlcHJlY2F0ZS4KPiAKPiBUaGlzIGNvdWxkIGJlIGRlcHJlY2F0ZWQsIGJ1dCBj YW5ub3QgYmUgcmVtb3ZlZCBzaW5jZSBleGlzdGluZyBkZXZpY2UKPiB0cmVlcyAoZS5nLiBxZW11 KSBoYXZlIG5laXRoZXIgY2xvY2tzIG5vciBjbG9jay1mcmVxdWVuY3kgcHJvcGVydGllcy4KClJv YjogRG8gd2UgaGF2ZSBhbnkgb2JsaWdhdGlvbiB0byBrZWVwIHByb3BlcnRpZXMgZm9yIG90aGVy IHByb2plY3RzPwoKCj4+IDQuIE1ha2UgZHJpdmVyIGFzIG1vZHVsZQo+PiA1LiBEbyB3aGF0ZXZl ciBjaGFuZ2VzIHlvdSB3YW50IGJlZm9yZSBhZGRpbmcgcHdtIHN1cHBvcnQKPj4gNi4gRXh0ZW5k IERUIGJpbmRpbmcgZG9jIGZvciBQV00gc3VwcG9ydAo+PiA3LiBBZGQgUFdNIHN1cHBvcnQKPiAK PiBGcmFua2x5LCBJIGFtIGluY2xpbmVkIHRvIGp1c3QgbGVhdmUgdGhlIG1pY3JvYmxhemUgdGlt ZXIgYXMtaXMuIFRoZSBQV00KPiBkcml2ZXIgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudC4gSSBo YXZlIGFscmVhZHkgcHV0IHRvbyBtdWNoIGVmZm9ydCBpbnRvCj4gdGhpcyBkcml2ZXIsIGFuZCBJ IGRvbid0IGhhdmUgdGhlIGVuZXJneSB0byBjb250aW51ZSB3b3JraW5nIG9uIHRoZQo+IG1pY3Jv YmxhemUgdGltZXIuCgpJIHVuZGVyc3RhbmQuIEkgYW0gYWN0dWFsbHkgdXNpbmcgYXhpIHRpbWVy IGFzIHB3bSBkcml2ZXIgaW4gb25lIG9mIG15CnByb2plY3QgYnV0IG5ldmVyIGhhZCB0aW1lIHRv IHVwc3RyZWFtIGl0IGJlY2F1c2Ugb2YgY291cGxlIG9mIHN0ZXBzIGFib3ZlLgpXZSBuZWVkIHRv IGRvIGl0IHJpZ2h0IGJhc2VkIG9uIHN0ZXBzIGxpc3RlZCBhYm92ZS4gSWYgdGhpcyBpcyB0b28g bXVjaAp3b3JrIGl0IHdpbGwgaGF2ZSB0byB3YWl0LiBJIHdpbGwgTkFDSyBhbGwgYXR0ZW1wdHMg dG8gYWRkIHNlcGFyYXRlCmRyaXZlciBmb3IgSVAgd2hpY2ggd2UgYWxyZWFkeSBzdXBwb3J0IGlu IHRoZSB0cmVlLgoKVGhhbmtzLApNaWNoYWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFy bS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK