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=-8.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 57B07C47255 for ; Mon, 11 May 2020 11:52:47 +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 097E52075E for ; Mon, 11 May 2020 11:52:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TKJ2CjKf"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="OXqK073m" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 097E52075E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=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:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7cX4ujwECrkfb0h96aNSXoE3kiUZAMTL+R0V4SJL+b0=; b=TKJ2CjKf+/MA8e sH4lIM04Pjw245JGppqRBK1pWalRs/fdJhC9tsBwowm/agMl7zv9ZboFp+4cOzZYUHIkAK5pxmklE ibeABqpsYz2lcG5gv3S3DjRH8GGtk/NRxpq0ST6WpwnxHz+UMW6/YtvLOV35mqEWVOjUO1gINrhHf qi9lr1fpwA/5+jLVK0Guvh5l2NnhfiBD4G9SMYy/A+Aa6KJEUxXm4MRQlwct8aE0ONlYAOPbC7+GD +TQ+4Ydv6ntZORzZkApohuIfIkgztr2HKFqNgLJ4EgdyV+rVogvthKmooAkM4UD4+972PieL/OLIB 4SedXIHce9/aUHqoJcxQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jY6z6-0001RV-Hg; Mon, 11 May 2020 11:52:36 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jY6z2-0001OD-I7; Mon, 11 May 2020 11:52:34 +0000 X-UUID: f3ef3003330f4cb093e30bbe10e3f64e-20200511 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=zYP7WUCKByPrvwZhq/DDUeFuqDs/wg9N46m6Bck+LSY=; b=OXqK073mYTpOGzqT9uU/PzUU7ca9KAemRByhD9OyaOpKaWdEWWx3Te7SyT/JpifADN4iDRZAzMSklwoxw8cJ528W9o60AThvOlT+RF3jA1a6O7xyAPRSFXMRjIZDovUY0mF70QkLOFHihgZ1tnxEUZBhTyhYaB3ZAn3YNbzgVxc=; X-UUID: f3ef3003330f4cb093e30bbe10e3f64e-20200511 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 541994099; Mon, 11 May 2020 03:52:12 -0800 Received: from MTKMBS31DR.mediatek.inc (172.27.6.102) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 04:42:21 -0700 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 19:42:19 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 11 May 2020 19:42:17 +0800 Message-ID: <1589197265.8804.262.camel@mhfsdcap03> Subject: Re: [V7, 1/2] media: dt-bindings: media: i2c: Document OV02A10 bindings From: Dongchun Zhu To: Sakari Ailus Date: Mon, 11 May 2020 19:41:05 +0800 In-Reply-To: <20200510223552.GA11272@paasikivi.fi.intel.com> References: <20200430080924.1140-1-dongchun.zhu@mediatek.com> <20200430080924.1140-2-dongchun.zhu@mediatek.com> <20200505070451.GS9190@paasikivi.fi.intel.com> <1588688238.8804.150.camel@mhfsdcap03> <20200506112136.GV9190@paasikivi.fi.intel.com> <1588856325.8804.179.camel@mhfsdcap03> <20200507141147.GF9190@paasikivi.fi.intel.com> <1588920685.8804.230.camel@mhfsdcap03> <20200510223552.GA11272@paasikivi.fi.intel.com> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: F41B5CE6AE9A8E2642EBD9C2C5AEFDD6A7C736217A0BD5B987DEC9241E371ABA2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200511_045232_612083_CDB5F470 X-CRM114-Status: GOOD ( 35.77 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Nicolas Boichat , Andy Shevchenko , srv_heupstream , linux-devicetree , Linus Walleij , Shengnan Wang =?UTF-8?Q?=28=E7=8E=8B=E5=9C=A3=E7=94=B7=29?= , Tomasz Figa , Bartosz Golaszewski , Sj Huang , Rob Herring , "moderated list:ARM/Mediatek SoC support" , dongchun.zhu@mediatek.com, Louis Kuo , Matthias Brugger , Cao Bing Bu , matrix.zhu@aliyun.com, Mauro Carvalho Chehab , "list@263.net:IOMMU DRIVERS , Joerg Roedel , " , Linux Media Mailing List Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Hi Sakari, On Mon, 2020-05-11 at 01:35 +0300, Sakari Ailus wrote: > Hi Dongchun, > > On Fri, May 08, 2020 at 02:51:25PM +0800, Dongchun Zhu wrote: > > Hi Sakari, Tomasz, > > > > On Thu, 2020-05-07 at 16:25 +0200, Tomasz Figa wrote: > > > On Thu, May 7, 2020 at 4:12 PM Sakari Ailus > > > wrote: > > > > > > > > Hi Tomasz, Dongchun, > > > > > > > > On Thu, May 07, 2020 at 03:50:40PM +0200, Tomasz Figa wrote: > > > > > Hi Sakari and Dongchun, > > > > > > > > > > On Thu, May 7, 2020 at 3:00 PM Dongchun Zhu wrote: > > > > > > > > > > > > Hi Sakari, > > > > > > > > > > > > Thanks for the review. > > > > > > > > > > > > On Wed, 2020-05-06 at 14:21 +0300, Sakari Ailus wrote: > > > > > > > Hi Dongchun, > > > > > > > > > > > > > > On Tue, May 05, 2020 at 10:17:18PM +0800, Dongchun Zhu wrote: > > > > > > > > Hi Sakari, > > > > > > > > > > > > > > > > Thanks for the review. > > > > > > > > > > > > > > > > On Tue, 2020-05-05 at 10:04 +0300, Sakari Ailus wrote: > > > > > > > > > Hi Dongchun, > > > > > > > > > > > > > > > > > > On Thu, Apr 30, 2020 at 04:09:23PM +0800, Dongchun Zhu wrote: > > > > > > > > > > Add DT bindings documentation for Omnivision OV02A10 image sensor. > > > > > > > > > > > > > > > > > > > > Signed-off-by: Dongchun Zhu > > > > > > > > > > --- > > > > > > > > > > .../bindings/media/i2c/ovti,ov02a10.yaml | 148 +++++++++++++++++++++ > > > > > > > > > > MAINTAINERS | 7 + > > > > > > > > > > 2 files changed, 155 insertions(+) > > > > > > > > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > > > > > > > > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > > > > > > > > > new file mode 100644 > > > > > > > > > > index 0000000..2be4bd2 > > > > > > > > > > --- /dev/null > > > > > > > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > > > > > > > > > @@ -0,0 +1,148 @@ > > > > > > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > > > > > > > > > +# Copyright (c) 2020 MediaTek Inc. > > > > > > > > > > +%YAML 1.2 > > > > > > > > > > +--- > > > > > > > > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov02a10.yaml# > > > > > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > > > > > + > > > > > > > > > > +title: Omnivision OV02A10 CMOS Sensor Device Tree Bindings > > > > > > > > > > + > > > > > > > > > > +maintainers: > > > > > > > > > > + - Dongchun Zhu > > > > > > > > > > + > > > > > > > > > > +description: |- > > > > > > > > > > + The Omnivision OV02A10 is a low-cost, high performance, 1/5-inch, 2 megapixel > > > > > > > > > > + image sensor, which is the latest production derived from Omnivision's CMOS > > > > > > > > > > + image sensor technology. Ihis chip supports high frame rate speeds up to 30fps > > > > > > > > > > + @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The > > > > > > > > > > + sensor output is available via CSI-2 serial data output. > > > > > > > > > > + > > > > > > > > > > +properties: > > > > > > > > > > + compatible: > > > > > > > > > > + const: ovti,ov02a10 > > > > > > > > > > + > > > > > > > > > > + reg: > > > > > > > > > > + maxItems: 1 > > > > > > > > > > + > > > > > > > > > > + clocks: > > > > > > > > > > + items: > > > > > > > > > > + - description: top mux camtg clock > > > > > > > > > > + - description: devider clock > > > > > > > > > > + > > > > > > > > > > + clock-names: > > > > > > > > > > + items: > > > > > > > > > > + - const: eclk > > > > > > > > > > + - const: freq_mux > > > > > > > > > > + > > > > > > > > > > + clock-frequency: > > > > > > > > > > + description: > > > > > > > > > > + Frequency of the eclk clock in Hertz. > > > > > > > > > > + > > > > > > > > > > + dovdd-supply: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the regulator used as interface power supply. > > > > > > > > > > + > > > > > > > > > > + avdd-supply: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the regulator used as analog power supply. > > > > > > > > > > + > > > > > > > > > > + dvdd-supply: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the regulator used as digital power supply. > > > > > > > > > > + > > > > > > > > > > + powerdown-gpios: > > > > > > > > > > + description: > > > > > > > > > > + The phandle and specifier for the GPIO that controls sensor powerdown. > > > > > > > > > > + > > > > > > > > > > + reset-gpios: > > > > > > > > > > + description: > > > > > > > > > > + The phandle and specifier for the GPIO that controls sensor reset. > > > > > > > > > > + > > > > > > > > > > + rotation: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the sensor's placement, valid values are 0 and 180. > > > > > > > > > > + allOf: > > > > > > > > > > + - $ref: "/schemas/types.yaml#/definitions/uint32" > > > > > > > > > > + - enum: > > > > > > > > > > + - 0 # Sensor Mounted Upright > > > > > > > > > > + - 180 # Sensor Mounted Upside Down > > > > > > > > > > + > > > > > > > > > > + ovti,mipi-tx-speed: > > > > > > > > > > + description: > > > > > > > > > > + Indication of MIPI transmission speed select. > > > > > > > > > > > > > > > > > > What exactly does this signify? And how do you come up with the number? > > > > > > > > > > > > > > > > > > > > > > > > > Apologies for not addressing this number clear. > > > > > > > > > > > > > > > > From the datasheet, P1:0xA1 register represents TX_SPEED_AREA_SEL with > > > > > > > > the default val: 0x03. > > > > > > > > The description of this RW register is as below: > > > > > > > > Bit[2:0]: MIPI transmission speed select. > > > > > > > > > > > > > > > > Thus the enum should be definited as [ 0, 1, 2, 3, 4, 5, 6, 7 ]. > > > > > > > > This would be fixed in next release. > > > > > > > > > > > > > > > > In the meantime, as the default val of P1:0xA1 is 0x03, we hope to keep > > > > > > > > that value if there is no setting for this private property in DT. > > > > > > > > The caller in driver would be updated like this in next release. > > > > > > > > if (ov02a10->mipi_clock_tx_speed) > > > > > > > > ret = i2c_smbus_write_byte_data(...,...); > > > > > > > > > > > > > > How did you pick the value in the example? And why do you believe it is > > > > > > > specific to a platform, and not e.g. a sensor mode? > > > > > > > > > > > > > > > > > > > We look into P1:0XA1, one register that defines MIPI transmission speed > > > > > > select. > > > > > > From the datasheet, we can get the possible values that could be set to > > > > > > P1:0xA1. > > > > > > > > > > > > Actually this register is an independent of sensor mode, it is just > > > > > > included in sensor mode's register setting table. > > > > > > > > > > > > In addition, this private DT Property is created to fix the MIPI test > > > > > > failure. The register values are adjusted and verified from vendor to > > > > > > make sensor signal meet MIPI specification. > > > > > > > > > > > > > > > > In theory the value could depend on the mode, because different link > > > > > rate could impose different requirements for the physical interface. > > > > > In practice, we haven't seen any hardware that would require different > > > > > values for different modes. > > > > > > > > The mode (possibly in conjunction with other information available to the > > > > driver via V4L2 fwnode interface) precisely defines the parameters of the > > > > CSI-2 bus --- apart from the possible exception of the bus timing related > > > > parameters but this is not supported by the name of the parameter. > > > > > > > > Therefore I don't see how this parameter, which supposedly is used to > > > > determine the CSI-2 transmissions speed, could be board specific and thus > > > > belong to DT. > > > > > > According to the very imprecise information I have access to, it is > > > not about the CSI-2 bus itself, but rather some internal parameter of > > > the sensor's CSI interface. Unfortunately there isn't much information > > > on what this value exactly controls... > > > > > > Best regards, > > > Tomasz > > > > Just got some feedback from OV vendor about this parameter. > > > > P1:0xA1 is the register to control D-PHY timing setting based on bclk. > > It is to adjust the MIPI clock voltage to improve the clock drive > > capability, and has no affect on the transmission speed of MIPI data. > > > > From vendor's perspective, P1:0xA1 depends upon the length of FPC of > > camera module that used on the board. Considering the physical > > connections for MIPI signals to user-facing camera are very different > > between our 2 projects, it can be very difficult to find universal SI > > parameters for both projects. > > Are you using different values for this parameter on these two projects? > Yes. We're actually assigning two different values to this property. One is 0x03, the other is 0x04. > > > > Thus here we create one new DT property to separate these tuning in > > driver, to be more like project-specific. > > > > More details about the register is as below. > > P1:0xA1 val: 0x03 default > > Case: 0 20MHz-30MHz > > 1 30MHz-50MHz > > 2 50MHz-75MHz > > 3 75MHz-100MHz (default, old DB setting use) > > 4 100MHz-130MHz (suggested, new DB setting use) > > 5 Manual > > So the value in the example should be [ 0, 1, 2, 3, 4, 5 ]. > > > > Additionally, P1:0xA1 is recommended to be set as 0x04 in the newest DB > > setting. We would adjust the register in next release. > > Thank you for digging into the issue. > > Based on the above description, the parameter would depend on both the link > frequency and possibly also on wire length. I guess there's no harm from > using too strong drive, apart from perhaps power consumption? As in > principle this could be different for different sensor modes. Albeit I > don't remember seeing a sensor where such a parameter would have been > needed to be modified. > This may be related to something about sensor fine tuning. As OV vendor pointed out, the sensor chip provides such one property that user could adjust based on their specific project. Also, case 4 (0x04) setting is confirmed to have a little more power consumption than case 3 (0x03). _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek 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=-8.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 5D5A1C47255 for ; Mon, 11 May 2020 11:52:38 +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 2B10F2075E for ; Mon, 11 May 2020 11:52:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="OYJvO5HZ"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="OXqK073m" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B10F2075E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com 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:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1I4t3elkoJNRwGvb/gYCCSUxSzLwmiL0oodBb+phmtQ=; b=OYJvO5HZjODLLh FBFcr70qqmywyMuJH+sPxiEmNQZmF7f8ElLFcr4N+x7K7/dXJMx58Fg4CAseRPC57TOP9SXmJ9j4Q K2vOjtOTyDUBTbcbx5BlXMCAQJP8e7loPrf4FTm4zmfP/dD9fanbN5UwugEnYtfdwpgY4iZfmL2BA mxf+OzIvLpKDUa0mnnaVH9vYA9uJTX0rSstVzwXUzBrW/mn3ShKxqmeFh6stCDeil4/AzpqV15N4y gbYeng2z6ZLy5uGWIWThlZXelc2HT3Wr4lwngWqwXOUBgH5jxWsC9eH9x1A7wGK3UGI8NEHwdrsim LbXUwbh/E/QgxwrSglHQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jY6z7-0001SR-ME; Mon, 11 May 2020 11:52:37 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jY6z2-0001OD-I7; Mon, 11 May 2020 11:52:34 +0000 X-UUID: f3ef3003330f4cb093e30bbe10e3f64e-20200511 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=zYP7WUCKByPrvwZhq/DDUeFuqDs/wg9N46m6Bck+LSY=; b=OXqK073mYTpOGzqT9uU/PzUU7ca9KAemRByhD9OyaOpKaWdEWWx3Te7SyT/JpifADN4iDRZAzMSklwoxw8cJ528W9o60AThvOlT+RF3jA1a6O7xyAPRSFXMRjIZDovUY0mF70QkLOFHihgZ1tnxEUZBhTyhYaB3ZAn3YNbzgVxc=; X-UUID: f3ef3003330f4cb093e30bbe10e3f64e-20200511 Received: from mtkcas66.mediatek.inc [(172.29.193.44)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 541994099; Mon, 11 May 2020 03:52:12 -0800 Received: from MTKMBS31DR.mediatek.inc (172.27.6.102) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 04:42:21 -0700 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 19:42:19 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 11 May 2020 19:42:17 +0800 Message-ID: <1589197265.8804.262.camel@mhfsdcap03> Subject: Re: [V7, 1/2] media: dt-bindings: media: i2c: Document OV02A10 bindings From: Dongchun Zhu To: Sakari Ailus Date: Mon, 11 May 2020 19:41:05 +0800 In-Reply-To: <20200510223552.GA11272@paasikivi.fi.intel.com> References: <20200430080924.1140-1-dongchun.zhu@mediatek.com> <20200430080924.1140-2-dongchun.zhu@mediatek.com> <20200505070451.GS9190@paasikivi.fi.intel.com> <1588688238.8804.150.camel@mhfsdcap03> <20200506112136.GV9190@paasikivi.fi.intel.com> <1588856325.8804.179.camel@mhfsdcap03> <20200507141147.GF9190@paasikivi.fi.intel.com> <1588920685.8804.230.camel@mhfsdcap03> <20200510223552.GA11272@paasikivi.fi.intel.com> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: F41B5CE6AE9A8E2642EBD9C2C5AEFDD6A7C736217A0BD5B987DEC9241E371ABA2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200511_045232_612083_CDB5F470 X-CRM114-Status: GOOD ( 35.77 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Nicolas Boichat , Andy Shevchenko , srv_heupstream , linux-devicetree , Linus Walleij , Shengnan Wang =?UTF-8?Q?=28=E7=8E=8B=E5=9C=A3=E7=94=B7=29?= , Tomasz Figa , Bartosz Golaszewski , Sj Huang , Rob Herring , "moderated list:ARM/Mediatek SoC support" , dongchun.zhu@mediatek.com, Louis Kuo , Matthias Brugger , Cao Bing Bu , matrix.zhu@aliyun.com, Mauro Carvalho Chehab , "list@263.net:IOMMU DRIVERS , Joerg Roedel , " , Linux Media Mailing List Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Sakari, On Mon, 2020-05-11 at 01:35 +0300, Sakari Ailus wrote: > Hi Dongchun, > > On Fri, May 08, 2020 at 02:51:25PM +0800, Dongchun Zhu wrote: > > Hi Sakari, Tomasz, > > > > On Thu, 2020-05-07 at 16:25 +0200, Tomasz Figa wrote: > > > On Thu, May 7, 2020 at 4:12 PM Sakari Ailus > > > wrote: > > > > > > > > Hi Tomasz, Dongchun, > > > > > > > > On Thu, May 07, 2020 at 03:50:40PM +0200, Tomasz Figa wrote: > > > > > Hi Sakari and Dongchun, > > > > > > > > > > On Thu, May 7, 2020 at 3:00 PM Dongchun Zhu wrote: > > > > > > > > > > > > Hi Sakari, > > > > > > > > > > > > Thanks for the review. > > > > > > > > > > > > On Wed, 2020-05-06 at 14:21 +0300, Sakari Ailus wrote: > > > > > > > Hi Dongchun, > > > > > > > > > > > > > > On Tue, May 05, 2020 at 10:17:18PM +0800, Dongchun Zhu wrote: > > > > > > > > Hi Sakari, > > > > > > > > > > > > > > > > Thanks for the review. > > > > > > > > > > > > > > > > On Tue, 2020-05-05 at 10:04 +0300, Sakari Ailus wrote: > > > > > > > > > Hi Dongchun, > > > > > > > > > > > > > > > > > > On Thu, Apr 30, 2020 at 04:09:23PM +0800, Dongchun Zhu wrote: > > > > > > > > > > Add DT bindings documentation for Omnivision OV02A10 image sensor. > > > > > > > > > > > > > > > > > > > > Signed-off-by: Dongchun Zhu > > > > > > > > > > --- > > > > > > > > > > .../bindings/media/i2c/ovti,ov02a10.yaml | 148 +++++++++++++++++++++ > > > > > > > > > > MAINTAINERS | 7 + > > > > > > > > > > 2 files changed, 155 insertions(+) > > > > > > > > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > > > > > > > > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > > > > > > > > > new file mode 100644 > > > > > > > > > > index 0000000..2be4bd2 > > > > > > > > > > --- /dev/null > > > > > > > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > > > > > > > > > @@ -0,0 +1,148 @@ > > > > > > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > > > > > > > > > +# Copyright (c) 2020 MediaTek Inc. > > > > > > > > > > +%YAML 1.2 > > > > > > > > > > +--- > > > > > > > > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov02a10.yaml# > > > > > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > > > > > + > > > > > > > > > > +title: Omnivision OV02A10 CMOS Sensor Device Tree Bindings > > > > > > > > > > + > > > > > > > > > > +maintainers: > > > > > > > > > > + - Dongchun Zhu > > > > > > > > > > + > > > > > > > > > > +description: |- > > > > > > > > > > + The Omnivision OV02A10 is a low-cost, high performance, 1/5-inch, 2 megapixel > > > > > > > > > > + image sensor, which is the latest production derived from Omnivision's CMOS > > > > > > > > > > + image sensor technology. Ihis chip supports high frame rate speeds up to 30fps > > > > > > > > > > + @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The > > > > > > > > > > + sensor output is available via CSI-2 serial data output. > > > > > > > > > > + > > > > > > > > > > +properties: > > > > > > > > > > + compatible: > > > > > > > > > > + const: ovti,ov02a10 > > > > > > > > > > + > > > > > > > > > > + reg: > > > > > > > > > > + maxItems: 1 > > > > > > > > > > + > > > > > > > > > > + clocks: > > > > > > > > > > + items: > > > > > > > > > > + - description: top mux camtg clock > > > > > > > > > > + - description: devider clock > > > > > > > > > > + > > > > > > > > > > + clock-names: > > > > > > > > > > + items: > > > > > > > > > > + - const: eclk > > > > > > > > > > + - const: freq_mux > > > > > > > > > > + > > > > > > > > > > + clock-frequency: > > > > > > > > > > + description: > > > > > > > > > > + Frequency of the eclk clock in Hertz. > > > > > > > > > > + > > > > > > > > > > + dovdd-supply: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the regulator used as interface power supply. > > > > > > > > > > + > > > > > > > > > > + avdd-supply: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the regulator used as analog power supply. > > > > > > > > > > + > > > > > > > > > > + dvdd-supply: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the regulator used as digital power supply. > > > > > > > > > > + > > > > > > > > > > + powerdown-gpios: > > > > > > > > > > + description: > > > > > > > > > > + The phandle and specifier for the GPIO that controls sensor powerdown. > > > > > > > > > > + > > > > > > > > > > + reset-gpios: > > > > > > > > > > + description: > > > > > > > > > > + The phandle and specifier for the GPIO that controls sensor reset. > > > > > > > > > > + > > > > > > > > > > + rotation: > > > > > > > > > > + description: > > > > > > > > > > + Definition of the sensor's placement, valid values are 0 and 180. > > > > > > > > > > + allOf: > > > > > > > > > > + - $ref: "/schemas/types.yaml#/definitions/uint32" > > > > > > > > > > + - enum: > > > > > > > > > > + - 0 # Sensor Mounted Upright > > > > > > > > > > + - 180 # Sensor Mounted Upside Down > > > > > > > > > > + > > > > > > > > > > + ovti,mipi-tx-speed: > > > > > > > > > > + description: > > > > > > > > > > + Indication of MIPI transmission speed select. > > > > > > > > > > > > > > > > > > What exactly does this signify? And how do you come up with the number? > > > > > > > > > > > > > > > > > > > > > > > > > Apologies for not addressing this number clear. > > > > > > > > > > > > > > > > From the datasheet, P1:0xA1 register represents TX_SPEED_AREA_SEL with > > > > > > > > the default val: 0x03. > > > > > > > > The description of this RW register is as below: > > > > > > > > Bit[2:0]: MIPI transmission speed select. > > > > > > > > > > > > > > > > Thus the enum should be definited as [ 0, 1, 2, 3, 4, 5, 6, 7 ]. > > > > > > > > This would be fixed in next release. > > > > > > > > > > > > > > > > In the meantime, as the default val of P1:0xA1 is 0x03, we hope to keep > > > > > > > > that value if there is no setting for this private property in DT. > > > > > > > > The caller in driver would be updated like this in next release. > > > > > > > > if (ov02a10->mipi_clock_tx_speed) > > > > > > > > ret = i2c_smbus_write_byte_data(...,...); > > > > > > > > > > > > > > How did you pick the value in the example? And why do you believe it is > > > > > > > specific to a platform, and not e.g. a sensor mode? > > > > > > > > > > > > > > > > > > > We look into P1:0XA1, one register that defines MIPI transmission speed > > > > > > select. > > > > > > From the datasheet, we can get the possible values that could be set to > > > > > > P1:0xA1. > > > > > > > > > > > > Actually this register is an independent of sensor mode, it is just > > > > > > included in sensor mode's register setting table. > > > > > > > > > > > > In addition, this private DT Property is created to fix the MIPI test > > > > > > failure. The register values are adjusted and verified from vendor to > > > > > > make sensor signal meet MIPI specification. > > > > > > > > > > > > > > > > In theory the value could depend on the mode, because different link > > > > > rate could impose different requirements for the physical interface. > > > > > In practice, we haven't seen any hardware that would require different > > > > > values for different modes. > > > > > > > > The mode (possibly in conjunction with other information available to the > > > > driver via V4L2 fwnode interface) precisely defines the parameters of the > > > > CSI-2 bus --- apart from the possible exception of the bus timing related > > > > parameters but this is not supported by the name of the parameter. > > > > > > > > Therefore I don't see how this parameter, which supposedly is used to > > > > determine the CSI-2 transmissions speed, could be board specific and thus > > > > belong to DT. > > > > > > According to the very imprecise information I have access to, it is > > > not about the CSI-2 bus itself, but rather some internal parameter of > > > the sensor's CSI interface. Unfortunately there isn't much information > > > on what this value exactly controls... > > > > > > Best regards, > > > Tomasz > > > > Just got some feedback from OV vendor about this parameter. > > > > P1:0xA1 is the register to control D-PHY timing setting based on bclk. > > It is to adjust the MIPI clock voltage to improve the clock drive > > capability, and has no affect on the transmission speed of MIPI data. > > > > From vendor's perspective, P1:0xA1 depends upon the length of FPC of > > camera module that used on the board. Considering the physical > > connections for MIPI signals to user-facing camera are very different > > between our 2 projects, it can be very difficult to find universal SI > > parameters for both projects. > > Are you using different values for this parameter on these two projects? > Yes. We're actually assigning two different values to this property. One is 0x03, the other is 0x04. > > > > Thus here we create one new DT property to separate these tuning in > > driver, to be more like project-specific. > > > > More details about the register is as below. > > P1:0xA1 val: 0x03 default > > Case: 0 20MHz-30MHz > > 1 30MHz-50MHz > > 2 50MHz-75MHz > > 3 75MHz-100MHz (default, old DB setting use) > > 4 100MHz-130MHz (suggested, new DB setting use) > > 5 Manual > > So the value in the example should be [ 0, 1, 2, 3, 4, 5 ]. > > > > Additionally, P1:0xA1 is recommended to be set as 0x04 in the newest DB > > setting. We would adjust the register in next release. > > Thank you for digging into the issue. > > Based on the above description, the parameter would depend on both the link > frequency and possibly also on wire length. I guess there's no harm from > using too strong drive, apart from perhaps power consumption? As in > principle this could be different for different sensor modes. Albeit I > don't remember seeing a sensor where such a parameter would have been > needed to be modified. > This may be related to something about sensor fine tuning. As OV vendor pointed out, the sensor chip provides such one property that user could adjust based on their specific project. Also, case 4 (0x04) setting is confirmed to have a little more power consumption than case 3 (0x03). _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 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 80B56C47255 for ; Mon, 11 May 2020 11:42:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 530B720735 for ; Mon, 11 May 2020 11:42:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="ee0d2ARl" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728502AbgEKLmk (ORCPT ); Mon, 11 May 2020 07:42:40 -0400 Received: from mailgw02.mediatek.com ([1.203.163.81]:38970 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726068AbgEKLmk (ORCPT ); Mon, 11 May 2020 07:42:40 -0400 X-UUID: a3e452e865a04361b3cbc5c15d232e77-20200511 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=zYP7WUCKByPrvwZhq/DDUeFuqDs/wg9N46m6Bck+LSY=; b=ee0d2ARlP+9DCY124x8s50vIJcxTQMb1CIW6WzXpFDnRmHZm5IYnpi9Xzjc8i1KxKBELoEd+OK7uRrnfsXwatKZQdNRE8fEeyb4BvrNSqJKaqtPRWrEz+1HS3FqxaX5bX3ce+fRHup5ydoG2J2iBEGWJUa4yZwduTEkTRxZUDMU=; X-UUID: a3e452e865a04361b3cbc5c15d232e77-20200511 Received: from mtkcas34.mediatek.inc [(172.27.4.253)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 1617841235; Mon, 11 May 2020 19:42:19 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 19:42:19 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 11 May 2020 19:42:17 +0800 Message-ID: <1589197265.8804.262.camel@mhfsdcap03> Subject: Re: [V7, 1/2] media: dt-bindings: media: i2c: Document OV02A10 bindings From: Dongchun Zhu To: Sakari Ailus CC: Tomasz Figa , Linus Walleij , Bartosz Golaszewski , Mauro Carvalho Chehab , Andy Shevchenko , Rob Herring , Mark Rutland , Nicolas Boichat , , Matthias Brugger , Cao Bing Bu , srv_heupstream , "moderated list:ARM/Mediatek SoC support" , "list@263.net:IOMMU DRIVERS , Joerg Roedel ," , Sj Huang , Linux Media Mailing List , linux-devicetree , Louis Kuo , "Shengnan Wang =?UTF-8?Q?=28=E7=8E=8B=E5=9C=A3=E7=94=B7=29?=" , Date: Mon, 11 May 2020 19:41:05 +0800 In-Reply-To: <20200510223552.GA11272@paasikivi.fi.intel.com> References: <20200430080924.1140-1-dongchun.zhu@mediatek.com> <20200430080924.1140-2-dongchun.zhu@mediatek.com> <20200505070451.GS9190@paasikivi.fi.intel.com> <1588688238.8804.150.camel@mhfsdcap03> <20200506112136.GV9190@paasikivi.fi.intel.com> <1588856325.8804.179.camel@mhfsdcap03> <20200507141147.GF9190@paasikivi.fi.intel.com> <1588920685.8804.230.camel@mhfsdcap03> <20200510223552.GA11272@paasikivi.fi.intel.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: F41B5CE6AE9A8E2642EBD9C2C5AEFDD6A7C736217A0BD5B987DEC9241E371ABA2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org SGkgU2FrYXJpLA0KDQpPbiBNb24sIDIwMjAtMDUtMTEgYXQgMDE6MzUgKzAzMDAsIFNha2FyaSBB aWx1cyB3cm90ZToNCj4gSGkgRG9uZ2NodW4sDQo+IA0KPiBPbiBGcmksIE1heSAwOCwgMjAyMCBh dCAwMjo1MToyNVBNICswODAwLCBEb25nY2h1biBaaHUgd3JvdGU6DQo+ID4gSGkgU2FrYXJpLCBU b21hc3osDQo+ID4gDQo+ID4gT24gVGh1LCAyMDIwLTA1LTA3IGF0IDE2OjI1ICswMjAwLCBUb21h c3ogRmlnYSB3cm90ZToNCj4gPiA+IE9uIFRodSwgTWF5IDcsIDIwMjAgYXQgNDoxMiBQTSBTYWth cmkgQWlsdXMNCj4gPiA+IDxzYWthcmkuYWlsdXNAbGludXguaW50ZWwuY29tPiB3cm90ZToNCj4g PiA+ID4NCj4gPiA+ID4gSGkgVG9tYXN6LCBEb25nY2h1biwNCj4gPiA+ID4NCj4gPiA+ID4gT24g VGh1LCBNYXkgMDcsIDIwMjAgYXQgMDM6NTA6NDBQTSArMDIwMCwgVG9tYXN6IEZpZ2Egd3JvdGU6 DQo+ID4gPiA+ID4gSGkgU2FrYXJpIGFuZCBEb25nY2h1biwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IE9uIFRodSwgTWF5IDcsIDIwMjAgYXQgMzowMCBQTSBEb25nY2h1biBaaHUgPGRvbmdjaHVuLnpo dUBtZWRpYXRlay5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEhpIFNha2Fy aSwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGFua3MgZm9yIHRoZSByZXZpZXcuDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gT24gV2VkLCAyMDIwLTA1LTA2IGF0IDE0OjIxICswMzAwLCBT YWthcmkgQWlsdXMgd3JvdGU6DQo+ID4gPiA+ID4gPiA+IEhpIERvbmdjaHVuLA0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiBPbiBUdWUsIE1heSAwNSwgMjAyMCBhdCAxMDoxNzoxOFBNICsw ODAwLCBEb25nY2h1biBaaHUgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gSGkgU2FrYXJpLA0KPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhhbmtzIGZvciB0aGUgcmV2aWV3Lg0KPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gT24gVHVlLCAyMDIwLTA1LTA1IGF0IDEwOjA0 ICswMzAwLCBTYWthcmkgQWlsdXMgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gPiBIaSBEb25nY2h1 biwNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBPbiBUaHUsIEFwciAzMCwg MjAyMCBhdCAwNDowOToyM1BNICswODAwLCBEb25nY2h1biBaaHUgd3JvdGU6DQo+ID4gPiA+ID4g PiA+ID4gPiA+IEFkZCBEVCBiaW5kaW5ncyBkb2N1bWVudGF0aW9uIGZvciBPbW5pdmlzaW9uIE9W MDJBMTAgaW1hZ2Ugc2Vuc29yLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBEb25nY2h1biBaaHUgPGRvbmdjaHVuLnpodUBtZWRpYXRlay5j b20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgLi4uL2Jp bmRpbmdzL21lZGlhL2kyYy9vdnRpLG92MDJhMTAueWFtbCAgICAgICAgICAgfCAxNDggKysrKysr KysrKysrKysrKysrKysrDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICBNQUlOVEFJTkVSUyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L21lZGlhL2kyYy9vdnRpLG92MDJhMTAueWFtbA0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL21lZGlhL2kyYy9vdnRpLG92MDJhMTAueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9tZWRpYS9pMmMvb3Z0aSxvdjAyYTEwLnlhbWwNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggMDAwMDAw MC4uMmJlNGJkMg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ID4g PiA+ID4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZWRpYS9p MmMvb3Z0aSxvdjAyYTEwLnlhbWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTAsMCArMSwxNDgg QEANCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwt Mi4wIE9SIEJTRC0yLUNsYXVzZSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyMgQ29weXJpZ2h0IChj KSAyMDIwIE1lZGlhVGVrIEluYy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyVZQU1MIDEuMg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICskaWQ6IGh0dHA6Ly9k ZXZpY2V0cmVlLm9yZy9zY2hlbWFzL21lZGlhL2kyYy9vdnRpLG92MDJhMTAueWFtbCMNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVt YXMvY29yZS55YW1sIw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICt0aXRsZTogT21uaXZpc2lvbiBPVjAyQTEwIENNT1MgU2Vuc29yIERldmljZSBUcmVlIEJpbmRp bmdzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK21haW50YWlu ZXJzOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAtIERvbmdjaHVuIFpodSA8ZG9uZ2NodW4uemh1 QG1lZGlhdGVrLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4g PiArZGVzY3JpcHRpb246IHwtDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFRoZSBPbW5pdmlzaW9u IE9WMDJBMTAgaXMgYSBsb3ctY29zdCwgaGlnaCBwZXJmb3JtYW5jZSwgMS81LWluY2gsIDIgbWVn YXBpeGVsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIGltYWdlIHNlbnNvciwgd2hpY2ggaXMgdGhl IGxhdGVzdCBwcm9kdWN0aW9uIGRlcml2ZWQgZnJvbSBPbW5pdmlzaW9uJ3MgQ01PUw0KPiA+ID4g PiA+ID4gPiA+ID4gPiArICBpbWFnZSBzZW5zb3IgdGVjaG5vbG9neS4gSWhpcyBjaGlwIHN1cHBv cnRzIGhpZ2ggZnJhbWUgcmF0ZSBzcGVlZHMgdXAgdG8gMzBmcHMNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAgQCAxNjAweDEyMDAgKFVYR0EpIHJlc29sdXRpb24gdHJhbnNmZXJyZWQgb3ZlciBhIDEt bGFuZSBNSVBJIGludGVyZmFjZS4gVGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIHNlbnNvciBv dXRwdXQgaXMgYXZhaWxhYmxlIHZpYSBDU0ktMiBzZXJpYWwgZGF0YSBvdXRwdXQuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK3Byb3BlcnRpZXM6DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgIGNvbXBhdGlibGU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgY29u c3Q6IG92dGksb3YwMmExMA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsgIHJlZzoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICBtYXhJdGVtczogMQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIGNsb2NrczoNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgICBpdGVtczoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIC0gZGVz Y3JpcHRpb246IHRvcCBtdXggY2FtdGcgY2xvY2sNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAg IC0gZGVzY3JpcHRpb246IGRldmlkZXIgY2xvY2sNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArICBjbG9jay1uYW1lczoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAg ICBpdGVtczoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIC0gY29uc3Q6IGVjbGsNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgIC0gY29uc3Q6IGZyZXFfbXV4DQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgY2xvY2stZnJlcXVlbmN5Og0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAgIGRlc2NyaXB0aW9uOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAg RnJlcXVlbmN5IG9mIHRoZSBlY2xrIGNsb2NrIGluIEhlcnR6Lg0KPiA+ID4gPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIGRvdmRkLXN1cHBseToNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKyAgICBkZXNjcmlwdGlvbjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIERlZmlu aXRpb24gb2YgdGhlIHJlZ3VsYXRvciB1c2VkIGFzIGludGVyZmFjZSBwb3dlciBzdXBwbHkuDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgYXZkZC1zdXBwbHk6 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgZGVzY3JpcHRpb246DQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsgICAgICBEZWZpbml0aW9uIG9mIHRoZSByZWd1bGF0b3IgdXNlZCBhcyBhbmFsb2cgcG93 ZXIgc3VwcGx5Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsg IGR2ZGQtc3VwcGx5Og0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIGRlc2NyaXB0aW9uOg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArICAgICAgRGVmaW5pdGlvbiBvZiB0aGUgcmVndWxhdG9yIHVzZWQg YXMgZGlnaXRhbCBwb3dlciBzdXBwbHkuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgcG93ZXJkb3duLWdwaW9zOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAg IGRlc2NyaXB0aW9uOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgVGhlIHBoYW5kbGUgYW5k IHNwZWNpZmllciBmb3IgdGhlIEdQSU8gdGhhdCBjb250cm9scyBzZW5zb3IgcG93ZXJkb3duLg0K PiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIHJlc2V0LWdwaW9z Og0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIGRlc2NyaXB0aW9uOg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiArICAgICAgVGhlIHBoYW5kbGUgYW5kIHNwZWNpZmllciBmb3IgdGhlIEdQSU8gdGhhdCBj b250cm9scyBzZW5zb3IgcmVzZXQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgcm90YXRpb246DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgZGVzY3JpcHRp b246DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBEZWZpbml0aW9uIG9mIHRoZSBzZW5zb3In cyBwbGFjZW1lbnQsIHZhbGlkIHZhbHVlcyBhcmUgMCBhbmQgMTgwLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiArICAgIGFsbE9mOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgLSAkcmVmOiAiL3Nj aGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvdWludDMyIg0KPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgICAgLSBlbnVtOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgIC0gMCAgICAj IFNlbnNvciBNb3VudGVkIFVwcmlnaHQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAt IDE4MCAgIyBTZW5zb3IgTW91bnRlZCBVcHNpZGUgRG93bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIG92dGksbWlwaS10eC1zcGVlZDoNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICBkZXNjcmlwdGlvbjoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIElu ZGljYXRpb24gb2YgTUlQSSB0cmFuc21pc3Npb24gc3BlZWQgc2VsZWN0Lg0KPiA+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFdoYXQgZXhhY3RseSBkb2VzIHRoaXMgc2lnbmlmeT8g QW5kIGhvdyBkbyB5b3UgY29tZSB1cCB3aXRoIHRoZSBudW1iZXI/DQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQXBvbG9naWVzIGZvciBub3QgYWRk cmVzc2luZyB0aGlzIG51bWJlciBjbGVhci4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+IEZyb20gdGhlIGRhdGFzaGVldCwgUDE6MHhBMSByZWdpc3RlciByZXByZXNlbnRzIFRYX1NQ RUVEX0FSRUFfU0VMIHdpdGgNCj4gPiA+ID4gPiA+ID4gPiB0aGUgZGVmYXVsdCB2YWw6IDB4MDMu DQo+ID4gPiA+ID4gPiA+ID4gVGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgUlcgcmVnaXN0ZXIgaXMg YXMgYmVsb3c6DQo+ID4gPiA+ID4gPiA+ID4gQml0WzI6MF06IE1JUEkgdHJhbnNtaXNzaW9uIHNw ZWVkIHNlbGVjdC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFRodXMgdGhlIGVu dW0gc2hvdWxkIGJlIGRlZmluaXRlZCBhcyBbIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcgXS4NCj4g PiA+ID4gPiA+ID4gPiBUaGlzIHdvdWxkIGJlIGZpeGVkIGluIG5leHQgcmVsZWFzZS4NCj4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEluIHRoZSBtZWFudGltZSwgYXMgdGhlIGRlZmF1 bHQgdmFsIG9mIFAxOjB4QTEgaXMgMHgwMywgd2UgaG9wZSB0byBrZWVwDQo+ID4gPiA+ID4gPiA+ ID4gdGhhdCB2YWx1ZSBpZiB0aGVyZSBpcyBubyBzZXR0aW5nIGZvciB0aGlzIHByaXZhdGUgcHJv cGVydHkgaW4gRFQuDQo+ID4gPiA+ID4gPiA+ID4gVGhlIGNhbGxlciBpbiBkcml2ZXIgd291bGQg YmUgdXBkYXRlZCBsaWtlIHRoaXMgaW4gbmV4dCByZWxlYXNlLg0KPiA+ID4gPiA+ID4gPiA+IGlm IChvdjAyYTEwLT5taXBpX2Nsb2NrX3R4X3NwZWVkKQ0KPiA+ID4gPiA+ID4gPiA+ICAgICByZXQg PSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKC4uLiwuLi4pOw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBIb3cgZGlkIHlvdSBwaWNrIHRoZSB2YWx1ZSBpbiB0aGUgZXhhbXBsZT8gQW5k IHdoeSBkbyB5b3UgYmVsaWV2ZSBpdCBpcw0KPiA+ID4gPiA+ID4gPiBzcGVjaWZpYyB0byBhIHBs YXRmb3JtLCBhbmQgbm90IGUuZy4gYSBzZW5zb3IgbW9kZT8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBXZSBsb29rIGludG8gUDE6MFhBMSwgb25lIHJlZ2lzdGVyIHRo YXQgZGVmaW5lcyBNSVBJIHRyYW5zbWlzc2lvbiBzcGVlZA0KPiA+ID4gPiA+ID4gc2VsZWN0Lg0K PiA+ID4gPiA+ID4gRnJvbSB0aGUgZGF0YXNoZWV0LCB3ZSBjYW4gZ2V0IHRoZSBwb3NzaWJsZSB2 YWx1ZXMgdGhhdCBjb3VsZCBiZSBzZXQgdG8NCj4gPiA+ID4gPiA+IFAxOjB4QTEuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gQWN0dWFsbHkgdGhpcyByZWdpc3RlciBpcyBhbiBpbmRlcGVuZGVu dCBvZiBzZW5zb3IgbW9kZSwgaXQgaXMganVzdA0KPiA+ID4gPiA+ID4gaW5jbHVkZWQgaW4gc2Vu c29yIG1vZGUncyByZWdpc3RlciBzZXR0aW5nIHRhYmxlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IEluIGFkZGl0aW9uLCB0aGlzIHByaXZhdGUgRFQgUHJvcGVydHkgaXMgY3JlYXRlZCB0byBm aXggdGhlIE1JUEkgdGVzdA0KPiA+ID4gPiA+ID4gZmFpbHVyZS4gVGhlIHJlZ2lzdGVyIHZhbHVl cyBhcmUgYWRqdXN0ZWQgYW5kIHZlcmlmaWVkIGZyb20gdmVuZG9yIHRvDQo+ID4gPiA+ID4gPiBt YWtlIHNlbnNvciBzaWduYWwgbWVldCBNSVBJIHNwZWNpZmljYXRpb24uDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gSW4gdGhlb3J5IHRoZSB2YWx1ZSBjb3VsZCBkZXBlbmQgb24g dGhlIG1vZGUsIGJlY2F1c2UgZGlmZmVyZW50IGxpbmsNCj4gPiA+ID4gPiByYXRlIGNvdWxkIGlt cG9zZSBkaWZmZXJlbnQgcmVxdWlyZW1lbnRzIGZvciB0aGUgcGh5c2ljYWwgaW50ZXJmYWNlLg0K PiA+ID4gPiA+IEluIHByYWN0aWNlLCB3ZSBoYXZlbid0IHNlZW4gYW55IGhhcmR3YXJlIHRoYXQg d291bGQgcmVxdWlyZSBkaWZmZXJlbnQNCj4gPiA+ID4gPiB2YWx1ZXMgZm9yIGRpZmZlcmVudCBt b2Rlcy4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIG1vZGUgKHBvc3NpYmx5IGluIGNvbmp1bmN0aW9u IHdpdGggb3RoZXIgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIHRoZQ0KPiA+ID4gPiBkcml2ZXIg dmlhIFY0TDIgZndub2RlIGludGVyZmFjZSkgcHJlY2lzZWx5IGRlZmluZXMgdGhlIHBhcmFtZXRl cnMgb2YgdGhlDQo+ID4gPiA+IENTSS0yIGJ1cyAtLS0gYXBhcnQgZnJvbSB0aGUgcG9zc2libGUg ZXhjZXB0aW9uIG9mIHRoZSBidXMgdGltaW5nIHJlbGF0ZWQNCj4gPiA+ID4gcGFyYW1ldGVycyBi dXQgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIuDQo+ ID4gPiA+DQo+ID4gPiA+IFRoZXJlZm9yZSBJIGRvbid0IHNlZSBob3cgdGhpcyBwYXJhbWV0ZXIs IHdoaWNoIHN1cHBvc2VkbHkgaXMgdXNlZCB0bw0KPiA+ID4gPiBkZXRlcm1pbmUgdGhlIENTSS0y IHRyYW5zbWlzc2lvbnMgc3BlZWQsIGNvdWxkIGJlIGJvYXJkIHNwZWNpZmljIGFuZCB0aHVzDQo+ ID4gPiA+IGJlbG9uZyB0byBEVC4NCj4gPiA+IA0KPiA+ID4gQWNjb3JkaW5nIHRvIHRoZSB2ZXJ5 IGltcHJlY2lzZSBpbmZvcm1hdGlvbiBJIGhhdmUgYWNjZXNzIHRvLCBpdCBpcw0KPiA+ID4gbm90 IGFib3V0IHRoZSBDU0ktMiBidXMgaXRzZWxmLCBidXQgcmF0aGVyIHNvbWUgaW50ZXJuYWwgcGFy YW1ldGVyIG9mDQo+ID4gPiB0aGUgc2Vuc29yJ3MgQ1NJIGludGVyZmFjZS4gVW5mb3J0dW5hdGVs eSB0aGVyZSBpc24ndCBtdWNoIGluZm9ybWF0aW9uDQo+ID4gPiBvbiB3aGF0IHRoaXMgdmFsdWUg ZXhhY3RseSBjb250cm9scy4uLg0KPiA+ID4gDQo+ID4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gPiBU b21hc3oNCj4gPiANCj4gPiBKdXN0IGdvdCBzb21lIGZlZWRiYWNrIGZyb20gT1YgdmVuZG9yIGFi b3V0IHRoaXMgcGFyYW1ldGVyLg0KPiA+IA0KPiA+IFAxOjB4QTEgaXMgdGhlIHJlZ2lzdGVyIHRv IGNvbnRyb2wgRC1QSFkgdGltaW5nIHNldHRpbmcgYmFzZWQgb24gYmNsay4NCj4gPiBJdCBpcyB0 byBhZGp1c3QgdGhlIE1JUEkgY2xvY2sgdm9sdGFnZSB0byBpbXByb3ZlIHRoZSBjbG9jayBkcml2 ZQ0KPiA+IGNhcGFiaWxpdHksIGFuZCBoYXMgbm8gYWZmZWN0IG9uIHRoZSB0cmFuc21pc3Npb24g c3BlZWQgb2YgTUlQSSBkYXRhLg0KPiA+IA0KPiA+IEZyb20gdmVuZG9yJ3MgcGVyc3BlY3RpdmUs IFAxOjB4QTEgZGVwZW5kcyB1cG9uIHRoZSBsZW5ndGggb2YgRlBDIG9mDQo+ID4gY2FtZXJhIG1v ZHVsZSB0aGF0IHVzZWQgb24gdGhlIGJvYXJkLiBDb25zaWRlcmluZyB0aGUgcGh5c2ljYWwNCj4g PiBjb25uZWN0aW9ucyBmb3IgTUlQSSBzaWduYWxzIHRvIHVzZXItZmFjaW5nIGNhbWVyYSBhcmUg dmVyeSBkaWZmZXJlbnQNCj4gPiBiZXR3ZWVuIG91ciAyIHByb2plY3RzLCBpdCBjYW4gYmUgdmVy eSBkaWZmaWN1bHQgdG8gZmluZCB1bml2ZXJzYWwgU0kNCj4gPiBwYXJhbWV0ZXJzIGZvciBib3Ro IHByb2plY3RzLg0KPiANCj4gQXJlIHlvdSB1c2luZyBkaWZmZXJlbnQgdmFsdWVzIGZvciB0aGlz IHBhcmFtZXRlciBvbiB0aGVzZSB0d28gcHJvamVjdHM/DQo+IA0KDQpZZXMuIFdlJ3JlIGFjdHVh bGx5IGFzc2lnbmluZyB0d28gZGlmZmVyZW50IHZhbHVlcyB0byB0aGlzIHByb3BlcnR5Lg0KT25l IGlzIDB4MDMsIHRoZSBvdGhlciBpcyAweDA0Lg0KDQo+ID4gDQo+ID4gVGh1cyBoZXJlIHdlIGNy ZWF0ZSBvbmUgbmV3IERUIHByb3BlcnR5IHRvIHNlcGFyYXRlIHRoZXNlIHR1bmluZyBpbg0KPiA+ IGRyaXZlciwgdG8gYmUgbW9yZSBsaWtlIHByb2plY3Qtc3BlY2lmaWMuDQo+ID4gDQo+ID4gTW9y ZSBkZXRhaWxzIGFib3V0IHRoZSByZWdpc3RlciBpcyBhcyBiZWxvdy4NCj4gPiBQMToweEExIHZh bDogMHgwMyBkZWZhdWx0DQo+ID4gQ2FzZTogMCAgMjBNSHotMzBNSHoNCj4gPiAgICAgICAxICAz ME1Iei01ME1Ieg0KPiA+ICAgICAgIDIgIDUwTUh6LTc1TUh6DQo+ID4gICAgICAgMyAgNzVNSHot MTAwTUh6ICAgKGRlZmF1bHQsIG9sZCBEQiBzZXR0aW5nIHVzZSkNCj4gPiAgICAgICA0ICAxMDBN SHotMTMwTUh6ICAoc3VnZ2VzdGVkLCBuZXcgREIgc2V0dGluZyB1c2UpDQo+ID4gICAgICAgNSAg TWFudWFsDQo+ID4gU28gdGhlIHZhbHVlIGluIHRoZSBleGFtcGxlIHNob3VsZCBiZSBbIDAsIDEs IDIsIDMsIDQsIDUgXS4NCj4gPiANCj4gPiBBZGRpdGlvbmFsbHksIFAxOjB4QTEgaXMgcmVjb21t ZW5kZWQgdG8gYmUgc2V0IGFzIDB4MDQgaW4gdGhlIG5ld2VzdCBEQg0KPiA+IHNldHRpbmcuIFdl IHdvdWxkIGFkanVzdCB0aGUgcmVnaXN0ZXIgaW4gbmV4dCByZWxlYXNlLg0KPiANCj4gVGhhbmsg eW91IGZvciBkaWdnaW5nIGludG8gdGhlIGlzc3VlLg0KPiANCj4gQmFzZWQgb24gdGhlIGFib3Zl IGRlc2NyaXB0aW9uLCB0aGUgcGFyYW1ldGVyIHdvdWxkIGRlcGVuZCBvbiBib3RoIHRoZSBsaW5r DQo+IGZyZXF1ZW5jeSBhbmQgcG9zc2libHkgYWxzbyBvbiB3aXJlIGxlbmd0aC4gSSBndWVzcyB0 aGVyZSdzIG5vIGhhcm0gZnJvbQ0KPiB1c2luZyB0b28gc3Ryb25nIGRyaXZlLCBhcGFydCBmcm9t IHBlcmhhcHMgcG93ZXIgY29uc3VtcHRpb24/IEFzIGluDQo+IHByaW5jaXBsZSB0aGlzIGNvdWxk IGJlIGRpZmZlcmVudCBmb3IgZGlmZmVyZW50IHNlbnNvciBtb2Rlcy4gQWxiZWl0IEkNCj4gZG9u J3QgcmVtZW1iZXIgc2VlaW5nIGEgc2Vuc29yIHdoZXJlIHN1Y2ggYSBwYXJhbWV0ZXIgd291bGQg aGF2ZSBiZWVuDQo+IG5lZWRlZCB0byBiZSBtb2RpZmllZC4NCj4gDQoNClRoaXMgbWF5IGJlIHJl bGF0ZWQgdG8gc29tZXRoaW5nIGFib3V0IHNlbnNvciBmaW5lIHR1bmluZy4NCkFzIE9WIHZlbmRv ciBwb2ludGVkIG91dCwgdGhlIHNlbnNvciBjaGlwIHByb3ZpZGVzIHN1Y2ggb25lIHByb3BlcnR5 DQp0aGF0IHVzZXIgY291bGQgYWRqdXN0IGJhc2VkIG9uIHRoZWlyIHNwZWNpZmljIHByb2plY3Qu DQpBbHNvLCBjYXNlIDQgKDB4MDQpIHNldHRpbmcgaXMgY29uZmlybWVkIHRvIGhhdmUgYSBsaXR0 bGUgbW9yZSBwb3dlcg0KY29uc3VtcHRpb24gdGhhbiBjYXNlIDMgKDB4MDMpLg0KDQo=