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=-9.6 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,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 36564C5519F for ; Mon, 16 Nov 2020 10:41:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B21F320789 for ; Mon, 16 Nov 2020 10:41:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Sbn5b/vW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727156AbgKPKBh (ORCPT ); Mon, 16 Nov 2020 05:01:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727107AbgKPKBh (ORCPT ); Mon, 16 Nov 2020 05:01:37 -0500 Received: from mail-oi1-x241.google.com (mail-oi1-x241.google.com [IPv6:2607:f8b0:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B251C0613CF; Mon, 16 Nov 2020 02:01:37 -0800 (PST) Received: by mail-oi1-x241.google.com with SMTP id c80so18197489oib.2; Mon, 16 Nov 2020 02:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=mF19ZwIo780m+wantWBq442Gr3sYDvkJbbMnqZkJcqk=; b=Sbn5b/vWMuIEheE9SnWl+WiNU7+9gR8hzT7MVsE1rOGoF9NhdcHWCiJbPyOLqBhvnc R5OsDZiwk0ehiZmQfaHm/A7yqhZRsPNIZ02HSGqbjc5TGP9arSxalYOcvyQ4Ndrd15Us RNtqPVlAFD+c0+NAvUXluQkLSYvgho/BI00U7fcvp5HnZCAMXYr0GGvYuFjDEmkct1gT lsgfIVJ0nmg5+pA4fCA4FyHCKxRjINPaDGgAnfoK+C9nHy7E0jJlLDxL9xwaOQzlbjd/ VGzZPF7lpR7SUaA9MN/jU0+amcBELWc8lquSLwVr+D8LiJB2eVRN1FmVnE5S8e3/kiYZ 8SOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=mF19ZwIo780m+wantWBq442Gr3sYDvkJbbMnqZkJcqk=; b=WYHCFEZvUocSL2hVBfu8ILa9OhwzQv17Jz/lJIY39n2Ny0+jkgyiD2qqgkZ2qpa/Br eQ3cw/++UCVN87GpoR+p52YxWDT4PcyyMgL82Q6GEkRONaGTFe7B0k+xYahS+xqkd4sg KWWl0ZslHzE+XUNFo0YGxQbhP6Sm6Rx4vtO9/S573e1YWJ0KYFPNDpFr/3rfuublJ8k6 ADX07sphVIP+FQ7YMHLJz6yIOqpIoHdMTMZH0JV9aG776L0BwE1xqP3uARhyhCC/8xo1 kkytlVqEOlJKkyHoRKxxsflkJG2FbvGh2CodnjWD/lxJdlmwZ25oVsQXZljVMnmZcK30 qDzw== X-Gm-Message-State: AOAM53036vJNrMMWNri5bLcwZPvnMk0DOfPiNCkd3ww0eqvMwV4lyqG8 5f5dl/a8BZhGQxzENN6kbyrwfkYcVk38uNjipeJm2xU/oi0= X-Google-Smtp-Source: ABdhPJyfEXXi/wTtDJZuiEyBKNQI545S2UU5krCd+c/8mhVnTifSZ4aiQ1TsqAL+nTv6lZmY1GSf68+zI1sopsfuyRM= X-Received: by 2002:aca:4783:: with SMTP id u125mr9490525oia.23.1605520896546; Mon, 16 Nov 2020 02:01:36 -0800 (PST) MIME-Version: 1.0 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> In-Reply-To: From: Gene Chen Date: Mon, 16 Nov 2020 18:01:24 +0800 Message-ID: Subject: Re: [PATCH v5 2/2] leds: mt6360: Add LED driver for MT6360 To: Jacek Anaszewski 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-leds@vger.kernel.org Jacek Anaszewski =E6=96=BC 2020=E5=B9=B410=E6= =9C=8831=E6=97=A5 =E9=80=B1=E5=85=AD =E4=B8=8A=E5=8D=886:34=E5=AF=AB=E9=81= =93=EF=BC=9A > > On 10/30/20 9:51 AM, Gene Chen wrote: > > Jacek Anaszewski =E6=96=BC 2020=E5=B9=B410= =E6=9C=8828=E6=97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8A=E5=8D=881:28=E5=AF=AB=E9= =81=93=EF=BC=9A > >> > >> On 10/27/20 10:28 AM, Gene Chen wrote: > >>> Jacek Anaszewski =E6=96=BC 2020=E5=B9=B4= 10=E6=9C=8821=E6=97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8A=E5=8D=885:47=E5=AF=AB= =E9=81=93=EF=BC=9A > >>>> > >>>> On 10/20/20 8:44 AM, Gene Chen wrote: > >>>>> Jacek Anaszewski =E6=96=BC 2020=E5=B9= =B410=E6=9C=889=E6=97=A5 =E9=80=B1=E4=BA=94 =E4=B8=8A=E5=8D=885:51=E5=AF=AB= =E9=81=93=EF=BC=9A > >>>>>> > >>>>>> 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/stro= be mode, > >>>>>>> 3-channel RGB LED support Register/Flash/Breath Mode, and 1-chann= el 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 fo= und 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 ha= ve > >>>>>> 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 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. 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 device= s. led@0 { reg =3D <0>; function =3D LED_FUNCTION_INDICATOR; color =3D ; led-max-microamp =3D <24000>; }; led@6 { reg =3D <6>; function =3D LED_FUNCTION_INDICATOR; color =3D ; led@1 { reg =3D <1>; function =3D LED_FUNCTION_INDICATOR; color =3D ; led-max-microamp =3D <24000>; }; led@2 { reg =3D <2>; function =3D LED_FUNCTION_INDICATOR; color =3D ; led-max-microamp =3D <24000>; }; }; > > > >> 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? > > > > and source code add constraint > > > > #if IS_ENABLED(CONFIG_LEDS_CLASS_MULTICOLOR) > > ret =3D devm_led_classdev_multicolor_register_ext(parent, &led->rg= b, > > init_data); > > #endif > > > > #if IS_ENABLED(CONFIG_LEDS_CLASS_FLASH) > > ret =3D 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. > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > Or Should I seperate two drivers? > > one for RGB LED, one for ML LED and FLED > > This would incur unnecessary code duplication. > > -- > 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=-9.5 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,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 4BBEDC5519F for ; Mon, 16 Nov 2020 10:01:53 +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 AA56C2054F for ; Mon, 16 Nov 2020 10:01:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="T7rwvAxX"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Sbn5b/vW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AA56C2054F 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-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=e7NaYLcmFT4UQbMUN33u3P607hC50OZPy+VCgZGxbdA=; b=T7rwvAxXm1uBIex4wMANCHgAk iuxl7dpKCT+bYJn46wPlZpbxbDwr1pqJJmi9Xg0dt6MoYEp0q/yRVzPiSzQ2pUxyjTFogdwQTzR9r Lh8gJbJB4hJqwvHYztgTszxtPsekA5qeNsDJH/naDODeiZSyA5XZ7XY9ROL2ylZ0E14QmPuFF4g7i rQ6qvJNLInpoXtZSISbTxqPIMD5ilZFl41NtrlT4qvDo7B6lCl7Iz4ECUlxE+2E/LmkRZh13hDOnW Hxuom4vFdNgZK36++HfRLHM2alTiOUJjdtE3lBdzj1UJDTKjRFpcjLMGVqGbnNBIVC5IOQA35sont MnwLyvB5Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kebKR-0007DE-Po; Mon, 16 Nov 2020 10:01:43 +0000 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kebKN-0007BQ-Ro; Mon, 16 Nov 2020 10:01:40 +0000 Received: by mail-oi1-x243.google.com with SMTP id m17so18194830oie.4; Mon, 16 Nov 2020 02:01:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=mF19ZwIo780m+wantWBq442Gr3sYDvkJbbMnqZkJcqk=; b=Sbn5b/vWMuIEheE9SnWl+WiNU7+9gR8hzT7MVsE1rOGoF9NhdcHWCiJbPyOLqBhvnc R5OsDZiwk0ehiZmQfaHm/A7yqhZRsPNIZ02HSGqbjc5TGP9arSxalYOcvyQ4Ndrd15Us RNtqPVlAFD+c0+NAvUXluQkLSYvgho/BI00U7fcvp5HnZCAMXYr0GGvYuFjDEmkct1gT lsgfIVJ0nmg5+pA4fCA4FyHCKxRjINPaDGgAnfoK+C9nHy7E0jJlLDxL9xwaOQzlbjd/ VGzZPF7lpR7SUaA9MN/jU0+amcBELWc8lquSLwVr+D8LiJB2eVRN1FmVnE5S8e3/kiYZ 8SOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=mF19ZwIo780m+wantWBq442Gr3sYDvkJbbMnqZkJcqk=; b=GCS26AgBhRPtAW4MH2JshmyNMwLRdIHoFvZdFL8UzFv/1vKKYuFJXbtjT4xT5DRcVn K6XW2axxAp8hP73QRiUg/p8Qdg+LCrszyp0MRdk1V1zz5C5Ef0ggg5Pmj3g9WoPqaJuU KHY88n66CRcqg2c3Srr3c/V2X8M34CmiZMZasff+0LiIpTVbUkH5k5vy9FF/JLSSzlR6 9aIwU52bXjoa/jCylwW9QRcj2GlcbroBaAZxsrrIHUb1hvw8bU7quiI0kIxRcyAWjDgW fEraVcNN0XEg803MgKD172836V3yb8hjyd6Oqf0zLr/vilr91W1TfAV2lnKInKJ0FPg7 cNXA== X-Gm-Message-State: AOAM5322J+0yc3G6Wo4AtTjNU52/xAxhOsRHDz/KcYhvgfyLjA8RqL9n FIzxQ4HFMGQBGdffTPSPdkjOGpf6EBvAsAugBT8= X-Google-Smtp-Source: ABdhPJyfEXXi/wTtDJZuiEyBKNQI545S2UU5krCd+c/8mhVnTifSZ4aiQ1TsqAL+nTv6lZmY1GSf68+zI1sopsfuyRM= X-Received: by 2002:aca:4783:: with SMTP id u125mr9490525oia.23.1605520896546; Mon, 16 Nov 2020 02:01:36 -0800 (PST) MIME-Version: 1.0 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> In-Reply-To: From: Gene Chen Date: Mon, 16 Nov 2020 18:01:24 +0800 Message-ID: Subject: Re: [PATCH v5 2/2] leds: mt6360: Add LED driver for MT6360 To: Jacek Anaszewski X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201116_050139_966224_27F0E502 X-CRM114-Status: GOOD ( 40.76 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SmFjZWsgQW5hc3pld3NraSA8amFjZWsuYW5hc3pld3NraUBnbWFpbC5jb20+IOaWvCAyMDIw5bm0 MTDmnIgzMeaXpSDpgLHlha0g5LiK5Y2INjozNOWvq+mBk++8mgo+Cj4gT24gMTAvMzAvMjAgOTo1 MSBBTSwgR2VuZSBDaGVuIHdyb3RlOgo+ID4gSmFjZWsgQW5hc3pld3NraSA8amFjZWsuYW5hc3pl d3NraUBnbWFpbC5jb20+IOaWvCAyMDIw5bm0MTDmnIgyOOaXpSDpgLHkuIkg5LiK5Y2IMToyOOWv q+mBk++8mgo+ID4+Cj4gPj4gT24gMTAvMjcvMjAgMTA6MjggQU0sIEdlbmUgQ2hlbiB3cm90ZToK PiA+Pj4gSmFjZWsgQW5hc3pld3NraSA8amFjZWsuYW5hc3pld3NraUBnbWFpbC5jb20+IOaWvCAy MDIw5bm0MTDmnIgyMeaXpSDpgLHkuIkg5LiK5Y2INTo0N+Wvq+mBk++8mgo+ID4+Pj4KPiA+Pj4+ IE9uIDEwLzIwLzIwIDg6NDQgQU0sIEdlbmUgQ2hlbiB3cm90ZToKPiA+Pj4+PiBKYWNlayBBbmFz emV3c2tpIDxqYWNlay5hbmFzemV3c2tpQGdtYWlsLmNvbT4g5pa8IDIwMjDlubQxMOaciDnml6Ug 6YCx5LqUIOS4iuWNiDU6NTHlr6vpgZPvvJoKPiA+Pj4+Pj4KPiA+Pj4+Pj4gSGkgR2VuZSwKPiA+ Pj4+Pj4KPiA+Pj4+Pj4gT24gMTAvNy8yMCAzOjQyIEFNLCBHZW5lIENoZW4gd3JvdGU6Cj4gPj4+ Pj4+PiBGcm9tOiBHZW5lIENoZW4gPGdlbmVfY2hlbkByaWNodGVrLmNvbT4KPiA+Pj4+Pj4+Cj4g Pj4+Pj4+PiBBZGQgTVQ2MzYwIExFRCBkcml2ZXIgaW5jbHVkZSAyLWNoYW5uZWwgRmxhc2ggTEVE IHdpdGggdG9yY2gvc3Ryb2JlIG1vZGUsCj4gPj4+Pj4+PiAzLWNoYW5uZWwgUkdCIExFRCBzdXBw b3J0IFJlZ2lzdGVyL0ZsYXNoL0JyZWF0aCBNb2RlLCBhbmQgMS1jaGFubmVsIGZvcgo+ID4+Pj4+ Pj4gbW9vbmxpZ2h0IExFRC4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBHZW5l IENoZW4gPGdlbmVfY2hlbkByaWNodGVrLmNvbT4KPiA+Pj4+Pj4+IC0tLQo+ID4+Pj4+Pj4gICAg ICBkcml2ZXJzL2xlZHMvS2NvbmZpZyAgICAgICB8ICAxMiArCj4gPj4+Pj4+PiAgICAgIGRyaXZl cnMvbGVkcy9NYWtlZmlsZSAgICAgIHwgICAxICsKPiA+Pj4+Pj4+ICAgICAgZHJpdmVycy9sZWRz L2xlZHMtbXQ2MzYwLmMgfCA3ODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gPj4+Pj4+PiAgICAgIDMgZmlsZXMgY2hhbmdlZCwgNzk2IGluc2VydGlvbnMo KykKPiA+Pj4+Pj4+ICAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbGVkcy9sZWRzLW10 NjM2MC5jCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9LY29u ZmlnIGIvZHJpdmVycy9sZWRzL0tjb25maWcKPiA+Pj4+Pj4+IGluZGV4IDFjMTgxZGYuLmM3MTky ZGQgMTAwNjQ0Cj4gPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2xlZHMvS2NvbmZpZwo+ID4+Pj4+Pj4g KysrIGIvZHJpdmVycy9sZWRzL0tjb25maWcKPiA+Pj4+Pj4+IEBAIC0yNzEsNiArMjcxLDE4IEBA IGNvbmZpZyBMRURTX01UNjMyMwo+ID4+Pj4+Pj4gICAgICAgICAgICBUaGlzIG9wdGlvbiBlbmFi bGVzIHN1cHBvcnQgZm9yIG9uLWNoaXAgTEVEIGRyaXZlcnMgZm91bmQgb24KPiA+Pj4+Pj4+ICAg ICAgICAgICAgTWVkaWF0ZWsgTVQ2MzIzIFBNSUMuCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gK2NvbmZp ZyBMRURTX01UNjM2MAo+ID4+Pj4+Pj4gKyAgICAgdHJpc3RhdGUgIkxFRCBTdXBwb3J0IGZvciBN ZWRpYXRlayBNVDYzNjAgUE1JQyIKPiA+Pj4+Pj4+ICsgICAgIGRlcGVuZHMgb24gTEVEU19DTEFT U19GTEFTSCAmJiBPRgo+ID4+Pj4+Pj4gKyAgICAgZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJ Q09MT1IKPiA+Pj4+Pj4KPiA+Pj4+Pj4gU2luY2UgQ09ORklHX0xFRF9DTEFTU19NVUxUSUNPTE9S IGNhbiBiZSB0dXJuZWQgb2ZmIHlvdSBuZWVkIHRvIGhhdmUKPiA+Pj4+Pj4gYmVsb3cgaW5zdGVh ZDoKPiA+Pj4+Pj4KPiA+Pj4+Pj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJQ09MT1IgfHwg ISFMRURTX0NMQVNTX01VTFRJQ09MT1IKPiA+Pgo+ID4+IE15IHR5cG8gaGVyZSwgc2hvdWxkIGJl IG9uZSAiISI6Cj4gPj4KPiA+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUiB8fCAh TEVEU19DTEFTU19NVUxUSUNPTE9SCj4gPj4KPiA+PiBBbmQgeW91IHNob3VsZCBhbHNvIGhhdmUK PiA+Pgo+ID4+IGRlcGVuZHMgb24gTEVEU19DTEFTU19GTEFTSCB8fCAhTEVEU19DTEFTU19GTEFT SAo+ID4+Cj4gPj4gQnV0IHRvIG1ha2UgaXQgd29yayBjb3JyZWN0bHkgeW91IHdvdWxkIGhhdmUg dG8gYWRkIHJlZ2lzdHJhdGlvbgo+ID4+IHN0dWJzIHRvIGluY2x1ZGUvbGludXgvbGVkLWNsYXNz LWZsYXNoLmggc2ltaWxhcmx5IHRvIExFRCBtYyBzdHVicwo+ID4+IGluIGluY2x1ZGUvbGludXgv bGVkLWNsYXNzLW11bHRpY29sb3IuaC4KPiA+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiBVbmxlc3MgeW91 IHdhbnQgdG8gcHJldmVudCBlbmFibGluZyB0aGUgZHJpdmVyIHdpdGhvdXQgUkdCIExFRCwKPiA+ Pj4+Pj4gYnV0IHRoYXQgZG9lcyBub3Qgc2VlbSB0byBiZSByZWFzb25hYmxlIGF0IGZpcnN0IGds YW5jZS4KPiA+Pj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IE1heSBJIGNoYW5nZSB0byAic2VsZWN0IExF RFNfQ0xBU1NfTVVMVElDT0xPUiI/Cj4gPj4+Pj4gSSBzdXBwb3NlIFJHQiBhbHdheXMgdXNlIG11 bHRpY29sb3IgbW9kZS4KPiA+Pj4+Cj4gPj4+PiBZb3Ugd2lsbCBhbHNvIGhhdmUgbW9vbmxpZ2h0 IExFRCB0aGF0IHdpbGwgbm90IG5lZWQgbXVsdGljb2xvcgo+ID4+Pj4gZnJhbWV3b3JrLiBJcyBp dCBzb21laG93IHRyb3VibGVzb21lIHRvIGtlZXAgImRlcGVuZHMgb24iPwo+ID4+Pj4KPiA+Pj4K PiA+Pj4gSWYgb25seSB1c2UgTUwgTEVEIGFuZCBGTEVELCAgRFRTSSB3aWxsIG9ubHkgZGVmaW5l IE1MIExFRCBhbmQgRkxFRC4KPiA+Pj4gVGhlcmVmb3JlLCB0aGUgZHJpdmVycyBwcm9iZSB3aWxs IG5vdCByZWdpc3RlciByZ2IgbXVsdGljb2xvciBkZXZpY2UuCj4gPj4KPiA+PiBQbGVhc2UgdGVz dCB5b3VyIHVzZSBjYXNlIGFnYWluIHdpdGggbXkgZml4ZWQgImRlcGVuZHMgb24iLgo+ID4+Cj4g Pj4gSW4gY2FzZSB3aGVuIHRoZXJlIGlzIG9ubHkgTUwgTEVEIGFuZCBGTEVEIGluIHRoZSBEVCBp dCBzaG91bGQKPiA+PiByZWdpc3RlciBib3RoIGRldmljZXMgaWYgTEVEU19DTEFTU19GTEFTSCBp cyB0dXJuZWQgb24uCj4gPj4gTXVsdGljb2xvciBmcmFtZXdvcmsgaGFzIG5vdGhpbmcgdG8gZG8g aW4gdGhpcyBjYXNlLgo+ID4+Cj4gPj4gQnV0IGlmIHlvdSBhZGRpdGlvbmFsbHkgaGFkIE1DIExF RCBub2RlLCB0aGVuIGl0IHNob3VsZAo+ID4+IGJlIHJlZ2lzdGVyZWQgb25seSBpZiBMRURTX0NM QVNTX01VTFRJQ09MT1IgaXMgZW5hYmxlZC4KPiA+Pgo+ID4+IFNpbWlsYXJseSwgd2hlbiBGTEVE IG5vZGUgaXMgcHJlc2VudCwgYnV0IExFRFNfQ0xBU1NfRkxBU0gKPiA+PiBpcyBvZmYsIGFuZCBM RURTX0NMQVNTX01VTFRJQ09MT1IgaXMgb24sIHRoZSBkcml2ZXIgc2hvdWxkIHN0aWxsCj4gPj4g Y29tcGlsZSwgYnV0IHJlZ2lzdGVyIG9ubHkgTEVEIE1DIGRldmljZSAoaWYgaXRzIG5vZGUgaXMg cHJlc2VudCkuCj4gPj4KPiA+Cj4gPiBJIHRoaW5rIHRoaXMgY2FzZSBvbmx5IHJlZ2lzdGVyIExF RCBkZXZpY2UsIG5vdCBMRUQgIk1DIiBkZXZpY2UuCj4gPiBCZWNhdXNlIG91ciBGTEFTSCBpcyBu b3QgYSBtdWx0aWNvbG9yIGRldmljZS4KPgo+IE5vLCBoZXJlIEkgd2FzIGRlc2NyaWJpbmcgZm9s bG93aW5nIHNldHVwOgo+Cj4gLSBEVCBGTEVEIG5vZGUgaXMgcHJlc2VudCwgQ09ORklHX0xFRFNf Q0xBU1NfRkxBU0ggaXMgb2ZmCj4gLSBEVCBNQyBub2RlIGlzIHByZXNlbnQsIENPTkZJR19MRURT X0NMQVNTX01VTFRJQ09MT1IgaXMgb24KPgo+IE1MIExFRCBwcmVzZW5jZSBpbiBEVCBpcyBpcnJl bGV2YW50IGluIHRoaXMgY2FzZS4KPiBJdCBzaG91bGQgYmUgYWx3YXlzIHJlZ2lzdGVyZWQgaWYg dGhlcmUgaXMgY29ycmVzcG9uZGluZyBEVCBub2RlCj4gYW5kIExFRFNfQ0xBU1MgaXMgb24uCj4K CkFzIGEgbG9uZyB0aW1lIGRpc2N1c3Npb24sIHdlIGNvbmNsdWRlIHNvbWUgcnVsZXMgYWJvdXQg TVQ2MzYwIExFRCBkcml2ZXIuCkZMRUQgaXMgbmVjZXNzYXJ5LCBzbyBLY29uZmlnIGRlcGVuZHMg b24gTEVEX0NMQVNTX0ZMQVNICk1MIExFRCBpcyBvcHRpb25hbCwgd2hpY2ggaXMgcmVnaXN0ZXJl ZCBhcyBsZWQgY2xhc3MgZGV2aWNlLgpSR0IgTEVEIGNhbiBiZSBlaXRoZXIgc2ltcGxlIGxlZCBj bGFzcyBkZXZpY2Ugb3IgbXVsdGljb2xvciBkZXZpY2UsCndoaWNoIGlzIGRlY2lkZWQgaW4gRFQg bm9kZQpJZiBNdWx0aWNvbG9yIExFRCBEVCBub2RlIGlzIGV4aXN0LCBpdCBzaG91bGQgYmUgcmVn aXN0ZXIgbXVsdGljb2xvcgpkZXZpY2Ugc3VjY2Vzcy4KTWF5YmUgaXQgaXMgbW9yZSBzcGVjaWZp YyB0byBzZW5kIGEgbmV3IHBhdGNoPwoKU2FtcGxlIERUIGFzIGJlbG93CkxFRCAicmVkIiBpcyBz aW1wbGUgbGVkIGNsYXNzIGRldmljZSwgTEVEICJncmVlbiZibHVlIiBpcyBtdWx0aWNvbG9yIGRl dmljZXMuCmxlZEAwIHsKICAgICAgICByZWcgPSA8MD47CiAgICAgICAgZnVuY3Rpb24gPSBMRURf RlVOQ1RJT05fSU5ESUNBVE9SOwogICAgICAgIGNvbG9yID0gPExFRF9DT0xPUl9JRF9SRUQ+Owog ICAgICAgIGxlZC1tYXgtbWljcm9hbXAgPSA8MjQwMDA+Owp9OwpsZWRANiB7CiAgICAgICAgcmVn ID0gPDY+OwogICAgICAgIGZ1bmN0aW9uID0gTEVEX0ZVTkNUSU9OX0lORElDQVRPUjsKICAgICAg ICBjb2xvciA9IDxMRURfQ09MT1JfSURfTVVMVEk+OwoKICAgICAgICBsZWRAMSB7CiAgICAgICAg ICAgICAgICByZWcgPSA8MT47CiAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IExFRF9GVU5DVElP Tl9JTkRJQ0FUT1I7CiAgICAgICAgICAgICAgICBjb2xvciA9IDxMRURfQ09MT1JfSURfR1JFRU4+ OwogICAgICAgICAgICAgICAgbGVkLW1heC1taWNyb2FtcCA9IDwyNDAwMD47CiAgICAgICAgfTsK ICAgICAgICBsZWRAMiB7CiAgICAgICAgICAgICAgICByZWcgPSA8Mj47CiAgICAgICAgICAgICAg ICBmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9JTkRJQ0FUT1I7CiAgICAgICAgICAgICAgICBjb2xv ciA9IDxMRURfQ09MT1JfSURfQkxVRT47CiAgICAgICAgICAgICAgICBsZWQtbWF4LW1pY3JvYW1w ID0gPDI0MDAwPjsKICAgICAgICB9Owp9OwoKPiA+Cj4gPj4gUG9zc2libGUgc2hvdWxkIGJlIGFs c28gdGhlIGNhc2Ugd2hlbiBib3RoIExFRFNfQ0xBU1NfRkxBU0gKPiA+PiBhbmQgTEVEU19DTEFT U19NVUxUSUNPTE9SIGFyZSBvZmYuIFRoZW4gb25seSBMRUQgY2xhc3MgZGV2aWNlCj4gPj4gZm9y IE1MIExFRCB3aWxsIGJlIHJlZ2lzdGVyZWQgKHByb3ZpZGVkIHRoZXJlIGlzIE1MIERUIG5vZGUp Lgo+ID4+IEJ1dCB0byBtYWtlIGl0IHBvc3NpYmxlIHlvdSBzaG91bGQgaGF2ZSBhbHNvICJkZXBl bmRzIG9uIExFRFNfQ0xBU1MiCj4gPj4gaW4gdGhlIEtjb25maWcgZW50cnkuCj4gPj4KPiA+Cj4g PiBBY2NvcmRpbmcgdG8geW91ciBzdWdnZXN0aW9uLAo+ID4gZGVwZW5kcyBvbiBMRURfQ0xBU1Mg JiYgTEVEU19DTEFTU19GTEFTSCAmJiBPRgo+Cj4gcy9MRURfQ0xBU1MvTEVEU19DTEFTUy8KPgo+ IEFuZCB5b3UgaGF2ZSB0byByZW1vdmUgTEVEU19DTEFTU19GTEFTSCBmcm9tIGFib3ZlIGxpbmUu Cj4KPiA+IGRlcGVuZHMgb24gTEVEU19DTEFTU19NVUxUSUNPTE9SIHx8ICEhTEVEU19DTEFTU19N VUxUSUNPTE9SCj4KPiBzLyEhTEVEU19DTEFTU19NVUxUSUNPTE9SLyFMRURTX0NMQVNTX01VTFRJ Q09MT1IvCj4KPiA+IGRlcGVuZHMgb24gTEVEU19DTEFTU19GTEFTSCB8fCAhTEVEU19DTEFTU19G TEFTSAo+ID4gZGVwZW5kcyBvbiBNRkRfTVQ2MzYwCj4KPiBZb3Ugd2lsbCBuZWVkIFY0TDJfRkxB U0hfTEVEX0NMQVNTIGRlcGVuZGVuY3kgYXMgd2VsbCwgdG8gYXZvaWQKPiBidWlsZCBicmVhaywg d2hlbiBpdCBpcyBzZXQgdG8gJ20nLgo+Cj4gVG8gcmVjYXAsIGZvbGxvd2luZyBibG9jayBvZiBk ZXBlbmRlbmNpZXMgaXMgcmVxdWlyZWQ6Cj4KPiBkZXBlbmRzIG9uIExFRFNfQ0xBU1MgJiYgT0YK PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUiB8fCAhTEVEU19DTEFTU19NVUxUSUNP TE9SCj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNIIHx8ICFMRURTX0NMQVNTX0ZMQVNICj4g ZGVwZW5kcyBvbiBWNEwyX0ZMQVNIX0xFRF9DTEFTUyB8fCAhVjRMMl9GTEFTSF9MRURfQ0xBU1MK PiBkZXBlbmRzIG9uIE1GRF9NVDYzNjAKPgoKTEVEU19NVDYzNjAgZGVwZW5kcyBvbiBMRURTX0NM QVNTX0ZMQVNILCBhbmQgTEVEU19DTEFTU19GTEFTSCBkZXBlbmRzCm9uIExFRFNfQ0xBU1MKSXMg ImRlcGVuZHMgb24gTEVEU19DTEFTUyIgc3RpbGwgbmVlZGVkPwoKPiA+Cj4gPiBhbmQgc291cmNl IGNvZGUgYWRkIGNvbnN0cmFpbnQKPiA+Cj4gPiAjaWYgSVNfRU5BQkxFRChDT05GSUdfTEVEU19D TEFTU19NVUxUSUNPTE9SKQo+ID4gICAgICByZXQgPSBkZXZtX2xlZF9jbGFzc2Rldl9tdWx0aWNv bG9yX3JlZ2lzdGVyX2V4dChwYXJlbnQsICZsZWQtPnJnYiwKPiA+IGluaXRfZGF0YSk7Cj4gPiAj ZW5kaWYKPiA+Cj4gPiAjaWYgSVNfRU5BQkxFRChDT05GSUdfTEVEU19DTEFTU19GTEFTSCkKPiA+ ICAgICAgcmV0ID0gZGV2bV9sZWRfY2xhc3NkZXZfZmxhc2hfcmVnaXN0ZXJfZXh0KHBhcmVudCwg JmxlZC0+Zmxhc2gsIGluaXRfZGF0YSk7Cj4gPiAjZW5kaWYKPgo+IE5vLCB0aGUgZ3VhcmRzIHNo b3VsZCBiZSBpbiBoZWFkZXJzLiBUaGF0J3Mgd2h5IEkgcmVjb21tZW5kZWQgYWRkaW5nCj4gbm8g b3BzIGZvciBMRUQgZmxhc2ggY2xhc3MgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBpbiBwcmV2aW91 cyBlbWFpbC4KPgo+IFBsZWFzZSBjb21wYXJlIGluY2x1ZGUvbGludXgvbGVkLWNsYXNzLW11bHRp Y29sb3IuaCBhbmQgZG8gc2ltaWxhcgo+IGNoYW5nZXMgaW4gaW5jbHVkZS9saW51eC9sZWQtY2xh c3MtZmxhc2guaC4KPgoKQUNLLCBJIHdpbGwgc3VibWl0IGEgZml4ZWQgcGF0Y2ggYWJvdXQgbGVk cy1jbGFzcy1mbGFzaC5oLgoKQnkgdGhlIHdheSwgaWYgQ09ORklHX0xFRF9DTEFTU19NVUxUSUNP TE9SIGlzIG5vdCBlbmFibGVkIGFuZCB3ZSBkb24ndAp1c2UgI2lmIElTX0VOQUJMRUQsCmFjY29y ZGluZyB0byBsZWQtY2xhc3MtbXVsdGljb2xvci5oIHJldHVybiAtRUlOVkFMLAp3ZSB3aWxsIHJl Z2lzdGVyIG11bHRpY29sb3IgZGV2aWNlIGZhaWwgYW5kIGNhdXNlIHByb2JlIGZhaWwuCgo+ID4g PT09PT09PT09PT09PQo+ID4KPiA+IE9yIFNob3VsZCBJIHNlcGVyYXRlIHR3byBkcml2ZXJzPwo+ ID4gb25lIGZvciBSR0IgTEVELCBvbmUgZm9yIE1MIExFRCBhbmQgRkxFRAo+Cj4gVGhpcyB3b3Vs ZCBpbmN1ciB1bm5lY2Vzc2FyeSBjb2RlIGR1cGxpY2F0aW9uLgo+Cj4gLS0KPiBCZXN0IHJlZ2Fy ZHMsCj4gSmFjZWsgQW5hc3pld3NraQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTGludXgtbWVkaWF0ZWsgbWFpbGluZyBsaXN0CkxpbnV4LW1lZGlhdGVr QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1tZWRpYXRlawo= 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=-9.5 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,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 1FD31C5519F for ; Mon, 16 Nov 2020 10:02:55 +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 7A311222C4 for ; Mon, 16 Nov 2020 10:02:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="vSpwemfy"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Sbn5b/vW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7A311222C4 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-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=RWoWwfGJaR9iESQb9wOLb24APCDndJuoDgm1bLG0Zq4=; b=vSpwemfyHU8/ckbNGoATKpdWt tYBop4qb7A27XJ5S9mARqmGRaKpshYqpqnb1A8rKpYg4Hdn5YBmncOlkkLZU2Csd3t1tLMj7YY9/s 4fh3kaytEk5inOPRx4FxQr9woFoqHoFJ7iu8kzCQP0TNKQsE9kTjTegWVmRv3xr4bN6J8D3OGaycZ hSoVb/TuOUOqZBkwADyomL6e6Tm4AIJw3d3kx6C+yCICAHtueW5eTfAEwlCE21sHOKt0LtDNCF3Ck fGpw4bGnPqCvHa0CJDVZAcX8XMwatk/0xsq127FirTyZEn5PeVJ4qh1fJohg2MEC/7CmMKkvlNC9K FAhpO+6RA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kebKQ-0007Ch-45; Mon, 16 Nov 2020 10:01:42 +0000 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kebKN-0007BQ-Ro; Mon, 16 Nov 2020 10:01:40 +0000 Received: by mail-oi1-x243.google.com with SMTP id m17so18194830oie.4; Mon, 16 Nov 2020 02:01:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=mF19ZwIo780m+wantWBq442Gr3sYDvkJbbMnqZkJcqk=; b=Sbn5b/vWMuIEheE9SnWl+WiNU7+9gR8hzT7MVsE1rOGoF9NhdcHWCiJbPyOLqBhvnc R5OsDZiwk0ehiZmQfaHm/A7yqhZRsPNIZ02HSGqbjc5TGP9arSxalYOcvyQ4Ndrd15Us RNtqPVlAFD+c0+NAvUXluQkLSYvgho/BI00U7fcvp5HnZCAMXYr0GGvYuFjDEmkct1gT lsgfIVJ0nmg5+pA4fCA4FyHCKxRjINPaDGgAnfoK+C9nHy7E0jJlLDxL9xwaOQzlbjd/ VGzZPF7lpR7SUaA9MN/jU0+amcBELWc8lquSLwVr+D8LiJB2eVRN1FmVnE5S8e3/kiYZ 8SOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=mF19ZwIo780m+wantWBq442Gr3sYDvkJbbMnqZkJcqk=; b=GCS26AgBhRPtAW4MH2JshmyNMwLRdIHoFvZdFL8UzFv/1vKKYuFJXbtjT4xT5DRcVn K6XW2axxAp8hP73QRiUg/p8Qdg+LCrszyp0MRdk1V1zz5C5Ef0ggg5Pmj3g9WoPqaJuU KHY88n66CRcqg2c3Srr3c/V2X8M34CmiZMZasff+0LiIpTVbUkH5k5vy9FF/JLSSzlR6 9aIwU52bXjoa/jCylwW9QRcj2GlcbroBaAZxsrrIHUb1hvw8bU7quiI0kIxRcyAWjDgW fEraVcNN0XEg803MgKD172836V3yb8hjyd6Oqf0zLr/vilr91W1TfAV2lnKInKJ0FPg7 cNXA== X-Gm-Message-State: AOAM5322J+0yc3G6Wo4AtTjNU52/xAxhOsRHDz/KcYhvgfyLjA8RqL9n FIzxQ4HFMGQBGdffTPSPdkjOGpf6EBvAsAugBT8= X-Google-Smtp-Source: ABdhPJyfEXXi/wTtDJZuiEyBKNQI545S2UU5krCd+c/8mhVnTifSZ4aiQ1TsqAL+nTv6lZmY1GSf68+zI1sopsfuyRM= X-Received: by 2002:aca:4783:: with SMTP id u125mr9490525oia.23.1605520896546; Mon, 16 Nov 2020 02:01:36 -0800 (PST) MIME-Version: 1.0 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> In-Reply-To: From: Gene Chen Date: Mon, 16 Nov 2020 18:01:24 +0800 Message-ID: Subject: Re: [PATCH v5 2/2] leds: mt6360: Add LED driver for MT6360 To: Jacek Anaszewski X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201116_050139_966224_27F0E502 X-CRM114-Status: GOOD ( 40.76 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SmFjZWsgQW5hc3pld3NraSA8amFjZWsuYW5hc3pld3NraUBnbWFpbC5jb20+IOaWvCAyMDIw5bm0 MTDmnIgzMeaXpSDpgLHlha0g5LiK5Y2INjozNOWvq+mBk++8mgo+Cj4gT24gMTAvMzAvMjAgOTo1 MSBBTSwgR2VuZSBDaGVuIHdyb3RlOgo+ID4gSmFjZWsgQW5hc3pld3NraSA8amFjZWsuYW5hc3pl d3NraUBnbWFpbC5jb20+IOaWvCAyMDIw5bm0MTDmnIgyOOaXpSDpgLHkuIkg5LiK5Y2IMToyOOWv q+mBk++8mgo+ID4+Cj4gPj4gT24gMTAvMjcvMjAgMTA6MjggQU0sIEdlbmUgQ2hlbiB3cm90ZToK PiA+Pj4gSmFjZWsgQW5hc3pld3NraSA8amFjZWsuYW5hc3pld3NraUBnbWFpbC5jb20+IOaWvCAy MDIw5bm0MTDmnIgyMeaXpSDpgLHkuIkg5LiK5Y2INTo0N+Wvq+mBk++8mgo+ID4+Pj4KPiA+Pj4+ IE9uIDEwLzIwLzIwIDg6NDQgQU0sIEdlbmUgQ2hlbiB3cm90ZToKPiA+Pj4+PiBKYWNlayBBbmFz emV3c2tpIDxqYWNlay5hbmFzemV3c2tpQGdtYWlsLmNvbT4g5pa8IDIwMjDlubQxMOaciDnml6Ug 6YCx5LqUIOS4iuWNiDU6NTHlr6vpgZPvvJoKPiA+Pj4+Pj4KPiA+Pj4+Pj4gSGkgR2VuZSwKPiA+ Pj4+Pj4KPiA+Pj4+Pj4gT24gMTAvNy8yMCAzOjQyIEFNLCBHZW5lIENoZW4gd3JvdGU6Cj4gPj4+ Pj4+PiBGcm9tOiBHZW5lIENoZW4gPGdlbmVfY2hlbkByaWNodGVrLmNvbT4KPiA+Pj4+Pj4+Cj4g Pj4+Pj4+PiBBZGQgTVQ2MzYwIExFRCBkcml2ZXIgaW5jbHVkZSAyLWNoYW5uZWwgRmxhc2ggTEVE IHdpdGggdG9yY2gvc3Ryb2JlIG1vZGUsCj4gPj4+Pj4+PiAzLWNoYW5uZWwgUkdCIExFRCBzdXBw b3J0IFJlZ2lzdGVyL0ZsYXNoL0JyZWF0aCBNb2RlLCBhbmQgMS1jaGFubmVsIGZvcgo+ID4+Pj4+ Pj4gbW9vbmxpZ2h0IExFRC4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBHZW5l IENoZW4gPGdlbmVfY2hlbkByaWNodGVrLmNvbT4KPiA+Pj4+Pj4+IC0tLQo+ID4+Pj4+Pj4gICAg ICBkcml2ZXJzL2xlZHMvS2NvbmZpZyAgICAgICB8ICAxMiArCj4gPj4+Pj4+PiAgICAgIGRyaXZl cnMvbGVkcy9NYWtlZmlsZSAgICAgIHwgICAxICsKPiA+Pj4+Pj4+ICAgICAgZHJpdmVycy9sZWRz L2xlZHMtbXQ2MzYwLmMgfCA3ODMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gPj4+Pj4+PiAgICAgIDMgZmlsZXMgY2hhbmdlZCwgNzk2IGluc2VydGlvbnMo KykKPiA+Pj4+Pj4+ICAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbGVkcy9sZWRzLW10 NjM2MC5jCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9LY29u ZmlnIGIvZHJpdmVycy9sZWRzL0tjb25maWcKPiA+Pj4+Pj4+IGluZGV4IDFjMTgxZGYuLmM3MTky ZGQgMTAwNjQ0Cj4gPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2xlZHMvS2NvbmZpZwo+ID4+Pj4+Pj4g KysrIGIvZHJpdmVycy9sZWRzL0tjb25maWcKPiA+Pj4+Pj4+IEBAIC0yNzEsNiArMjcxLDE4IEBA IGNvbmZpZyBMRURTX01UNjMyMwo+ID4+Pj4+Pj4gICAgICAgICAgICBUaGlzIG9wdGlvbiBlbmFi bGVzIHN1cHBvcnQgZm9yIG9uLWNoaXAgTEVEIGRyaXZlcnMgZm91bmQgb24KPiA+Pj4+Pj4+ICAg ICAgICAgICAgTWVkaWF0ZWsgTVQ2MzIzIFBNSUMuCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gK2NvbmZp ZyBMRURTX01UNjM2MAo+ID4+Pj4+Pj4gKyAgICAgdHJpc3RhdGUgIkxFRCBTdXBwb3J0IGZvciBN ZWRpYXRlayBNVDYzNjAgUE1JQyIKPiA+Pj4+Pj4+ICsgICAgIGRlcGVuZHMgb24gTEVEU19DTEFT U19GTEFTSCAmJiBPRgo+ID4+Pj4+Pj4gKyAgICAgZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJ Q09MT1IKPiA+Pj4+Pj4KPiA+Pj4+Pj4gU2luY2UgQ09ORklHX0xFRF9DTEFTU19NVUxUSUNPTE9S IGNhbiBiZSB0dXJuZWQgb2ZmIHlvdSBuZWVkIHRvIGhhdmUKPiA+Pj4+Pj4gYmVsb3cgaW5zdGVh ZDoKPiA+Pj4+Pj4KPiA+Pj4+Pj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX01VTFRJQ09MT1IgfHwg ISFMRURTX0NMQVNTX01VTFRJQ09MT1IKPiA+Pgo+ID4+IE15IHR5cG8gaGVyZSwgc2hvdWxkIGJl IG9uZSAiISI6Cj4gPj4KPiA+PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUiB8fCAh TEVEU19DTEFTU19NVUxUSUNPTE9SCj4gPj4KPiA+PiBBbmQgeW91IHNob3VsZCBhbHNvIGhhdmUK PiA+Pgo+ID4+IGRlcGVuZHMgb24gTEVEU19DTEFTU19GTEFTSCB8fCAhTEVEU19DTEFTU19GTEFT SAo+ID4+Cj4gPj4gQnV0IHRvIG1ha2UgaXQgd29yayBjb3JyZWN0bHkgeW91IHdvdWxkIGhhdmUg dG8gYWRkIHJlZ2lzdHJhdGlvbgo+ID4+IHN0dWJzIHRvIGluY2x1ZGUvbGludXgvbGVkLWNsYXNz LWZsYXNoLmggc2ltaWxhcmx5IHRvIExFRCBtYyBzdHVicwo+ID4+IGluIGluY2x1ZGUvbGludXgv bGVkLWNsYXNzLW11bHRpY29sb3IuaC4KPiA+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiBVbmxlc3MgeW91 IHdhbnQgdG8gcHJldmVudCBlbmFibGluZyB0aGUgZHJpdmVyIHdpdGhvdXQgUkdCIExFRCwKPiA+ Pj4+Pj4gYnV0IHRoYXQgZG9lcyBub3Qgc2VlbSB0byBiZSByZWFzb25hYmxlIGF0IGZpcnN0IGds YW5jZS4KPiA+Pj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IE1heSBJIGNoYW5nZSB0byAic2VsZWN0IExF RFNfQ0xBU1NfTVVMVElDT0xPUiI/Cj4gPj4+Pj4gSSBzdXBwb3NlIFJHQiBhbHdheXMgdXNlIG11 bHRpY29sb3IgbW9kZS4KPiA+Pj4+Cj4gPj4+PiBZb3Ugd2lsbCBhbHNvIGhhdmUgbW9vbmxpZ2h0 IExFRCB0aGF0IHdpbGwgbm90IG5lZWQgbXVsdGljb2xvcgo+ID4+Pj4gZnJhbWV3b3JrLiBJcyBp dCBzb21laG93IHRyb3VibGVzb21lIHRvIGtlZXAgImRlcGVuZHMgb24iPwo+ID4+Pj4KPiA+Pj4K PiA+Pj4gSWYgb25seSB1c2UgTUwgTEVEIGFuZCBGTEVELCAgRFRTSSB3aWxsIG9ubHkgZGVmaW5l IE1MIExFRCBhbmQgRkxFRC4KPiA+Pj4gVGhlcmVmb3JlLCB0aGUgZHJpdmVycyBwcm9iZSB3aWxs IG5vdCByZWdpc3RlciByZ2IgbXVsdGljb2xvciBkZXZpY2UuCj4gPj4KPiA+PiBQbGVhc2UgdGVz dCB5b3VyIHVzZSBjYXNlIGFnYWluIHdpdGggbXkgZml4ZWQgImRlcGVuZHMgb24iLgo+ID4+Cj4g Pj4gSW4gY2FzZSB3aGVuIHRoZXJlIGlzIG9ubHkgTUwgTEVEIGFuZCBGTEVEIGluIHRoZSBEVCBp dCBzaG91bGQKPiA+PiByZWdpc3RlciBib3RoIGRldmljZXMgaWYgTEVEU19DTEFTU19GTEFTSCBp cyB0dXJuZWQgb24uCj4gPj4gTXVsdGljb2xvciBmcmFtZXdvcmsgaGFzIG5vdGhpbmcgdG8gZG8g aW4gdGhpcyBjYXNlLgo+ID4+Cj4gPj4gQnV0IGlmIHlvdSBhZGRpdGlvbmFsbHkgaGFkIE1DIExF RCBub2RlLCB0aGVuIGl0IHNob3VsZAo+ID4+IGJlIHJlZ2lzdGVyZWQgb25seSBpZiBMRURTX0NM QVNTX01VTFRJQ09MT1IgaXMgZW5hYmxlZC4KPiA+Pgo+ID4+IFNpbWlsYXJseSwgd2hlbiBGTEVE IG5vZGUgaXMgcHJlc2VudCwgYnV0IExFRFNfQ0xBU1NfRkxBU0gKPiA+PiBpcyBvZmYsIGFuZCBM RURTX0NMQVNTX01VTFRJQ09MT1IgaXMgb24sIHRoZSBkcml2ZXIgc2hvdWxkIHN0aWxsCj4gPj4g Y29tcGlsZSwgYnV0IHJlZ2lzdGVyIG9ubHkgTEVEIE1DIGRldmljZSAoaWYgaXRzIG5vZGUgaXMg cHJlc2VudCkuCj4gPj4KPiA+Cj4gPiBJIHRoaW5rIHRoaXMgY2FzZSBvbmx5IHJlZ2lzdGVyIExF RCBkZXZpY2UsIG5vdCBMRUQgIk1DIiBkZXZpY2UuCj4gPiBCZWNhdXNlIG91ciBGTEFTSCBpcyBu b3QgYSBtdWx0aWNvbG9yIGRldmljZS4KPgo+IE5vLCBoZXJlIEkgd2FzIGRlc2NyaWJpbmcgZm9s bG93aW5nIHNldHVwOgo+Cj4gLSBEVCBGTEVEIG5vZGUgaXMgcHJlc2VudCwgQ09ORklHX0xFRFNf Q0xBU1NfRkxBU0ggaXMgb2ZmCj4gLSBEVCBNQyBub2RlIGlzIHByZXNlbnQsIENPTkZJR19MRURT X0NMQVNTX01VTFRJQ09MT1IgaXMgb24KPgo+IE1MIExFRCBwcmVzZW5jZSBpbiBEVCBpcyBpcnJl bGV2YW50IGluIHRoaXMgY2FzZS4KPiBJdCBzaG91bGQgYmUgYWx3YXlzIHJlZ2lzdGVyZWQgaWYg dGhlcmUgaXMgY29ycmVzcG9uZGluZyBEVCBub2RlCj4gYW5kIExFRFNfQ0xBU1MgaXMgb24uCj4K CkFzIGEgbG9uZyB0aW1lIGRpc2N1c3Npb24sIHdlIGNvbmNsdWRlIHNvbWUgcnVsZXMgYWJvdXQg TVQ2MzYwIExFRCBkcml2ZXIuCkZMRUQgaXMgbmVjZXNzYXJ5LCBzbyBLY29uZmlnIGRlcGVuZHMg b24gTEVEX0NMQVNTX0ZMQVNICk1MIExFRCBpcyBvcHRpb25hbCwgd2hpY2ggaXMgcmVnaXN0ZXJl ZCBhcyBsZWQgY2xhc3MgZGV2aWNlLgpSR0IgTEVEIGNhbiBiZSBlaXRoZXIgc2ltcGxlIGxlZCBj bGFzcyBkZXZpY2Ugb3IgbXVsdGljb2xvciBkZXZpY2UsCndoaWNoIGlzIGRlY2lkZWQgaW4gRFQg bm9kZQpJZiBNdWx0aWNvbG9yIExFRCBEVCBub2RlIGlzIGV4aXN0LCBpdCBzaG91bGQgYmUgcmVn aXN0ZXIgbXVsdGljb2xvcgpkZXZpY2Ugc3VjY2Vzcy4KTWF5YmUgaXQgaXMgbW9yZSBzcGVjaWZp YyB0byBzZW5kIGEgbmV3IHBhdGNoPwoKU2FtcGxlIERUIGFzIGJlbG93CkxFRCAicmVkIiBpcyBz aW1wbGUgbGVkIGNsYXNzIGRldmljZSwgTEVEICJncmVlbiZibHVlIiBpcyBtdWx0aWNvbG9yIGRl dmljZXMuCmxlZEAwIHsKICAgICAgICByZWcgPSA8MD47CiAgICAgICAgZnVuY3Rpb24gPSBMRURf RlVOQ1RJT05fSU5ESUNBVE9SOwogICAgICAgIGNvbG9yID0gPExFRF9DT0xPUl9JRF9SRUQ+Owog ICAgICAgIGxlZC1tYXgtbWljcm9hbXAgPSA8MjQwMDA+Owp9OwpsZWRANiB7CiAgICAgICAgcmVn ID0gPDY+OwogICAgICAgIGZ1bmN0aW9uID0gTEVEX0ZVTkNUSU9OX0lORElDQVRPUjsKICAgICAg ICBjb2xvciA9IDxMRURfQ09MT1JfSURfTVVMVEk+OwoKICAgICAgICBsZWRAMSB7CiAgICAgICAg ICAgICAgICByZWcgPSA8MT47CiAgICAgICAgICAgICAgICBmdW5jdGlvbiA9IExFRF9GVU5DVElP Tl9JTkRJQ0FUT1I7CiAgICAgICAgICAgICAgICBjb2xvciA9IDxMRURfQ09MT1JfSURfR1JFRU4+ OwogICAgICAgICAgICAgICAgbGVkLW1heC1taWNyb2FtcCA9IDwyNDAwMD47CiAgICAgICAgfTsK ICAgICAgICBsZWRAMiB7CiAgICAgICAgICAgICAgICByZWcgPSA8Mj47CiAgICAgICAgICAgICAg ICBmdW5jdGlvbiA9IExFRF9GVU5DVElPTl9JTkRJQ0FUT1I7CiAgICAgICAgICAgICAgICBjb2xv ciA9IDxMRURfQ09MT1JfSURfQkxVRT47CiAgICAgICAgICAgICAgICBsZWQtbWF4LW1pY3JvYW1w ID0gPDI0MDAwPjsKICAgICAgICB9Owp9OwoKPiA+Cj4gPj4gUG9zc2libGUgc2hvdWxkIGJlIGFs c28gdGhlIGNhc2Ugd2hlbiBib3RoIExFRFNfQ0xBU1NfRkxBU0gKPiA+PiBhbmQgTEVEU19DTEFT U19NVUxUSUNPTE9SIGFyZSBvZmYuIFRoZW4gb25seSBMRUQgY2xhc3MgZGV2aWNlCj4gPj4gZm9y IE1MIExFRCB3aWxsIGJlIHJlZ2lzdGVyZWQgKHByb3ZpZGVkIHRoZXJlIGlzIE1MIERUIG5vZGUp Lgo+ID4+IEJ1dCB0byBtYWtlIGl0IHBvc3NpYmxlIHlvdSBzaG91bGQgaGF2ZSBhbHNvICJkZXBl bmRzIG9uIExFRFNfQ0xBU1MiCj4gPj4gaW4gdGhlIEtjb25maWcgZW50cnkuCj4gPj4KPiA+Cj4g PiBBY2NvcmRpbmcgdG8geW91ciBzdWdnZXN0aW9uLAo+ID4gZGVwZW5kcyBvbiBMRURfQ0xBU1Mg JiYgTEVEU19DTEFTU19GTEFTSCAmJiBPRgo+Cj4gcy9MRURfQ0xBU1MvTEVEU19DTEFTUy8KPgo+ IEFuZCB5b3UgaGF2ZSB0byByZW1vdmUgTEVEU19DTEFTU19GTEFTSCBmcm9tIGFib3ZlIGxpbmUu Cj4KPiA+IGRlcGVuZHMgb24gTEVEU19DTEFTU19NVUxUSUNPTE9SIHx8ICEhTEVEU19DTEFTU19N VUxUSUNPTE9SCj4KPiBzLyEhTEVEU19DTEFTU19NVUxUSUNPTE9SLyFMRURTX0NMQVNTX01VTFRJ Q09MT1IvCj4KPiA+IGRlcGVuZHMgb24gTEVEU19DTEFTU19GTEFTSCB8fCAhTEVEU19DTEFTU19G TEFTSAo+ID4gZGVwZW5kcyBvbiBNRkRfTVQ2MzYwCj4KPiBZb3Ugd2lsbCBuZWVkIFY0TDJfRkxB U0hfTEVEX0NMQVNTIGRlcGVuZGVuY3kgYXMgd2VsbCwgdG8gYXZvaWQKPiBidWlsZCBicmVhaywg d2hlbiBpdCBpcyBzZXQgdG8gJ20nLgo+Cj4gVG8gcmVjYXAsIGZvbGxvd2luZyBibG9jayBvZiBk ZXBlbmRlbmNpZXMgaXMgcmVxdWlyZWQ6Cj4KPiBkZXBlbmRzIG9uIExFRFNfQ0xBU1MgJiYgT0YK PiBkZXBlbmRzIG9uIExFRFNfQ0xBU1NfTVVMVElDT0xPUiB8fCAhTEVEU19DTEFTU19NVUxUSUNP TE9SCj4gZGVwZW5kcyBvbiBMRURTX0NMQVNTX0ZMQVNIIHx8ICFMRURTX0NMQVNTX0ZMQVNICj4g ZGVwZW5kcyBvbiBWNEwyX0ZMQVNIX0xFRF9DTEFTUyB8fCAhVjRMMl9GTEFTSF9MRURfQ0xBU1MK PiBkZXBlbmRzIG9uIE1GRF9NVDYzNjAKPgoKTEVEU19NVDYzNjAgZGVwZW5kcyBvbiBMRURTX0NM QVNTX0ZMQVNILCBhbmQgTEVEU19DTEFTU19GTEFTSCBkZXBlbmRzCm9uIExFRFNfQ0xBU1MKSXMg ImRlcGVuZHMgb24gTEVEU19DTEFTUyIgc3RpbGwgbmVlZGVkPwoKPiA+Cj4gPiBhbmQgc291cmNl IGNvZGUgYWRkIGNvbnN0cmFpbnQKPiA+Cj4gPiAjaWYgSVNfRU5BQkxFRChDT05GSUdfTEVEU19D TEFTU19NVUxUSUNPTE9SKQo+ID4gICAgICByZXQgPSBkZXZtX2xlZF9jbGFzc2Rldl9tdWx0aWNv bG9yX3JlZ2lzdGVyX2V4dChwYXJlbnQsICZsZWQtPnJnYiwKPiA+IGluaXRfZGF0YSk7Cj4gPiAj ZW5kaWYKPiA+Cj4gPiAjaWYgSVNfRU5BQkxFRChDT05GSUdfTEVEU19DTEFTU19GTEFTSCkKPiA+ ICAgICAgcmV0ID0gZGV2bV9sZWRfY2xhc3NkZXZfZmxhc2hfcmVnaXN0ZXJfZXh0KHBhcmVudCwg JmxlZC0+Zmxhc2gsIGluaXRfZGF0YSk7Cj4gPiAjZW5kaWYKPgo+IE5vLCB0aGUgZ3VhcmRzIHNo b3VsZCBiZSBpbiBoZWFkZXJzLiBUaGF0J3Mgd2h5IEkgcmVjb21tZW5kZWQgYWRkaW5nCj4gbm8g b3BzIGZvciBMRUQgZmxhc2ggY2xhc3MgcmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyBpbiBwcmV2aW91 cyBlbWFpbC4KPgo+IFBsZWFzZSBjb21wYXJlIGluY2x1ZGUvbGludXgvbGVkLWNsYXNzLW11bHRp Y29sb3IuaCBhbmQgZG8gc2ltaWxhcgo+IGNoYW5nZXMgaW4gaW5jbHVkZS9saW51eC9sZWQtY2xh c3MtZmxhc2guaC4KPgoKQUNLLCBJIHdpbGwgc3VibWl0IGEgZml4ZWQgcGF0Y2ggYWJvdXQgbGVk cy1jbGFzcy1mbGFzaC5oLgoKQnkgdGhlIHdheSwgaWYgQ09ORklHX0xFRF9DTEFTU19NVUxUSUNP TE9SIGlzIG5vdCBlbmFibGVkIGFuZCB3ZSBkb24ndAp1c2UgI2lmIElTX0VOQUJMRUQsCmFjY29y ZGluZyB0byBsZWQtY2xhc3MtbXVsdGljb2xvci5oIHJldHVybiAtRUlOVkFMLAp3ZSB3aWxsIHJl Z2lzdGVyIG11bHRpY29sb3IgZGV2aWNlIGZhaWwgYW5kIGNhdXNlIHByb2JlIGZhaWwuCgo+ID4g PT09PT09PT09PT09PQo+ID4KPiA+IE9yIFNob3VsZCBJIHNlcGVyYXRlIHR3byBkcml2ZXJzPwo+ ID4gb25lIGZvciBSR0IgTEVELCBvbmUgZm9yIE1MIExFRCBhbmQgRkxFRAo+Cj4gVGhpcyB3b3Vs ZCBpbmN1ciB1bm5lY2Vzc2FyeSBjb2RlIGR1cGxpY2F0aW9uLgo+Cj4gLS0KPiBCZXN0IHJlZ2Fy ZHMsCj4gSmFjZWsgQW5hc3pld3NraQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=