From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,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 4BCEDC54E8B for ; Tue, 12 May 2020 03:43:14 +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 066502068D for ; Tue, 12 May 2020 03:43:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RcrPVZxO"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="YoNoqwv/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 066502068D 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=xoPTeTNBeI1xq5shWxVt8th/FehYgj3bJ9JPLUmcvHQ=; b=RcrPVZxOaElxkb rstvOozp0Kt/83stXI70dLnPcD7kv8GyqM4sKzfGDwUujq3eENdaOfZI6+HS/CoONxDuUVdWpdDzz NGaNawoKb9CHdoxYOfpAnJ5X0bUgD2XBB/mmkq3YCGpMCKWRpfs6bZsyTqqJ0cf1XKWUH69sy4n/2 N34wqADCPBWWsKmFr+XQznHMPTqiEY21ulvtop8Z9I1kpaGrrZyg/GO3biHGvq2FkDckJhiVEZbMw ul03jEiP3kJD8nfCFkcMymnbpn2VDkM1NaxKs0cK7BgqZFsKYHDIh2beazoB+k8pBN1JN5veqRCWI ecLXOY2eVcDR0YyLOb7A==; 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 1jYLou-0005oY-3l; Tue, 12 May 2020 03:43:04 +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 1jYLop-0005nh-RG; Tue, 12 May 2020 03:43:02 +0000 X-UUID: 39ec0487233e40f697d9d9a33aa514fb-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=gzRrirgWI6RFHcvKQwsR25zvfvdlxabazbvPiYB63TY=; b=YoNoqwv/g1QhmEL3TLi2w4GEMQT/sWRjkxCQcxiBY0imVB2Yjv6EFxPs8MzNlKzmrXjLV+MQRBEZM2cv0El5G7wEPtKzOa0fExCLbV8KKcZuWUVF2XmPTT7o7XedcqXsepGsZmHFmwMU3DtmtY/NdlgNNtWt+Sy2hXGshnF0bp4=; X-UUID: 39ec0487233e40f697d9d9a33aa514fb-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 781838054; Mon, 11 May 2020 19:42:56 -0800 Received: from MTKMBS31DR.mediatek.inc (172.27.6.102) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 20:34:42 -0700 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 12 May 2020 11:34:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 12 May 2020 11:34:37 +0800 Message-ID: <1589254403.8804.306.camel@mhfsdcap03> Subject: Re: [V5, 2/2] media: i2c: dw9768: Add DW9768 VCM driver From: Dongchun Zhu To: Tomasz Figa Date: Tue, 12 May 2020 11:33:23 +0800 In-Reply-To: References: <20200502161727.30463-1-dongchun.zhu@mediatek.com> <20200502161727.30463-3-dongchun.zhu@mediatek.com> <20200506151352.GZ9190@paasikivi.fi.intel.com> <1588855524.8804.168.camel@mhfsdcap03> <20200507131220.GC9190@paasikivi.fi.intel.com> <1588907288.8804.188.camel@mhfsdcap03> <20200508211319.GJ9190@paasikivi.fi.intel.com> <1588991026.8804.235.camel@mhfsdcap03> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: DA68AA50845AF29D2688D88BB4FD0C4D483C870F8F7DCE4E80D492F383CA908E2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200511_204259_886862_755CD74F X-CRM114-Status: GOOD ( 39.11 ) 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?= , Louis Kuo , Bartosz Golaszewski , Sj Huang , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Sakari Ailus , Matthias Brugger , Cao Bing Bu , 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 Tomasz, On Mon, 2020-05-11 at 20:20 +0200, Tomasz Figa wrote: > Hi Dongchun, > > On Sat, May 9, 2020 at 4:25 AM Dongchun Zhu wrote: > > > > Hi Sakari, > > > > On Sat, 2020-05-09 at 00:13 +0300, Sakari Ailus wrote: > > > Hi Dongchun, > > > > > > On Fri, May 08, 2020 at 11:08:08AM +0800, Dongchun Zhu wrote: > > > > Hi Sakari, Tomasz, > > > > > > > > Thanks for the review. > > > > > > > > On Thu, 2020-05-07 at 15:46 +0200, Tomasz Figa wrote: > > > > > Hi Sakari, Dongchun, > > > > > > > > > > On Thu, May 7, 2020 at 3:12 PM Sakari Ailus > > > > > wrote: > > > > > > > > > > > > HI Dongchun, > > > > > > > > > > > > On Thu, May 07, 2020 at 08:45:24PM +0800, Dongchun Zhu wrote: > > > > > > > Hi Sakari, > > > > > > > > > > > > > > Thanks for the review. > > > > > > > > > > > > > > On Wed, 2020-05-06 at 18:13 +0300, Sakari Ailus wrote: > > > > > > > > Hi Dongchun, > > > > > > > > > > > > > > > > On Sun, May 03, 2020 at 12:17:27AM +0800, Dongchun Zhu wrote: > > > > > > > > > Add a V4L2 sub-device driver for DW9768 voice coil motor, providing > > > > > > > > > control to set the desired focus via IIC serial interface. > > > > > > > > > > > > > > > > > > Signed-off-by: Dongchun Zhu > > > > > > > > > --- > > > > > > > > > MAINTAINERS | 1 + > > > > > > > > > drivers/media/i2c/Kconfig | 11 ++ > > > > > > > > > drivers/media/i2c/Makefile | 1 + > > > > > > > > > drivers/media/i2c/dw9768.c | 440 +++++++++++++++++++++++++++++++++++++++++++++ > > > > > > > > > 4 files changed, 453 insertions(+) > > > > > > > > > create mode 100644 drivers/media/i2c/dw9768.c > > > > > > > > > > > > > > > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > > > > > > > > index 8d72c41..c92dc99 100644 > > > > > > > > > --- a/MAINTAINERS > > > > > > > > > +++ b/MAINTAINERS > > > > > > > > > @@ -5157,6 +5157,7 @@ L: linux-media@vger.kernel.org > > > > > > > > > S: Maintained > > > > > > > > > T: git git://linuxtv.org/media_tree.git > > > > > > > > > F: Documentation/devicetree/bindings/media/i2c/dongwoon,dw9768.yaml > > > > > > > > > +F: drivers/media/i2c/dw9768.c > > > > > > > > > > > > > > > > > > DONGWOON DW9807 LENS VOICE COIL DRIVER > > > > > > > > > M: Sakari Ailus > > > > > > > > > diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig > > > > > > > > > index 125d596..6a3f9da 100644 > > > > > > > > > --- a/drivers/media/i2c/Kconfig > > > > > > > > > +++ b/drivers/media/i2c/Kconfig > > > > > > > > > @@ -1040,6 +1040,17 @@ config VIDEO_DW9714 > > > > > > > > > capability. This is designed for linear control of > > > > > > > > > voice coil motors, controlled via I2C serial interface. > > > > > > > > > > > > > > > > > > +config VIDEO_DW9768 > > > > > > > > > + tristate "DW9768 lens voice coil support" > > > > > > > > > + depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER > > > > > > > > > + depends on VIDEO_V4L2_SUBDEV_API > > > > > > > > > > > > > > > > Please check how this works in the media tree master branch now --- it's > > > > > > > > largely select based. > > > > > > > > > > > > > > > > > > > > > > The actuator driver uses some structures that require the > > > > > > > VIDEO_V4L2_SUBDEV_API code, so here we add VIDEO_V4L2_SUBDEV_API > > > > > > > dependency to avoid possible build error when it's not enabled. > > > > > > > > > > > > Please make sure this works with current media tree master. Right now it > > > > > > does not. > > > > > > > > > > > > > > > > Dongchun, as Sakari said, please make sure to base the patches on the > > > > > master branch of the media tree. > > > > > (https://git.linuxtv.org/media_tree.git/). The approach for Kconfig > > > > > dependency selection there seems to have changed recently. > > > > > > > > > > > > > I searched the patches on the media tree master branch. > > > > It seems that we need to remove the VIDEO_V4L2_SUBDEV_API dependency in > > > > Kconfig, and add #ifdef CONFIG_VIDEO_V4L2_SUBDEV_API to include > > > > v4l2-subdev code. > > > > The change mainly is to make build pass, and don't return ENOTTY if > > > > SUBDEV_API is not set. > > > > Am I right? > > > > > > Please see Kconfig entries for other similar drivers from Dongwoon. > > > > > > > Sorry for the mistake :-) > > Just found the current media tree master branch code... > > I would update Kconfig entries in next release by referring to: > > https://git.linuxtv.org/media_tree.git/tree/drivers/media/i2c/Kconfig > > Sorry for last minute comments again. We had a short discussion > offline with Sakari and we think there are some changes needed to this > driver, namely: > > 1) The hardware being driven in our case is a gt9769, which could be > compatible with dw9768, but it's still a different implementation and > could have slightly different characteristics. Thus we think the > driver name and compatible strings should be renamed from > dongwoon,dw9768 to giantec,gt9769. In the future, if there is a device > with exactly a dw9768 chip, the same driver could be reused by adding > a dongwoon,dw9768 compatible string. > > 2) The chip has some default configuration, which is lost because the > driver overrides it with its own values. For use cases where one would > want to keep the default values, we should make it possible to prevent > the driver from overriding them. We could achieve this by adding > optional DT properties for the custom parameters and if they are not > present, defaults would be used. > > Do you think that is doable? Thanks! > > Best regards, > Tomasz For the renaming, I cannot agree with you more. I would try to adjust it in next release. For actuator driver, it seems our initial idea is that driver registers should always use the default or reserved values. Indeed, nowadays lens drivers on the community don't have such configuration registers. Albeit I don't quite sure whether it is reasonable for this summary. As you discussed, for the current kernel, it would be nice to keep the same with the traditional style. _______________________________________________ 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=-13.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,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 9A201C54E4B for ; Tue, 12 May 2020 03:43:05 +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 6350720730 for ; Tue, 12 May 2020 03:43:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Pd5KDyFO"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="YoNoqwv/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6350720730 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=vlmWCBAbkpbKKgKqjw7pzWKKm5P+Lg7WUH37VwLm+6c=; b=Pd5KDyFOAYL2i3 IX5lCP3WIvvgD1TtSk8xH1GaMiLiFJ/NHf/BIpkJXVcheBkIW0XJFG5NbvlmkPAEsSdOhTLzVJAdJ EAnTHp2V0ViCXAAG8Dqiv+3i8ASR6tlItGY6vbL6Lqj1l8f6epWuQ1fiTz30xFpx8ogCDQezPrjR5 gv6EpXf16jCQGsN3rz/nVtmJ09OGQiPSF1H+v+PUWG5YvferzaCbKuZcE3LAE5EJLG9UhdY2mzQ5G U+eS6ZU9B6BCvtrpX6mAf2ulf/9zNlILQZQAiuOdHfgilLhk4eNKVyW2mgGhzye9unwAfGBL3OJ3c DEkOcrn0P3hJYoPWgrzA==; 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 1jYLou-0005pB-To; Tue, 12 May 2020 03:43:04 +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 1jYLop-0005nh-RG; Tue, 12 May 2020 03:43:02 +0000 X-UUID: 39ec0487233e40f697d9d9a33aa514fb-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=gzRrirgWI6RFHcvKQwsR25zvfvdlxabazbvPiYB63TY=; b=YoNoqwv/g1QhmEL3TLi2w4GEMQT/sWRjkxCQcxiBY0imVB2Yjv6EFxPs8MzNlKzmrXjLV+MQRBEZM2cv0El5G7wEPtKzOa0fExCLbV8KKcZuWUVF2XmPTT7o7XedcqXsepGsZmHFmwMU3DtmtY/NdlgNNtWt+Sy2hXGshnF0bp4=; X-UUID: 39ec0487233e40f697d9d9a33aa514fb-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 781838054; Mon, 11 May 2020 19:42:56 -0800 Received: from MTKMBS31DR.mediatek.inc (172.27.6.102) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 20:34:42 -0700 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 12 May 2020 11:34:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 12 May 2020 11:34:37 +0800 Message-ID: <1589254403.8804.306.camel@mhfsdcap03> Subject: Re: [V5, 2/2] media: i2c: dw9768: Add DW9768 VCM driver From: Dongchun Zhu To: Tomasz Figa Date: Tue, 12 May 2020 11:33:23 +0800 In-Reply-To: References: <20200502161727.30463-1-dongchun.zhu@mediatek.com> <20200502161727.30463-3-dongchun.zhu@mediatek.com> <20200506151352.GZ9190@paasikivi.fi.intel.com> <1588855524.8804.168.camel@mhfsdcap03> <20200507131220.GC9190@paasikivi.fi.intel.com> <1588907288.8804.188.camel@mhfsdcap03> <20200508211319.GJ9190@paasikivi.fi.intel.com> <1588991026.8804.235.camel@mhfsdcap03> X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: DA68AA50845AF29D2688D88BB4FD0C4D483C870F8F7DCE4E80D492F383CA908E2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200511_204259_886862_755CD74F X-CRM114-Status: GOOD ( 39.11 ) 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?= , Louis Kuo , Bartosz Golaszewski , Sj Huang , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Sakari Ailus , Matthias Brugger , Cao Bing Bu , 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 Tomasz, On Mon, 2020-05-11 at 20:20 +0200, Tomasz Figa wrote: > Hi Dongchun, > > On Sat, May 9, 2020 at 4:25 AM Dongchun Zhu wrote: > > > > Hi Sakari, > > > > On Sat, 2020-05-09 at 00:13 +0300, Sakari Ailus wrote: > > > Hi Dongchun, > > > > > > On Fri, May 08, 2020 at 11:08:08AM +0800, Dongchun Zhu wrote: > > > > Hi Sakari, Tomasz, > > > > > > > > Thanks for the review. > > > > > > > > On Thu, 2020-05-07 at 15:46 +0200, Tomasz Figa wrote: > > > > > Hi Sakari, Dongchun, > > > > > > > > > > On Thu, May 7, 2020 at 3:12 PM Sakari Ailus > > > > > wrote: > > > > > > > > > > > > HI Dongchun, > > > > > > > > > > > > On Thu, May 07, 2020 at 08:45:24PM +0800, Dongchun Zhu wrote: > > > > > > > Hi Sakari, > > > > > > > > > > > > > > Thanks for the review. > > > > > > > > > > > > > > On Wed, 2020-05-06 at 18:13 +0300, Sakari Ailus wrote: > > > > > > > > Hi Dongchun, > > > > > > > > > > > > > > > > On Sun, May 03, 2020 at 12:17:27AM +0800, Dongchun Zhu wrote: > > > > > > > > > Add a V4L2 sub-device driver for DW9768 voice coil motor, providing > > > > > > > > > control to set the desired focus via IIC serial interface. > > > > > > > > > > > > > > > > > > Signed-off-by: Dongchun Zhu > > > > > > > > > --- > > > > > > > > > MAINTAINERS | 1 + > > > > > > > > > drivers/media/i2c/Kconfig | 11 ++ > > > > > > > > > drivers/media/i2c/Makefile | 1 + > > > > > > > > > drivers/media/i2c/dw9768.c | 440 +++++++++++++++++++++++++++++++++++++++++++++ > > > > > > > > > 4 files changed, 453 insertions(+) > > > > > > > > > create mode 100644 drivers/media/i2c/dw9768.c > > > > > > > > > > > > > > > > > > diff --git a/MAINTAINERS b/MAINTAINERS > > > > > > > > > index 8d72c41..c92dc99 100644 > > > > > > > > > --- a/MAINTAINERS > > > > > > > > > +++ b/MAINTAINERS > > > > > > > > > @@ -5157,6 +5157,7 @@ L: linux-media@vger.kernel.org > > > > > > > > > S: Maintained > > > > > > > > > T: git git://linuxtv.org/media_tree.git > > > > > > > > > F: Documentation/devicetree/bindings/media/i2c/dongwoon,dw9768.yaml > > > > > > > > > +F: drivers/media/i2c/dw9768.c > > > > > > > > > > > > > > > > > > DONGWOON DW9807 LENS VOICE COIL DRIVER > > > > > > > > > M: Sakari Ailus > > > > > > > > > diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig > > > > > > > > > index 125d596..6a3f9da 100644 > > > > > > > > > --- a/drivers/media/i2c/Kconfig > > > > > > > > > +++ b/drivers/media/i2c/Kconfig > > > > > > > > > @@ -1040,6 +1040,17 @@ config VIDEO_DW9714 > > > > > > > > > capability. This is designed for linear control of > > > > > > > > > voice coil motors, controlled via I2C serial interface. > > > > > > > > > > > > > > > > > > +config VIDEO_DW9768 > > > > > > > > > + tristate "DW9768 lens voice coil support" > > > > > > > > > + depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER > > > > > > > > > + depends on VIDEO_V4L2_SUBDEV_API > > > > > > > > > > > > > > > > Please check how this works in the media tree master branch now --- it's > > > > > > > > largely select based. > > > > > > > > > > > > > > > > > > > > > > The actuator driver uses some structures that require the > > > > > > > VIDEO_V4L2_SUBDEV_API code, so here we add VIDEO_V4L2_SUBDEV_API > > > > > > > dependency to avoid possible build error when it's not enabled. > > > > > > > > > > > > Please make sure this works with current media tree master. Right now it > > > > > > does not. > > > > > > > > > > > > > > > > Dongchun, as Sakari said, please make sure to base the patches on the > > > > > master branch of the media tree. > > > > > (https://git.linuxtv.org/media_tree.git/). The approach for Kconfig > > > > > dependency selection there seems to have changed recently. > > > > > > > > > > > > > I searched the patches on the media tree master branch. > > > > It seems that we need to remove the VIDEO_V4L2_SUBDEV_API dependency in > > > > Kconfig, and add #ifdef CONFIG_VIDEO_V4L2_SUBDEV_API to include > > > > v4l2-subdev code. > > > > The change mainly is to make build pass, and don't return ENOTTY if > > > > SUBDEV_API is not set. > > > > Am I right? > > > > > > Please see Kconfig entries for other similar drivers from Dongwoon. > > > > > > > Sorry for the mistake :-) > > Just found the current media tree master branch code... > > I would update Kconfig entries in next release by referring to: > > https://git.linuxtv.org/media_tree.git/tree/drivers/media/i2c/Kconfig > > Sorry for last minute comments again. We had a short discussion > offline with Sakari and we think there are some changes needed to this > driver, namely: > > 1) The hardware being driven in our case is a gt9769, which could be > compatible with dw9768, but it's still a different implementation and > could have slightly different characteristics. Thus we think the > driver name and compatible strings should be renamed from > dongwoon,dw9768 to giantec,gt9769. In the future, if there is a device > with exactly a dw9768 chip, the same driver could be reused by adding > a dongwoon,dw9768 compatible string. > > 2) The chip has some default configuration, which is lost because the > driver overrides it with its own values. For use cases where one would > want to keep the default values, we should make it possible to prevent > the driver from overriding them. We could achieve this by adding > optional DT properties for the custom parameters and if they are not > present, defaults would be used. > > Do you think that is doable? Thanks! > > Best regards, > Tomasz For the renaming, I cannot agree with you more. I would try to adjust it in next release. For actuator driver, it seems our initial idea is that driver registers should always use the default or reserved values. Indeed, nowadays lens drivers on the community don't have such configuration registers. Albeit I don't quite sure whether it is reasonable for this summary. As you discussed, for the current kernel, it would be nice to keep the same with the traditional style. _______________________________________________ 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=-13.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,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 61D87C54E4B for ; Tue, 12 May 2020 03:34:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 36E54206DB for ; Tue, 12 May 2020 03:34:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="OWnKeS1I" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728348AbgELDev (ORCPT ); Mon, 11 May 2020 23:34:51 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:38643 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727942AbgELDev (ORCPT ); Mon, 11 May 2020 23:34:51 -0400 X-UUID: 11db1a90d6964c5785ccf8a9fd13537e-20200512 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=gzRrirgWI6RFHcvKQwsR25zvfvdlxabazbvPiYB63TY=; b=OWnKeS1IuniH6iUGGStDMP61SjfpnTfZpAXZVbECF3r9f0lahR3k5nLDka2tXK2g4KBmDmjsPAdhQCB7C4sHBRCHmLf8W6kQ2GBVX50n/QPLDujrylUmPxEEKa01L04GpT4Adm91yjTErM24m+UDrAB+7QZS+czAKfa09zJXLGQ=; X-UUID: 11db1a90d6964c5785ccf8a9fd13537e-20200512 Received: from mtkcas35.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 1439724666; Tue, 12 May 2020 11:34:40 +0800 Received: from MTKCAS32.mediatek.inc (172.27.4.184) by MTKMBS31DR.mediatek.inc (172.27.6.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 12 May 2020 11:34:38 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS32.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 12 May 2020 11:34:37 +0800 Message-ID: <1589254403.8804.306.camel@mhfsdcap03> Subject: Re: [V5, 2/2] media: i2c: dw9768: Add DW9768 VCM driver From: Dongchun Zhu To: Tomasz Figa CC: Sakari Ailus , 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: Tue, 12 May 2020 11:33:23 +0800 In-Reply-To: References: <20200502161727.30463-1-dongchun.zhu@mediatek.com> <20200502161727.30463-3-dongchun.zhu@mediatek.com> <20200506151352.GZ9190@paasikivi.fi.intel.com> <1588855524.8804.168.camel@mhfsdcap03> <20200507131220.GC9190@paasikivi.fi.intel.com> <1588907288.8804.188.camel@mhfsdcap03> <20200508211319.GJ9190@paasikivi.fi.intel.com> <1588991026.8804.235.camel@mhfsdcap03> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-TM-SNTS-SMTP: DA68AA50845AF29D2688D88BB4FD0C4D483C870F8F7DCE4E80D492F383CA908E2000: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 SGkgVG9tYXN6LA0KDQpPbiBNb24sIDIwMjAtMDUtMTEgYXQgMjA6MjAgKzAyMDAsIFRvbWFzeiBG aWdhIHdyb3RlOg0KPiBIaSBEb25nY2h1biwNCj4gDQo+IE9uIFNhdCwgTWF5IDksIDIwMjAgYXQg NDoyNSBBTSBEb25nY2h1biBaaHUgPGRvbmdjaHVuLnpodUBtZWRpYXRlay5jb20+IHdyb3RlOg0K PiA+DQo+ID4gSGkgU2FrYXJpLA0KPiA+DQo+ID4gT24gU2F0LCAyMDIwLTA1LTA5IGF0IDAwOjEz ICswMzAwLCBTYWthcmkgQWlsdXMgd3JvdGU6DQo+ID4gPiBIaSBEb25nY2h1biwNCj4gPiA+DQo+ ID4gPiBPbiBGcmksIE1heSAwOCwgMjAyMCBhdCAxMTowODowOEFNICswODAwLCBEb25nY2h1biBa aHUgd3JvdGU6DQo+ID4gPiA+IEhpIFNha2FyaSwgVG9tYXN6LA0KPiA+ID4gPg0KPiA+ID4gPiBU aGFua3MgZm9yIHRoZSByZXZpZXcuDQo+ID4gPiA+DQo+ID4gPiA+IE9uIFRodSwgMjAyMC0wNS0w NyBhdCAxNTo0NiArMDIwMCwgVG9tYXN6IEZpZ2Egd3JvdGU6DQo+ID4gPiA+ID4gSGkgU2FrYXJp LCBEb25nY2h1biwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIFRodSwgTWF5IDcsIDIwMjAgYXQg MzoxMiBQTSBTYWthcmkgQWlsdXMNCj4gPiA+ID4gPiA8c2FrYXJpLmFpbHVzQGxpbnV4LmludGVs LmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSEkgRG9uZ2NodW4sDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gT24gVGh1LCBNYXkgMDcsIDIwMjAgYXQgMDg6NDU6MjRQTSAr MDgwMCwgRG9uZ2NodW4gWmh1IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBIaSBTYWthcmksDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIHJldmlldy4NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gT24gV2VkLCAyMDIwLTA1LTA2IGF0IDE4OjEzICswMzAwLCBT YWthcmkgQWlsdXMgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gSGkgRG9uZ2NodW4sDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBPbiBTdW4sIE1heSAwMywgMjAyMCBhdCAxMjoxNzoy N0FNICswODAwLCBEb25nY2h1biBaaHUgd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4gPiBBZGQgYSBW NEwyIHN1Yi1kZXZpY2UgZHJpdmVyIGZvciBEVzk3Njggdm9pY2UgY29pbCBtb3RvciwgcHJvdmlk aW5nDQo+ID4gPiA+ID4gPiA+ID4gPiBjb250cm9sIHRvIHNldCB0aGUgZGVzaXJlZCBmb2N1cyB2 aWEgSUlDIHNlcmlhbCBpbnRlcmZhY2UuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gU2lnbmVkLW9mZi1ieTogRG9uZ2NodW4gWmh1IDxkb25nY2h1bi56aHVAbWVkaWF0ZWsu Y29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiAgTUFJTlRBSU5F UlMgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvbWVk aWEvaTJjL0tjb25maWcgIHwgIDExICsrDQo+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9tZWRp YS9pMmMvTWFrZWZpbGUgfCAgIDEgKw0KPiA+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvbWVkaWEv aTJjL2R3OTc2OC5jIHwgNDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ID4gPiA+ID4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgNDUzIGluc2VydGlv bnMoKykNCj4gPiA+ID4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRp YS9pMmMvZHc5NzY4LmMNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBkaWZm IC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUw0KPiA+ID4gPiA+ID4gPiA+ID4gaW5k ZXggOGQ3MmM0MS4uYzkyZGM5OSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gPiA+IC0tLSBhL01BSU5U QUlORVJTDQo+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9NQUlOVEFJTkVSUw0KPiA+ID4gPiA+ID4g PiA+ID4gQEAgLTUxNTcsNiArNTE1Nyw3IEBAIEw6ICBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5v cmcNCj4gPiA+ID4gPiA+ID4gPiA+ICBTOiAgICAgICBNYWludGFpbmVkDQo+ID4gPiA+ID4gPiA+ ID4gPiAgVDogICAgICAgZ2l0IGdpdDovL2xpbnV4dHYub3JnL21lZGlhX3RyZWUuZ2l0DQo+ID4g PiA+ID4gPiA+ID4gPiAgRjogICAgICAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L21lZGlhL2kyYy9kb25nd29vbixkdzk3NjgueWFtbA0KPiA+ID4gPiA+ID4gPiA+ID4gK0Y6ICAg ICAgIGRyaXZlcnMvbWVkaWEvaTJjL2R3OTc2OC5jDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gIERPTkdXT09OIERXOTgwNyBMRU5TIFZPSUNFIENPSUwgRFJJVkVSDQo+ID4g PiA+ID4gPiA+ID4gPiAgTTogICAgICAgU2FrYXJpIEFpbHVzIDxzYWthcmkuYWlsdXNAbGludXgu aW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEv aTJjL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2kyYy9LY29uZmlnDQo+ID4gPiA+ID4gPiA+ID4g PiBpbmRleCAxMjVkNTk2Li42YTNmOWRhIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEv ZHJpdmVycy9tZWRpYS9pMmMvS2NvbmZpZw0KPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9tZWRpYS9pMmMvS2NvbmZpZw0KPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTEwNDAsNiArMTA0MCwx NyBAQCBjb25maWcgVklERU9fRFc5NzE0DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgY2FwYWJpbGl0 eS4gVGhpcyBpcyBkZXNpZ25lZCBmb3IgbGluZWFyIGNvbnRyb2wgb2YNCj4gPiA+ID4gPiA+ID4g PiA+ICAgICB2b2ljZSBjb2lsIG1vdG9ycywgY29udHJvbGxlZCB2aWEgSTJDIHNlcmlhbCBpbnRl cmZhY2UuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gK2NvbmZpZyBWSURF T19EVzk3NjgNCj4gPiA+ID4gPiA+ID4gPiA+ICsgdHJpc3RhdGUgIkRXOTc2OCBsZW5zIHZvaWNl IGNvaWwgc3VwcG9ydCINCj4gPiA+ID4gPiA+ID4gPiA+ICsgZGVwZW5kcyBvbiBJMkMgJiYgVklE RU9fVjRMMiAmJiBNRURJQV9DT05UUk9MTEVSDQo+ID4gPiA+ID4gPiA+ID4gPiArIGRlcGVuZHMg b24gVklERU9fVjRMMl9TVUJERVZfQVBJDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiBQbGVhc2UgY2hlY2sgaG93IHRoaXMgd29ya3MgaW4gdGhlIG1lZGlhIHRyZWUgbWFzdGVyIGJy YW5jaCBub3cgLS0tIGl0J3MNCj4gPiA+ID4gPiA+ID4gPiBsYXJnZWx5IHNlbGVjdCBiYXNlZC4N Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGUgYWN0dWF0 b3IgZHJpdmVyIHVzZXMgc29tZSBzdHJ1Y3R1cmVzIHRoYXQgcmVxdWlyZSB0aGUNCj4gPiA+ID4g PiA+ID4gVklERU9fVjRMMl9TVUJERVZfQVBJIGNvZGUsIHNvIGhlcmUgd2UgYWRkIFZJREVPX1Y0 TDJfU1VCREVWX0FQSQ0KPiA+ID4gPiA+ID4gPiBkZXBlbmRlbmN5IHRvIGF2b2lkIHBvc3NpYmxl IGJ1aWxkIGVycm9yIHdoZW4gaXQncyBub3QgZW5hYmxlZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBQbGVhc2UgbWFrZSBzdXJlIHRoaXMgd29ya3Mgd2l0aCBjdXJyZW50IG1lZGlhIHRyZWUg bWFzdGVyLiBSaWdodCBub3cgaXQNCj4gPiA+ID4gPiA+IGRvZXMgbm90Lg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IERvbmdjaHVuLCBhcyBTYWthcmkgc2FpZCwgcGxlYXNlIG1h a2Ugc3VyZSB0byBiYXNlIHRoZSBwYXRjaGVzIG9uIHRoZQ0KPiA+ID4gPiA+IG1hc3RlciBicmFu Y2ggb2YgdGhlIG1lZGlhIHRyZWUuDQo+ID4gPiA+ID4gKGh0dHBzOi8vZ2l0LmxpbnV4dHYub3Jn L21lZGlhX3RyZWUuZ2l0LykuIFRoZSBhcHByb2FjaCBmb3IgS2NvbmZpZw0KPiA+ID4gPiA+IGRl cGVuZGVuY3kgc2VsZWN0aW9uIHRoZXJlIHNlZW1zIHRvIGhhdmUgY2hhbmdlZCByZWNlbnRseS4N Cj4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBJIHNlYXJjaGVkIHRoZSBwYXRjaGVzIG9uIHRo ZSBtZWRpYSB0cmVlIG1hc3RlciBicmFuY2guDQo+ID4gPiA+IEl0IHNlZW1zIHRoYXQgd2UgbmVl ZCB0byByZW1vdmUgdGhlIFZJREVPX1Y0TDJfU1VCREVWX0FQSSBkZXBlbmRlbmN5IGluDQo+ID4g PiA+IEtjb25maWcsIGFuZCBhZGQgI2lmZGVmIENPTkZJR19WSURFT19WNEwyX1NVQkRFVl9BUEkg dG8gaW5jbHVkZQ0KPiA+ID4gPiB2NGwyLXN1YmRldiBjb2RlLg0KPiA+ID4gPiBUaGUgY2hhbmdl IG1haW5seSBpcyB0byBtYWtlIGJ1aWxkIHBhc3MsIGFuZCBkb24ndCByZXR1cm4gRU5PVFRZIGlm DQo+ID4gPiA+IFNVQkRFVl9BUEkgaXMgbm90IHNldC4NCj4gPiA+ID4gQW0gSSByaWdodD8NCj4g PiA+DQo+ID4gPiBQbGVhc2Ugc2VlIEtjb25maWcgZW50cmllcyBmb3Igb3RoZXIgc2ltaWxhciBk cml2ZXJzIGZyb20gRG9uZ3dvb24uDQo+ID4gPg0KPiA+DQo+ID4gU29ycnkgZm9yIHRoZSBtaXN0 YWtlIDotKQ0KPiA+IEp1c3QgZm91bmQgdGhlIGN1cnJlbnQgbWVkaWEgdHJlZSBtYXN0ZXIgYnJh bmNoIGNvZGUuLi4NCj4gPiBJIHdvdWxkIHVwZGF0ZSBLY29uZmlnIGVudHJpZXMgaW4gbmV4dCBy ZWxlYXNlIGJ5IHJlZmVycmluZyB0bzoNCj4gPiBodHRwczovL2dpdC5saW51eHR2Lm9yZy9tZWRp YV90cmVlLmdpdC90cmVlL2RyaXZlcnMvbWVkaWEvaTJjL0tjb25maWcNCj4gDQo+IFNvcnJ5IGZv ciBsYXN0IG1pbnV0ZSBjb21tZW50cyBhZ2Fpbi4gV2UgaGFkIGEgc2hvcnQgZGlzY3Vzc2lvbg0K PiBvZmZsaW5lIHdpdGggU2FrYXJpIGFuZCB3ZSB0aGluayB0aGVyZSBhcmUgc29tZSBjaGFuZ2Vz IG5lZWRlZCB0byB0aGlzDQo+IGRyaXZlciwgbmFtZWx5Og0KPiANCj4gMSkgVGhlIGhhcmR3YXJl IGJlaW5nIGRyaXZlbiBpbiBvdXIgY2FzZSBpcyBhIGd0OTc2OSwgd2hpY2ggY291bGQgYmUNCj4g Y29tcGF0aWJsZSB3aXRoIGR3OTc2OCwgYnV0IGl0J3Mgc3RpbGwgYSBkaWZmZXJlbnQgaW1wbGVt ZW50YXRpb24gYW5kDQo+IGNvdWxkIGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IGNoYXJhY3Rlcmlz dGljcy4gVGh1cyB3ZSB0aGluayB0aGUNCj4gZHJpdmVyIG5hbWUgYW5kIGNvbXBhdGlibGUgc3Ry aW5ncyBzaG91bGQgYmUgcmVuYW1lZCBmcm9tDQo+IGRvbmd3b29uLGR3OTc2OCB0byBnaWFudGVj LGd0OTc2OS4gSW4gdGhlIGZ1dHVyZSwgaWYgdGhlcmUgaXMgYSBkZXZpY2UNCj4gd2l0aCBleGFj dGx5IGEgZHc5NzY4IGNoaXAsIHRoZSBzYW1lIGRyaXZlciBjb3VsZCBiZSByZXVzZWQgYnkgYWRk aW5nDQo+IGEgZG9uZ3dvb24sZHc5NzY4IGNvbXBhdGlibGUgc3RyaW5nLg0KPiANCj4gMikgVGhl IGNoaXAgaGFzIHNvbWUgZGVmYXVsdCBjb25maWd1cmF0aW9uLCB3aGljaCBpcyBsb3N0IGJlY2F1 c2UgdGhlDQo+IGRyaXZlciBvdmVycmlkZXMgaXQgd2l0aCBpdHMgb3duIHZhbHVlcy4gRm9yIHVz ZSBjYXNlcyB3aGVyZSBvbmUgd291bGQNCj4gd2FudCB0byBrZWVwIHRoZSBkZWZhdWx0IHZhbHVl cywgd2Ugc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gcHJldmVudA0KPiB0aGUgZHJpdmVyIGZy b20gb3ZlcnJpZGluZyB0aGVtLiBXZSBjb3VsZCBhY2hpZXZlIHRoaXMgYnkgYWRkaW5nDQo+IG9w dGlvbmFsIERUIHByb3BlcnRpZXMgZm9yIHRoZSBjdXN0b20gcGFyYW1ldGVycyBhbmQgaWYgdGhl eSBhcmUgbm90DQo+IHByZXNlbnQsIGRlZmF1bHRzIHdvdWxkIGJlIHVzZWQuDQo+IA0KPiBEbyB5 b3UgdGhpbmsgdGhhdCBpcyBkb2FibGU/IFRoYW5rcyENCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4g VG9tYXN6DQoNCkZvciB0aGUgcmVuYW1pbmcsIEkgY2Fubm90IGFncmVlIHdpdGggeW91IG1vcmUu DQpJIHdvdWxkIHRyeSB0byBhZGp1c3QgaXQgaW4gbmV4dCByZWxlYXNlLg0KDQpGb3IgYWN0dWF0 b3IgZHJpdmVyLCBpdCBzZWVtcyBvdXIgaW5pdGlhbCBpZGVhIGlzIHRoYXQgZHJpdmVyIHJlZ2lz dGVycw0Kc2hvdWxkIGFsd2F5cyB1c2UgdGhlIGRlZmF1bHQgb3IgcmVzZXJ2ZWQgdmFsdWVzLg0K SW5kZWVkLCBub3dhZGF5cyBsZW5zIGRyaXZlcnMgb24gdGhlIGNvbW11bml0eSBkb24ndCBoYXZl IHN1Y2gNCmNvbmZpZ3VyYXRpb24gcmVnaXN0ZXJzLg0KQWxiZWl0IEkgZG9uJ3QgcXVpdGUgc3Vy ZSB3aGV0aGVyIGl0IGlzIHJlYXNvbmFibGUgZm9yIHRoaXMgc3VtbWFyeS4NCg0KQXMgeW91IGRp c2N1c3NlZCwgZm9yIHRoZSBjdXJyZW50IGtlcm5lbCwgaXQgd291bGQgYmUgbmljZSB0byBrZWVw IHRoZQ0Kc2FtZSB3aXRoIHRoZSB0cmFkaXRpb25hbCBzdHlsZS4NCg0K