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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D7F9C43334 for ; Thu, 14 Jul 2022 07:34:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229869AbiGNHeR convert rfc822-to-8bit (ORCPT ); Thu, 14 Jul 2022 03:34:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36656 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229713AbiGNHeQ (ORCPT ); Thu, 14 Jul 2022 03:34:16 -0400 Received: from de-smtp-delivery-113.mimecast.com (de-smtp-delivery-113.mimecast.com [194.104.109.113]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BB243BE0F for ; Thu, 14 Jul 2022 00:34:13 -0700 (PDT) Received: from CHE01-ZR0-obe.outbound.protection.outlook.com (mail-zr0che01lp2113.outbound.protection.outlook.com [104.47.22.113]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-15-VME7gc6gP1yw_O-aSFJV4A-2; Thu, 14 Jul 2022 09:34:11 +0200 X-MC-Unique: VME7gc6gP1yw_O-aSFJV4A-2 Received: from ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:2e::8) by ZR0P278MB0361.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:32::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.20; Thu, 14 Jul 2022 07:34:09 +0000 Received: from ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM ([fe80::3d:ca30:8c24:1a95]) by ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM ([fe80::3d:ca30:8c24:1a95%8]) with mapi id 15.20.5438.014; Thu, 14 Jul 2022 07:34:09 +0000 Date: Thu, 14 Jul 2022 09:34:08 +0200 From: Francesco Dolcini To: Oleksij Rempel , Wolfram Sang , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Marco Felsch CC: Francesco Dolcini , Oleksandr Suvorov , Oleksij Rempel , Pengutronix Kernel Team , Shawn Guo , Sascha Hauer , Fabio Estevam , NXP Linux Team , linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v1] i2c: imx: Retry transfer on transient failure Message-ID: <20220714073408.GA542904@francesco-nb.int.toradex.com> References: <20220712082415.319738-1-francesco.dolcini@toradex.com> <20220712090514.lt4r4dvlkn55jf2o@pengutronix.de> <20220712100504.GB319880@francesco-nb.int.toradex.com> <20220713115750.GA504159@francesco-nb.int.toradex.com> <20220713132437.GF24373@pengutronix.de> <20220713134329.GA495155@francesco-nb.int.toradex.com> <20220713155723.GG24373@pengutronix.de> <20220713202541.GA532546@francesco-nb.int.toradex.com> <20220714070705.GH24373@pengutronix.de> In-Reply-To: <20220714070705.GH24373@pengutronix.de> X-ClientProxiedBy: MR2P264CA0142.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:30::34) To ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:2e::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: baba2bd6-d3dc-4a11-52fc-08da656b3d59 X-MS-TrafficTypeDiagnostic: ZR0P278MB0361:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: w3EqKbv8GUCnFKaPRCL/I6K3YDW6ZJ373ghy3LShrxUxGz1i6cUSE7ZlirjmuzyCv9uwEm63GJOVnHKU7e9+l3NlcCnpP7T3kEBTaEW4vi2GV76+DOSiKQbvLBes6HBvfOM7xLVlx4UsgAbCBtdT882vcFE2wDUGVJtH1DywEaSHhMS9XqC9CXlEsR++XUsillwtkcZcJZsnRTm3ezOt61jzKZol/yXcyFyz2VrimwdjYBQEX2QKb2eejO9ICrGHtJH90HLucAQ/A8AJiDZ2Z/vlhydfDCKwPgmu2uSEkkgclxNlaUYdkmXkcd8jUcRdcik7qWk6Mb3NM9rdPhe5FVXqBL16WUPe4rVM9729eq4C5S1mL7zZwZafbrYYM/vAnU6ftU/dG//4ACqRFd4Tgd5XjWl0jZ2wRB9nQL/SyvirHoK7UPobYziQTmUjagEhZpJ2pwz3kcXod1IWIplo5akEKIvGS/di9kmJsaXociZlOoGdH4Seu9gVZR3lusKdWQYuXEh9js7fCqgNq3A8/86gAQHH7Y7jdfpoI4yjjGa4+BbZwJffhCw/x5OY/iCyWC2Sfp8xV192ib4BiOMXl2G/aJGA4xlxDuHo0/KDm6L8C4fIa9bGkDzK4+S0eRliJEwAb0FEVptP+BuhX4vZsjnJbQKSqigLYbb/vdhPXBNAWUiGtvPL6s07m9BqazDlNOwRraExNG2e9+L2gEL+NyAN4Aon8GHnTnLT7kXIVXBMWM7eOtmroNnJnB2fWF0k/IcSXmOMuNLBnhDWY6pVYGzwWNwilMB654HyPO6hFsWZZ6ypT7R6JcvB64oP0byM2o96uwG4lYel/koZzogD3Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230016)(4636009)(136003)(376002)(39840400004)(366004)(346002)(396003)(38100700002)(66574015)(83380400001)(38350700002)(54906003)(44832011)(186003)(66556008)(4326008)(8676002)(66476007)(7416002)(66946007)(110136005)(966005)(86362001)(41300700001)(2906002)(6512007)(26005)(478600001)(8936002)(6506007)(316002)(52116002)(6486002)(5660300002)(33656002)(1076003);DIR:OUT;SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tBslZLIMcMas7wq8GC9xPhZGP9Ey7M0bZPG2VlGW+dYiaUsg5DIEpfi0p06J?= =?us-ascii?Q?Jwamf26f8ksamHusblBbqAQaTAr2HgOjp4rSWLGLaqBKIkYOPxeR2KvpBZTK?= =?us-ascii?Q?6evH/GDpZQ5T6XUanlOqRrVkVqDCwr3CJpnGASjLVCS8Vn/Q1KEMrqEtHvCX?= =?us-ascii?Q?PBgON8mgyNiKU6j08EFkDOiWaqAFtdnq6hXecXWUK7bhTvluYbQpSkPmH/MF?= =?us-ascii?Q?M+XoDKBpGU3FUgy3DT38mAcx+Hhn5T0R0rS8BgZZMkhb1dcgKUb9/XG76Koa?= =?us-ascii?Q?+hxE072nW9EEwlgJMtsZ5cnbYLnXUaL+ymKxpJRz6OvrtgQ8MLEHQeFfvnj/?= =?us-ascii?Q?JwD1lafWapa8S1fRi9BpB6xxRHkwmRFUiZH3zNpb/F8nSV5Kh67GcKeRoXcX?= =?us-ascii?Q?6JiqAFTCPt/zmue6ze2y8t812tThHlJjTYZoIPKalv1JU1wgdF44SSljw3Yz?= =?us-ascii?Q?9t5I4gRasNlTDg6HvfrB80QVD/q4zESvykFaR/H9DjUX+u7NP0PQK5StIrNn?= =?us-ascii?Q?TZGqq6zAsgLqcvHmaVZx/860rm+wWOG+gtNDBAsggvu5qYSoBIrY7RMHmVtv?= =?us-ascii?Q?9Q/31vpQs6vbqEcYV0HyqdITeOJU3k369ETIS+phh/zIGW8kBfBAMCbtE4Ic?= =?us-ascii?Q?U5ISUdciQwXVvEzHo6JpTpJqscGv7b5Soho6ZRxo5L3CnnqLPTkUqMDzAUQh?= =?us-ascii?Q?a8OZSffprTLJJIjbOjOBYBwFYIPwX8F9H5/3N7qfMUzHAOnyKNzoy7XoWpJq?= =?us-ascii?Q?K5XylnF7c5ZpzM7lvyW4Ohrg7+uJ1SuzaefVJ0M0YMKo500TnFOTrKaF9ky9?= =?us-ascii?Q?Up+8aG9uov2AjQ2wJsVR1weHprFlbbJwneKL3FOuNEIeOdmSvJd9B6UiQAuZ?= =?us-ascii?Q?cUw8vv/wiXyECs5SeyVLtNtxBIvqk7bxaOY0umpCMTLRIaBzJVo6bRlkv56d?= =?us-ascii?Q?Q+vTss1y0rgJZavrEsXCd5u+7vG5MHqzwTbjBzLLqSG1hEeTTqroYrWl3LXK?= =?us-ascii?Q?21LG2RXxA9P/R7u5EpUpDx9ShOAwC76ngs1izSIcmB0gyaKrNEIANdFEr+7k?= =?us-ascii?Q?rj1tY4WabYBU2lUmj/mRkjV3jjeNAC4qop2cPT2dU+hiXTRcM4dpCeY0BzXf?= =?us-ascii?Q?Nswk+itkRpf+ztPAXf5Z3UwDoDJiaQFvjEFH3PpCg9Tv5+ccb0fM8RWxXIyL?= =?us-ascii?Q?XU5nuNCWUxOoWGXwzeE3OttE8EF7ruWNx6vNNTshADcSopCTO/rRQs/ZUeaG?= =?us-ascii?Q?lAqMCmvo4hs9TyqQokJKFZPtECc02cVKu6tq7bj78m60vUZ0pxgeDATZwe9g?= =?us-ascii?Q?GjZnAQwQroq8/YbDCGLQ2FEXGNvXwKVSHAe91dfV9+npKAv7VOMsq70fVo67?= =?us-ascii?Q?EC47TJRNHgo3NDsWoSlF8RkX+mHccVsdgpzWVgxSPhTXRLXiblyRFkuTqnjU?= =?us-ascii?Q?Nk5JKE3KmNP/bJBj0Y+o4yR0S5Ku2dXLIBaIJ0fdjEkRh3YNNNtCPjkYip/m?= =?us-ascii?Q?AW8MGQTPgUgG8dzjDtZJu3tdLN+yIVWvudZJShj1PFj6URqCDjfMlrXebnla?= =?us-ascii?Q?k2BZ8tk02SMTWAZanfA+3qaUnyNIY35KoyCKxK9BucZvi91yUbpHQAE6bWBG?= =?us-ascii?Q?tg=3D=3D?= X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-Network-Message-Id: baba2bd6-d3dc-4a11-52fc-08da656b3d59 X-MS-Exchange-CrossTenant-AuthSource: ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2022 07:34:09.2453 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9g700wSYmBggMFhsudQhr8UBe5QbPZFEFmFrlZki3tk5rphoxnsH5wImOJsF1QxuTbP296o0WvSoxyR2vWj32Om42h8HkBd7jxJbXpNA7ZY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR0P278MB0361 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CDE13A77 smtp.mailfrom=francesco.dolcini@toradex.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: toradex.com Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Hello all, On Thu, Jul 14, 2022 at 09:07:05AM +0200, Oleksij Rempel wrote: > Hello Francesco, > > On Wed, Jul 13, 2022 at 10:25:41PM +0200, Francesco Dolcini wrote: > > Hello Oleksij, > > > > On Wed, Jul 13, 2022 at 05:57:23PM +0200, Oleksij Rempel wrote: > > > On Wed, Jul 13, 2022 at 03:43:29PM +0200, Francesco Dolcini wrote: > > > > On Wed, Jul 13, 2022 at 03:24:37PM +0200, Oleksij Rempel wrote: > > > > > On Wed, Jul 13, 2022 at 01:57:50PM +0200, Francesco Dolcini wrote: > > > > > > + oleksandr.suvorov@foundries.io > > > > > > > > > > > > Hello all, > > > > > > > > > > > > On Tue, Jul 12, 2022 at 12:05:04PM +0200, Francesco Dolcini wrote: > > > > > > > On Tue, Jul 12, 2022 at 11:05:14AM +0200, Uwe Kleine-König wrote: > > > > > > > > In which situations does this help? Please mention these in the > > > > > > > > commit log. > > > > > > > I'll do > > > > > > > > > > > > I did some investigation on this, unfortunately we have this change > > > > > > laying around since 1 year, it was written by Oleksandr, and in the > > > > > > meantime he moved to a new company. I added him to this email thread, so > > > > > > he can comment in case he remembers more. > > > > > > > > > > > > We introduced this change while working on OV5640 camera sensor on an > > > > > > apalis-imx6q evaluation board, without this change we had some sporadic > > > > > > i2c communication issues. Unfortunately I do not have any better > > > > > > details. > > > > > > > > > > > > To me looks like having some (3? 5?) retry as a default is somehow > > > > > > more reasonable than to never retry, not sure if this should be > > > > > > implemented as a default for all the i2c adapters. From what I was able > > > > > > to see that would not be a trivial change (the retry parameter is coming > > > > > > from the i2c_imx driver, there is no obvious way to have a default in > > > > > > the i2c core). > > > > > > > > > > > > Would it work for you to keep the change as it is (just getting rid > > > > > > of the useless define) and add a little bit more blurb to the commit > > > > > > message to include the various comments collected so far? > > > > > > > > > > I assume, it is related to reset time or other reason where the camera > > > > > is not responding. In this case, amount of retries would depend on I2C > > > > > CLK speed and host CPU speed. > > > > > > > > > > > > > The retry on the I2C IMX driver would trigger only on tx arbitration > > > > failure, that would be the SDA being tied low by the slave in an > > > > unexpected moment, correct? > > > > > > If it is the case, it is better to understand why. Are there some > > > special timing requirements? > > > > > > > If the camera does not respond it will just > > > > not ack the transaction and that would not be recovered by the retry > > > > in this change. > > > > > > > > Can this just a layout/cabling issue with some noise on the SDA line? We > > > > are talking about somehow long board to board cables with various > > > > signals on it. This is an issue that we had for sure in the past, > > > > however I do have record of this only on a different camera. > > > > > > If it is cabling issue, then I would take a look at pinmux > > > configuration. If it is so noisy, that some errors are expected, then it would > > > affect camera configuration as well. I mean, system is potentially > > > writing trash to the config register. > > > > I do not think that this is possible in the way you defined, if SDA is > > low when the master is driving it high the master will just stop > > transmitting and an arbitration lost interrupt is raised. I guess this > > is just the same for any I2C controller, anyway is defined in > > `35.7.4 I2C Status Register (I2Cx_I2SR)` in the i.MX6QDL reference manual. > > > > I guess it would be still theoretically possible that the master read > > garbage from the slave, I'm not aware of any mechanism to avoid it. > > > > Said that I do not have more details, for some unfortunate reason this > > change was laying in our downstream kernel since too long. > > > > Anyway, let's look at this in a different way, from what I was able to > > understand digging on this topic retrying on I2C arbitration lost is > > just the normal thing to do and the I2C core provides support for this > > since ever, the comment in i2c-core is > > /* Retry automatically on arbitration loss */. > > > > Setting retries to something like 3 or 5 is just very common, various > > drivers have this value in the first commit or had it added later on (as > > Uwe already commented) > > > > To me it seems like the most sensible thing to do, is there any reason > > why the i2c_imx driver should not do it? > > Here we go: > https://www.i2c-bus.org/i2c-primer/analysing-obscure-problems/master-reports-arbitration-lost/ > "Possible reasons are the same as the ones described in “No Acknowledge > From I2C Slave”" > > So, lets see what it can be: > https://www.i2c-bus.org/i2c-primer/analysing-obscure-problems/no-acknowledge-from-i2c-slave/ > "Possible reasons are: > > - The I2C slave could not correctly interpret the data on SDA because the SDA > high or low-level voltages do not reach its appropriate input > thresholds. > - The I2C slave missed an SCL cycle because the SCL high or low-level voltages > do not reach its appropriate input thresholds. > - The I2C slave accidently interpreted a spike etc. as an SCL cycle. > > With adequate serial resistors between master and slave, an analog shot > of the signals at the slave’s SDA and SCL pins provides a clue whether > the slave acknowledges and to which SCL clock pulse. The different SDA > low levels due to the serial resistor make it possible to distinguish > acknowledges from the slave from data bits from the master. " > > I interpret it, that setting retry count on any non zero value is an > workaround for brocken circuit. It means, on HW development phase we > won't be able to detect HW issue, if retry count will be not 0. > > IMHO, it board specific configuration and should not be set by driver. Got your point, and in contrast to what you wrote, according to the I2C spec, a master is required ("must") to restart the transaction in case the arbitration is lost. >From I2C-bus specification and user manual [1], 3.1.8 Arbitration: ``` No information is lost during the arbitration process. A controller that loses the arbitration can generate clock pulses until the end of the byte in which it loses the arbitration and must restart its transaction when the bus is free. ``` In case there is a different view from the one Oleksij expressed here, let me know and I can improve the commit message, otherwise I guess we can just drop this change. [1] https://www.nxp.com/docs/en/user-guide/UM10204.pdf Francesco 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 55FE6C433EF for ; Thu, 14 Jul 2022 07:35:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:CC:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Tr/nTZeGS9Hr7/zE62vOBVsQ3g6RA2yHuufEo6wtWuE=; b=LBktPrgm6/N5YQ EvD0xYvyOE9NkPcVPIpOfgU6uiCkUFhBVZUzWqar9Zd4KE6xs8vY+F4imNDDcktBOC0FnAMpgz65g EmqF1hhaz/Na/NLekBs+PhybKeZ6YH6oxT317W5ZaqnnYLF38coJ3Yq/X1hIesdMmUXKpJGIFR56g 6H4RG/alp08x99wJ2wFsqv36oB9sTVDAcv4OxTGrh3pzYK2gQa5yOrTIeSBID6HDwaRyI6o1hwxrC uuBa4K0aa/1BBOLmc7wx7t4P44i3bXYDmNXdb2q1NOBZK9GlS1k2Pj+V+sRE1FebI2wkiTn+IX5uc yoDEfP57XwBv3kBCG8eQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oBtMa-00BskC-Av; Thu, 14 Jul 2022 07:34:20 +0000 Received: from de-smtp-delivery-113.mimecast.com ([194.104.109.113]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oBtMW-00Bsgn-Oh for linux-arm-kernel@lists.infradead.org; Thu, 14 Jul 2022 07:34:19 +0000 Received: from CHE01-ZR0-obe.outbound.protection.outlook.com (mail-zr0che01lp2113.outbound.protection.outlook.com [104.47.22.113]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-15-VME7gc6gP1yw_O-aSFJV4A-2; Thu, 14 Jul 2022 09:34:11 +0200 X-MC-Unique: VME7gc6gP1yw_O-aSFJV4A-2 Received: from ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:2e::8) by ZR0P278MB0361.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:32::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.20; Thu, 14 Jul 2022 07:34:09 +0000 Received: from ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM ([fe80::3d:ca30:8c24:1a95]) by ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM ([fe80::3d:ca30:8c24:1a95%8]) with mapi id 15.20.5438.014; Thu, 14 Jul 2022 07:34:09 +0000 Date: Thu, 14 Jul 2022 09:34:08 +0200 From: Francesco Dolcini To: Oleksij Rempel , Wolfram Sang , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Marco Felsch CC: Francesco Dolcini , Oleksandr Suvorov , Oleksij Rempel , Pengutronix Kernel Team , Shawn Guo , Sascha Hauer , Fabio Estevam , NXP Linux Team , linux-i2c@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v1] i2c: imx: Retry transfer on transient failure Message-ID: <20220714073408.GA542904@francesco-nb.int.toradex.com> References: <20220712082415.319738-1-francesco.dolcini@toradex.com> <20220712090514.lt4r4dvlkn55jf2o@pengutronix.de> <20220712100504.GB319880@francesco-nb.int.toradex.com> <20220713115750.GA504159@francesco-nb.int.toradex.com> <20220713132437.GF24373@pengutronix.de> <20220713134329.GA495155@francesco-nb.int.toradex.com> <20220713155723.GG24373@pengutronix.de> <20220713202541.GA532546@francesco-nb.int.toradex.com> <20220714070705.GH24373@pengutronix.de> In-Reply-To: <20220714070705.GH24373@pengutronix.de> X-ClientProxiedBy: MR2P264CA0142.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:30::34) To ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:2e::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: baba2bd6-d3dc-4a11-52fc-08da656b3d59 X-MS-TrafficTypeDiagnostic: ZR0P278MB0361:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: w3EqKbv8GUCnFKaPRCL/I6K3YDW6ZJ373ghy3LShrxUxGz1i6cUSE7ZlirjmuzyCv9uwEm63GJOVnHKU7e9+l3NlcCnpP7T3kEBTaEW4vi2GV76+DOSiKQbvLBes6HBvfOM7xLVlx4UsgAbCBtdT882vcFE2wDUGVJtH1DywEaSHhMS9XqC9CXlEsR++XUsillwtkcZcJZsnRTm3ezOt61jzKZol/yXcyFyz2VrimwdjYBQEX2QKb2eejO9ICrGHtJH90HLucAQ/A8AJiDZ2Z/vlhydfDCKwPgmu2uSEkkgclxNlaUYdkmXkcd8jUcRdcik7qWk6Mb3NM9rdPhe5FVXqBL16WUPe4rVM9729eq4C5S1mL7zZwZafbrYYM/vAnU6ftU/dG//4ACqRFd4Tgd5XjWl0jZ2wRB9nQL/SyvirHoK7UPobYziQTmUjagEhZpJ2pwz3kcXod1IWIplo5akEKIvGS/di9kmJsaXociZlOoGdH4Seu9gVZR3lusKdWQYuXEh9js7fCqgNq3A8/86gAQHH7Y7jdfpoI4yjjGa4+BbZwJffhCw/x5OY/iCyWC2Sfp8xV192ib4BiOMXl2G/aJGA4xlxDuHo0/KDm6L8C4fIa9bGkDzK4+S0eRliJEwAb0FEVptP+BuhX4vZsjnJbQKSqigLYbb/vdhPXBNAWUiGtvPL6s07m9BqazDlNOwRraExNG2e9+L2gEL+NyAN4Aon8GHnTnLT7kXIVXBMWM7eOtmroNnJnB2fWF0k/IcSXmOMuNLBnhDWY6pVYGzwWNwilMB654HyPO6hFsWZZ6ypT7R6JcvB64oP0byM2o96uwG4lYel/koZzogD3Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230016)(4636009)(136003)(376002)(39840400004)(366004)(346002)(396003)(38100700002)(66574015)(83380400001)(38350700002)(54906003)(44832011)(186003)(66556008)(4326008)(8676002)(66476007)(7416002)(66946007)(110136005)(966005)(86362001)(41300700001)(2906002)(6512007)(26005)(478600001)(8936002)(6506007)(316002)(52116002)(6486002)(5660300002)(33656002)(1076003);DIR:OUT;SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tBslZLIMcMas7wq8GC9xPhZGP9Ey7M0bZPG2VlGW+dYiaUsg5DIEpfi0p06J?= =?us-ascii?Q?Jwamf26f8ksamHusblBbqAQaTAr2HgOjp4rSWLGLaqBKIkYOPxeR2KvpBZTK?= =?us-ascii?Q?6evH/GDpZQ5T6XUanlOqRrVkVqDCwr3CJpnGASjLVCS8Vn/Q1KEMrqEtHvCX?= =?us-ascii?Q?PBgON8mgyNiKU6j08EFkDOiWaqAFtdnq6hXecXWUK7bhTvluYbQpSkPmH/MF?= =?us-ascii?Q?M+XoDKBpGU3FUgy3DT38mAcx+Hhn5T0R0rS8BgZZMkhb1dcgKUb9/XG76Koa?= =?us-ascii?Q?+hxE072nW9EEwlgJMtsZ5cnbYLnXUaL+ymKxpJRz6OvrtgQ8MLEHQeFfvnj/?= =?us-ascii?Q?JwD1lafWapa8S1fRi9BpB6xxRHkwmRFUiZH3zNpb/F8nSV5Kh67GcKeRoXcX?= =?us-ascii?Q?6JiqAFTCPt/zmue6ze2y8t812tThHlJjTYZoIPKalv1JU1wgdF44SSljw3Yz?= =?us-ascii?Q?9t5I4gRasNlTDg6HvfrB80QVD/q4zESvykFaR/H9DjUX+u7NP0PQK5StIrNn?= =?us-ascii?Q?TZGqq6zAsgLqcvHmaVZx/860rm+wWOG+gtNDBAsggvu5qYSoBIrY7RMHmVtv?= =?us-ascii?Q?9Q/31vpQs6vbqEcYV0HyqdITeOJU3k369ETIS+phh/zIGW8kBfBAMCbtE4Ic?= =?us-ascii?Q?U5ISUdciQwXVvEzHo6JpTpJqscGv7b5Soho6ZRxo5L3CnnqLPTkUqMDzAUQh?= =?us-ascii?Q?a8OZSffprTLJJIjbOjOBYBwFYIPwX8F9H5/3N7qfMUzHAOnyKNzoy7XoWpJq?= =?us-ascii?Q?K5XylnF7c5ZpzM7lvyW4Ohrg7+uJ1SuzaefVJ0M0YMKo500TnFOTrKaF9ky9?= =?us-ascii?Q?Up+8aG9uov2AjQ2wJsVR1weHprFlbbJwneKL3FOuNEIeOdmSvJd9B6UiQAuZ?= =?us-ascii?Q?cUw8vv/wiXyECs5SeyVLtNtxBIvqk7bxaOY0umpCMTLRIaBzJVo6bRlkv56d?= =?us-ascii?Q?Q+vTss1y0rgJZavrEsXCd5u+7vG5MHqzwTbjBzLLqSG1hEeTTqroYrWl3LXK?= =?us-ascii?Q?21LG2RXxA9P/R7u5EpUpDx9ShOAwC76ngs1izSIcmB0gyaKrNEIANdFEr+7k?= =?us-ascii?Q?rj1tY4WabYBU2lUmj/mRkjV3jjeNAC4qop2cPT2dU+hiXTRcM4dpCeY0BzXf?= =?us-ascii?Q?Nswk+itkRpf+ztPAXf5Z3UwDoDJiaQFvjEFH3PpCg9Tv5+ccb0fM8RWxXIyL?= =?us-ascii?Q?XU5nuNCWUxOoWGXwzeE3OttE8EF7ruWNx6vNNTshADcSopCTO/rRQs/ZUeaG?= =?us-ascii?Q?lAqMCmvo4hs9TyqQokJKFZPtECc02cVKu6tq7bj78m60vUZ0pxgeDATZwe9g?= =?us-ascii?Q?GjZnAQwQroq8/YbDCGLQ2FEXGNvXwKVSHAe91dfV9+npKAv7VOMsq70fVo67?= =?us-ascii?Q?EC47TJRNHgo3NDsWoSlF8RkX+mHccVsdgpzWVgxSPhTXRLXiblyRFkuTqnjU?= =?us-ascii?Q?Nk5JKE3KmNP/bJBj0Y+o4yR0S5Ku2dXLIBaIJ0fdjEkRh3YNNNtCPjkYip/m?= =?us-ascii?Q?AW8MGQTPgUgG8dzjDtZJu3tdLN+yIVWvudZJShj1PFj6URqCDjfMlrXebnla?= =?us-ascii?Q?k2BZ8tk02SMTWAZanfA+3qaUnyNIY35KoyCKxK9BucZvi91yUbpHQAE6bWBG?= =?us-ascii?Q?tg=3D=3D?= X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-Network-Message-Id: baba2bd6-d3dc-4a11-52fc-08da656b3d59 X-MS-Exchange-CrossTenant-AuthSource: ZRAP278MB0495.CHEP278.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2022 07:34:09.2453 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9g700wSYmBggMFhsudQhr8UBe5QbPZFEFmFrlZki3tk5rphoxnsH5wImOJsF1QxuTbP296o0WvSoxyR2vWj32Om42h8HkBd7jxJbXpNA7ZY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR0P278MB0361 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CDE13A77 smtp.mailfrom=francesco.dolcini@toradex.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: toradex.com Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220714_003417_134990_437F6E43 X-CRM114-Status: GOOD ( 57.00 ) 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 SGVsbG8gYWxsLAoKT24gVGh1LCBKdWwgMTQsIDIwMjIgYXQgMDk6MDc6MDVBTSArMDIwMCwgT2xl a3NpaiBSZW1wZWwgd3JvdGU6Cj4gSGVsbG8gRnJhbmNlc2NvLAo+IAo+IE9uIFdlZCwgSnVsIDEz LCAyMDIyIGF0IDEwOjI1OjQxUE0gKzAyMDAsIEZyYW5jZXNjbyBEb2xjaW5pIHdyb3RlOgo+ID4g SGVsbG8gT2xla3NpaiwKPiA+IAo+ID4gT24gV2VkLCBKdWwgMTMsIDIwMjIgYXQgMDU6NTc6MjNQ TSArMDIwMCwgT2xla3NpaiBSZW1wZWwgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgSnVsIDEzLCAyMDIy IGF0IDAzOjQzOjI5UE0gKzAyMDAsIEZyYW5jZXNjbyBEb2xjaW5pIHdyb3RlOgo+ID4gPiA+IE9u IFdlZCwgSnVsIDEzLCAyMDIyIGF0IDAzOjI0OjM3UE0gKzAyMDAsIE9sZWtzaWogUmVtcGVsIHdy b3RlOgo+ID4gPiA+ID4gT24gV2VkLCBKdWwgMTMsIDIwMjIgYXQgMDE6NTc6NTBQTSArMDIwMCwg RnJhbmNlc2NvIERvbGNpbmkgd3JvdGU6Cj4gPiA+ID4gPiA+ICsgb2xla3NhbmRyLnN1dm9yb3ZA Zm91bmRyaWVzLmlvCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBIZWxsbyBhbGwsCj4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiBPbiBUdWUsIEp1bCAxMiwgMjAyMiBhdCAxMjowNTowNFBNICswMjAw LCBGcmFuY2VzY28gRG9sY2luaSB3cm90ZToKPiA+ID4gPiA+ID4gPiBPbiBUdWUsIEp1bCAxMiwg MjAyMiBhdCAxMTowNToxNEFNICswMjAwLCBVd2UgS2xlaW5lLUvDtm5pZyB3cm90ZToKPiA+ID4g PiA+ID4gPiA+IEluIHdoaWNoIHNpdHVhdGlvbnMgZG9lcyB0aGlzIGhlbHA/IFBsZWFzZSBtZW50 aW9uIHRoZXNlIGluIHRoZQo+ID4gPiA+ID4gPiA+ID4gY29tbWl0IGxvZy4KPiA+ID4gPiA+ID4g PiBJJ2xsIGRvCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBJIGRpZCBzb21lIGludmVzdGlnYXRp b24gb24gdGhpcywgdW5mb3J0dW5hdGVseSB3ZSBoYXZlIHRoaXMgY2hhbmdlCj4gPiA+ID4gPiA+ IGxheWluZyBhcm91bmQgc2luY2UgMSB5ZWFyLCBpdCB3YXMgd3JpdHRlbiBieSBPbGVrc2FuZHIs IGFuZCBpbiB0aGUKPiA+ID4gPiA+ID4gbWVhbnRpbWUgaGUgbW92ZWQgdG8gYSBuZXcgY29tcGFu eS4gSSBhZGRlZCBoaW0gdG8gdGhpcyBlbWFpbCB0aHJlYWQsIHNvCj4gPiA+ID4gPiA+IGhlIGNh biBjb21tZW50IGluIGNhc2UgaGUgcmVtZW1iZXJzIG1vcmUuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiBXZSBpbnRyb2R1Y2VkIHRoaXMgY2hhbmdlIHdoaWxlIHdvcmtpbmcgb24gT1Y1NjQwIGNh bWVyYSBzZW5zb3Igb24gYW4KPiA+ID4gPiA+ID4gYXBhbGlzLWlteDZxIGV2YWx1YXRpb24gYm9h cmQsIHdpdGhvdXQgdGhpcyBjaGFuZ2Ugd2UgaGFkIHNvbWUgc3BvcmFkaWMKPiA+ID4gPiA+ID4g aTJjIGNvbW11bmljYXRpb24gaXNzdWVzLiBVbmZvcnR1bmF0ZWx5IEkgZG8gbm90IGhhdmUgYW55 IGJldHRlcgo+ID4gPiA+ID4gPiBkZXRhaWxzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gVG8g bWUgbG9va3MgbGlrZSBoYXZpbmcgc29tZSAoMz8gNT8pIHJldHJ5IGFzIGEgZGVmYXVsdCBpcyBz b21laG93Cj4gPiA+ID4gPiA+IG1vcmUgcmVhc29uYWJsZSB0aGFuIHRvIG5ldmVyIHJldHJ5LCBu b3Qgc3VyZSBpZiB0aGlzIHNob3VsZCBiZQo+ID4gPiA+ID4gPiBpbXBsZW1lbnRlZCBhcyBhIGRl ZmF1bHQgZm9yIGFsbCB0aGUgaTJjIGFkYXB0ZXJzLiBGcm9tIHdoYXQgSSB3YXMgYWJsZQo+ID4g PiA+ID4gPiB0byBzZWUgdGhhdCB3b3VsZCBub3QgYmUgYSB0cml2aWFsIGNoYW5nZSAodGhlIHJl dHJ5IHBhcmFtZXRlciBpcyBjb21pbmcKPiA+ID4gPiA+ID4gZnJvbSB0aGUgaTJjX2lteCBkcml2 ZXIsIHRoZXJlIGlzIG5vIG9idmlvdXMgd2F5IHRvIGhhdmUgYSBkZWZhdWx0IGluCj4gPiA+ID4g PiA+IHRoZSBpMmMgY29yZSkuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBXb3VsZCBpdCB3b3Jr IGZvciB5b3UgdG8ga2VlcCB0aGUgY2hhbmdlIGFzIGl0IGlzIChqdXN0IGdldHRpbmcgcmlkCj4g PiA+ID4gPiA+IG9mIHRoZSB1c2VsZXNzIGRlZmluZSkgYW5kIGFkZCBhIGxpdHRsZSBiaXQgbW9y ZSBibHVyYiB0byB0aGUgY29tbWl0Cj4gPiA+ID4gPiA+IG1lc3NhZ2UgdG8gaW5jbHVkZSB0aGUg dmFyaW91cyBjb21tZW50cyBjb2xsZWN0ZWQgc28gZmFyPwo+ID4gPiA+ID4gCj4gPiA+ID4gPiBJ IGFzc3VtZSwgaXQgaXMgcmVsYXRlZCB0byByZXNldCB0aW1lIG9yIG90aGVyIHJlYXNvbiB3aGVy ZSB0aGUgY2FtZXJhCj4gPiA+ID4gPiBpcyBub3QgcmVzcG9uZGluZy4gSW4gdGhpcyBjYXNlLCBh bW91bnQgb2YgcmV0cmllcyB3b3VsZCBkZXBlbmQgb24gSTJDCj4gPiA+ID4gPiBDTEsgc3BlZWQg YW5kIGhvc3QgQ1BVIHNwZWVkLgo+ID4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gVGhlIHJldHJ5 IG9uIHRoZSBJMkMgSU1YIGRyaXZlciB3b3VsZCB0cmlnZ2VyIG9ubHkgb24gdHggYXJiaXRyYXRp b24KPiA+ID4gPiBmYWlsdXJlLCB0aGF0IHdvdWxkIGJlIHRoZSBTREEgYmVpbmcgdGllZCBsb3cg YnkgdGhlIHNsYXZlIGluIGFuCj4gPiA+ID4gdW5leHBlY3RlZCBtb21lbnQsIGNvcnJlY3Q/IAo+ ID4gPiAKPiA+ID4gSWYgaXQgaXMgdGhlIGNhc2UsIGl0IGlzIGJldHRlciB0byB1bmRlcnN0YW5k IHdoeS4gQXJlIHRoZXJlIHNvbWUKPiA+ID4gc3BlY2lhbCB0aW1pbmcgcmVxdWlyZW1lbnRzPwo+ ID4gPiAKPiA+ID4gPiBJZiB0aGUgY2FtZXJhIGRvZXMgbm90IHJlc3BvbmQgaXQgd2lsbCBqdXN0 Cj4gPiA+ID4gbm90IGFjayB0aGUgdHJhbnNhY3Rpb24gYW5kIHRoYXQgd291bGQgbm90IGJlIHJl Y292ZXJlZCBieSB0aGUgcmV0cnkKPiA+ID4gPiBpbiB0aGlzIGNoYW5nZS4KPiA+ID4gPiAKPiA+ ID4gPiBDYW4gdGhpcyBqdXN0IGEgbGF5b3V0L2NhYmxpbmcgaXNzdWUgd2l0aCBzb21lIG5vaXNl IG9uIHRoZSBTREEgbGluZT8gV2UKPiA+ID4gPiBhcmUgdGFsa2luZyBhYm91dCBzb21laG93IGxv bmcgYm9hcmQgdG8gYm9hcmQgY2FibGVzIHdpdGggdmFyaW91cwo+ID4gPiA+IHNpZ25hbHMgb24g aXQuIFRoaXMgaXMgYW4gaXNzdWUgdGhhdCB3ZSBoYWQgZm9yIHN1cmUgaW4gdGhlIHBhc3QsCj4g PiA+ID4gaG93ZXZlciBJIGRvIGhhdmUgcmVjb3JkIG9mIHRoaXMgb25seSBvbiBhIGRpZmZlcmVu dCBjYW1lcmEuCj4gPiA+IAo+ID4gPiBJZiBpdCBpcyBjYWJsaW5nIGlzc3VlLCB0aGVuIEkgd291 bGQgdGFrZSBhIGxvb2sgYXQgcGlubXV4Cj4gPiA+IGNvbmZpZ3VyYXRpb24uIElmIGl0IGlzIHNv IG5vaXN5LCB0aGF0IHNvbWUgZXJyb3JzIGFyZSBleHBlY3RlZCwgdGhlbiBpdCB3b3VsZAo+ID4g PiBhZmZlY3QgY2FtZXJhIGNvbmZpZ3VyYXRpb24gYXMgd2VsbC4gSSBtZWFuLCBzeXN0ZW0gaXMg cG90ZW50aWFsbHkKPiA+ID4gd3JpdGluZyB0cmFzaCB0byB0aGUgY29uZmlnIHJlZ2lzdGVyLgo+ ID4gCj4gPiBJIGRvIG5vdCB0aGluayB0aGF0IHRoaXMgaXMgcG9zc2libGUgaW4gdGhlIHdheSB5 b3UgZGVmaW5lZCwgaWYgU0RBIGlzCj4gPiBsb3cgd2hlbiB0aGUgbWFzdGVyIGlzIGRyaXZpbmcg aXQgaGlnaCB0aGUgbWFzdGVyIHdpbGwganVzdCBzdG9wCj4gPiB0cmFuc21pdHRpbmcgYW5kIGFu IGFyYml0cmF0aW9uIGxvc3QgaW50ZXJydXB0IGlzIHJhaXNlZC4gSSBndWVzcyB0aGlzCj4gPiBp cyBqdXN0IHRoZSBzYW1lIGZvciBhbnkgSTJDIGNvbnRyb2xsZXIsIGFueXdheSBpcyBkZWZpbmVk IGluCj4gPiBgMzUuNy40IEkyQyBTdGF0dXMgUmVnaXN0ZXIgKEkyQ3hfSTJTUilgIGluIHRoZSBp Lk1YNlFETCByZWZlcmVuY2UgbWFudWFsLgo+ID4gCj4gPiBJIGd1ZXNzIGl0IHdvdWxkIGJlIHN0 aWxsIHRoZW9yZXRpY2FsbHkgcG9zc2libGUgdGhhdCB0aGUgbWFzdGVyIHJlYWQKPiA+IGdhcmJh Z2UgZnJvbSB0aGUgc2xhdmUsIEknbSBub3QgYXdhcmUgb2YgYW55IG1lY2hhbmlzbSB0byBhdm9p ZCBpdC4KPiA+IAo+ID4gU2FpZCB0aGF0IEkgZG8gbm90IGhhdmUgbW9yZSBkZXRhaWxzLCBmb3Ig c29tZSB1bmZvcnR1bmF0ZSByZWFzb24gdGhpcwo+ID4gY2hhbmdlIHdhcyBsYXlpbmcgaW4gb3Vy IGRvd25zdHJlYW0ga2VybmVsIHNpbmNlIHRvbyBsb25nLgo+ID4gCj4gPiBBbnl3YXksIGxldCdz IGxvb2sgYXQgdGhpcyBpbiBhIGRpZmZlcmVudCB3YXksIGZyb20gd2hhdCBJIHdhcyBhYmxlIHRv Cj4gPiB1bmRlcnN0YW5kIGRpZ2dpbmcgb24gdGhpcyB0b3BpYyByZXRyeWluZyBvbiBJMkMgYXJi aXRyYXRpb24gbG9zdCBpcwo+ID4ganVzdCB0aGUgbm9ybWFsIHRoaW5nIHRvIGRvIGFuZCB0aGUg STJDIGNvcmUgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhpcwo+ID4gc2luY2UgZXZlciwgdGhlIGNv bW1lbnQgaW4gaTJjLWNvcmUgaXMKPiA+IC8qIFJldHJ5IGF1dG9tYXRpY2FsbHkgb24gYXJiaXRy YXRpb24gbG9zcyAqLy4KPiA+IAo+ID4gU2V0dGluZyByZXRyaWVzIHRvIHNvbWV0aGluZyBsaWtl IDMgb3IgNSBpcyBqdXN0IHZlcnkgY29tbW9uLCB2YXJpb3VzCj4gPiBkcml2ZXJzIGhhdmUgdGhp cyB2YWx1ZSBpbiB0aGUgZmlyc3QgY29tbWl0IG9yIGhhZCBpdCBhZGRlZCBsYXRlciBvbiAoYXMK PiA+IFV3ZSBhbHJlYWR5IGNvbW1lbnRlZCkKPiA+IAo+ID4gVG8gbWUgaXQgc2VlbXMgbGlrZSB0 aGUgbW9zdCBzZW5zaWJsZSB0aGluZyB0byBkbywgaXMgdGhlcmUgYW55IHJlYXNvbgo+ID4gd2h5 IHRoZSBpMmNfaW14IGRyaXZlciBzaG91bGQgbm90IGRvIGl0Pwo+IAo+IEhlcmUgd2UgZ286Cj4g aHR0cHM6Ly93d3cuaTJjLWJ1cy5vcmcvaTJjLXByaW1lci9hbmFseXNpbmctb2JzY3VyZS1wcm9i bGVtcy9tYXN0ZXItcmVwb3J0cy1hcmJpdHJhdGlvbi1sb3N0Lwo+ICJQb3NzaWJsZSByZWFzb25z IGFyZSB0aGUgc2FtZSBhcyB0aGUgb25lcyBkZXNjcmliZWQgaW4g4oCcTm8gQWNrbm93bGVkZ2UK PiBGcm9tIEkyQyBTbGF2ZeKAnSIKPiAKPiBTbywgbGV0cyBzZWUgd2hhdCBpdCBjYW4gYmU6Cj4g aHR0cHM6Ly93d3cuaTJjLWJ1cy5vcmcvaTJjLXByaW1lci9hbmFseXNpbmctb2JzY3VyZS1wcm9i bGVtcy9uby1hY2tub3dsZWRnZS1mcm9tLWkyYy1zbGF2ZS8KPiAiUG9zc2libGUgcmVhc29ucyBh cmU6Cj4gCj4gLSBUaGUgSTJDIHNsYXZlIGNvdWxkIG5vdCBjb3JyZWN0bHkgaW50ZXJwcmV0IHRo ZSBkYXRhIG9uIFNEQSBiZWNhdXNlIHRoZSBTREEKPiAgIGhpZ2ggb3IgbG93LWxldmVsIHZvbHRh Z2VzIGRvIG5vdCByZWFjaCBpdHMgYXBwcm9wcmlhdGUgaW5wdXQKPiAgIHRocmVzaG9sZHMuCj4g LSBUaGUgSTJDIHNsYXZlIG1pc3NlZCBhbiBTQ0wgY3ljbGUgYmVjYXVzZSB0aGUgU0NMIGhpZ2gg b3IgbG93LWxldmVsIHZvbHRhZ2VzCj4gICBkbyBub3QgcmVhY2ggaXRzIGFwcHJvcHJpYXRlIGlu cHV0IHRocmVzaG9sZHMuCj4gLSBUaGUgSTJDIHNsYXZlIGFjY2lkZW50bHkgaW50ZXJwcmV0ZWQg YSBzcGlrZSBldGMuIGFzIGFuIFNDTCBjeWNsZS4KPiAKPiBXaXRoIGFkZXF1YXRlIHNlcmlhbCBy ZXNpc3RvcnMgYmV0d2VlbiBtYXN0ZXIgYW5kIHNsYXZlLCBhbiBhbmFsb2cgc2hvdAo+IG9mIHRo ZSBzaWduYWxzIGF0IHRoZSBzbGF2ZeKAmXMgU0RBIGFuZCBTQ0wgcGlucyBwcm92aWRlcyBhIGNs dWUgd2hldGhlcgo+IHRoZSBzbGF2ZSBhY2tub3dsZWRnZXMgYW5kIHRvIHdoaWNoIFNDTCBjbG9j ayBwdWxzZS4gVGhlIGRpZmZlcmVudCBTREEKPiBsb3cgbGV2ZWxzIGR1ZSB0byB0aGUgc2VyaWFs IHJlc2lzdG9yIG1ha2UgaXQgcG9zc2libGUgdG8gZGlzdGluZ3Vpc2gKPiBhY2tub3dsZWRnZXMg ZnJvbSB0aGUgc2xhdmUgZnJvbSBkYXRhIGJpdHMgZnJvbSB0aGUgbWFzdGVyLiAiCj4gCj4gSSBp bnRlcnByZXQgaXQsIHRoYXQgc2V0dGluZyByZXRyeSBjb3VudCBvbiBhbnkgbm9uIHplcm8gdmFs dWUgaXMgYW4KPiB3b3JrYXJvdW5kIGZvciBicm9ja2VuIGNpcmN1aXQuIEl0IG1lYW5zLCBvbiBI VyBkZXZlbG9wbWVudCBwaGFzZSB3ZQo+IHdvbid0IGJlIGFibGUgdG8gZGV0ZWN0IEhXIGlzc3Vl LCBpZiByZXRyeSBjb3VudCB3aWxsIGJlIG5vdCAwLgo+IAo+IElNSE8sIGl0IGJvYXJkIHNwZWNp ZmljIGNvbmZpZ3VyYXRpb24gYW5kIHNob3VsZCBub3QgYmUgc2V0IGJ5IGRyaXZlci4KCkdvdCB5 b3VyIHBvaW50LCBhbmQgaW4gY29udHJhc3QgdG8gd2hhdCB5b3Ugd3JvdGUsIGFjY29yZGluZyB0 byB0aGUgSTJDCnNwZWMsIGEgbWFzdGVyIGlzIHJlcXVpcmVkICgibXVzdCIpIHRvIHJlc3RhcnQg dGhlIHRyYW5zYWN0aW9uIGluIGNhc2UKdGhlIGFyYml0cmF0aW9uIGlzIGxvc3QuCgpGcm9tIEky Qy1idXMgc3BlY2lmaWNhdGlvbiBhbmQgdXNlciBtYW51YWwgWzFdLCAzLjEuOCBBcmJpdHJhdGlv bjoKCmBgYApObyBpbmZvcm1hdGlvbiBpcyBsb3N0IGR1cmluZyB0aGUgYXJiaXRyYXRpb24gcHJv Y2Vzcy4gQSBjb250cm9sbGVyIHRoYXQgbG9zZXMgdGhlIGFyYml0cmF0aW9uCmNhbiBnZW5lcmF0 ZSBjbG9jayBwdWxzZXMgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnl0ZSBpbiB3aGljaCBpdCBsb3Nl cyB0aGUgYXJiaXRyYXRpb24gYW5kCm11c3QgcmVzdGFydCBpdHMgdHJhbnNhY3Rpb24gd2hlbiB0 aGUgYnVzIGlzIGZyZWUuCmBgYAoKSW4gY2FzZSB0aGVyZSBpcyBhIGRpZmZlcmVudCB2aWV3IGZy b20gdGhlIG9uZSBPbGVrc2lqIGV4cHJlc3NlZCBoZXJlLApsZXQgbWUga25vdyBhbmQgSSBjYW4g aW1wcm92ZSB0aGUgY29tbWl0IG1lc3NhZ2UsIG90aGVyd2lzZSBJIGd1ZXNzCndlIGNhbiBqdXN0 IGRyb3AgdGhpcyBjaGFuZ2UuCgpbMV0gaHR0cHM6Ly93d3cubnhwLmNvbS9kb2NzL2VuL3VzZXIt Z3VpZGUvVU0xMDIwNC5wZGYKCkZyYW5jZXNjbwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK