From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F411D2FB4 for ; Thu, 27 May 2021 20:11:51 +0000 (UTC) Received: by mail-ej1-f42.google.com with SMTP id lg14so1966172ejb.9 for ; Thu, 27 May 2021 13:11:51 -0700 (PDT) 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-transfer-encoding:content-language; bh=Z4O262zvwdzEulJ1jOXjydwpNCfVHkhFBEvdIzwEWgY=; b=Quo3b25aI5myNRSroj4sBbxZE43SnF6FdFJiHd3iyVpUvlabe1/MFfY+EN/T4dNNw6 EErfCcDdl/ZnNpQEannARjFO+HI6xDdr4mnJL2Rl8L0w0KLHqS7I+r56TepRBMg920ds OOD2lfA7FyJh0KGuQkiIATP2qpLE9if5U54Y2RbWMFdSAFCIUPWlwBI0VFZ3IWqzwEE6 IMuoXYb77w3x7eHTOFzf9mjcyKvumvIGOXPQo52IkQdxv/bVmOix7SomELWjq4UawnTH V8qm5KTtm6eX7suzm3Yq0BjkoTMh274p9W/FwQuTKK4EnAmfr4nZ98rQVdMEwuCGKxFf sqLQ== 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-transfer-encoding :content-language; bh=Z4O262zvwdzEulJ1jOXjydwpNCfVHkhFBEvdIzwEWgY=; b=TEWP28vUk1RlhTSPIMRLsYkfYJjniaOvbuz6lP3HDFhyuOKslWHw4TktGEVb1NTt2N 4b5kkLdMpwiEK7DP0wf8mVuZD/ICQcgL5oI5Hunrts0k6gi2pC9A26B6dY0gBL5tb7yQ +sA9iaUoiaiQXIrVhjhU2b4cC+FRwsZQC/NZ1Ujq6hU8ri/8bizYE1KDeMFPssx3pVvq LAffpgCgjtDpcUZmyQKAfYFUOxpNC49cSp2OsFjPamKWJ0Bm8s3ddDoHiJDlN5ZKgkUb SH195DSYY5+THB8owKL2k8F3CrOoie+1UV2VUoscBc2L+b8tvl5B9d1tGHnVZmHu3JKZ QDGA== X-Gm-Message-State: AOAM531n9LYzERmTLPItLUFrOKcnTDkmydK6Q5Hz1Vi0pMhwDL2AeEsE NfOXNTEe5hG6qqlzCa0ZyQ== X-Google-Smtp-Source: ABdhPJwrJbGNSMtyEy6jE13u3m0gWh7BUIHAkR5HvVPWV2Q1IOR/pipJ+wT5bvil1rm2VKGwaJH6+A== X-Received: by 2002:a17:906:2854:: with SMTP id s20mr5694966ejc.335.1622146310491; Thu, 27 May 2021 13:11:50 -0700 (PDT) Received: from ?IPv6:2a02:810b:f40:e00:34ce:e50a:89a4:5545? ([2a02:810b:f40:e00:34ce:e50a:89a4:5545]) by smtp.gmail.com with ESMTPSA id j7sm1603121edr.79.2021.05.27.13.11.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 May 2021 13:11:49 -0700 (PDT) Subject: Re: [PATCH 05/10] media: hantro: add support for Rockchip RK3036 To: Ezequiel Garcia , =?UTF-8?Q?Heiko_St=c3=bcbner?= Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Philipp Zabel , linux-staging@lists.linux.dev, Rob Herring , Mauro Carvalho Chehab , linux-media@vger.kernel.org, Greg Kroah-Hartman , Lee Jones , devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org References: <20210525152225.154302-1-knaerzche@gmail.com> <2640d65e-772b-6af4-f4be-8ed090693c22@gmail.com> <3559518.1BCLMh4Saa@diego> <4fadcb3d33beadb113e0e41596e5255d0d8d08dd.camel@collabora.com> From: Alex Bee Message-ID: <9113891e-ba88-7402-2226-5b3709215544@gmail.com> Date: Thu, 27 May 2021 22:11:48 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In-Reply-To: <4fadcb3d33beadb113e0e41596e5255d0d8d08dd.camel@collabora.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Hi Ezequiel, Am 27.05.21 um 03:27 schrieb Ezequiel Garcia: > On Thu, 2021-05-27 at 01:58 +0200, Heiko Stübner wrote: >> Am Donnerstag, 27. Mai 2021, 01:27:59 CEST schrieb Alex Bee: >>> Hi Ezequiel, >>> >>> Am 26.05.21 um 12:28 schrieb Ezequiel Garcia: >>>> Hi Alex, >>>> >>>> Thanks a lot for the patch. >>>> >>>> On Tue, 2021-05-25 at 17:22 +0200, Alex Bee wrote: >>>>> RK3036's VPU IP block is the same as RK3288 has, except that it doesn't >>>>> have an encoder, decoding is supported up to 1920x1088 only and the axi >>>>> clock can be set to 300 MHz max. >>>>> >>>>> Add a new RK3036 variant which reflect this differences. >>>>> >>>>> Signed-off-by: Alex Bee >>>>> --- >>>>>   drivers/staging/media/hantro/hantro_drv.c    |  1 + >>>>>   drivers/staging/media/hantro/hantro_hw.h     |  1 + >>>>>   drivers/staging/media/hantro/rk3288_vpu_hw.c | 49 ++++++++++++++++++++ >>>>>   3 files changed, 51 insertions(+) >>>>> >>>>> diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c >>>>> index 38ea7b24036e..4f3c08e85bb8 100644 >>>>> --- a/drivers/staging/media/hantro/hantro_drv.c >>>>> +++ b/drivers/staging/media/hantro/hantro_drv.c >>>>> @@ -490,6 +490,7 @@ static const struct of_device_id of_hantro_match[] = { >>>>>          { .compatible = "rockchip,rk3328-vpu", .data = &rk3328_vpu_variant, }, >>>>>          { .compatible = "rockchip,rk3288-vpu", .data = &rk3288_vpu_variant, }, >>>>>          { .compatible = "rockchip,rk3066-vpu", .data = &rk3066_vpu_variant, }, >>>>> +       { .compatible = "rockchip,rk3036-vpu", .data = &rk3036_vpu_variant, }, >>>>>   #endif >>>>>   #ifdef CONFIG_VIDEO_HANTRO_IMX8M >>>>>          { .compatible = "nxp,imx8mq-vpu", .data = &imx8mq_vpu_variant, }, >>>>> diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h >>>>> index de2bc367a15a..d8d6b0d3c3b3 100644 >>>>> --- a/drivers/staging/media/hantro/hantro_hw.h >>>>> +++ b/drivers/staging/media/hantro/hantro_hw.h >>>>> @@ -164,6 +164,7 @@ extern const struct hantro_variant rk3399_vpu_variant; >>>>>   extern const struct hantro_variant rk3328_vpu_variant; >>>>>   extern const struct hantro_variant rk3288_vpu_variant; >>>>>   extern const struct hantro_variant rk3066_vpu_variant; >>>>> +extern const struct hantro_variant rk3036_vpu_variant; >>>>>   extern const struct hantro_variant imx8mq_vpu_variant; >>>>>   extern const struct hantro_variant sama5d4_vdec_variant; >>>>> >>>>> diff --git a/drivers/staging/media/hantro/rk3288_vpu_hw.c b/drivers/staging/media/hantro/rk3288_vpu_hw.c >>>>> index 29805c4bd92f..c4684df4e012 100644 >>>>> --- a/drivers/staging/media/hantro/rk3288_vpu_hw.c >>>>> +++ b/drivers/staging/media/hantro/rk3288_vpu_hw.c >>>>> @@ -174,6 +174,13 @@ static irqreturn_t rk3288_vepu_irq(int irq, void *dev_id) >>>>>          return IRQ_HANDLED; >>>>>   } >>>>> >>>>> +static int rk3036_vpu_hw_init(struct hantro_dev *vpu) >>>>> +{ >>>>> +       /* Bump ACLKs to max. possible freq. to improve performance. */ >>>>> +       clk_set_rate(vpu->clocks[0].clk, RK3066_ACLK_MAX_FREQ); >>>>> +       return 0; >>>>> +} >>>>> + >>>>>   static int rk3066_vpu_hw_init(struct hantro_dev *vpu) >>>>>   { >>>>>          /* Bump ACLKs to max. possible freq. to improve performance. */ >>>>> @@ -209,6 +216,27 @@ static void rk3288_vpu_enc_reset(struct hantro_ctx *ctx) >>>>>   /* >>>>>    * Supported codec ops. >>>>>    */ >>>>> +static const struct hantro_codec_ops rk3036_vpu_codec_ops[] = { >>>>> +       [HANTRO_MODE_H264_DEC] = { >>>>> +               .run = hantro_g1_h264_dec_run, >>>>> +               .reset = hantro_g1_reset, >>>>> +               .init = hantro_h264_dec_init, >>>>> +               .exit = hantro_h264_dec_exit, >>>>> +       }, >>>>> +       [HANTRO_MODE_MPEG2_DEC] = { >>>>> +               .run = hantro_g1_mpeg2_dec_run, >>>>> +               .reset = hantro_g1_reset, >>>>> +               .init = hantro_mpeg2_dec_init, >>>>> +               .exit = hantro_mpeg2_dec_exit, >>>>> +       }, >>>>> +       [HANTRO_MODE_VP8_DEC] = { >>>>> +               .run = hantro_g1_vp8_dec_run, >>>>> +               .reset = hantro_g1_reset, >>>>> +               .init = hantro_vp8_dec_init, >>>>> +               .exit = hantro_vp8_dec_exit, >>>>> +       }, >>>>> +}; >>>>> + >>>>>   static const struct hantro_codec_ops rk3066_vpu_codec_ops[] = { >>>>>          [HANTRO_MODE_JPEG_ENC] = { >>>>>                  .run = hantro_h1_jpeg_enc_run, >>>>> @@ -269,6 +297,10 @@ static const struct hantro_codec_ops rk3288_vpu_codec_ops[] = { >>>>>    * VPU variant. >>>>>    */ >>>>> >>>>> +static const struct hantro_irq rk3036_irqs[] = { >>>>> +       { "vdpu", hantro_g1_irq }, >>>>> +}; >>>>> + >>>>>   static const struct hantro_irq rk3288_irqs[] = { >>>>>          { "vepu", rk3288_vepu_irq }, >>>>>          { "vdpu", hantro_g1_irq }, >>>>> @@ -283,6 +315,23 @@ static const char * const rk3288_clk_names[] = { >>>>>          "aclk", "hclk" >>>>>   }; >>>>> >>>>> +const struct hantro_variant rk3036_vpu_variant = { >>>>> +       .dec_offset = 0x400, >>>> If it doesn't have an encoder, then you should just >>>> use dec_offset = 0x0. >>>> >>>> Thanks, >>>> Ezequiel >>>> >>> That would mean, I'd have to adapt the register offset in the device >>> tree - I'd prefer to keep it in line with the TRM. Unless you insist, >>> I'd like to keep it this way (It's , btw, the very same for RK3328). >> I'd agree with Alex ... ideally the devicetree should match the block >> register area from the TRM not some internal offset. >> [DT describes hardware etc etc ;-) ] >> > Well, I've always considered this internal offset as something unfortunate > we didn't do well when we upstreamed RK3288. > > The RK3288 TRM documents a so-called "VPU combo", and then documents > the encoder and the decoder cores as separate engines, with > separate register blocks (called VEPU and VDPU). In fact, for each > register block you'll see swreg0 documented at offset 0x0. I've always looked at the "Address Mapping" section in the TRMs when I checked the register offsets. I can't find a seperation the vpu block there (for any SoC). I've found it more unfortunate, that they started with register offset 0x0 for vdpu and vepu, since none of the SoCs (so far) can use the blocks separately. > (In some integrations they can operate independently, but iirc not in RK3288.) > > So to be clear, instead of: > > vpu: video-codec@ff9a0000 { > compatible = "rockchip,rk3288-vpu"; > reg = <0x0 0xff9a0000 0x0 0x800>; > interrupts = , > ; > interrupt-names = "vepu", "vdpu"; > clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; > clock-names = "aclk", "hclk"; > ... > > It could have looked like: > > vpu: video-codec@ff9a0000 { > compatible = "rockchip,rk3288-vpu"; > reg = <0x0 0xff9a0000 0x0 0x400> > <0x0 0xff9a0400 0x0 0x400>; > ... > > I guess I missed this when RK3328 was pushed, but OTOH I don't > see any real impact in doing things this way. So at the end > of the day, I'm fine either way. > > BTW, the series is not adding the vpu node for arch/arm/boot/dts/rk3036.dtsi right? Ups, yes - I missed to submit this patch with v1 - I added it in its original version to v2 (so we know, what we are talking about)- If you think it should be changed, please reply to v2. > Thanks a lot! > Ezequiel > Thanks, Alex 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=-12.2 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,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 CDF38C47089 for ; Thu, 27 May 2021 20:12:00 +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 85AD2613CC for ; Thu, 27 May 2021 20:12:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 85AD2613CC 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-rockchip-bounces+linux-rockchip=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.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EEiJoFHmy12EX8GNO8N2Wa4Jcw4BwuRl0tPhPo43XSE=; b=YmFccpkIGT82vD+aC6xsLN4gOq +De3zszXtsaLM7B5zuJYDZWOXsFWAyYcmHE8SltDjIR3XDT7+RNprhfE95ywJ//6NQWWbznlxeqBA YmsCjsKq3hue5KbuaQhDfEVtR74ZDcInWbMMlj3D23nJaiv5P5lsQ+ZPN5Kxy/ZS/iMQKJ3BGDvfF o/P2pBAQCqgONe7WeOBZUZVb1zFU8Wb8S5xi1Dy7jLlaiTexUDDYvGah+S+ny7B/yLUO/j4jMpfy3 H0e9lTNLwU0JbX33OIoD9/teT2QidJ7g0gCc9y3z8OUeiIdtbXIOJT66g8qiw2QnQVRCC0xFvvvBm Klu9VmsA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lmMMF-009DcE-Gq; Thu, 27 May 2021 20:11:55 +0000 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lmMMB-009DZ7-VL; Thu, 27 May 2021 20:11:53 +0000 Received: by mail-ej1-x62b.google.com with SMTP id z12so2112264ejw.0; Thu, 27 May 2021 13:11:51 -0700 (PDT) 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-transfer-encoding:content-language; bh=Z4O262zvwdzEulJ1jOXjydwpNCfVHkhFBEvdIzwEWgY=; b=Quo3b25aI5myNRSroj4sBbxZE43SnF6FdFJiHd3iyVpUvlabe1/MFfY+EN/T4dNNw6 EErfCcDdl/ZnNpQEannARjFO+HI6xDdr4mnJL2Rl8L0w0KLHqS7I+r56TepRBMg920ds OOD2lfA7FyJh0KGuQkiIATP2qpLE9if5U54Y2RbWMFdSAFCIUPWlwBI0VFZ3IWqzwEE6 IMuoXYb77w3x7eHTOFzf9mjcyKvumvIGOXPQo52IkQdxv/bVmOix7SomELWjq4UawnTH V8qm5KTtm6eX7suzm3Yq0BjkoTMh274p9W/FwQuTKK4EnAmfr4nZ98rQVdMEwuCGKxFf sqLQ== 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-transfer-encoding :content-language; bh=Z4O262zvwdzEulJ1jOXjydwpNCfVHkhFBEvdIzwEWgY=; b=MNFjjmU+vrpVbGoBNBFQ6Xd+OfasySEXI6x7pm9BIxDjdRI9NcBe/YSekbdBxmeVZI ZJtG64zl3Yyi5RJX1GcUXjgVsM/1eChvOoQHjATZgkk0ARUAd0PefRFsaZwLhOf/Xd7H ssixNT6ZvH2Udm7YoIMve8kNiCQkJgT04J0yRlgLMz++a4G78CeCVXRsTJCnVDItkk0U u9Gg3+I5Lm17rOhq5M6yO2njoKjoMorBF21JtgBXqTHfTA6ga4MS3dX2uMdo6adYMUyY HhQuEMqTLrrc54yZwitRQMv8NRE1lgXbR6nmW5pwkhZXnl9IU+URrFZr3Hn/aWuKOYKO yDGg== X-Gm-Message-State: AOAM531fq4ldkBV3CNB2ilKeAUxUh6tBhC94vMF5YVOFR3627PZO8Klr WPgQLjcVH0NsN2CVZkMSP2iIEdolCaL+ X-Google-Smtp-Source: ABdhPJwrJbGNSMtyEy6jE13u3m0gWh7BUIHAkR5HvVPWV2Q1IOR/pipJ+wT5bvil1rm2VKGwaJH6+A== X-Received: by 2002:a17:906:2854:: with SMTP id s20mr5694966ejc.335.1622146310491; Thu, 27 May 2021 13:11:50 -0700 (PDT) Received: from ?IPv6:2a02:810b:f40:e00:34ce:e50a:89a4:5545? ([2a02:810b:f40:e00:34ce:e50a:89a4:5545]) by smtp.gmail.com with ESMTPSA id j7sm1603121edr.79.2021.05.27.13.11.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 May 2021 13:11:49 -0700 (PDT) Subject: Re: [PATCH 05/10] media: hantro: add support for Rockchip RK3036 To: Ezequiel Garcia , =?UTF-8?Q?Heiko_St=c3=bcbner?= Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Philipp Zabel , linux-staging@lists.linux.dev, Rob Herring , Mauro Carvalho Chehab , linux-media@vger.kernel.org, Greg Kroah-Hartman , Lee Jones , devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org References: <20210525152225.154302-1-knaerzche@gmail.com> <2640d65e-772b-6af4-f4be-8ed090693c22@gmail.com> <3559518.1BCLMh4Saa@diego> <4fadcb3d33beadb113e0e41596e5255d0d8d08dd.camel@collabora.com> From: Alex Bee Message-ID: <9113891e-ba88-7402-2226-5b3709215544@gmail.com> Date: Thu, 27 May 2021 22:11:48 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <4fadcb3d33beadb113e0e41596e5255d0d8d08dd.camel@collabora.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210527_131152_086323_B962BFFD X-CRM114-Status: GOOD ( 37.72 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org SGkgRXplcXVpZWwsCgpBbSAyNy4wNS4yMSB1bSAwMzoyNyBzY2hyaWViIEV6ZXF1aWVsIEdhcmNp YToKPiBPbiBUaHUsIDIwMjEtMDUtMjcgYXQgMDE6NTggKzAyMDAsIEhlaWtvIFN0w7xibmVyIHdy b3RlOgo+PiBBbSBEb25uZXJzdGFnLCAyNy4gTWFpIDIwMjEsIDAxOjI3OjU5IENFU1Qgc2Nocmll YiBBbGV4IEJlZToKPj4+IEhpIEV6ZXF1aWVsLAo+Pj4KPj4+IEFtIDI2LjA1LjIxIHVtIDEyOjI4 IHNjaHJpZWIgRXplcXVpZWwgR2FyY2lhOgo+Pj4+IEhpIEFsZXgsCj4+Pj4KPj4+PiBUaGFua3Mg YSBsb3QgZm9yIHRoZSBwYXRjaC4KPj4+Pgo+Pj4+IE9uIFR1ZSwgMjAyMS0wNS0yNSBhdCAxNzoy MiArMDIwMCwgQWxleCBCZWUgd3JvdGU6Cj4+Pj4+IFJLMzAzNidzIFZQVSBJUCBibG9jayBpcyB0 aGUgc2FtZSBhcyBSSzMyODggaGFzLCBleGNlcHQgdGhhdCBpdCBkb2Vzbid0Cj4+Pj4+IGhhdmUg YW4gZW5jb2RlciwgZGVjb2RpbmcgaXMgc3VwcG9ydGVkIHVwIHRvIDE5MjB4MTA4OCBvbmx5IGFu ZCB0aGUgYXhpCj4+Pj4+IGNsb2NrIGNhbiBiZSBzZXQgdG8gMzAwIE1IeiBtYXguCj4+Pj4+Cj4+ Pj4+IEFkZCBhIG5ldyBSSzMwMzYgdmFyaWFudCB3aGljaCByZWZsZWN0IHRoaXMgZGlmZmVyZW5j ZXMuCj4+Pj4+Cj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEFsZXggQmVlIDxrbmFlcnpjaGVAZ21haWwu Y29tPgo+Pj4+PiAtLS0KPj4+Pj4gIMKgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX2Rydi5jwqDCoMKgIHzCoCAxICsKPj4+Pj4gIMKgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9o YW50cm8vaGFudHJvX2h3LmjCoMKgwqDCoCB8wqAgMSArCj4+Pj4+ICDCoCBkcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL3JrMzI4OF92cHVfaHcuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysr Cj4+Pj4+ICDCoCAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKykKPj4+Pj4KPj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jIGIv ZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2LmMKPj4+Pj4gaW5kZXggMzhl YTdiMjQwMzZlLi40ZjNjMDhlODViYjggMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jCj4+Pj4+IEBAIC00OTAsNiArNDkwLDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2ZfaGFudHJvX21hdGNoW10gPSB7Cj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgIHsgLmNvbXBhdGlibGUgPSAicm9ja2NoaXAscmszMzI4LXZwdSIsIC5k YXRhID0gJnJrMzMyOF92cHVfdmFyaWFudCwgfSwKPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgeyAu Y29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMyODgtdnB1IiwgLmRhdGEgPSAmcmszMjg4X3ZwdV92 YXJpYW50LCB9LAo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCB7IC5jb21wYXRpYmxlID0gInJvY2tj aGlwLHJrMzA2Ni12cHUiLCAuZGF0YSA9ICZyazMwNjZfdnB1X3ZhcmlhbnQsIH0sCj4+Pj4+ICvC oMKgwqDCoMKgwqAgeyAuY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMwMzYtdnB1IiwgLmRhdGEg PSAmcmszMDM2X3ZwdV92YXJpYW50LCB9LAo+Pj4+PiAgwqAgI2VuZGlmCj4+Pj4+ICDCoCAjaWZk ZWYgQ09ORklHX1ZJREVPX0hBTlRST19JTVg4TQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCB7IC5j b21wYXRpYmxlID0gIm54cCxpbXg4bXEtdnB1IiwgLmRhdGEgPSAmaW14OG1xX3ZwdV92YXJpYW50 LCB9LAo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50 cm9faHcuaCBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPj4+Pj4g aW5kZXggZGUyYmMzNjdhMTVhLi5kOGQ2YjBkM2MzYjMgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZl cnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPj4+Pj4gKysrIGIvZHJpdmVycy9z dGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaAo+Pj4+PiBAQCAtMTY0LDYgKzE2NCw3IEBA IGV4dGVybiBjb25zdCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgcmszMzk5X3ZwdV92YXJpYW50Owo+ Pj4+PiAgwqAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBoYW50cm9fdmFyaWFudCByazMzMjhfdnB1X3Zh cmlhbnQ7Cj4+Pj4+ICDCoCBleHRlcm4gY29uc3Qgc3RydWN0IGhhbnRyb192YXJpYW50IHJrMzI4 OF92cHVfdmFyaWFudDsKPj4+Pj4gIMKgIGV4dGVybiBjb25zdCBzdHJ1Y3QgaGFudHJvX3Zhcmlh bnQgcmszMDY2X3ZwdV92YXJpYW50Owo+Pj4+PiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBoYW50cm9f dmFyaWFudCByazMwMzZfdnB1X3ZhcmlhbnQ7Cj4+Pj4+ICDCoCBleHRlcm4gY29uc3Qgc3RydWN0 IGhhbnRyb192YXJpYW50IGlteDhtcV92cHVfdmFyaWFudDsKPj4+Pj4gIMKgIGV4dGVybiBjb25z dCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgc2FtYTVkNF92ZGVjX3ZhcmlhbnQ7Cj4+Pj4+ICAgIAo+ Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1 X2h3LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL3JrMzI4OF92cHVfaHcuYwo+Pj4+ PiBpbmRleCAyOTgwNWM0YmQ5MmYuLmM0Njg0ZGY0ZTAxMiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1X2h3LmMKPj4+Pj4gKysrIGIvZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1X2h3LmMKPj4+Pj4gQEAgLTE3NCw2 ICsxNzQsMTMgQEAgc3RhdGljIGlycXJldHVybl90IHJrMzI4OF92ZXB1X2lycShpbnQgaXJxLCB2 b2lkICpkZXZfaWQpCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBJUlFfSEFORExFRDsK Pj4+Pj4gIMKgIH0KPj4+Pj4gICAgCj4+Pj4+ICtzdGF0aWMgaW50IHJrMzAzNl92cHVfaHdfaW5p dChzdHJ1Y3QgaGFudHJvX2RldiAqdnB1KQo+Pj4+PiArewo+Pj4+PiArwqDCoMKgwqDCoMKgIC8q IEJ1bXAgQUNMS3MgdG8gbWF4LiBwb3NzaWJsZSBmcmVxLiB0byBpbXByb3ZlIHBlcmZvcm1hbmNl LiAqLwo+Pj4+PiArwqDCoMKgwqDCoMKgIGNsa19zZXRfcmF0ZSh2cHUtPmNsb2Nrc1swXS5jbGss IFJLMzA2Nl9BQ0xLX01BWF9GUkVRKTsKPj4+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+ Pj4gK30KPj4+Pj4gKwo+Pj4+PiAgwqAgc3RhdGljIGludCByazMwNjZfdnB1X2h3X2luaXQoc3Ry dWN0IGhhbnRyb19kZXYgKnZwdSkKPj4+Pj4gIMKgIHsKPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAg LyogQnVtcCBBQ0xLcyB0byBtYXguIHBvc3NpYmxlIGZyZXEuIHRvIGltcHJvdmUgcGVyZm9ybWFu Y2UuICovCj4+Pj4+IEBAIC0yMDksNiArMjE2LDI3IEBAIHN0YXRpYyB2b2lkIHJrMzI4OF92cHVf ZW5jX3Jlc2V0KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4+Pj4+ICDCoCAvKgo+Pj4+PiAgwqDC oCAqIFN1cHBvcnRlZCBjb2RlYyBvcHMuCj4+Pj4+ICDCoMKgICovCj4+Pj4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGhhbnRyb19jb2RlY19vcHMgcmszMDM2X3ZwdV9jb2RlY19vcHNbXSA9IHsKPj4+ Pj4gK8KgwqDCoMKgwqDCoCBbSEFOVFJPX01PREVfSDI2NF9ERUNdID0gewo+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAucnVuID0gaGFudHJvX2cxX2gyNjRfZGVjX3J1biwKPj4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnJlc2V0ID0gaGFudHJvX2cxX3Jlc2V0 LAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuaW5pdCA9IGhhbnRyb19oMjY0 X2RlY19pbml0LAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuZXhpdCA9IGhh bnRyb19oMjY0X2RlY19leGl0LAo+Pj4+PiArwqDCoMKgwqDCoMKgIH0sCj4+Pj4+ICvCoMKgwqDC oMKgwqAgW0hBTlRST19NT0RFX01QRUcyX0RFQ10gPSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5ydW4gPSBoYW50cm9fZzFfbXBlZzJfZGVjX3J1biwKPj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnJlc2V0ID0gaGFudHJvX2cxX3Jlc2V0LAo+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuaW5pdCA9IGhhbnRyb19tcGVnMl9kZWNfaW5p dCwKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmV4aXQgPSBoYW50cm9fbXBl ZzJfZGVjX2V4aXQsCj4+Pj4+ICvCoMKgwqDCoMKgwqAgfSwKPj4+Pj4gK8KgwqDCoMKgwqDCoCBb SEFOVFJPX01PREVfVlA4X0RFQ10gPSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC5ydW4gPSBoYW50cm9fZzFfdnA4X2RlY19ydW4sCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5yZXNldCA9IGhhbnRyb19nMV9yZXNldCwKPj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLmluaXQgPSBoYW50cm9fdnA4X2RlY19pbml0LAo+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuZXhpdCA9IGhhbnRyb192cDhfZGVjX2V4aXQsCj4+ Pj4+ICvCoMKgwqDCoMKgwqAgfSwKPj4+Pj4gK307Cj4+Pj4+ICsKPj4+Pj4gIMKgIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaGFudHJvX2NvZGVjX29wcyByazMwNjZfdnB1X2NvZGVjX29wc1tdID0gewo+ Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBbSEFOVFJPX01PREVfSlBFR19FTkNdID0gewo+Pj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnJ1biA9IGhhbnRyb19oMV9qcGVnX2Vu Y19ydW4sCj4+Pj4+IEBAIC0yNjksNiArMjk3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGFu dHJvX2NvZGVjX29wcyByazMyODhfdnB1X2NvZGVjX29wc1tdID0gewo+Pj4+PiAgwqDCoCAqIFZQ VSB2YXJpYW50Lgo+Pj4+PiAgwqDCoCAqLwo+Pj4+PiAgICAKPj4+Pj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaGFudHJvX2lycSByazMwMzZfaXJxc1tdID0gewo+Pj4+PiArwqDCoMKgwqDCoMKgIHsg InZkcHUiLCBoYW50cm9fZzFfaXJxIH0sCj4+Pj4+ICt9Owo+Pj4+PiArCj4+Pj4+ICDCoCBzdGF0 aWMgY29uc3Qgc3RydWN0IGhhbnRyb19pcnEgcmszMjg4X2lycXNbXSA9IHsKPj4+Pj4gIMKgwqDC oMKgwqDCoMKgwqAgeyAidmVwdSIsIHJrMzI4OF92ZXB1X2lycSB9LAo+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoCB7ICJ2ZHB1IiwgaGFudHJvX2cxX2lycSB9LAo+Pj4+PiBAQCAtMjgzLDYgKzMxNSwy MyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJrMzI4OF9jbGtfbmFtZXNbXSA9IHsKPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqAgImFjbGsiLCAiaGNsayIKPj4+Pj4gIMKgIH07Cj4+Pj4+ICAg IAo+Pj4+PiArY29uc3Qgc3RydWN0IGhhbnRyb192YXJpYW50IHJrMzAzNl92cHVfdmFyaWFudCA9 IHsKPj4+Pj4gK8KgwqDCoMKgwqDCoCAuZGVjX29mZnNldCA9IDB4NDAwLAo+Pj4+IElmIGl0IGRv ZXNuJ3QgaGF2ZSBhbiBlbmNvZGVyLCB0aGVuIHlvdSBzaG91bGQganVzdAo+Pj4+IHVzZSBkZWNf b2Zmc2V0ID0gMHgwLgo+Pj4+Cj4+Pj4gVGhhbmtzLAo+Pj4+IEV6ZXF1aWVsCj4+Pj4KPj4+IFRo YXQgd291bGQgbWVhbiwgSSdkIGhhdmUgdG8gYWRhcHQgdGhlIHJlZ2lzdGVyIG9mZnNldCBpbiB0 aGUgZGV2aWNlCj4+PiB0cmVlIC0gSSdkIHByZWZlciB0byBrZWVwIGl0IGluIGxpbmUgd2l0aCB0 aGUgVFJNLiBVbmxlc3MgeW91IGluc2lzdCwKPj4+IEknZCBsaWtlIHRvIGtlZXAgaXQgdGhpcyB3 YXkgKEl0J3MgLCBidHcsIHRoZSB2ZXJ5IHNhbWUgZm9yIFJLMzMyOCkuCj4+IEknZCBhZ3JlZSB3 aXRoIEFsZXggLi4uIGlkZWFsbHkgdGhlIGRldmljZXRyZWUgc2hvdWxkIG1hdGNoIHRoZSBibG9j awo+PiByZWdpc3RlciBhcmVhIGZyb20gdGhlIFRSTSBub3Qgc29tZSBpbnRlcm5hbCBvZmZzZXQu Cj4+IFtEVCBkZXNjcmliZXMgaGFyZHdhcmUgZXRjIGV0YyA7LSkgXQo+Pgo+IFdlbGwsIEkndmUg YWx3YXlzIGNvbnNpZGVyZWQgdGhpcyBpbnRlcm5hbCBvZmZzZXQgYXMgc29tZXRoaW5nIHVuZm9y dHVuYXRlCj4gd2UgZGlkbid0IGRvIHdlbGwgd2hlbiB3ZSB1cHN0cmVhbWVkIFJLMzI4OC4KPgo+ IFRoZSBSSzMyODggVFJNIGRvY3VtZW50cyBhIHNvLWNhbGxlZCAiVlBVIGNvbWJvIiwgYW5kIHRo ZW4gZG9jdW1lbnRzCj4gdGhlIGVuY29kZXIgYW5kIHRoZSBkZWNvZGVyIGNvcmVzIGFzIHNlcGFy YXRlIGVuZ2luZXMsIHdpdGgKPiBzZXBhcmF0ZSByZWdpc3RlciBibG9ja3MgKGNhbGxlZCBWRVBV IGFuZCBWRFBVKS4gSW4gZmFjdCwgZm9yIGVhY2gKPiByZWdpc3RlciBibG9jayB5b3UnbGwgc2Vl IHN3cmVnMCBkb2N1bWVudGVkIGF0IG9mZnNldCAweDAuCgpJJ3ZlIGFsd2F5cyBsb29rZWQgYXQg dGhlICJBZGRyZXNzIE1hcHBpbmciIHNlY3Rpb24gaW4gdGhlIFRSTXMgd2hlbiBJIApjaGVja2Vk IHRoZSByZWdpc3RlciBvZmZzZXRzLiBJIGNhbid0IGZpbmQgYSBzZXBlcmF0aW9uIHRoZSB2cHUg YmxvY2sgCnRoZXJlIChmb3IgYW55IFNvQykuCgpJJ3ZlIGZvdW5kIGl0IG1vcmUgdW5mb3J0dW5h dGUsIHRoYXQgdGhleSBzdGFydGVkIHdpdGggcmVnaXN0ZXIgb2Zmc2V0IAoweDAgZm9yIHZkcHUg YW5kIHZlcHUsIHNpbmNlIG5vbmUgb2YgdGhlIFNvQ3MgKHNvIGZhcikgY2FuIHVzZSB0aGUgCmJs b2NrcyBzZXBhcmF0ZWx5LgoKPiAoSW4gc29tZSBpbnRlZ3JhdGlvbnMgdGhleSBjYW4gb3BlcmF0 ZSBpbmRlcGVuZGVudGx5LCBidXQgaWlyYyBub3QgaW4gUkszMjg4LikKPgo+IFNvIHRvIGJlIGNs ZWFyLCBpbnN0ZWFkIG9mOgo+Cj4gICAgICAgICAgdnB1OiB2aWRlby1jb2RlY0BmZjlhMDAwMCB7 Cj4gICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4OC12cHUiOwo+ ICAgICAgICAgICAgICAgICAgcmVnID0gPDB4MCAweGZmOWEwMDAwIDB4MCAweDgwMD47Cj4gICAg ICAgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPEdJQ19TUEkgOSBJUlFfVFlQRV9MRVZFTF9ISUdI PiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R0lDX1NQSSAxMCBJUlFfVFlQRV9M RVZFTF9ISUdIPjsKPiAgICAgICAgICAgICAgICAgIGludGVycnVwdC1uYW1lcyA9ICJ2ZXB1Iiwg InZkcHUiOwo+ICAgICAgICAgICAgICAgICAgY2xvY2tzID0gPCZjcnUgQUNMS19WQ09ERUM+LCA8 JmNydSBIQ0xLX1ZDT0RFQz47Cj4gICAgICAgICAgICAgICAgICBjbG9jay1uYW1lcyA9ICJhY2xr IiwgImhjbGsiOwo+ICAgICAgICAgICAgICAgICAgLi4uCj4KPiBJdCBjb3VsZCBoYXZlIGxvb2tl ZCBsaWtlOgo+Cj4gICAgICAgICAgdnB1OiB2aWRlby1jb2RlY0BmZjlhMDAwMCB7Cj4gICAgICAg ICAgICAgICAgICBjb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4OC12cHUiOwo+ICAgICAgICAg ICAgICAgICAgcmVnID0gPDB4MCAweGZmOWEwMDAwIDB4MCAweDQwMD4KPiAgICAgICAgICAgICAg ICAgICAgICAgIDwweDAgMHhmZjlhMDQwMCAweDAgMHg0MDA+Owo+ICAgICAgICAgICAgICAgICAg Li4uCj4KPiBJIGd1ZXNzIEkgbWlzc2VkIHRoaXMgd2hlbiBSSzMzMjggd2FzIHB1c2hlZCwgYnV0 IE9UT0ggSSBkb24ndAo+IHNlZSBhbnkgcmVhbCBpbXBhY3QgaW4gZG9pbmcgdGhpbmdzIHRoaXMg d2F5LiBTbyBhdCB0aGUgZW5kCj4gb2YgdGhlIGRheSwgSSdtIGZpbmUgZWl0aGVyIHdheS4KPgo+ IEJUVywgdGhlIHNlcmllcyBpcyBub3QgYWRkaW5nIHRoZSB2cHUgbm9kZSBmb3IgYXJjaC9hcm0v Ym9vdC9kdHMvcmszMDM2LmR0c2kgcmlnaHQ/CgpVcHMsIHllcyAtIEkgbWlzc2VkIHRvIHN1Ym1p dCB0aGlzIHBhdGNoIHdpdGggdjEgLSBJIGFkZGVkIGl0IGluIGl0cyAKb3JpZ2luYWwgdmVyc2lv biB0byB2MiAoc28gd2Uga25vdywgd2hhdCB3ZSBhcmUgdGFsa2luZyBhYm91dCktCgpJZiB5b3Ug dGhpbmsgaXQgc2hvdWxkIGJlIGNoYW5nZWQsIHBsZWFzZSByZXBseSB0byB2Mi4KCj4gVGhhbmtz IGEgbG90IQo+IEV6ZXF1aWVsCj4KVGhhbmtzLAoKQWxleAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApM aW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK 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=-12.2 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,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 99C30C4708C for ; Thu, 27 May 2021 20:13:20 +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 5A923613D4 for ; Thu, 27 May 2021 20:13:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5A923613D4 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=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+F5+xYNIlUszAjfd7y3IxYQnm0c/c8H7bLdL9/vqUFM=; b=QOTZfQBeeiAJG0Q/ExWYnEWBCr WtWeySu+RGKO4g7zjjnikeU9MYpvl0JkDroPpZI90t62QRN90+fLYWvdJSzB/QJpk0jEvJ3ot4jtQ 3AL8X/10dbzGohd9GaGsNxtuWZo5XadTzXLDekBeiq6nCGy0BBNTb642+6zh/guv7swISbs2SF9K9 3W5Dxx/cwKmWC22K+TwoRVif/bUfLnjsnx0qMhGmb5LOX7/EuwvWh//ZAP1aMYDi5zh9jvKToqjBK AXUr92OMPm7lGpl0xmxZoEtvgGk07zz+bU40GrKrvqDhPKRTw6z+45yQ6OVN0seIAtXVJ7H6wDQRL gL67JVnw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lmMML-009Ddr-DI; Thu, 27 May 2021 20:12:02 +0000 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lmMMB-009DZ7-VL; Thu, 27 May 2021 20:11:53 +0000 Received: by mail-ej1-x62b.google.com with SMTP id z12so2112264ejw.0; Thu, 27 May 2021 13:11:51 -0700 (PDT) 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-transfer-encoding:content-language; bh=Z4O262zvwdzEulJ1jOXjydwpNCfVHkhFBEvdIzwEWgY=; b=Quo3b25aI5myNRSroj4sBbxZE43SnF6FdFJiHd3iyVpUvlabe1/MFfY+EN/T4dNNw6 EErfCcDdl/ZnNpQEannARjFO+HI6xDdr4mnJL2Rl8L0w0KLHqS7I+r56TepRBMg920ds OOD2lfA7FyJh0KGuQkiIATP2qpLE9if5U54Y2RbWMFdSAFCIUPWlwBI0VFZ3IWqzwEE6 IMuoXYb77w3x7eHTOFzf9mjcyKvumvIGOXPQo52IkQdxv/bVmOix7SomELWjq4UawnTH V8qm5KTtm6eX7suzm3Yq0BjkoTMh274p9W/FwQuTKK4EnAmfr4nZ98rQVdMEwuCGKxFf sqLQ== 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-transfer-encoding :content-language; bh=Z4O262zvwdzEulJ1jOXjydwpNCfVHkhFBEvdIzwEWgY=; b=MNFjjmU+vrpVbGoBNBFQ6Xd+OfasySEXI6x7pm9BIxDjdRI9NcBe/YSekbdBxmeVZI ZJtG64zl3Yyi5RJX1GcUXjgVsM/1eChvOoQHjATZgkk0ARUAd0PefRFsaZwLhOf/Xd7H ssixNT6ZvH2Udm7YoIMve8kNiCQkJgT04J0yRlgLMz++a4G78CeCVXRsTJCnVDItkk0U u9Gg3+I5Lm17rOhq5M6yO2njoKjoMorBF21JtgBXqTHfTA6ga4MS3dX2uMdo6adYMUyY HhQuEMqTLrrc54yZwitRQMv8NRE1lgXbR6nmW5pwkhZXnl9IU+URrFZr3Hn/aWuKOYKO yDGg== X-Gm-Message-State: AOAM531fq4ldkBV3CNB2ilKeAUxUh6tBhC94vMF5YVOFR3627PZO8Klr WPgQLjcVH0NsN2CVZkMSP2iIEdolCaL+ X-Google-Smtp-Source: ABdhPJwrJbGNSMtyEy6jE13u3m0gWh7BUIHAkR5HvVPWV2Q1IOR/pipJ+wT5bvil1rm2VKGwaJH6+A== X-Received: by 2002:a17:906:2854:: with SMTP id s20mr5694966ejc.335.1622146310491; Thu, 27 May 2021 13:11:50 -0700 (PDT) Received: from ?IPv6:2a02:810b:f40:e00:34ce:e50a:89a4:5545? ([2a02:810b:f40:e00:34ce:e50a:89a4:5545]) by smtp.gmail.com with ESMTPSA id j7sm1603121edr.79.2021.05.27.13.11.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 May 2021 13:11:49 -0700 (PDT) Subject: Re: [PATCH 05/10] media: hantro: add support for Rockchip RK3036 To: Ezequiel Garcia , =?UTF-8?Q?Heiko_St=c3=bcbner?= Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Philipp Zabel , linux-staging@lists.linux.dev, Rob Herring , Mauro Carvalho Chehab , linux-media@vger.kernel.org, Greg Kroah-Hartman , Lee Jones , devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org References: <20210525152225.154302-1-knaerzche@gmail.com> <2640d65e-772b-6af4-f4be-8ed090693c22@gmail.com> <3559518.1BCLMh4Saa@diego> <4fadcb3d33beadb113e0e41596e5255d0d8d08dd.camel@collabora.com> From: Alex Bee Message-ID: <9113891e-ba88-7402-2226-5b3709215544@gmail.com> Date: Thu, 27 May 2021 22:11:48 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <4fadcb3d33beadb113e0e41596e5255d0d8d08dd.camel@collabora.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210527_131152_086323_B962BFFD X-CRM114-Status: GOOD ( 37.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-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 SGkgRXplcXVpZWwsCgpBbSAyNy4wNS4yMSB1bSAwMzoyNyBzY2hyaWViIEV6ZXF1aWVsIEdhcmNp YToKPiBPbiBUaHUsIDIwMjEtMDUtMjcgYXQgMDE6NTggKzAyMDAsIEhlaWtvIFN0w7xibmVyIHdy b3RlOgo+PiBBbSBEb25uZXJzdGFnLCAyNy4gTWFpIDIwMjEsIDAxOjI3OjU5IENFU1Qgc2Nocmll YiBBbGV4IEJlZToKPj4+IEhpIEV6ZXF1aWVsLAo+Pj4KPj4+IEFtIDI2LjA1LjIxIHVtIDEyOjI4 IHNjaHJpZWIgRXplcXVpZWwgR2FyY2lhOgo+Pj4+IEhpIEFsZXgsCj4+Pj4KPj4+PiBUaGFua3Mg YSBsb3QgZm9yIHRoZSBwYXRjaC4KPj4+Pgo+Pj4+IE9uIFR1ZSwgMjAyMS0wNS0yNSBhdCAxNzoy MiArMDIwMCwgQWxleCBCZWUgd3JvdGU6Cj4+Pj4+IFJLMzAzNidzIFZQVSBJUCBibG9jayBpcyB0 aGUgc2FtZSBhcyBSSzMyODggaGFzLCBleGNlcHQgdGhhdCBpdCBkb2Vzbid0Cj4+Pj4+IGhhdmUg YW4gZW5jb2RlciwgZGVjb2RpbmcgaXMgc3VwcG9ydGVkIHVwIHRvIDE5MjB4MTA4OCBvbmx5IGFu ZCB0aGUgYXhpCj4+Pj4+IGNsb2NrIGNhbiBiZSBzZXQgdG8gMzAwIE1IeiBtYXguCj4+Pj4+Cj4+ Pj4+IEFkZCBhIG5ldyBSSzMwMzYgdmFyaWFudCB3aGljaCByZWZsZWN0IHRoaXMgZGlmZmVyZW5j ZXMuCj4+Pj4+Cj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEFsZXggQmVlIDxrbmFlcnpjaGVAZ21haWwu Y29tPgo+Pj4+PiAtLS0KPj4+Pj4gIMKgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX2Rydi5jwqDCoMKgIHzCoCAxICsKPj4+Pj4gIMKgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9o YW50cm8vaGFudHJvX2h3LmjCoMKgwqDCoCB8wqAgMSArCj4+Pj4+ICDCoCBkcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL3JrMzI4OF92cHVfaHcuYyB8IDQ5ICsrKysrKysrKysrKysrKysrKysr Cj4+Pj4+ICDCoCAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKykKPj4+Pj4KPj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jIGIv ZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2LmMKPj4+Pj4gaW5kZXggMzhl YTdiMjQwMzZlLi40ZjNjMDhlODViYjggMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jCj4+Pj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jCj4+Pj4+IEBAIC00OTAsNiArNDkwLDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2ZfaGFudHJvX21hdGNoW10gPSB7Cj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgIHsgLmNvbXBhdGlibGUgPSAicm9ja2NoaXAscmszMzI4LXZwdSIsIC5k YXRhID0gJnJrMzMyOF92cHVfdmFyaWFudCwgfSwKPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAgeyAu Y29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMyODgtdnB1IiwgLmRhdGEgPSAmcmszMjg4X3ZwdV92 YXJpYW50LCB9LAo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCB7IC5jb21wYXRpYmxlID0gInJvY2tj aGlwLHJrMzA2Ni12cHUiLCAuZGF0YSA9ICZyazMwNjZfdnB1X3ZhcmlhbnQsIH0sCj4+Pj4+ICvC oMKgwqDCoMKgwqAgeyAuY29tcGF0aWJsZSA9ICJyb2NrY2hpcCxyazMwMzYtdnB1IiwgLmRhdGEg PSAmcmszMDM2X3ZwdV92YXJpYW50LCB9LAo+Pj4+PiAgwqAgI2VuZGlmCj4+Pj4+ICDCoCAjaWZk ZWYgQ09ORklHX1ZJREVPX0hBTlRST19JTVg4TQo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCB7IC5j b21wYXRpYmxlID0gIm54cCxpbXg4bXEtdnB1IiwgLmRhdGEgPSAmaW14OG1xX3ZwdV92YXJpYW50 LCB9LAo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50 cm9faHcuaCBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPj4+Pj4g aW5kZXggZGUyYmMzNjdhMTVhLi5kOGQ2YjBkM2MzYjMgMTAwNjQ0Cj4+Pj4+IC0tLSBhL2RyaXZl cnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPj4+Pj4gKysrIGIvZHJpdmVycy9z dGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaAo+Pj4+PiBAQCAtMTY0LDYgKzE2NCw3IEBA IGV4dGVybiBjb25zdCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgcmszMzk5X3ZwdV92YXJpYW50Owo+ Pj4+PiAgwqAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBoYW50cm9fdmFyaWFudCByazMzMjhfdnB1X3Zh cmlhbnQ7Cj4+Pj4+ICDCoCBleHRlcm4gY29uc3Qgc3RydWN0IGhhbnRyb192YXJpYW50IHJrMzI4 OF92cHVfdmFyaWFudDsKPj4+Pj4gIMKgIGV4dGVybiBjb25zdCBzdHJ1Y3QgaGFudHJvX3Zhcmlh bnQgcmszMDY2X3ZwdV92YXJpYW50Owo+Pj4+PiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBoYW50cm9f dmFyaWFudCByazMwMzZfdnB1X3ZhcmlhbnQ7Cj4+Pj4+ICDCoCBleHRlcm4gY29uc3Qgc3RydWN0 IGhhbnRyb192YXJpYW50IGlteDhtcV92cHVfdmFyaWFudDsKPj4+Pj4gIMKgIGV4dGVybiBjb25z dCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgc2FtYTVkNF92ZGVjX3ZhcmlhbnQ7Cj4+Pj4+ICAgIAo+ Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1 X2h3LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL3JrMzI4OF92cHVfaHcuYwo+Pj4+ PiBpbmRleCAyOTgwNWM0YmQ5MmYuLmM0Njg0ZGY0ZTAxMiAxMDA2NDQKPj4+Pj4gLS0tIGEvZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1X2h3LmMKPj4+Pj4gKysrIGIvZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9yazMyODhfdnB1X2h3LmMKPj4+Pj4gQEAgLTE3NCw2 ICsxNzQsMTMgQEAgc3RhdGljIGlycXJldHVybl90IHJrMzI4OF92ZXB1X2lycShpbnQgaXJxLCB2 b2lkICpkZXZfaWQpCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBJUlFfSEFORExFRDsK Pj4+Pj4gIMKgIH0KPj4+Pj4gICAgCj4+Pj4+ICtzdGF0aWMgaW50IHJrMzAzNl92cHVfaHdfaW5p dChzdHJ1Y3QgaGFudHJvX2RldiAqdnB1KQo+Pj4+PiArewo+Pj4+PiArwqDCoMKgwqDCoMKgIC8q IEJ1bXAgQUNMS3MgdG8gbWF4LiBwb3NzaWJsZSBmcmVxLiB0byBpbXByb3ZlIHBlcmZvcm1hbmNl LiAqLwo+Pj4+PiArwqDCoMKgwqDCoMKgIGNsa19zZXRfcmF0ZSh2cHUtPmNsb2Nrc1swXS5jbGss IFJLMzA2Nl9BQ0xLX01BWF9GUkVRKTsKPj4+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+ Pj4gK30KPj4+Pj4gKwo+Pj4+PiAgwqAgc3RhdGljIGludCByazMwNjZfdnB1X2h3X2luaXQoc3Ry dWN0IGhhbnRyb19kZXYgKnZwdSkKPj4+Pj4gIMKgIHsKPj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqAg LyogQnVtcCBBQ0xLcyB0byBtYXguIHBvc3NpYmxlIGZyZXEuIHRvIGltcHJvdmUgcGVyZm9ybWFu Y2UuICovCj4+Pj4+IEBAIC0yMDksNiArMjE2LDI3IEBAIHN0YXRpYyB2b2lkIHJrMzI4OF92cHVf ZW5jX3Jlc2V0KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4+Pj4+ICDCoCAvKgo+Pj4+PiAgwqDC oCAqIFN1cHBvcnRlZCBjb2RlYyBvcHMuCj4+Pj4+ICDCoMKgICovCj4+Pj4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGhhbnRyb19jb2RlY19vcHMgcmszMDM2X3ZwdV9jb2RlY19vcHNbXSA9IHsKPj4+ Pj4gK8KgwqDCoMKgwqDCoCBbSEFOVFJPX01PREVfSDI2NF9ERUNdID0gewo+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAucnVuID0gaGFudHJvX2cxX2gyNjRfZGVjX3J1biwKPj4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnJlc2V0ID0gaGFudHJvX2cxX3Jlc2V0 LAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuaW5pdCA9IGhhbnRyb19oMjY0 X2RlY19pbml0LAo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuZXhpdCA9IGhh bnRyb19oMjY0X2RlY19leGl0LAo+Pj4+PiArwqDCoMKgwqDCoMKgIH0sCj4+Pj4+ICvCoMKgwqDC oMKgwqAgW0hBTlRST19NT0RFX01QRUcyX0RFQ10gPSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5ydW4gPSBoYW50cm9fZzFfbXBlZzJfZGVjX3J1biwKPj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnJlc2V0ID0gaGFudHJvX2cxX3Jlc2V0LAo+Pj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuaW5pdCA9IGhhbnRyb19tcGVnMl9kZWNfaW5p dCwKPj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmV4aXQgPSBoYW50cm9fbXBl ZzJfZGVjX2V4aXQsCj4+Pj4+ICvCoMKgwqDCoMKgwqAgfSwKPj4+Pj4gK8KgwqDCoMKgwqDCoCBb SEFOVFJPX01PREVfVlA4X0RFQ10gPSB7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC5ydW4gPSBoYW50cm9fZzFfdnA4X2RlY19ydW4sCj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIC5yZXNldCA9IGhhbnRyb19nMV9yZXNldCwKPj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLmluaXQgPSBoYW50cm9fdnA4X2RlY19pbml0LAo+Pj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuZXhpdCA9IGhhbnRyb192cDhfZGVjX2V4aXQsCj4+ Pj4+ICvCoMKgwqDCoMKgwqAgfSwKPj4+Pj4gK307Cj4+Pj4+ICsKPj4+Pj4gIMKgIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaGFudHJvX2NvZGVjX29wcyByazMwNjZfdnB1X2NvZGVjX29wc1tdID0gewo+ Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoCBbSEFOVFJPX01PREVfSlBFR19FTkNdID0gewo+Pj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnJ1biA9IGhhbnRyb19oMV9qcGVnX2Vu Y19ydW4sCj4+Pj4+IEBAIC0yNjksNiArMjk3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGFu dHJvX2NvZGVjX29wcyByazMyODhfdnB1X2NvZGVjX29wc1tdID0gewo+Pj4+PiAgwqDCoCAqIFZQ VSB2YXJpYW50Lgo+Pj4+PiAgwqDCoCAqLwo+Pj4+PiAgICAKPj4+Pj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgaGFudHJvX2lycSByazMwMzZfaXJxc1tdID0gewo+Pj4+PiArwqDCoMKgwqDCoMKgIHsg InZkcHUiLCBoYW50cm9fZzFfaXJxIH0sCj4+Pj4+ICt9Owo+Pj4+PiArCj4+Pj4+ICDCoCBzdGF0 aWMgY29uc3Qgc3RydWN0IGhhbnRyb19pcnEgcmszMjg4X2lycXNbXSA9IHsKPj4+Pj4gIMKgwqDC oMKgwqDCoMKgwqAgeyAidmVwdSIsIHJrMzI4OF92ZXB1X2lycSB9LAo+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoCB7ICJ2ZHB1IiwgaGFudHJvX2cxX2lycSB9LAo+Pj4+PiBAQCAtMjgzLDYgKzMxNSwy MyBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJrMzI4OF9jbGtfbmFtZXNbXSA9IHsKPj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqAgImFjbGsiLCAiaGNsayIKPj4+Pj4gIMKgIH07Cj4+Pj4+ICAg IAo+Pj4+PiArY29uc3Qgc3RydWN0IGhhbnRyb192YXJpYW50IHJrMzAzNl92cHVfdmFyaWFudCA9 IHsKPj4+Pj4gK8KgwqDCoMKgwqDCoCAuZGVjX29mZnNldCA9IDB4NDAwLAo+Pj4+IElmIGl0IGRv ZXNuJ3QgaGF2ZSBhbiBlbmNvZGVyLCB0aGVuIHlvdSBzaG91bGQganVzdAo+Pj4+IHVzZSBkZWNf b2Zmc2V0ID0gMHgwLgo+Pj4+Cj4+Pj4gVGhhbmtzLAo+Pj4+IEV6ZXF1aWVsCj4+Pj4KPj4+IFRo YXQgd291bGQgbWVhbiwgSSdkIGhhdmUgdG8gYWRhcHQgdGhlIHJlZ2lzdGVyIG9mZnNldCBpbiB0 aGUgZGV2aWNlCj4+PiB0cmVlIC0gSSdkIHByZWZlciB0byBrZWVwIGl0IGluIGxpbmUgd2l0aCB0 aGUgVFJNLiBVbmxlc3MgeW91IGluc2lzdCwKPj4+IEknZCBsaWtlIHRvIGtlZXAgaXQgdGhpcyB3 YXkgKEl0J3MgLCBidHcsIHRoZSB2ZXJ5IHNhbWUgZm9yIFJLMzMyOCkuCj4+IEknZCBhZ3JlZSB3 aXRoIEFsZXggLi4uIGlkZWFsbHkgdGhlIGRldmljZXRyZWUgc2hvdWxkIG1hdGNoIHRoZSBibG9j awo+PiByZWdpc3RlciBhcmVhIGZyb20gdGhlIFRSTSBub3Qgc29tZSBpbnRlcm5hbCBvZmZzZXQu Cj4+IFtEVCBkZXNjcmliZXMgaGFyZHdhcmUgZXRjIGV0YyA7LSkgXQo+Pgo+IFdlbGwsIEkndmUg YWx3YXlzIGNvbnNpZGVyZWQgdGhpcyBpbnRlcm5hbCBvZmZzZXQgYXMgc29tZXRoaW5nIHVuZm9y dHVuYXRlCj4gd2UgZGlkbid0IGRvIHdlbGwgd2hlbiB3ZSB1cHN0cmVhbWVkIFJLMzI4OC4KPgo+ IFRoZSBSSzMyODggVFJNIGRvY3VtZW50cyBhIHNvLWNhbGxlZCAiVlBVIGNvbWJvIiwgYW5kIHRo ZW4gZG9jdW1lbnRzCj4gdGhlIGVuY29kZXIgYW5kIHRoZSBkZWNvZGVyIGNvcmVzIGFzIHNlcGFy YXRlIGVuZ2luZXMsIHdpdGgKPiBzZXBhcmF0ZSByZWdpc3RlciBibG9ja3MgKGNhbGxlZCBWRVBV IGFuZCBWRFBVKS4gSW4gZmFjdCwgZm9yIGVhY2gKPiByZWdpc3RlciBibG9jayB5b3UnbGwgc2Vl IHN3cmVnMCBkb2N1bWVudGVkIGF0IG9mZnNldCAweDAuCgpJJ3ZlIGFsd2F5cyBsb29rZWQgYXQg dGhlICJBZGRyZXNzIE1hcHBpbmciIHNlY3Rpb24gaW4gdGhlIFRSTXMgd2hlbiBJIApjaGVja2Vk IHRoZSByZWdpc3RlciBvZmZzZXRzLiBJIGNhbid0IGZpbmQgYSBzZXBlcmF0aW9uIHRoZSB2cHUg YmxvY2sgCnRoZXJlIChmb3IgYW55IFNvQykuCgpJJ3ZlIGZvdW5kIGl0IG1vcmUgdW5mb3J0dW5h dGUsIHRoYXQgdGhleSBzdGFydGVkIHdpdGggcmVnaXN0ZXIgb2Zmc2V0IAoweDAgZm9yIHZkcHUg YW5kIHZlcHUsIHNpbmNlIG5vbmUgb2YgdGhlIFNvQ3MgKHNvIGZhcikgY2FuIHVzZSB0aGUgCmJs b2NrcyBzZXBhcmF0ZWx5LgoKPiAoSW4gc29tZSBpbnRlZ3JhdGlvbnMgdGhleSBjYW4gb3BlcmF0 ZSBpbmRlcGVuZGVudGx5LCBidXQgaWlyYyBub3QgaW4gUkszMjg4LikKPgo+IFNvIHRvIGJlIGNs ZWFyLCBpbnN0ZWFkIG9mOgo+Cj4gICAgICAgICAgdnB1OiB2aWRlby1jb2RlY0BmZjlhMDAwMCB7 Cj4gICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4OC12cHUiOwo+ ICAgICAgICAgICAgICAgICAgcmVnID0gPDB4MCAweGZmOWEwMDAwIDB4MCAweDgwMD47Cj4gICAg ICAgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPEdJQ19TUEkgOSBJUlFfVFlQRV9MRVZFTF9ISUdI PiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R0lDX1NQSSAxMCBJUlFfVFlQRV9M RVZFTF9ISUdIPjsKPiAgICAgICAgICAgICAgICAgIGludGVycnVwdC1uYW1lcyA9ICJ2ZXB1Iiwg InZkcHUiOwo+ICAgICAgICAgICAgICAgICAgY2xvY2tzID0gPCZjcnUgQUNMS19WQ09ERUM+LCA8 JmNydSBIQ0xLX1ZDT0RFQz47Cj4gICAgICAgICAgICAgICAgICBjbG9jay1uYW1lcyA9ICJhY2xr IiwgImhjbGsiOwo+ICAgICAgICAgICAgICAgICAgLi4uCj4KPiBJdCBjb3VsZCBoYXZlIGxvb2tl ZCBsaWtlOgo+Cj4gICAgICAgICAgdnB1OiB2aWRlby1jb2RlY0BmZjlhMDAwMCB7Cj4gICAgICAg ICAgICAgICAgICBjb21wYXRpYmxlID0gInJvY2tjaGlwLHJrMzI4OC12cHUiOwo+ICAgICAgICAg ICAgICAgICAgcmVnID0gPDB4MCAweGZmOWEwMDAwIDB4MCAweDQwMD4KPiAgICAgICAgICAgICAg ICAgICAgICAgIDwweDAgMHhmZjlhMDQwMCAweDAgMHg0MDA+Owo+ICAgICAgICAgICAgICAgICAg Li4uCj4KPiBJIGd1ZXNzIEkgbWlzc2VkIHRoaXMgd2hlbiBSSzMzMjggd2FzIHB1c2hlZCwgYnV0 IE9UT0ggSSBkb24ndAo+IHNlZSBhbnkgcmVhbCBpbXBhY3QgaW4gZG9pbmcgdGhpbmdzIHRoaXMg d2F5LiBTbyBhdCB0aGUgZW5kCj4gb2YgdGhlIGRheSwgSSdtIGZpbmUgZWl0aGVyIHdheS4KPgo+ IEJUVywgdGhlIHNlcmllcyBpcyBub3QgYWRkaW5nIHRoZSB2cHUgbm9kZSBmb3IgYXJjaC9hcm0v Ym9vdC9kdHMvcmszMDM2LmR0c2kgcmlnaHQ/CgpVcHMsIHllcyAtIEkgbWlzc2VkIHRvIHN1Ym1p dCB0aGlzIHBhdGNoIHdpdGggdjEgLSBJIGFkZGVkIGl0IGluIGl0cyAKb3JpZ2luYWwgdmVyc2lv biB0byB2MiAoc28gd2Uga25vdywgd2hhdCB3ZSBhcmUgdGFsa2luZyBhYm91dCktCgpJZiB5b3Ug dGhpbmsgaXQgc2hvdWxkIGJlIGNoYW5nZWQsIHBsZWFzZSByZXBseSB0byB2Mi4KCj4gVGhhbmtz IGEgbG90IQo+IEV6ZXF1aWVsCj4KVGhhbmtzLAoKQWxleAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK