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=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB7FAC6369E for ; Mon, 16 Nov 2020 18:25:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 88FA022370 for ; Mon, 16 Nov 2020 18:25:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Nm4uUOPd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731655AbgKPSZh (ORCPT ); Mon, 16 Nov 2020 13:25:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729555AbgKPSZh (ORCPT ); Mon, 16 Nov 2020 13:25:37 -0500 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14303C0613CF; Mon, 16 Nov 2020 10:25:37 -0800 (PST) Received: by mail-ej1-x641.google.com with SMTP id oq3so25785162ejb.7; Mon, 16 Nov 2020 10:25:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=iMNNFITQTVl6xH9FIhmZAJHI+XOQfJPxPlTQJWECZ4E=; b=Nm4uUOPdDKQPmpez1awCv77luKnrY1dTONrakQhSAqvfUuUI+Uiymcop9TBfqu/dsS sqb+7quMnWJ9wgObFrqMMhufxRs7YQb/B/7jaclPcQ8OzpeLfVMiG9UaJx3KdgHHucWE Wz1NPAiHzWkBUNs3fIcH4Bo0coThYIaeuJbGH5KgwGWGQcemM99JwPTkj3jiB8YWRSIe WjvFqy6E6SrxOrkYg3y75Zg4GUUVCpRZkCuBLWy3ChkhHIb4lgO9dTn8jQjqEl3Qw7r5 TYst/PDWQHbStpxIlLmauJtpilbLTQLb2qDRTFLyNNpp3NNE+u4dPElY5b3dFSnxA87a bwUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=iMNNFITQTVl6xH9FIhmZAJHI+XOQfJPxPlTQJWECZ4E=; b=hJyAegnoJ4V4RPYoflqPzDO9uhGhsvfFDxnfhPqbeerpDmnL/mlpAd5/1PVfYrsa+X F9wbniVvbK7ber4d3g+nHqZGtH9RYPiaV0cyPQeTPN3rBMHTN5WaNnB2ZsyRLbslFf/o 9oDlGv5lN+/7ku0AQdUGmUj+nMRMFybWmZH84iDJFUcGM6CNtDzFfQFFf9QUSD1gMvS9 QZZUOL4WrmmQEkyuO/Fk9Gtt0qg1sVBUID5C8tD/YZjGg4PTKUk0bsjJpulKIRCKdGCW LuL4M00y1YP96+lVsody9CzWhBNtRLJJxciTzmfnxfilKwKLgRwbakbTilJY2/wAwNK2 6sJA== X-Gm-Message-State: AOAM530qIM9PfER6zGyaf0OdB7Fq7rGnoudlzoAZyvuTqAS+bxOk+++4 ZXv7OTwvdsmQe5xyNLjdU/Q= X-Google-Smtp-Source: ABdhPJyCa6sw3pwdJXhlWemEGMWgcpkeE5rSnyk3jlh1qlo9F5tW6ISm+hGVEDCgVQYrKP3pMnOxQw== X-Received: by 2002:a17:906:cb2:: with SMTP id k18mr17223486ejh.71.1605551135755; Mon, 16 Nov 2020 10:25:35 -0800 (PST) Received: from ?IPv6:2a01:110f:b59:fd00:9993:6bc3:e972:e19d? ([2a01:110f:b59:fd00:9993:6bc3:e972:e19d]) by smtp.gmail.com with ESMTPSA id m16sm10738454eja.58.2020.11.16.10.25.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Nov 2020 10:25:35 -0800 (PST) Subject: Re: [PATCH v5 2/2] leds: mt6360: Add LED driver for MT6360 To: Gene Chen Cc: Pavel Machek , Rob Herring , Matthias Brugger , Dan Murphy , Linux LED Subsystem , devicetree , linux-arm Mailing List , "moderated list:ARM/Mediatek SoC support" , Linux Kernel Mailing List , Gene Chen , Wilma.Wu@mediatek.com, shufan_lee@richtek.com, cy_huang@richtek.com, benjamin.chao@mediatek.com References: <1602034966-3524-1-git-send-email-gene.chen.richtek@gmail.com> <1602034966-3524-3-git-send-email-gene.chen.richtek@gmail.com> <5a9b31c4-739c-06fc-2015-ed474993ad22@gmail.com> <8925db23-5cc4-3c5f-932a-461fe6450dad@gmail.com> <1bb76c54-14af-6c78-4623-77c6678b262e@gmail.com> From: Jacek Anaszewski Message-ID: Date: Mon, 16 Nov 2020 19:25:32 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org On 11/16/20 11:01 AM, Gene Chen wrote: > Jacek Anaszewski 於 2020年10月31日 週六 上午6:34寫道: >> >> On 10/30/20 9:51 AM, Gene Chen wrote: >>> Jacek Anaszewski 於 2020年10月28日 週三 上午1:28寫道: >>>> >>>> On 10/27/20 10:28 AM, Gene Chen wrote: >>>>> Jacek Anaszewski 於 2020年10月21日 週三 上午5:47寫道: >>>>>> >>>>>> On 10/20/20 8:44 AM, Gene Chen wrote: >>>>>>> Jacek Anaszewski 於 2020年10月9日 週五 上午5:51寫道: >>>>>>>> >>>>>>>> Hi Gene, >>>>>>>> >>>>>>>> On 10/7/20 3:42 AM, Gene Chen wrote: >>>>>>>>> From: Gene Chen >>>>>>>>> >>>>>>>>> Add MT6360 LED driver include 2-channel Flash LED with torch/strobe mode, >>>>>>>>> 3-channel RGB LED support Register/Flash/Breath Mode, and 1-channel for >>>>>>>>> moonlight LED. >>>>>>>>> >>>>>>>>> Signed-off-by: Gene Chen >>>>>>>>> --- >>>>>>>>> drivers/leds/Kconfig | 12 + >>>>>>>>> drivers/leds/Makefile | 1 + >>>>>>>>> drivers/leds/leds-mt6360.c | 783 +++++++++++++++++++++++++++++++++++++++++++++ >>>>>>>>> 3 files changed, 796 insertions(+) >>>>>>>>> create mode 100644 drivers/leds/leds-mt6360.c >>>>>>>>> >>>>>>>>> diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig >>>>>>>>> index 1c181df..c7192dd 100644 >>>>>>>>> --- a/drivers/leds/Kconfig >>>>>>>>> +++ b/drivers/leds/Kconfig >>>>>>>>> @@ -271,6 +271,18 @@ config LEDS_MT6323 >>>>>>>>> This option enables support for on-chip LED drivers found on >>>>>>>>> Mediatek MT6323 PMIC. >>>>>>>>> >>>>>>>>> +config LEDS_MT6360 >>>>>>>>> + tristate "LED Support for Mediatek MT6360 PMIC" >>>>>>>>> + depends on LEDS_CLASS_FLASH && OF >>>>>>>>> + depends on LEDS_CLASS_MULTICOLOR >>>>>>>> >>>>>>>> Since CONFIG_LED_CLASS_MULTICOLOR can be turned off you need to have >>>>>>>> below instead: >>>>>>>> >>>>>>>> depends on LEDS_CLASS_MULTICOLOR || !!LEDS_CLASS_MULTICOLOR >>>> >>>> My typo here, should be one "!": >>>> >>>> depends on LEDS_CLASS_MULTICOLOR || !LEDS_CLASS_MULTICOLOR >>>> >>>> And you should also have >>>> >>>> depends on LEDS_CLASS_FLASH || !LEDS_CLASS_FLASH >>>> >>>> But to make it work correctly you would have to add registration >>>> stubs to include/linux/led-class-flash.h similarly to LED mc stubs >>>> in include/linux/led-class-multicolor.h. >>>> >>>>>>>> >>>>>>>> Unless you want to prevent enabling the driver without RGB LED, >>>>>>>> but that does not seem to be reasonable at first glance. >>>>>>>> >>>>>>> >>>>>>> May I change to "select LEDS_CLASS_MULTICOLOR"? >>>>>>> I suppose RGB always use multicolor mode. >>>>>> >>>>>> You will also have moonlight LED that will not need multicolor >>>>>> framework. Is it somehow troublesome to keep "depends on"? >>>>>> >>>>> >>>>> If only use ML LED and FLED, DTSI will only define ML LED and FLED. >>>>> Therefore, the drivers probe will not register rgb multicolor device. >>>> >>>> Please test your use case again with my fixed "depends on". >>>> >>>> In case when there is only ML LED and FLED in the DT it should >>>> register both devices if LEDS_CLASS_FLASH is turned on. >>>> Multicolor framework has nothing to do in this case. >>>> >>>> But if you additionally had MC LED node, then it should >>>> be registered only if LEDS_CLASS_MULTICOLOR is enabled. >>>> >>>> Similarly, when FLED node is present, but LEDS_CLASS_FLASH >>>> is off, and LEDS_CLASS_MULTICOLOR is on, the driver should still >>>> compile, but register only LED MC device (if its node is present). >>>> >>> >>> I think this case only register LED device, not LED "MC" device. >>> Because our FLASH is not a multicolor device. >> >> No, here I was describing following setup: >> >> - DT FLED node is present, CONFIG_LEDS_CLASS_FLASH is off >> - DT MC node is present, CONFIG_LEDS_CLASS_MULTICOLOR is on >> >> ML LED presence in DT is irrelevant in this case. >> It should be always registered if there is corresponding DT node >> and LEDS_CLASS is on. >> > > As a long time discussion, we conclude some rules about MT6360 LED driver. > FLED is necessary, so Kconfig depends on LED_CLASS_FLASH Maybe it is necessary in your use case, but probably it is possible to use the device without FLED. If so, then you should allow users disabling it. Therefore you should have: depends on LEDS_CLASS_FLASH || !LEDS_CLASS_FLASH > ML LED is optional, which is registered as led class device. > RGB LED can be either simple led class device or multicolor device, > which is decided in DT node > If Multicolor LED DT node is exist, it should be register multicolor > device success. But only if CONFIG_LEDS_CLASS_MULTICOLOR is enabled. > Maybe it is more specific to send a new patch? > > Sample DT as below > LED "red" is simple led class device, LED "green&blue" is multicolor devices. > led@0 { > reg = <0>; > function = LED_FUNCTION_INDICATOR; > color = ; > led-max-microamp = <24000>; > }; > led@6 { > reg = <6>; > function = LED_FUNCTION_INDICATOR; > color = ; > > led@1 { > reg = <1>; > function = LED_FUNCTION_INDICATOR; > color = ; > led-max-microamp = <24000>; > }; > led@2 { > reg = <2>; > function = LED_FUNCTION_INDICATOR; > color = ; > led-max-microamp = <24000>; > }; > }; It looks OK. >>>> Possible should be also the case when both LEDS_CLASS_FLASH >>>> and LEDS_CLASS_MULTICOLOR are off. Then only LED class device >>>> for ML LED will be registered (provided there is ML DT node). >>>> But to make it possible you should have also "depends on LEDS_CLASS" >>>> in the Kconfig entry. >>>> >>> >>> According to your suggestion, >>> depends on LED_CLASS && LEDS_CLASS_FLASH && OF >> >> s/LED_CLASS/LEDS_CLASS/ >> >> And you have to remove LEDS_CLASS_FLASH from above line. >> >>> depends on LEDS_CLASS_MULTICOLOR || !!LEDS_CLASS_MULTICOLOR >> >> s/!!LEDS_CLASS_MULTICOLOR/!LEDS_CLASS_MULTICOLOR/ >> >>> depends on LEDS_CLASS_FLASH || !LEDS_CLASS_FLASH >>> depends on MFD_MT6360 >> >> You will need V4L2_FLASH_LED_CLASS dependency as well, to avoid >> build break, when it is set to 'm'. >> >> To recap, following block of dependencies is required: >> >> depends on LEDS_CLASS && OF >> depends on LEDS_CLASS_MULTICOLOR || !LEDS_CLASS_MULTICOLOR >> depends on LEDS_CLASS_FLASH || !LEDS_CLASS_FLASH >> depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS >> depends on MFD_MT6360 >> > > LEDS_MT6360 depends on LEDS_CLASS_FLASH, and LEDS_CLASS_FLASH depends > on LEDS_CLASS > Is "depends on LEDS_CLASS" still needed? Yes, because you should allow disabling CONFIG_LEDS_CLASS_FLASH. In such a case driver should still compile and register ML LED class device when it has corresponding DT node. >>> and source code add constraint >>> >>> #if IS_ENABLED(CONFIG_LEDS_CLASS_MULTICOLOR) >>> ret = devm_led_classdev_multicolor_register_ext(parent, &led->rgb, >>> init_data); >>> #endif >>> >>> #if IS_ENABLED(CONFIG_LEDS_CLASS_FLASH) >>> ret = devm_led_classdev_flash_register_ext(parent, &led->flash, init_data); >>> #endif >> >> No, the guards should be in headers. That's why I recommended adding >> no ops for LED flash class registration functions in previous email. >> >> Please compare include/linux/led-class-multicolor.h and do similar >> changes in include/linux/led-class-flash.h. >> > > ACK, I will submit a fixed patch about leds-class-flash.h. > > By the way, if CONFIG_LED_CLASS_MULTICOLOR is not enabled and we don't > use #if IS_ENABLED, > according to led-class-multicolor.h return -EINVAL, > we will register multicolor device fail and cause probe fail. Good point. So led-class-multicolor.h no-ops need to be fixed to return 0 instead of -EINVAL. And no-ops in include/linux/led-class-flash.h should also return 0. -- Best regards, Jacek Anaszewski 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=-11.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE7D9C2D0A3 for ; Mon, 16 Nov 2020 18:25:45 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 4D9E32231B for ; Mon, 16 Nov 2020 18:25:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Vkdg5aHH"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Nm4uUOPd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D9E32231B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=CtQU7YZ9/STFbV69TLPid7ENVHyA0q2C4OdgQLe7UbE=; b=Vkdg5aHH+SxOQfqtSI3+kcgkk 5hVSsMTWmXZcwyotntNSyxX2GBcgwuG5GC5blG/3b4WEbAE7H0kbAgjcTSCtIqzfg9egetRccFp45 BxLhadnTlp2dHf3ONKDiPtdn+NzoZ1M1aA40Y9Ge7pNm+pHWQq+9M2mN/Uub0VQB0s3dIXKcfcSyS sPYA+hxFNhOCLudYOtD1FSavrr4MERw3cfLM9Gi7knM6XBhBtE49LwuxXHdb2x4faBvjSLQoOuJLu KRzLqmKmQzFwgzQ3WYhyUMMT66VAKr3haomn+lSe5uNlnG8+JODWVXLpNAdKdNUJXXX9towSy7hjc EH0fdLwRA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kejC8-000070-Ox; Mon, 16 Nov 2020 18:25:40 +0000 Received: from mail-ej1-x644.google.com ([2a00:1450:4864:20::644]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kejC6-000061-TZ; Mon, 16 Nov 2020 18:25:39 +0000 Received: by mail-ej1-x644.google.com with SMTP id o9so25808455ejg.1; Mon, 16 Nov 2020 10:25:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=iMNNFITQTVl6xH9FIhmZAJHI+XOQfJPxPlTQJWECZ4E=; b=Nm4uUOPdDKQPmpez1awCv77luKnrY1dTONrakQhSAqvfUuUI+Uiymcop9TBfqu/dsS sqb+7quMnWJ9wgObFrqMMhufxRs7YQb/B/7jaclPcQ8OzpeLfVMiG9UaJx3KdgHHucWE Wz1NPAiHzWkBUNs3fIcH4Bo0coThYIaeuJbGH5KgwGWGQcemM99JwPTkj3jiB8YWRSIe WjvFqy6E6SrxOrkYg3y75Zg4GUUVCpRZkCuBLWy3ChkhHIb4lgO9dTn8jQjqEl3Qw7r5 TYst/PDWQHbStpxIlLmauJtpilbLTQLb2qDRTFLyNNpp3NNE+u4dPElY5b3dFSnxA87a bwUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=iMNNFITQTVl6xH9FIhmZAJHI+XOQfJPxPlTQJWECZ4E=; b=j+TPtlY0UxfEKzV1DSgDjXE2I+kM83sTEsD3nC8T7B7aQ5Sy1I77jBSWEnVOdwhRoe pUTdYBAFq74qhzqU8PoMEDCORlS57IvIOGUjul9gHeW6OZ1TJPA0Q6elv7WwiMehWB14 9bUsbn+/YaJjpq9bHFc1vz8Ags1KWtkkhkHqXHhQmQ7nEgIh7WeE83FawOnTuK+kvnLq b/JR1RQYRv9n8MKCtwjQgVYo8kT8kuwl3IZKUOqcfD0Mh3iL/ET762TUQYe0wxHpbCuo 6qhqsGxcFBlZ4vtkE9GV2T+Zyd+NI4PEUGek+doGZElxhlpcrOizhgshUU+oTu4TrEND wYiw== X-Gm-Message-State: AOAM53345a+bUVloKw11TDD2J9Fk85nI4fl4qTgXdRfPSDoRrdStFaRN HNbPK0L0CD4I6s6OxDsOuiE= X-Google-Smtp-Source: ABdhPJyCa6sw3pwdJXhlWemEGMWgcpkeE5rSnyk3jlh1qlo9F5tW6ISm+hGVEDCgVQYrKP3pMnOxQw== X-Received: by 2002:a17:906:cb2:: with SMTP id k18mr17223486ejh.71.1605551135755; Mon, 16 Nov 2020 10:25:35 -0800 (PST) Received: from ?IPv6:2a01:110f:b59:fd00:9993:6bc3:e972:e19d? ([2a01:110f:b59:fd00:9993:6bc3:e972:e19d]) by smtp.gmail.com with ESMTPSA id m16sm10738454eja.58.2020.11.16.10.25.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Nov 2020 10:25:35 -0800 (PST) Subject: Re: [PATCH v5 2/2] leds: mt6360: Add LED driver for MT6360 To: Gene Chen References: <1602034966-3524-1-git-send-email-gene.chen.richtek@gmail.com> <1602034966-3524-3-git-send-email-gene.chen.richtek@gmail.com> <5a9b31c4-739c-06fc-2015-ed474993ad22@gmail.com> <8925db23-5cc4-3c5f-932a-461fe6450dad@gmail.com> <1bb76c54-14af-6c78-4623-77c6678b262e@gmail.com> From: Jacek Anaszewski Message-ID: Date: Mon, 16 Nov 2020 19:25:32 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.2 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201116_132538_983216_45424673 X-CRM114-Status: GOOD ( 35.60 ) 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: linux-arm Mailing List , devicetree , cy_huang@richtek.com, Linux Kernel Mailing List , Gene Chen , benjamin.chao@mediatek.com, Rob Herring , "moderated list:ARM/Mediatek SoC support" , Dan Murphy , Pavel Machek , Matthias Brugger , Wilma.Wu@mediatek.com, Linux LED Subsystem , shufan_lee@richtek.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org T24gMTEvMTYvMjAgMTE6MDEgQU0sIEdlbmUgQ2hlbiB3cm90ZToKPiBKYWNlayBBbmFzemV3c2tp IDxqYWNlay5hbmFzemV3c2tpQGdtYWlsLmNvbT4g5pa8IDIwMjDlubQxMOaciDMx5pelIOmAseWF rSDkuIrljYg2OjM05a+r6YGT77yaCj4+Cj4+IE9uIDEwLzMwLzIwIDk6NTEgQU0sIEdlbmUgQ2hl biB3cm90ZToKPj4+IEphY2VrIEFuYXN6ZXdza2kgPGphY2VrLmFuYXN6ZXdza2lAZ21haWwuY29t PiDmlrwgMjAyMOW5tDEw5pyIMjjml6Ug6YCx5LiJIOS4iuWNiDE6Mjjlr6vpgZPvvJoKPj4+Pgo+ Pj4+IE9uIDEwLzI3LzIwIDEwOjI4IEFNLCBHZW5lIENoZW4gd3JvdGU6Cj4+Pj4+IEphY2VrIEFu YXN6ZXdza2kgPGphY2VrLmFuYXN6ZXdza2lAZ21haWwuY29tPiDmlrwgMjAyMOW5tDEw5pyIMjHm l6Ug6YCx5LiJIOS4iuWNiDU6NDflr6vpgZPvvJoKPj4+Pj4+Cj4+Pj4+PiBPbiAxMC8yMC8yMCA4 OjQ0IEFNLCBHZW5lIENoZW4gd3JvdGU6Cj4+Pj4+Pj4gSmFjZWsgQW5hc3pld3NraSA8amFjZWsu YW5hc3pld3NraUBnbWFpbC5jb20+IOaWvCAyMDIw5bm0MTDmnIg55pelIOmAseS6lCDkuIrljYg1 OjUx5a+r6YGT77yaCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEhpIEdlbmUsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IE9uIDEwLzcvMjAgMzo0MiBBTSwgR2VuZSBDaGVuIHdyb3RlOgo+Pj4+Pj4+Pj4gRnJvbTogR2Vu ZSBDaGVuIDxnZW5lX2NoZW5AcmljaHRlay5jb20+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQWRkIE1U NjM2MCBMRUQgZHJpdmVyIGluY2x1ZGUgMi1jaGFubmVsIEZsYXNoIExFRCB3aXRoIHRvcmNoL3N0 cm9iZSBtb2RlLAo+Pj4+Pj4+Pj4gMy1jaGFubmVsIFJHQiBMRUQgc3VwcG9ydCBSZWdpc3Rlci9G bGFzaC9CcmVhdGggTW9kZSwgYW5kIDEtY2hhbm5lbCBmb3IKPj4+Pj4+Pj4+IG1vb25saWdodCBM RUQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogR2VuZSBDaGVuIDxnZW5lX2No ZW5AcmljaHRlay5jb20+Cj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMvbGVk cy9LY29uZmlnICAgICAgIHwgIDEyICsKPj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMvbGVkcy9NYWtl ZmlsZSAgICAgIHwgICAxICsKPj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMvbGVkcy9sZWRzLW10NjM2 MC5jIHwgNzgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ Pj4+Pj4+Pj4gICAgICAgMyBmaWxlcyBjaGFuZ2VkLCA3OTYgaW5zZXJ0aW9ucygrKQo+Pj4+Pj4+ Pj4gICAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbGVkcy9sZWRzLW10NjM2MC5jCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9LY29uZmlnIGIvZHJp dmVycy9sZWRzL0tjb25maWcKPj4+Pj4+Pj4+IGluZGV4IDFjMTgxZGYuLmM3MTkyZGQgMTAwNjQ0 Cj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2xlZHMvS2NvbmZpZwo+Pj4+Pj4+Pj4gKysrIGIvZHJp dmVycy9sZWRzL0tjb25maWcKPj4+Pj4+Pj4+IEBAIC0yNzEsNiArMjcxLDE4IEBAIGNvbmZpZyBM RURTX01UNjMyMwo+Pj4+Pj4+Pj4gICAgICAgICAgICAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBw b3J0IGZvciBvbi1jaGlwIExFRCBkcml2ZXJzIGZvdW5kIG9uCj4+Pj4+Pj4+PiAgICAgICAgICAg ICBNZWRpYXRlayBNVDYzMjMgUE1JQy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiArY29uZmlnIExFRFNf TVQ2MzYwCj4+Pj4+Pj4+PiArICAgICB0cmlzdGF0ZSAiTEVEIFN1cHBvcnQgZm9yIE1lZGlhdGVr IE1UNjM2MCBQTUlDIgo+Pj4+Pj4+Pj4gKyAgICAgZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNI ICYmIE9GCj4+Pj4+Pj4+PiArICAgICBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUgo+ Pj4+Pj4+Pgo+Pj4+Pj4+PiBTaW5jZSBDT05GSUdfTEVEX0NMQVNTX01VTFRJQ09MT1IgY2FuIGJl IHR1cm5lZCBvZmYgeW91IG5lZWQgdG8gaGF2ZQo+Pj4+Pj4+PiBiZWxvdyBpbnN0ZWFkOgo+Pj4+ Pj4+Pgo+Pj4+Pj4+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUiB8fCAhIUxFRFNf Q0xBU1NfTVVMVElDT0xPUgo+Pj4+Cj4+Pj4gTXkgdHlwbyBoZXJlLCBzaG91bGQgYmUgb25lICIh IjoKPj4+Pgo+Pj4+IGRlcGVuZHMgb24gTEVEU19DTEFTU19NVUxUSUNPTE9SIHx8ICFMRURTX0NM QVNTX01VTFRJQ09MT1IKPj4+Pgo+Pj4+IEFuZCB5b3Ugc2hvdWxkIGFsc28gaGF2ZQo+Pj4+Cj4+ Pj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNIIHx8ICFMRURTX0NMQVNTX0ZMQVNICj4+Pj4K Pj4+PiBCdXQgdG8gbWFrZSBpdCB3b3JrIGNvcnJlY3RseSB5b3Ugd291bGQgaGF2ZSB0byBhZGQg cmVnaXN0cmF0aW9uCj4+Pj4gc3R1YnMgdG8gaW5jbHVkZS9saW51eC9sZWQtY2xhc3MtZmxhc2gu aCBzaW1pbGFybHkgdG8gTEVEIG1jIHN0dWJzCj4+Pj4gaW4gaW5jbHVkZS9saW51eC9sZWQtY2xh c3MtbXVsdGljb2xvci5oLgo+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFVubGVzcyB5b3Ugd2FudCB0 byBwcmV2ZW50IGVuYWJsaW5nIHRoZSBkcml2ZXIgd2l0aG91dCBSR0IgTEVELAo+Pj4+Pj4+PiBi dXQgdGhhdCBkb2VzIG5vdCBzZWVtIHRvIGJlIHJlYXNvbmFibGUgYXQgZmlyc3QgZ2xhbmNlLgo+ Pj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gTWF5IEkgY2hhbmdlIHRvICJzZWxlY3QgTEVEU19DTEFT U19NVUxUSUNPTE9SIj8KPj4+Pj4+PiBJIHN1cHBvc2UgUkdCIGFsd2F5cyB1c2UgbXVsdGljb2xv ciBtb2RlLgo+Pj4+Pj4KPj4+Pj4+IFlvdSB3aWxsIGFsc28gaGF2ZSBtb29ubGlnaHQgTEVEIHRo YXQgd2lsbCBub3QgbmVlZCBtdWx0aWNvbG9yCj4+Pj4+PiBmcmFtZXdvcmsuIElzIGl0IHNvbWVo b3cgdHJvdWJsZXNvbWUgdG8ga2VlcCAiZGVwZW5kcyBvbiI/Cj4+Pj4+Pgo+Pj4+Pgo+Pj4+PiBJ ZiBvbmx5IHVzZSBNTCBMRUQgYW5kIEZMRUQsICBEVFNJIHdpbGwgb25seSBkZWZpbmUgTUwgTEVE IGFuZCBGTEVELgo+Pj4+PiBUaGVyZWZvcmUsIHRoZSBkcml2ZXJzIHByb2JlIHdpbGwgbm90IHJl Z2lzdGVyIHJnYiBtdWx0aWNvbG9yIGRldmljZS4KPj4+Pgo+Pj4+IFBsZWFzZSB0ZXN0IHlvdXIg dXNlIGNhc2UgYWdhaW4gd2l0aCBteSBmaXhlZCAiZGVwZW5kcyBvbiIuCj4+Pj4KPj4+PiBJbiBj YXNlIHdoZW4gdGhlcmUgaXMgb25seSBNTCBMRUQgYW5kIEZMRUQgaW4gdGhlIERUIGl0IHNob3Vs ZAo+Pj4+IHJlZ2lzdGVyIGJvdGggZGV2aWNlcyBpZiBMRURTX0NMQVNTX0ZMQVNIIGlzIHR1cm5l ZCBvbi4KPj4+PiBNdWx0aWNvbG9yIGZyYW1ld29yayBoYXMgbm90aGluZyB0byBkbyBpbiB0aGlz IGNhc2UuCj4+Pj4KPj4+PiBCdXQgaWYgeW91IGFkZGl0aW9uYWxseSBoYWQgTUMgTEVEIG5vZGUs IHRoZW4gaXQgc2hvdWxkCj4+Pj4gYmUgcmVnaXN0ZXJlZCBvbmx5IGlmIExFRFNfQ0xBU1NfTVVM VElDT0xPUiBpcyBlbmFibGVkLgo+Pj4+Cj4+Pj4gU2ltaWxhcmx5LCB3aGVuIEZMRUQgbm9kZSBp cyBwcmVzZW50LCBidXQgTEVEU19DTEFTU19GTEFTSAo+Pj4+IGlzIG9mZiwgYW5kIExFRFNfQ0xB U1NfTVVMVElDT0xPUiBpcyBvbiwgdGhlIGRyaXZlciBzaG91bGQgc3RpbGwKPj4+PiBjb21waWxl LCBidXQgcmVnaXN0ZXIgb25seSBMRUQgTUMgZGV2aWNlIChpZiBpdHMgbm9kZSBpcyBwcmVzZW50 KS4KPj4+Pgo+Pj4KPj4+IEkgdGhpbmsgdGhpcyBjYXNlIG9ubHkgcmVnaXN0ZXIgTEVEIGRldmlj ZSwgbm90IExFRCAiTUMiIGRldmljZS4KPj4+IEJlY2F1c2Ugb3VyIEZMQVNIIGlzIG5vdCBhIG11 bHRpY29sb3IgZGV2aWNlLgo+Pgo+PiBObywgaGVyZSBJIHdhcyBkZXNjcmliaW5nIGZvbGxvd2lu ZyBzZXR1cDoKPj4KPj4gLSBEVCBGTEVEIG5vZGUgaXMgcHJlc2VudCwgQ09ORklHX0xFRFNfQ0xB U1NfRkxBU0ggaXMgb2ZmCj4+IC0gRFQgTUMgbm9kZSBpcyBwcmVzZW50LCBDT05GSUdfTEVEU19D TEFTU19NVUxUSUNPTE9SIGlzIG9uCj4+Cj4+IE1MIExFRCBwcmVzZW5jZSBpbiBEVCBpcyBpcnJl bGV2YW50IGluIHRoaXMgY2FzZS4KPj4gSXQgc2hvdWxkIGJlIGFsd2F5cyByZWdpc3RlcmVkIGlm IHRoZXJlIGlzIGNvcnJlc3BvbmRpbmcgRFQgbm9kZQo+PiBhbmQgTEVEU19DTEFTUyBpcyBvbi4K Pj4KPiAKPiBBcyBhIGxvbmcgdGltZSBkaXNjdXNzaW9uLCB3ZSBjb25jbHVkZSBzb21lIHJ1bGVz IGFib3V0IE1UNjM2MCBMRUQgZHJpdmVyLgo+IEZMRUQgaXMgbmVjZXNzYXJ5LCBzbyBLY29uZmln IGRlcGVuZHMgb24gTEVEX0NMQVNTX0ZMQVNICgpNYXliZSBpdCBpcyBuZWNlc3NhcnkgaW4geW91 ciB1c2UgY2FzZSwgYnV0IHByb2JhYmx5IGl0IGlzIHBvc3NpYmxlIHRvCnVzZSB0aGUgZGV2aWNl IHdpdGhvdXQgRkxFRC4gSWYgc28sIHRoZW4geW91IHNob3VsZCBhbGxvdyB1c2VycwpkaXNhYmxp bmcgaXQuIFRoZXJlZm9yZSB5b3Ugc2hvdWxkIGhhdmU6CgpkZXBlbmRzIG9uIExFRFNfQ0xBU1Nf RkxBU0ggfHwgIUxFRFNfQ0xBU1NfRkxBU0gKCj4gTUwgTEVEIGlzIG9wdGlvbmFsLCB3aGljaCBp cyByZWdpc3RlcmVkIGFzIGxlZCBjbGFzcyBkZXZpY2UuCj4gUkdCIExFRCBjYW4gYmUgZWl0aGVy IHNpbXBsZSBsZWQgY2xhc3MgZGV2aWNlIG9yIG11bHRpY29sb3IgZGV2aWNlLAo+IHdoaWNoIGlz IGRlY2lkZWQgaW4gRFQgbm9kZQo+IElmIE11bHRpY29sb3IgTEVEIERUIG5vZGUgaXMgZXhpc3Qs IGl0IHNob3VsZCBiZSByZWdpc3RlciBtdWx0aWNvbG9yCj4gZGV2aWNlIHN1Y2Nlc3MuCgpCdXQg b25seSBpZiBDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9SIGlzIGVuYWJsZWQuCgo+IE1heWJl IGl0IGlzIG1vcmUgc3BlY2lmaWMgdG8gc2VuZCBhIG5ldyBwYXRjaD8KPiAKPiBTYW1wbGUgRFQg YXMgYmVsb3cKPiBMRUQgInJlZCIgaXMgc2ltcGxlIGxlZCBjbGFzcyBkZXZpY2UsIExFRCAiZ3Jl ZW4mYmx1ZSIgaXMgbXVsdGljb2xvciBkZXZpY2VzLgo+IGxlZEAwIHsKPiAgICAgICAgICByZWcg PSA8MD47Cj4gICAgICAgICAgZnVuY3Rpb24gPSBMRURfRlVOQ1RJT05fSU5ESUNBVE9SOwo+ICAg ICAgICAgIGNvbG9yID0gPExFRF9DT0xPUl9JRF9SRUQ+Owo+ICAgICAgICAgIGxlZC1tYXgtbWlj cm9hbXAgPSA8MjQwMDA+Owo+IH07Cj4gbGVkQDYgewo+ICAgICAgICAgIHJlZyA9IDw2PjsKPiAg ICAgICAgICBmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9JTkRJQ0FUT1I7Cj4gICAgICAgICAgY29s b3IgPSA8TEVEX0NPTE9SX0lEX01VTFRJPjsKPiAKPiAgICAgICAgICBsZWRAMSB7Cj4gICAgICAg ICAgICAgICAgICByZWcgPSA8MT47Cj4gICAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IExFRF9G VU5DVElPTl9JTkRJQ0FUT1I7Cj4gICAgICAgICAgICAgICAgICBjb2xvciA9IDxMRURfQ09MT1Jf SURfR1JFRU4+Owo+ICAgICAgICAgICAgICAgICAgbGVkLW1heC1taWNyb2FtcCA9IDwyNDAwMD47 Cj4gICAgICAgICAgfTsKPiAgICAgICAgICBsZWRAMiB7Cj4gICAgICAgICAgICAgICAgICByZWcg PSA8Mj47Cj4gICAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9JTkRJQ0FU T1I7Cj4gICAgICAgICAgICAgICAgICBjb2xvciA9IDxMRURfQ09MT1JfSURfQkxVRT47Cj4gICAg ICAgICAgICAgICAgICBsZWQtbWF4LW1pY3JvYW1wID0gPDI0MDAwPjsKPiAgICAgICAgICB9Owo+ IH07CgpJdCBsb29rcyBPSy4KCj4+Pj4gUG9zc2libGUgc2hvdWxkIGJlIGFsc28gdGhlIGNhc2Ug d2hlbiBib3RoIExFRFNfQ0xBU1NfRkxBU0gKPj4+PiBhbmQgTEVEU19DTEFTU19NVUxUSUNPTE9S IGFyZSBvZmYuIFRoZW4gb25seSBMRUQgY2xhc3MgZGV2aWNlCj4+Pj4gZm9yIE1MIExFRCB3aWxs IGJlIHJlZ2lzdGVyZWQgKHByb3ZpZGVkIHRoZXJlIGlzIE1MIERUIG5vZGUpLgo+Pj4+IEJ1dCB0 byBtYWtlIGl0IHBvc3NpYmxlIHlvdSBzaG91bGQgaGF2ZSBhbHNvICJkZXBlbmRzIG9uIExFRFNf Q0xBU1MiCj4+Pj4gaW4gdGhlIEtjb25maWcgZW50cnkuCj4+Pj4KPj4+Cj4+PiBBY2NvcmRpbmcg dG8geW91ciBzdWdnZXN0aW9uLAo+Pj4gZGVwZW5kcyBvbiBMRURfQ0xBU1MgJiYgTEVEU19DTEFT U19GTEFTSCAmJiBPRgo+Pgo+PiBzL0xFRF9DTEFTUy9MRURTX0NMQVNTLwo+Pgo+PiBBbmQgeW91 IGhhdmUgdG8gcmVtb3ZlIExFRFNfQ0xBU1NfRkxBU0ggZnJvbSBhYm92ZSBsaW5lLgo+Pgo+Pj4g ZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJQ09MT1IgfHwgISFMRURTX0NMQVNTX01VTFRJQ09M T1IKPj4KPj4gcy8hIUxFRFNfQ0xBU1NfTVVMVElDT0xPUi8hTEVEU19DTEFTU19NVUxUSUNPTE9S Lwo+Pgo+Pj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNIIHx8ICFMRURTX0NMQVNTX0ZMQVNI Cj4+PiBkZXBlbmRzIG9uIE1GRF9NVDYzNjAKPj4KPj4gWW91IHdpbGwgbmVlZCBWNEwyX0ZMQVNI X0xFRF9DTEFTUyBkZXBlbmRlbmN5IGFzIHdlbGwsIHRvIGF2b2lkCj4+IGJ1aWxkIGJyZWFrLCB3 aGVuIGl0IGlzIHNldCB0byAnbScuCj4+Cj4+IFRvIHJlY2FwLCBmb2xsb3dpbmcgYmxvY2sgb2Yg ZGVwZW5kZW5jaWVzIGlzIHJlcXVpcmVkOgo+Pgo+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1MgJiYg T0YKPj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJQ09MT1IgfHwgIUxFRFNfQ0xBU1NfTVVM VElDT0xPUgo+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfRkxBU0ggfHwgIUxFRFNfQ0xBU1NfRkxB U0gKPj4gZGVwZW5kcyBvbiBWNEwyX0ZMQVNIX0xFRF9DTEFTUyB8fCAhVjRMMl9GTEFTSF9MRURf Q0xBU1MKPj4gZGVwZW5kcyBvbiBNRkRfTVQ2MzYwCj4+Cj4gCj4gTEVEU19NVDYzNjAgZGVwZW5k cyBvbiBMRURTX0NMQVNTX0ZMQVNILCBhbmQgTEVEU19DTEFTU19GTEFTSCBkZXBlbmRzCj4gb24g TEVEU19DTEFTUwo+IElzICJkZXBlbmRzIG9uIExFRFNfQ0xBU1MiIHN0aWxsIG5lZWRlZD8KClll cywgYmVjYXVzZSB5b3Ugc2hvdWxkIGFsbG93IGRpc2FibGluZyBDT05GSUdfTEVEU19DTEFTU19G TEFTSC4KSW4gc3VjaCBhIGNhc2UgZHJpdmVyIHNob3VsZCBzdGlsbCBjb21waWxlIGFuZCByZWdp c3RlciBNTCBMRUQgY2xhc3MKZGV2aWNlIHdoZW4gaXQgaGFzIGNvcnJlc3BvbmRpbmcgRFQgbm9k ZS4KCj4+PiBhbmQgc291cmNlIGNvZGUgYWRkIGNvbnN0cmFpbnQKPj4+Cj4+PiAjaWYgSVNfRU5B QkxFRChDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9SKQo+Pj4gICAgICAgcmV0ID0gZGV2bV9s ZWRfY2xhc3NkZXZfbXVsdGljb2xvcl9yZWdpc3Rlcl9leHQocGFyZW50LCAmbGVkLT5yZ2IsCj4+ PiBpbml0X2RhdGEpOwo+Pj4gI2VuZGlmCj4+Pgo+Pj4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0xF RFNfQ0xBU1NfRkxBU0gpCj4+PiAgICAgICByZXQgPSBkZXZtX2xlZF9jbGFzc2Rldl9mbGFzaF9y ZWdpc3Rlcl9leHQocGFyZW50LCAmbGVkLT5mbGFzaCwgaW5pdF9kYXRhKTsKPj4+ICNlbmRpZgo+ Pgo+PiBObywgdGhlIGd1YXJkcyBzaG91bGQgYmUgaW4gaGVhZGVycy4gVGhhdCdzIHdoeSBJIHJl Y29tbWVuZGVkIGFkZGluZwo+PiBubyBvcHMgZm9yIExFRCBmbGFzaCBjbGFzcyByZWdpc3RyYXRp b24gZnVuY3Rpb25zIGluIHByZXZpb3VzIGVtYWlsLgo+Pgo+PiBQbGVhc2UgY29tcGFyZSBpbmNs dWRlL2xpbnV4L2xlZC1jbGFzcy1tdWx0aWNvbG9yLmggYW5kIGRvIHNpbWlsYXIKPj4gY2hhbmdl cyBpbiBpbmNsdWRlL2xpbnV4L2xlZC1jbGFzcy1mbGFzaC5oLgo+Pgo+IAo+IEFDSywgSSB3aWxs IHN1Ym1pdCBhIGZpeGVkIHBhdGNoIGFib3V0IGxlZHMtY2xhc3MtZmxhc2guaC4KPiAKPiBCeSB0 aGUgd2F5LCBpZiBDT05GSUdfTEVEX0NMQVNTX01VTFRJQ09MT1IgaXMgbm90IGVuYWJsZWQgYW5k IHdlIGRvbid0Cj4gdXNlICNpZiBJU19FTkFCTEVELAo+IGFjY29yZGluZyB0byBsZWQtY2xhc3Mt bXVsdGljb2xvci5oIHJldHVybiAtRUlOVkFMLAo+IHdlIHdpbGwgcmVnaXN0ZXIgbXVsdGljb2xv ciBkZXZpY2UgZmFpbCBhbmQgY2F1c2UgcHJvYmUgZmFpbC4KCkdvb2QgcG9pbnQuIFNvIGxlZC1j bGFzcy1tdWx0aWNvbG9yLmggbm8tb3BzIG5lZWQgdG8gYmUgZml4ZWQgdG8gcmV0dXJuCjAgaW5z dGVhZCBvZiAtRUlOVkFMLgoKQW5kIG5vLW9wcyBpbiBpbmNsdWRlL2xpbnV4L2xlZC1jbGFzcy1m bGFzaC5oIHNob3VsZCBhbHNvIHJldHVybiAwLgoKLS0gCkJlc3QgcmVnYXJkcywKSmFjZWsgQW5h c3pld3NraQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K TGludXgtbWVkaWF0ZWsgbWFpbGluZyBsaXN0CkxpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1t ZWRpYXRlawo= 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=-11.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2236C4742C for ; Mon, 16 Nov 2020 18:27:18 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 7E6E2206F9 for ; Mon, 16 Nov 2020 18:27:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="oqBS1PKX"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Nm4uUOPd" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7E6E2206F9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=6M7BItkoerrB6L62Vi4g6AMjLcDaZzMQoHqKWFXxmD4=; b=oqBS1PKXVuPTgKNhiYrPy0D71 YF2+x1EyZxQA6YgN1xLQG7QKWpbTU1i+Lo1t3CNJfLOM4KqCyHtypl8LdXcLS+tcsxaP8vJ2O5gLt 1XAPnymBfWJFF0lD8qqe2cAF89Dtn36oIUPpHJnorjWRMgrfSSNfZrhzZfP29Suz9cMSn/Paixe8E ndGVOZ03vVuNiat/cvlS1Df4HBjr2tzuH+U2fp3i4GsATFfeeyHuP8U4SPVMV9ZROJT85+1xePW2C VX0oDz//Olm9KQ24eNhd3ZEmIdIpExu4cfZULEtHret0pTieHnVaxaDky5RPm2D4yUAwX2xC+xmgZ ZG6NAAEtQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kejC9-00007M-UT; Mon, 16 Nov 2020 18:25:42 +0000 Received: from mail-ej1-x644.google.com ([2a00:1450:4864:20::644]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kejC6-000061-TZ; Mon, 16 Nov 2020 18:25:39 +0000 Received: by mail-ej1-x644.google.com with SMTP id o9so25808455ejg.1; Mon, 16 Nov 2020 10:25:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=iMNNFITQTVl6xH9FIhmZAJHI+XOQfJPxPlTQJWECZ4E=; b=Nm4uUOPdDKQPmpez1awCv77luKnrY1dTONrakQhSAqvfUuUI+Uiymcop9TBfqu/dsS sqb+7quMnWJ9wgObFrqMMhufxRs7YQb/B/7jaclPcQ8OzpeLfVMiG9UaJx3KdgHHucWE Wz1NPAiHzWkBUNs3fIcH4Bo0coThYIaeuJbGH5KgwGWGQcemM99JwPTkj3jiB8YWRSIe WjvFqy6E6SrxOrkYg3y75Zg4GUUVCpRZkCuBLWy3ChkhHIb4lgO9dTn8jQjqEl3Qw7r5 TYst/PDWQHbStpxIlLmauJtpilbLTQLb2qDRTFLyNNpp3NNE+u4dPElY5b3dFSnxA87a bwUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=iMNNFITQTVl6xH9FIhmZAJHI+XOQfJPxPlTQJWECZ4E=; b=j+TPtlY0UxfEKzV1DSgDjXE2I+kM83sTEsD3nC8T7B7aQ5Sy1I77jBSWEnVOdwhRoe pUTdYBAFq74qhzqU8PoMEDCORlS57IvIOGUjul9gHeW6OZ1TJPA0Q6elv7WwiMehWB14 9bUsbn+/YaJjpq9bHFc1vz8Ags1KWtkkhkHqXHhQmQ7nEgIh7WeE83FawOnTuK+kvnLq b/JR1RQYRv9n8MKCtwjQgVYo8kT8kuwl3IZKUOqcfD0Mh3iL/ET762TUQYe0wxHpbCuo 6qhqsGxcFBlZ4vtkE9GV2T+Zyd+NI4PEUGek+doGZElxhlpcrOizhgshUU+oTu4TrEND wYiw== X-Gm-Message-State: AOAM53345a+bUVloKw11TDD2J9Fk85nI4fl4qTgXdRfPSDoRrdStFaRN HNbPK0L0CD4I6s6OxDsOuiE= X-Google-Smtp-Source: ABdhPJyCa6sw3pwdJXhlWemEGMWgcpkeE5rSnyk3jlh1qlo9F5tW6ISm+hGVEDCgVQYrKP3pMnOxQw== X-Received: by 2002:a17:906:cb2:: with SMTP id k18mr17223486ejh.71.1605551135755; Mon, 16 Nov 2020 10:25:35 -0800 (PST) Received: from ?IPv6:2a01:110f:b59:fd00:9993:6bc3:e972:e19d? ([2a01:110f:b59:fd00:9993:6bc3:e972:e19d]) by smtp.gmail.com with ESMTPSA id m16sm10738454eja.58.2020.11.16.10.25.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Nov 2020 10:25:35 -0800 (PST) Subject: Re: [PATCH v5 2/2] leds: mt6360: Add LED driver for MT6360 To: Gene Chen References: <1602034966-3524-1-git-send-email-gene.chen.richtek@gmail.com> <1602034966-3524-3-git-send-email-gene.chen.richtek@gmail.com> <5a9b31c4-739c-06fc-2015-ed474993ad22@gmail.com> <8925db23-5cc4-3c5f-932a-461fe6450dad@gmail.com> <1bb76c54-14af-6c78-4623-77c6678b262e@gmail.com> From: Jacek Anaszewski Message-ID: Date: Mon, 16 Nov 2020 19:25:32 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.2 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201116_132538_983216_45424673 X-CRM114-Status: GOOD ( 35.60 ) 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: linux-arm Mailing List , devicetree , cy_huang@richtek.com, Linux Kernel Mailing List , Gene Chen , benjamin.chao@mediatek.com, Rob Herring , "moderated list:ARM/Mediatek SoC support" , Dan Murphy , Pavel Machek , Matthias Brugger , Wilma.Wu@mediatek.com, Linux LED Subsystem , shufan_lee@richtek.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTEvMTYvMjAgMTE6MDEgQU0sIEdlbmUgQ2hlbiB3cm90ZToKPiBKYWNlayBBbmFzemV3c2tp IDxqYWNlay5hbmFzemV3c2tpQGdtYWlsLmNvbT4g5pa8IDIwMjDlubQxMOaciDMx5pelIOmAseWF rSDkuIrljYg2OjM05a+r6YGT77yaCj4+Cj4+IE9uIDEwLzMwLzIwIDk6NTEgQU0sIEdlbmUgQ2hl biB3cm90ZToKPj4+IEphY2VrIEFuYXN6ZXdza2kgPGphY2VrLmFuYXN6ZXdza2lAZ21haWwuY29t PiDmlrwgMjAyMOW5tDEw5pyIMjjml6Ug6YCx5LiJIOS4iuWNiDE6Mjjlr6vpgZPvvJoKPj4+Pgo+ Pj4+IE9uIDEwLzI3LzIwIDEwOjI4IEFNLCBHZW5lIENoZW4gd3JvdGU6Cj4+Pj4+IEphY2VrIEFu YXN6ZXdza2kgPGphY2VrLmFuYXN6ZXdza2lAZ21haWwuY29tPiDmlrwgMjAyMOW5tDEw5pyIMjHm l6Ug6YCx5LiJIOS4iuWNiDU6NDflr6vpgZPvvJoKPj4+Pj4+Cj4+Pj4+PiBPbiAxMC8yMC8yMCA4 OjQ0IEFNLCBHZW5lIENoZW4gd3JvdGU6Cj4+Pj4+Pj4gSmFjZWsgQW5hc3pld3NraSA8amFjZWsu YW5hc3pld3NraUBnbWFpbC5jb20+IOaWvCAyMDIw5bm0MTDmnIg55pelIOmAseS6lCDkuIrljYg1 OjUx5a+r6YGT77yaCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEhpIEdlbmUsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IE9uIDEwLzcvMjAgMzo0MiBBTSwgR2VuZSBDaGVuIHdyb3RlOgo+Pj4+Pj4+Pj4gRnJvbTogR2Vu ZSBDaGVuIDxnZW5lX2NoZW5AcmljaHRlay5jb20+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQWRkIE1U NjM2MCBMRUQgZHJpdmVyIGluY2x1ZGUgMi1jaGFubmVsIEZsYXNoIExFRCB3aXRoIHRvcmNoL3N0 cm9iZSBtb2RlLAo+Pj4+Pj4+Pj4gMy1jaGFubmVsIFJHQiBMRUQgc3VwcG9ydCBSZWdpc3Rlci9G bGFzaC9CcmVhdGggTW9kZSwgYW5kIDEtY2hhbm5lbCBmb3IKPj4+Pj4+Pj4+IG1vb25saWdodCBM RUQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogR2VuZSBDaGVuIDxnZW5lX2No ZW5AcmljaHRlay5jb20+Cj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMvbGVk cy9LY29uZmlnICAgICAgIHwgIDEyICsKPj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMvbGVkcy9NYWtl ZmlsZSAgICAgIHwgICAxICsKPj4+Pj4+Pj4+ICAgICAgIGRyaXZlcnMvbGVkcy9sZWRzLW10NjM2 MC5jIHwgNzgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ Pj4+Pj4+Pj4gICAgICAgMyBmaWxlcyBjaGFuZ2VkLCA3OTYgaW5zZXJ0aW9ucygrKQo+Pj4+Pj4+ Pj4gICAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbGVkcy9sZWRzLW10NjM2MC5jCj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9LY29uZmlnIGIvZHJp dmVycy9sZWRzL0tjb25maWcKPj4+Pj4+Pj4+IGluZGV4IDFjMTgxZGYuLmM3MTkyZGQgMTAwNjQ0 Cj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2xlZHMvS2NvbmZpZwo+Pj4+Pj4+Pj4gKysrIGIvZHJp dmVycy9sZWRzL0tjb25maWcKPj4+Pj4+Pj4+IEBAIC0yNzEsNiArMjcxLDE4IEBAIGNvbmZpZyBM RURTX01UNjMyMwo+Pj4+Pj4+Pj4gICAgICAgICAgICAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBw b3J0IGZvciBvbi1jaGlwIExFRCBkcml2ZXJzIGZvdW5kIG9uCj4+Pj4+Pj4+PiAgICAgICAgICAg ICBNZWRpYXRlayBNVDYzMjMgUE1JQy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiArY29uZmlnIExFRFNf TVQ2MzYwCj4+Pj4+Pj4+PiArICAgICB0cmlzdGF0ZSAiTEVEIFN1cHBvcnQgZm9yIE1lZGlhdGVr IE1UNjM2MCBQTUlDIgo+Pj4+Pj4+Pj4gKyAgICAgZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNI ICYmIE9GCj4+Pj4+Pj4+PiArICAgICBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUgo+ Pj4+Pj4+Pgo+Pj4+Pj4+PiBTaW5jZSBDT05GSUdfTEVEX0NMQVNTX01VTFRJQ09MT1IgY2FuIGJl IHR1cm5lZCBvZmYgeW91IG5lZWQgdG8gaGF2ZQo+Pj4+Pj4+PiBiZWxvdyBpbnN0ZWFkOgo+Pj4+ Pj4+Pgo+Pj4+Pj4+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUiB8fCAhIUxFRFNf Q0xBU1NfTVVMVElDT0xPUgo+Pj4+Cj4+Pj4gTXkgdHlwbyBoZXJlLCBzaG91bGQgYmUgb25lICIh IjoKPj4+Pgo+Pj4+IGRlcGVuZHMgb24gTEVEU19DTEFTU19NVUxUSUNPTE9SIHx8ICFMRURTX0NM QVNTX01VTFRJQ09MT1IKPj4+Pgo+Pj4+IEFuZCB5b3Ugc2hvdWxkIGFsc28gaGF2ZQo+Pj4+Cj4+ Pj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNIIHx8ICFMRURTX0NMQVNTX0ZMQVNICj4+Pj4K Pj4+PiBCdXQgdG8gbWFrZSBpdCB3b3JrIGNvcnJlY3RseSB5b3Ugd291bGQgaGF2ZSB0byBhZGQg cmVnaXN0cmF0aW9uCj4+Pj4gc3R1YnMgdG8gaW5jbHVkZS9saW51eC9sZWQtY2xhc3MtZmxhc2gu aCBzaW1pbGFybHkgdG8gTEVEIG1jIHN0dWJzCj4+Pj4gaW4gaW5jbHVkZS9saW51eC9sZWQtY2xh c3MtbXVsdGljb2xvci5oLgo+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFVubGVzcyB5b3Ugd2FudCB0 byBwcmV2ZW50IGVuYWJsaW5nIHRoZSBkcml2ZXIgd2l0aG91dCBSR0IgTEVELAo+Pj4+Pj4+PiBi dXQgdGhhdCBkb2VzIG5vdCBzZWVtIHRvIGJlIHJlYXNvbmFibGUgYXQgZmlyc3QgZ2xhbmNlLgo+ Pj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gTWF5IEkgY2hhbmdlIHRvICJzZWxlY3QgTEVEU19DTEFT U19NVUxUSUNPTE9SIj8KPj4+Pj4+PiBJIHN1cHBvc2UgUkdCIGFsd2F5cyB1c2UgbXVsdGljb2xv ciBtb2RlLgo+Pj4+Pj4KPj4+Pj4+IFlvdSB3aWxsIGFsc28gaGF2ZSBtb29ubGlnaHQgTEVEIHRo YXQgd2lsbCBub3QgbmVlZCBtdWx0aWNvbG9yCj4+Pj4+PiBmcmFtZXdvcmsuIElzIGl0IHNvbWVo b3cgdHJvdWJsZXNvbWUgdG8ga2VlcCAiZGVwZW5kcyBvbiI/Cj4+Pj4+Pgo+Pj4+Pgo+Pj4+PiBJ ZiBvbmx5IHVzZSBNTCBMRUQgYW5kIEZMRUQsICBEVFNJIHdpbGwgb25seSBkZWZpbmUgTUwgTEVE IGFuZCBGTEVELgo+Pj4+PiBUaGVyZWZvcmUsIHRoZSBkcml2ZXJzIHByb2JlIHdpbGwgbm90IHJl Z2lzdGVyIHJnYiBtdWx0aWNvbG9yIGRldmljZS4KPj4+Pgo+Pj4+IFBsZWFzZSB0ZXN0IHlvdXIg dXNlIGNhc2UgYWdhaW4gd2l0aCBteSBmaXhlZCAiZGVwZW5kcyBvbiIuCj4+Pj4KPj4+PiBJbiBj YXNlIHdoZW4gdGhlcmUgaXMgb25seSBNTCBMRUQgYW5kIEZMRUQgaW4gdGhlIERUIGl0IHNob3Vs ZAo+Pj4+IHJlZ2lzdGVyIGJvdGggZGV2aWNlcyBpZiBMRURTX0NMQVNTX0ZMQVNIIGlzIHR1cm5l ZCBvbi4KPj4+PiBNdWx0aWNvbG9yIGZyYW1ld29yayBoYXMgbm90aGluZyB0byBkbyBpbiB0aGlz IGNhc2UuCj4+Pj4KPj4+PiBCdXQgaWYgeW91IGFkZGl0aW9uYWxseSBoYWQgTUMgTEVEIG5vZGUs IHRoZW4gaXQgc2hvdWxkCj4+Pj4gYmUgcmVnaXN0ZXJlZCBvbmx5IGlmIExFRFNfQ0xBU1NfTVVM VElDT0xPUiBpcyBlbmFibGVkLgo+Pj4+Cj4+Pj4gU2ltaWxhcmx5LCB3aGVuIEZMRUQgbm9kZSBp cyBwcmVzZW50LCBidXQgTEVEU19DTEFTU19GTEFTSAo+Pj4+IGlzIG9mZiwgYW5kIExFRFNfQ0xB U1NfTVVMVElDT0xPUiBpcyBvbiwgdGhlIGRyaXZlciBzaG91bGQgc3RpbGwKPj4+PiBjb21waWxl LCBidXQgcmVnaXN0ZXIgb25seSBMRUQgTUMgZGV2aWNlIChpZiBpdHMgbm9kZSBpcyBwcmVzZW50 KS4KPj4+Pgo+Pj4KPj4+IEkgdGhpbmsgdGhpcyBjYXNlIG9ubHkgcmVnaXN0ZXIgTEVEIGRldmlj ZSwgbm90IExFRCAiTUMiIGRldmljZS4KPj4+IEJlY2F1c2Ugb3VyIEZMQVNIIGlzIG5vdCBhIG11 bHRpY29sb3IgZGV2aWNlLgo+Pgo+PiBObywgaGVyZSBJIHdhcyBkZXNjcmliaW5nIGZvbGxvd2lu ZyBzZXR1cDoKPj4KPj4gLSBEVCBGTEVEIG5vZGUgaXMgcHJlc2VudCwgQ09ORklHX0xFRFNfQ0xB U1NfRkxBU0ggaXMgb2ZmCj4+IC0gRFQgTUMgbm9kZSBpcyBwcmVzZW50LCBDT05GSUdfTEVEU19D TEFTU19NVUxUSUNPTE9SIGlzIG9uCj4+Cj4+IE1MIExFRCBwcmVzZW5jZSBpbiBEVCBpcyBpcnJl bGV2YW50IGluIHRoaXMgY2FzZS4KPj4gSXQgc2hvdWxkIGJlIGFsd2F5cyByZWdpc3RlcmVkIGlm IHRoZXJlIGlzIGNvcnJlc3BvbmRpbmcgRFQgbm9kZQo+PiBhbmQgTEVEU19DTEFTUyBpcyBvbi4K Pj4KPiAKPiBBcyBhIGxvbmcgdGltZSBkaXNjdXNzaW9uLCB3ZSBjb25jbHVkZSBzb21lIHJ1bGVz IGFib3V0IE1UNjM2MCBMRUQgZHJpdmVyLgo+IEZMRUQgaXMgbmVjZXNzYXJ5LCBzbyBLY29uZmln IGRlcGVuZHMgb24gTEVEX0NMQVNTX0ZMQVNICgpNYXliZSBpdCBpcyBuZWNlc3NhcnkgaW4geW91 ciB1c2UgY2FzZSwgYnV0IHByb2JhYmx5IGl0IGlzIHBvc3NpYmxlIHRvCnVzZSB0aGUgZGV2aWNl IHdpdGhvdXQgRkxFRC4gSWYgc28sIHRoZW4geW91IHNob3VsZCBhbGxvdyB1c2VycwpkaXNhYmxp bmcgaXQuIFRoZXJlZm9yZSB5b3Ugc2hvdWxkIGhhdmU6CgpkZXBlbmRzIG9uIExFRFNfQ0xBU1Nf RkxBU0ggfHwgIUxFRFNfQ0xBU1NfRkxBU0gKCj4gTUwgTEVEIGlzIG9wdGlvbmFsLCB3aGljaCBp cyByZWdpc3RlcmVkIGFzIGxlZCBjbGFzcyBkZXZpY2UuCj4gUkdCIExFRCBjYW4gYmUgZWl0aGVy IHNpbXBsZSBsZWQgY2xhc3MgZGV2aWNlIG9yIG11bHRpY29sb3IgZGV2aWNlLAo+IHdoaWNoIGlz IGRlY2lkZWQgaW4gRFQgbm9kZQo+IElmIE11bHRpY29sb3IgTEVEIERUIG5vZGUgaXMgZXhpc3Qs IGl0IHNob3VsZCBiZSByZWdpc3RlciBtdWx0aWNvbG9yCj4gZGV2aWNlIHN1Y2Nlc3MuCgpCdXQg b25seSBpZiBDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9SIGlzIGVuYWJsZWQuCgo+IE1heWJl IGl0IGlzIG1vcmUgc3BlY2lmaWMgdG8gc2VuZCBhIG5ldyBwYXRjaD8KPiAKPiBTYW1wbGUgRFQg YXMgYmVsb3cKPiBMRUQgInJlZCIgaXMgc2ltcGxlIGxlZCBjbGFzcyBkZXZpY2UsIExFRCAiZ3Jl ZW4mYmx1ZSIgaXMgbXVsdGljb2xvciBkZXZpY2VzLgo+IGxlZEAwIHsKPiAgICAgICAgICByZWcg PSA8MD47Cj4gICAgICAgICAgZnVuY3Rpb24gPSBMRURfRlVOQ1RJT05fSU5ESUNBVE9SOwo+ICAg ICAgICAgIGNvbG9yID0gPExFRF9DT0xPUl9JRF9SRUQ+Owo+ICAgICAgICAgIGxlZC1tYXgtbWlj cm9hbXAgPSA8MjQwMDA+Owo+IH07Cj4gbGVkQDYgewo+ICAgICAgICAgIHJlZyA9IDw2PjsKPiAg ICAgICAgICBmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9JTkRJQ0FUT1I7Cj4gICAgICAgICAgY29s b3IgPSA8TEVEX0NPTE9SX0lEX01VTFRJPjsKPiAKPiAgICAgICAgICBsZWRAMSB7Cj4gICAgICAg ICAgICAgICAgICByZWcgPSA8MT47Cj4gICAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IExFRF9G VU5DVElPTl9JTkRJQ0FUT1I7Cj4gICAgICAgICAgICAgICAgICBjb2xvciA9IDxMRURfQ09MT1Jf SURfR1JFRU4+Owo+ICAgICAgICAgICAgICAgICAgbGVkLW1heC1taWNyb2FtcCA9IDwyNDAwMD47 Cj4gICAgICAgICAgfTsKPiAgICAgICAgICBsZWRAMiB7Cj4gICAgICAgICAgICAgICAgICByZWcg PSA8Mj47Cj4gICAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9JTkRJQ0FU T1I7Cj4gICAgICAgICAgICAgICAgICBjb2xvciA9IDxMRURfQ09MT1JfSURfQkxVRT47Cj4gICAg ICAgICAgICAgICAgICBsZWQtbWF4LW1pY3JvYW1wID0gPDI0MDAwPjsKPiAgICAgICAgICB9Owo+ IH07CgpJdCBsb29rcyBPSy4KCj4+Pj4gUG9zc2libGUgc2hvdWxkIGJlIGFsc28gdGhlIGNhc2Ug d2hlbiBib3RoIExFRFNfQ0xBU1NfRkxBU0gKPj4+PiBhbmQgTEVEU19DTEFTU19NVUxUSUNPTE9S IGFyZSBvZmYuIFRoZW4gb25seSBMRUQgY2xhc3MgZGV2aWNlCj4+Pj4gZm9yIE1MIExFRCB3aWxs IGJlIHJlZ2lzdGVyZWQgKHByb3ZpZGVkIHRoZXJlIGlzIE1MIERUIG5vZGUpLgo+Pj4+IEJ1dCB0 byBtYWtlIGl0IHBvc3NpYmxlIHlvdSBzaG91bGQgaGF2ZSBhbHNvICJkZXBlbmRzIG9uIExFRFNf Q0xBU1MiCj4+Pj4gaW4gdGhlIEtjb25maWcgZW50cnkuCj4+Pj4KPj4+Cj4+PiBBY2NvcmRpbmcg dG8geW91ciBzdWdnZXN0aW9uLAo+Pj4gZGVwZW5kcyBvbiBMRURfQ0xBU1MgJiYgTEVEU19DTEFT U19GTEFTSCAmJiBPRgo+Pgo+PiBzL0xFRF9DTEFTUy9MRURTX0NMQVNTLwo+Pgo+PiBBbmQgeW91 IGhhdmUgdG8gcmVtb3ZlIExFRFNfQ0xBU1NfRkxBU0ggZnJvbSBhYm92ZSBsaW5lLgo+Pgo+Pj4g ZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJQ09MT1IgfHwgISFMRURTX0NMQVNTX01VTFRJQ09M T1IKPj4KPj4gcy8hIUxFRFNfQ0xBU1NfTVVMVElDT0xPUi8hTEVEU19DTEFTU19NVUxUSUNPTE9S Lwo+Pgo+Pj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNIIHx8ICFMRURTX0NMQVNTX0ZMQVNI Cj4+PiBkZXBlbmRzIG9uIE1GRF9NVDYzNjAKPj4KPj4gWW91IHdpbGwgbmVlZCBWNEwyX0ZMQVNI X0xFRF9DTEFTUyBkZXBlbmRlbmN5IGFzIHdlbGwsIHRvIGF2b2lkCj4+IGJ1aWxkIGJyZWFrLCB3 aGVuIGl0IGlzIHNldCB0byAnbScuCj4+Cj4+IFRvIHJlY2FwLCBmb2xsb3dpbmcgYmxvY2sgb2Yg ZGVwZW5kZW5jaWVzIGlzIHJlcXVpcmVkOgo+Pgo+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1MgJiYg T0YKPj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJQ09MT1IgfHwgIUxFRFNfQ0xBU1NfTVVM VElDT0xPUgo+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfRkxBU0ggfHwgIUxFRFNfQ0xBU1NfRkxB U0gKPj4gZGVwZW5kcyBvbiBWNEwyX0ZMQVNIX0xFRF9DTEFTUyB8fCAhVjRMMl9GTEFTSF9MRURf Q0xBU1MKPj4gZGVwZW5kcyBvbiBNRkRfTVQ2MzYwCj4+Cj4gCj4gTEVEU19NVDYzNjAgZGVwZW5k cyBvbiBMRURTX0NMQVNTX0ZMQVNILCBhbmQgTEVEU19DTEFTU19GTEFTSCBkZXBlbmRzCj4gb24g TEVEU19DTEFTUwo+IElzICJkZXBlbmRzIG9uIExFRFNfQ0xBU1MiIHN0aWxsIG5lZWRlZD8KClll cywgYmVjYXVzZSB5b3Ugc2hvdWxkIGFsbG93IGRpc2FibGluZyBDT05GSUdfTEVEU19DTEFTU19G TEFTSC4KSW4gc3VjaCBhIGNhc2UgZHJpdmVyIHNob3VsZCBzdGlsbCBjb21waWxlIGFuZCByZWdp c3RlciBNTCBMRUQgY2xhc3MKZGV2aWNlIHdoZW4gaXQgaGFzIGNvcnJlc3BvbmRpbmcgRFQgbm9k ZS4KCj4+PiBhbmQgc291cmNlIGNvZGUgYWRkIGNvbnN0cmFpbnQKPj4+Cj4+PiAjaWYgSVNfRU5B QkxFRChDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9SKQo+Pj4gICAgICAgcmV0ID0gZGV2bV9s ZWRfY2xhc3NkZXZfbXVsdGljb2xvcl9yZWdpc3Rlcl9leHQocGFyZW50LCAmbGVkLT5yZ2IsCj4+ PiBpbml0X2RhdGEpOwo+Pj4gI2VuZGlmCj4+Pgo+Pj4gI2lmIElTX0VOQUJMRUQoQ09ORklHX0xF RFNfQ0xBU1NfRkxBU0gpCj4+PiAgICAgICByZXQgPSBkZXZtX2xlZF9jbGFzc2Rldl9mbGFzaF9y ZWdpc3Rlcl9leHQocGFyZW50LCAmbGVkLT5mbGFzaCwgaW5pdF9kYXRhKTsKPj4+ICNlbmRpZgo+ Pgo+PiBObywgdGhlIGd1YXJkcyBzaG91bGQgYmUgaW4gaGVhZGVycy4gVGhhdCdzIHdoeSBJIHJl Y29tbWVuZGVkIGFkZGluZwo+PiBubyBvcHMgZm9yIExFRCBmbGFzaCBjbGFzcyByZWdpc3RyYXRp b24gZnVuY3Rpb25zIGluIHByZXZpb3VzIGVtYWlsLgo+Pgo+PiBQbGVhc2UgY29tcGFyZSBpbmNs dWRlL2xpbnV4L2xlZC1jbGFzcy1tdWx0aWNvbG9yLmggYW5kIGRvIHNpbWlsYXIKPj4gY2hhbmdl cyBpbiBpbmNsdWRlL2xpbnV4L2xlZC1jbGFzcy1mbGFzaC5oLgo+Pgo+IAo+IEFDSywgSSB3aWxs IHN1Ym1pdCBhIGZpeGVkIHBhdGNoIGFib3V0IGxlZHMtY2xhc3MtZmxhc2guaC4KPiAKPiBCeSB0 aGUgd2F5LCBpZiBDT05GSUdfTEVEX0NMQVNTX01VTFRJQ09MT1IgaXMgbm90IGVuYWJsZWQgYW5k IHdlIGRvbid0Cj4gdXNlICNpZiBJU19FTkFCTEVELAo+IGFjY29yZGluZyB0byBsZWQtY2xhc3Mt bXVsdGljb2xvci5oIHJldHVybiAtRUlOVkFMLAo+IHdlIHdpbGwgcmVnaXN0ZXIgbXVsdGljb2xv ciBkZXZpY2UgZmFpbCBhbmQgY2F1c2UgcHJvYmUgZmFpbC4KCkdvb2QgcG9pbnQuIFNvIGxlZC1j bGFzcy1tdWx0aWNvbG9yLmggbm8tb3BzIG5lZWQgdG8gYmUgZml4ZWQgdG8gcmV0dXJuCjAgaW5z dGVhZCBvZiAtRUlOVkFMLgoKQW5kIG5vLW9wcyBpbiBpbmNsdWRlL2xpbnV4L2xlZC1jbGFzcy1m bGFzaC5oIHNob3VsZCBhbHNvIHJldHVybiAwLgoKLS0gCkJlc3QgcmVnYXJkcywKSmFjZWsgQW5h c3pld3NraQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=