From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (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 AA36472 for ; Mon, 29 Nov 2021 16:54:23 +0000 (UTC) Received: by mail-ed1-f53.google.com with SMTP id x15so74574941edv.1 for ; Mon, 29 Nov 2021 08:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vanguardiasur-com-ar.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=UsyF/dWQQNrn0rwDgW+rSch0YemV0PivvOS2f76eXi0=; b=vjGZ/Jp2JJJGSplFrc0i7yjUrXuf25vecciBoV9m6tj0SLjfbzRZaEPTyZkj/Nlz0h Yw2fpFgKwIR1lJdTzyNqo/tr3oCCxSlMdYoUoQ0nARAMBNkk9kC/cwbBKp63pQ9rINwe LvDdcwvnqfiyDQPigro+4gdcbJ4VfCKPaXJKTVfDE9o738xXAsUYnfQHHAECx2yIqm4S r6tzuGUMhDqBCLhvCKrTyvRawiOzdLjfwqtdA8evXcxzPRR+VioW4QqzFKcd7uCwu0z+ sCX7y/R3luybBydMB62Nx7Nr3tuVPtvspT5StKJ0h8V1wJt8wvCdnqjbAcN6SnjVYGFd lnNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=UsyF/dWQQNrn0rwDgW+rSch0YemV0PivvOS2f76eXi0=; b=Hi2W/3RVHzKTj1ysr3zUiVprgZ3a1SuDR10VszTcAjdm/bMlWmwC3mXMpcl0p9oOgQ PEXR7H2EAYcIS6m6dnODrNB6hgDHnLjYwz0I+WpyBOtwfAzcSFYv2S1TdVmJE37wv9aI 8jasYw6kteRrhX7lNdcA5ZMeTkj2w7smtdoERwDLKY1zymyaRPNlpFiX16bRFkTXJfL3 +EyeeXItee3JREnnIy3mveCpOrZnv+uz8Q5ndhGD4qNCfaN6JOV7IWwCNLSQkEK5d6AH QrqZW9t99mIQx/NrRmeqmL9LvQnGKasm3z2xL+JmVSKd+9r8IgDbhrv9PFu1OH7AXAxJ qBUw== X-Gm-Message-State: AOAM532M7xDlkaiu6e3GxtIWmy8Er5Ju8lEFrKjLlnHpflQhCmBtaluz r4PtApRVGR3n5ZaN7ohwouTvWIvkwUdIBtBTSSDDAg== X-Google-Smtp-Source: ABdhPJxFQTeprjRnIKw/ySJAcM+Yoa3ZdxrVGjFqyzwScsybVOffDKzEHZT/8egB5EH9xyyyOefK5t2r/TIXeesucls= X-Received: by 2002:aa7:d412:: with SMTP id z18mr77515624edq.315.1638204861875; Mon, 29 Nov 2021 08:54:21 -0800 (PST) Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20211106183802.893285-1-aford173@gmail.com> <718f7f6d6cd564d031c1963f1590c62d549ae725.camel@ndufresne.ca> <8db00a4b6faa99c940d9bc86e17161eb0db5efe3.camel@ndufresne.ca> <7f94eaacfddb8c5434c17f1e069ea87a17657ce9.camel@ndufresne.ca> In-Reply-To: From: Ezequiel Garcia Date: Mon, 29 Nov 2021 13:54:10 -0300 Message-ID: Subject: Re: [RFC 0/5] arm64: imx8mm: Enable Hantro VPUs To: Adam Ford Cc: Nicolas Dufresne , Tim Harvey , linux-media , Schrempf Frieder , Marek Vasut , Jagan Teki , Adam Ford-BE , cstevens@beaconembedded.com, Philipp Zabel , Mauro Carvalho Chehab , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Greg Kroah-Hartman , Heiko Stuebner , Lucas Stach , Joakim Zhang , Alice Guo , Peng Fan , "open list:HANTRO VPU CODEC DRIVER" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , open list , "open list:STAGING SUBSYSTEM" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 29 Nov 2021 at 13:48, Adam Ford wrote: > > On Tue, Nov 23, 2021 at 2:07 PM Nicolas Dufresne w= rote: > > > > Le lundi 22 novembre 2021 =C3=A0 09:25 -0800, Tim Harvey a =C3=A9crit : > > > On Sat, Nov 20, 2021 at 7:36 AM Adam Ford wrote: > > > > > > > > On Fri, Nov 19, 2021 at 5:37 PM Adam Ford wrot= e: > > > > > > > > > > On Fri, Nov 19, 2021 at 10:29 AM Nicolas Dufresne wrote: > > > > > > > > > > > > Hi Adam, Tim, > > > > > > > > > > > > [...] > > > > > > > > > > Nicolas and Adam, > > > > > > > > > > > > > > > > > > > > For the H1 patches in this series: I've been able to te= st the IMX8MM > > > > > > > > > > H1 JPEG encode using GStreamer 1.18.5: > > > > > > > > > > $ gst-inspect-1.0 | grep -e "v4l2.*enc" > > > > > > > > > > video4linux2: v4l2jpegenc: V4L2 JPEG Encoder > > > > > > > > > > $ gst-launch-1.0 videotestsrc ! jpegenc ! rtpjpegpay ! = udpsink > > > > > > > > > ^ v4l2jpegenc > > > > > > > > > > > > > > > > > > This is just a transcript error ? > > > > > > > > > > > > > > > > Nicolas, > > > > > > > > > > > > > > > > No! Thanks for catching my mistake. I was testing with soft= ware encode... ooops! > > > > > > > > > > > > > > > > 'gst-launch-1.0 videotestsrc ! v4l2jpegenc ! fakesink' actu= ally hangs > > > > > > > > the board so likely a power-domain issue there? > > > > > > > > > > > > > > The v4l2-compliance tests fail on the h1 decoder with a hang,= but I > > > > > > > think we're writing to registers which are not documented in = the Mini > > > > > > > TRM. The Mini TRM doesn't explicitly show the JPEG encoding = as a > > > > > > > feature, but some of the registers state JPEG, but because so= me of the > > > > > > > registers written for the H1 are not documented in the TRM. = If those > > > > > > > registers are restricted or not in this SoC, I am concerned t= hat it > > > > > > > might be related. I'll try to run some more tests this weeke= nd to > > > > > > > check on the status of the power-domain stuff. > > > > > > > > > > > > To verify if the HW support JPEG encoding you can read SWREG63 = bit 25. This is > > > > > > in the TRM, just not labelled properly. To mimic the decoding s= ide, would be "HW > > > > > > synthesis config register X" with the bit labelled SW_ENC_JPEG_= PROF (but > > > > > > PROF/profile is on or off). If your board hang while reading th= is, you likely > > > > > > didn't get the power bit right. > > > > > > > > > > > > IMX8 has an undocumented control block thing that we have been = fighting with in > > > > > > imx8q, perhaps that's your issue. Few driver was proposed, we = are still pending > > > > > > on NXP solution to be submitted (they asked us to wait, still w= aiting =3D)). > > > > > > > > > > Nicolas, > > > > > > > > > > Thanks for the suggestion to read offset FC. There was an attemp= t > > > > > made by Lucas Stach to develop a VPU blk-ctrl driver to coordinat= e the > > > > > power-domains with the GPC driver. Unfortunately, it does appear = to > > > > > hang, so it might not be operating correctly. > > > > > > > > > > Lucas, > > > > > > > > > > Do you have any idea of stuff I can try to see if the power domai= n is > > > > > coming online correctly? > > > > > > > > > > [ 10.434727] imx-pgc imx-pgc-domain.6: request the vpumix domai= n to power up > > > > > [ 10.463647] imx-pgc imx-pgc-domain.6: request the vpumix ADB40= 0 to power up > > > > > [ 10.517155] imx-pgc imx-pgc-domain.6: genpd vpumix success > > > > > [ 10.728927] vpu: set fuse bits to enable > > > > > [ 10.825500] imx8m-blk-ctrl 38330000.blk-ctrl: power vpublk-g1 = GPC domain > > > > > [ 10.878986] imx-pgc imx-pgc-domain.7: request the vpu-g1 domai= n to power up > > > > > [ 10.932429] imx-pgc imx-pgc-domain.7: genpd vpu-g1 success > > > > > [ 10.971988] imx8m-blk-ctrl 38330000.blk-ctrl: genpd vpublk-g1 = success > > > > > [ 11.004726] hantro-vpu 38300000.video-codec: registered > > > > > nxp,imx8mm-vpu-dec as /dev/video0 > > > > > [ 11.040760] imx8m-blk-ctrl 38330000.blk-ctrl: power vpublk-g2 = GPC domain > > > > > [ 11.066181] imx-pgc imx-pgc-domain.8: request the vpu-g2 domai= n to power up > > > > > [ 11.087887] imx-pgc imx-pgc-domain.8: genpd vpu-g2 success > > > > > [ 11.113808] imx8m-blk-ctrl 38330000.blk-ctrl: genpd vpublk-g2 = success > > > > > [ 11.139634] hantro-vpu 38310000.video-codec: registered > > > > > nxp,imx8mm-vpu-g2-dec as /dev/video1 > > > > > [ 11.156463] imx8m-blk-ctrl 38330000.blk-ctrl: power vpublk-h1 = GPC domain > > > > > [ 11.170817] imx-pgc imx-pgc-domain.9: request the vpu-h1 domai= n to power up > > > > > [ 11.232990] imx-pgc imx-pgc-domain.9: genpd vpu-h1 success > > > > > [ 11.252546] imx8m-blk-ctrl 38330000.blk-ctrl: genpd vpublk-h1 = success > > > > > [ 11.266152] hantro-vpu 38320000.video-codec: Checking vpu->enc= _base + 0xfc > > > > > > > > > > > > > > > > > > > > adam > > > > > > > > > > > > > Nicolas, Tim, and Lucas, > > > > > > > > I think I have the hanging resolved in the power domains, and I'll = be > > > > pushing the fix to the GPCv2. > > > > > > > > For the H1 Encoder, I added some debugging code to read the offset > > > > 0xfc and print some data based on the findings of that VPU-h1 offse= t. > > > > I basically check the various bits per the TRM to see if they are s= et > > > > and print some splat to indicate whether or not the function is > > > > supported. > > > > > > > > [ 8.861865] hantro-vpu 38320000.video-codec: Checking vpu->enc_b= ase + 0xfc > > > > [ 8.870594] hantro-vpu 38320000.video-codec: Stabilization suppo= rted by HW > > > > [ 8.889341] hantro-vpu 38320000.video-codec: VP8 encoding suppor= ted by HW > > > > [ 8.899386] hantro-vpu 38320000.video-codec: H.264 encoding supp= orted by HW > > > > [ 8.918171] hantro-vpu 38320000.video-codec: RGB to YUV conversi= on > > > > supported by HW > > > > [ 8.934067] hantro-vpu 38320000.video-codec: registered > > > > nxp,imx8mm-vpu-h1-enc as /dev/video2 > > > > > > > > Unfortunately, JPEG is not listed as supported. :-( > > > > > > Adam, > > > > > > Well not having JPEG encode support is unfortunate, and unexpected. D= o > > > we not have hantro support yet for VP8/H264 encode? > > > > There is no mainline support yet. You can derive from RK3288 support us= ing Google ChromeOS method (a v4l2 plugins that simulate in userspace a sta= teful encoder): > > > > - libv4l plugins / https://chromium.googlesource.com/chromiumos/third_p= arty/libv4lplugins/+/refs/heads/master > > - Kernel Driver / https://chromium.googlesource.com/chromiumos/third_pa= rty/kernel/+/chromeos-4.4/drivers/media/platform/rockchip-vpu/ > > > > > > > > I haven't quite figured out how to build a modern mono-repo gstreamer > > > on the ubuntu 20.04 rootfs I'm using so I haven't been able to test > > > VPU encode/decode properly. I'll keep working on it when I'm back in > > > the office the following week. > > > > Did a quick test to make sure there isn't any ubuntu specific blockers,= here's a > > dirty script that produce a minimal GStreamer, there was really nothing= special > > compare to other meson projects. Note that I use --wrap-mode=3Dnofallba= ck to avoid > > letting GStreamer complete it's feature-set by downloading the planet. = This > > already build quite a lot and could likely be made smaller by avoid plu= gins-good > > build-dep call, but then you need to check for v4l2odecs and video4linu= x devs > > (mostly gudev a glib udev binding). > > > > # Install ubuntu > > podman run -it --rm ubuntu:20.04 > > sed -i "s/# deb-src/deb-src/" /etc/apt/sources.list > > apt update > > apt build-dep gstreamer1.0-plugins-good > > apt install git python3-pip flex bison > > > > # Need a newer meson > > pip3 install --user meson > > export PATH=3D$PATH:~/.local/bin > > > > # Build GStreamer > > git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git > > cd gstreamer > > meson setup build --wrap-mode=3Dnofallback > > ninja -C build > > > > # Run in-place > > ./gst-env.py > > gst-inspect-1.0 v4l2codecs > > gst-inspect 1.0 video4linux2 > > > Thanks for the suggestions. > > I downloaded what's in the master repo: > > [gst-main] root@localhost:~/gstreamer# gst-inspect-1.0 v4l2codecs > > ** (gst-plugin-scanner:7317): CRITICAL **: 10:29:51.847: can't find > gi.repository.Gst > Plugin Details: > Name v4l2codecs > Description V4L2 CODEC Accelerators plugin > Filename > /root/gstreamer/builddir/subprojects/gst-plugins-bad/sys/v4l2codecs/libgs= tv4l2codecs.so > Version 1.19.3.1 > License LGPL > Source module gst-plugins-bad > Binary package GStreamer Bad Plug-ins git > Origin URL Unknown package origin > > v4l2slh264dec: V4L2 Stateless H.264 Video Decoder > v4l2slmpeg2dec: V4L2 Stateless Mpeg2 Video Decoder > v4l2slvp8alphadecodebin: VP8 Alpha Decoder > v4l2slvp8dec: V4L2 Stateless VP8 Video Decoder > > 4 features: > +-- 4 elements > > [gst-main] root@localhost:~/gstreamer# gst-inspect-1.0 video4linux2 > Plugin Details: > Name video4linux2 > Description elements for Video 4 Linux > Filename > /root/gstreamer/builddir/subprojects/gst-plugins-good/sys/v4l2/libgstvide= o4linux2.so > Version 1.19.3.1 > License LGPL > Source module gst-plugins-good > Binary package GStreamer Good Plug-ins git > Origin URL Unknown package origin > > v4l2deviceprovider: Video (video4linux2) Device Provider > v4l2jpegenc: V4L2 JPEG Encoder > v4l2radio: Radio (video4linux2) Tuner > v4l2sink: Video (video4linux2) Sink > v4l2src: Video (video4linux2) Source > > 5 features: > +-- 4 elements > +-- 1 device providers > > I still have the H1 encoder enabled, but I know JPEG isn't supported, > so I'm going to attempt to do some decoding and pipe to fakesink since > I don't have a functional display yet. > > gst-launch-1.0 -ev filesrc location=3Dtrailer_1080p_h264_mp3.avi ! > decodebin3 ! fakesink > > Redistribute latency... > /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/v4l2slh264dec:v4l2slh26= 4dec0.GstPad:src: > caps =3D video/x-raw, format=3D(string)NV12, width=3D(int)1920, > height=3D(int)1080, interlace-mode=3D(string)progressive, > multiview-mode=3D(string)mono, > multiview-flags=3D(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first= /left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mo= no, > pixel-aspect-ratio=3D(fraction)1/1, framerate=3D(fraction)25/1 > /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0.GstGhostPad:video_0: > caps =3D video/x-raw, format=3D(string)NV12, width=3D(int)1920, > height=3D(int)1080, interlace-mode=3D(string)progressive, > multiview-mode=3D(string)mono, > multiview-flags=3D(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first= /left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mo= no, > pixel-aspect-ratio=3D(fraction)1/1, framerate=3D(fraction)25/1 > /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0.GstGhostPad:video_0.Gst= ProxyPad:proxypad6: > caps =3D video/x-raw, format=3D(string)NV12, width=3D(int)1920, > height=3D(int)1080, interlace-mode=3D(string)progressive, > multiview-mode=3D(string)mono, > multiview-flags=3D(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first= /left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mo= no, > pixel-aspect-ratio=3D(fraction)1/1, framerate=3D(fraction)25/1 > /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/GstMultiQueue:multiqueu= e0: > min-interleave-time =3D 300000000 > Redistribute latency... > /GstPipeline:pipeline0/GstDecodebin3:decodebin3-0/v4l2slh264dec:v4l2slh26= 4dec0.GstPad:sink: > caps =3D video/x-h264, variant=3D(string)itu, framerate=3D(fraction)25/1, > width=3D(int)1920, height=3D(int)1080, chroma-format=3D(string)4:2:0, > bit-depth-luma=3D(uint)8, bit-depth-chroma=3D(uint)8, > parsed=3D(boolean)true, stream-format=3D(string)avc, alignment=3D(string)= au, > profile=3D(string)high, level=3D(string)4, > codec_data=3D(buffer)01640028ffe1001a67640028acd940780227e584000003000400= 000300c83c60c65801000668ebe3cb22c0 > New clock: GstSystemClock > > And it appears to stream, because the counter increases. I haven't > checked the CPU utilization, but the fact that it shows v4l2slh264dec > is good. > > Is there a way to know if/how the decoder is using the proper VPU? I > assume if it wasn't using the proper one, it would fail, but was just > curious. > A few ways. You can check /proc/interrupts, which should have VPU activity. Or enable debug messages for the module, using the debug hantro parameter. V4L2 has debug messages that you can enable, see /sys/class/video4linux/video0/dev_debug. Instead of fakesink you can output to pngenc/jpegenc and check the output is visually correct. If at all possible, the proper way is to use Fluster, and report the score you get: https://github.com/fluendo/fluster It should be easy to use. > I think I'll redo the patch without the RFC and without the H1 encoder > unless anyone has any objections. I know I need to rebase on > linux-next anyway because the patches don't apply cleanly. Is there a > specific branch I should use? I don't know if this goes through > Shawn's IMX tree or the media tree (or a combination) > You should rebase on media's master branch: https://git.linuxtv.org/media_tree.git/log/ Thanks, Ezequiel 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id B0601C433EF for ; Mon, 29 Nov 2021 16:54:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc: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=WY+LAx23QQkr6LG8qOfY5VD5hc025++AF9lFWrUyRNQ=; b=mOahI8Qet+SbE+ yyJqz9EZymVXBsPYo03pGQZQDN94Xy/AbEobHbzPhckgNAYqrHj4gY/bSAWvjwgZwMVO/vL7xQJAK ffpbP3ha9b1TODcWTHhl6rQNW3D5j7MEu6KpApd2eDK58hUy4AQuQLQEt8vIMmBhlytjGyB3ah/17 U1CAxFep3KH5YdJYiLq4mU+x3BRk3aMhkCG7jgYKsiOkupCEv7vD5+4ag+pdo/yWu/BYE4SJ4eXn1 oprgrlteU0tTHAlL6ZtgJczASDdu/pLbzFtnKm562NsbGhp5TxVj5ezewPKnzedWwueT71mwKqU2b wAbCWAx/I9g9LPCuzkpg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrjvB-001ViR-SX; Mon, 29 Nov 2021 16:54:29 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrjv6-001Ven-Pa for linux-rockchip@lists.infradead.org; Mon, 29 Nov 2021 16:54:27 +0000 Received: by mail-ed1-x536.google.com with SMTP id g14so74686144edb.8 for ; Mon, 29 Nov 2021 08:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vanguardiasur-com-ar.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=UsyF/dWQQNrn0rwDgW+rSch0YemV0PivvOS2f76eXi0=; b=vjGZ/Jp2JJJGSplFrc0i7yjUrXuf25vecciBoV9m6tj0SLjfbzRZaEPTyZkj/Nlz0h Yw2fpFgKwIR1lJdTzyNqo/tr3oCCxSlMdYoUoQ0nARAMBNkk9kC/cwbBKp63pQ9rINwe LvDdcwvnqfiyDQPigro+4gdcbJ4VfCKPaXJKTVfDE9o738xXAsUYnfQHHAECx2yIqm4S r6tzuGUMhDqBCLhvCKrTyvRawiOzdLjfwqtdA8evXcxzPRR+VioW4QqzFKcd7uCwu0z+ sCX7y/R3luybBydMB62Nx7Nr3tuVPtvspT5StKJ0h8V1wJt8wvCdnqjbAcN6SnjVYGFd lnNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=UsyF/dWQQNrn0rwDgW+rSch0YemV0PivvOS2f76eXi0=; b=X+lDW9ychr8960E+D5req1pwpC+vHT+T5SWGPcFP+aaqWEYXvpfwtzqI+67EW7JeLW GfS1V79iNO1YL7GLZNR9b6sIi4lzT0sHS/NfzT4HjNmB1ArkVUG1ZMTiqRdJWic2QD9v xRn33eVaD03/CMf2XpsZKdrittiFmZwn39o/g6iVwpgrZ3zmD1S8lmL2Z5PKs9Qe8WxD hXPEd8dnob2TH2iIpFdeV09XHwsr6cxaBQwCp4DQ6qowyCXNBd/4Oc6hlAMoSREelFZU OWS/iYzr6jdvd1R4Q9TRYbNyZQTFXazcDpLZohxFc95l2/i5T/IfGBdHXim06cut4CPy +wOw== X-Gm-Message-State: AOAM531ZNSUM1IuATZCnHPWpmJ9Pn2oKQGpXCzT27CVq3vmYX9+qt1sO dy0ckPlH6eGokTbsmOyaAPwm05vZ2QvJNZk0CkjUcA== X-Google-Smtp-Source: ABdhPJxFQTeprjRnIKw/ySJAcM+Yoa3ZdxrVGjFqyzwScsybVOffDKzEHZT/8egB5EH9xyyyOefK5t2r/TIXeesucls= X-Received: by 2002:aa7:d412:: with SMTP id z18mr77515624edq.315.1638204861875; Mon, 29 Nov 2021 08:54:21 -0800 (PST) MIME-Version: 1.0 References: <20211106183802.893285-1-aford173@gmail.com> <718f7f6d6cd564d031c1963f1590c62d549ae725.camel@ndufresne.ca> <8db00a4b6faa99c940d9bc86e17161eb0db5efe3.camel@ndufresne.ca> <7f94eaacfddb8c5434c17f1e069ea87a17657ce9.camel@ndufresne.ca> In-Reply-To: From: Ezequiel Garcia Date: Mon, 29 Nov 2021 13:54:10 -0300 Message-ID: Subject: Re: [RFC 0/5] arm64: imx8mm: Enable Hantro VPUs To: Adam Ford Cc: Nicolas Dufresne , Tim Harvey , linux-media , Schrempf Frieder , Marek Vasut , Jagan Teki , Adam Ford-BE , cstevens@beaconembedded.com, Philipp Zabel , Mauro Carvalho Chehab , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Greg Kroah-Hartman , Heiko Stuebner , Lucas Stach , Joakim Zhang , Alice Guo , Peng Fan , "open list:HANTRO VPU CODEC DRIVER" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , open list , "open list:STAGING SUBSYSTEM" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211129_085424_998703_8733066B X-CRM114-Status: GOOD ( 51.35 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gTW9uLCAyOSBOb3YgMjAyMSBhdCAxMzo0OCwgQWRhbSBGb3JkIDxhZm9yZDE3M0BnbWFpbC5j b20+IHdyb3RlOgo+Cj4gT24gVHVlLCBOb3YgMjMsIDIwMjEgYXQgMjowNyBQTSBOaWNvbGFzIER1 ZnJlc25lIDxuaWNvbGFzQG5kdWZyZXNuZS5jYT4gd3JvdGU6Cj4gPgo+ID4gTGUgbHVuZGkgMjIg bm92ZW1icmUgMjAyMSDDoCAwOToyNSAtMDgwMCwgVGltIEhhcnZleSBhIMOpY3JpdCA6Cj4gPiA+ IE9uIFNhdCwgTm92IDIwLCAyMDIxIGF0IDc6MzYgQU0gQWRhbSBGb3JkIDxhZm9yZDE3M0BnbWFp bC5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBOb3YgMTksIDIwMjEgYXQgNToz NyBQTSBBZGFtIEZvcmQgPGFmb3JkMTczQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4g PiA+ID4gT24gRnJpLCBOb3YgMTksIDIwMjEgYXQgMTA6MjkgQU0gTmljb2xhcyBEdWZyZXNuZSA8 bmljb2xhc0BuZHVmcmVzbmUuY2E+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBIaSBB ZGFtLCBUaW0sCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFsuLi5dCj4gPiA+ID4gPiA+ID4gPiA+ ID4gTmljb2xhcyBhbmQgQWRhbSwKPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4g PiA+IEZvciB0aGUgSDEgcGF0Y2hlcyBpbiB0aGlzIHNlcmllczogSSd2ZSBiZWVuIGFibGUgdG8g dGVzdCB0aGUgSU1YOE1NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSDEgSlBFRyBlbmNvZGUgdXNpbmcg R1N0cmVhbWVyIDEuMTguNToKPiA+ID4gPiA+ID4gPiA+ID4gPiAkIGdzdC1pbnNwZWN0LTEuMCB8 IGdyZXAgLWUgInY0bDIuKmVuYyIKPiA+ID4gPiA+ID4gPiA+ID4gPiB2aWRlbzRsaW51eDI6ICB2 NGwyanBlZ2VuYzogVjRMMiBKUEVHIEVuY29kZXIKPiA+ID4gPiA+ID4gPiA+ID4gPiAkIGdzdC1s YXVuY2gtMS4wIHZpZGVvdGVzdHNyYyAhIGpwZWdlbmMgISBydHBqcGVncGF5ICEgdWRwc2luawo+ ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB2NGwy anBlZ2VuYwo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGlzIGp1c3Qg YSB0cmFuc2NyaXB0IGVycm9yID8KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBOaWNv bGFzLAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IE5vISBUaGFua3MgZm9yIGNhdGNo aW5nIG15IG1pc3Rha2UuIEkgd2FzIHRlc3Rpbmcgd2l0aCBzb2Z0d2FyZSBlbmNvZGUuLi4gb29v cHMhCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gJ2dzdC1sYXVuY2gtMS4wIHZpZGVv dGVzdHNyYyAhIHY0bDJqcGVnZW5jICEgZmFrZXNpbmsnIGFjdHVhbGx5IGhhbmdzCj4gPiA+ID4g PiA+ID4gPiB0aGUgYm9hcmQgc28gbGlrZWx5IGEgcG93ZXItZG9tYWluIGlzc3VlIHRoZXJlPwo+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gVGhlIHY0bDItY29tcGxpYW5jZSB0ZXN0cyBmYWls IG9uIHRoZSBoMSBkZWNvZGVyIHdpdGggYSBoYW5nLCBidXQgSQo+ID4gPiA+ID4gPiA+IHRoaW5r IHdlJ3JlIHdyaXRpbmcgdG8gcmVnaXN0ZXJzIHdoaWNoIGFyZSBub3QgZG9jdW1lbnRlZCBpbiB0 aGUgTWluaQo+ID4gPiA+ID4gPiA+IFRSTS4gIFRoZSBNaW5pIFRSTSBkb2Vzbid0IGV4cGxpY2l0 bHkgc2hvdyB0aGUgSlBFRyBlbmNvZGluZyBhcyBhCj4gPiA+ID4gPiA+ID4gZmVhdHVyZSwgYnV0 IHNvbWUgb2YgdGhlIHJlZ2lzdGVycyBzdGF0ZSBKUEVHLCBidXQgYmVjYXVzZSBzb21lIG9mIHRo ZQo+ID4gPiA+ID4gPiA+IHJlZ2lzdGVycyB3cml0dGVuIGZvciB0aGUgSDEgYXJlIG5vdCBkb2N1 bWVudGVkIGluIHRoZSBUUk0uICBJZiB0aG9zZQo+ID4gPiA+ID4gPiA+IHJlZ2lzdGVycyBhcmUg cmVzdHJpY3RlZCBvciBub3QgaW4gdGhpcyBTb0MsIEkgYW0gY29uY2VybmVkIHRoYXQgaXQKPiA+ ID4gPiA+ID4gPiBtaWdodCBiZSByZWxhdGVkLiAgSSdsbCB0cnkgdG8gcnVuIHNvbWUgbW9yZSB0 ZXN0cyB0aGlzIHdlZWtlbmQgdG8KPiA+ID4gPiA+ID4gPiBjaGVjayBvbiB0aGUgc3RhdHVzIG9m IHRoZSBwb3dlci1kb21haW4gc3R1ZmYuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRvIHZlcmlm eSBpZiB0aGUgSFcgc3VwcG9ydCBKUEVHIGVuY29kaW5nIHlvdSBjYW4gcmVhZCBTV1JFRzYzIGJp dCAyNS4gVGhpcyBpcwo+ID4gPiA+ID4gPiBpbiB0aGUgVFJNLCBqdXN0IG5vdCBsYWJlbGxlZCBw cm9wZXJseS4gVG8gbWltaWMgdGhlIGRlY29kaW5nIHNpZGUsIHdvdWxkIGJlICJIVwo+ID4gPiA+ ID4gPiBzeW50aGVzaXMgY29uZmlnIHJlZ2lzdGVyIFgiIHdpdGggdGhlIGJpdCBsYWJlbGxlZCBT V19FTkNfSlBFR19QUk9GIChidXQKPiA+ID4gPiA+ID4gUFJPRi9wcm9maWxlIGlzIG9uIG9yIG9m ZikuIElmIHlvdXIgYm9hcmQgaGFuZyB3aGlsZSByZWFkaW5nIHRoaXMsIHlvdSBsaWtlbHkKPiA+ ID4gPiA+ID4gZGlkbid0IGdldCB0aGUgcG93ZXIgYml0IHJpZ2h0Lgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBJTVg4IGhhcyBhbiB1bmRvY3VtZW50ZWQgY29udHJvbCBibG9jayB0aGluZyB0aGF0 IHdlIGhhdmUgYmVlbiBmaWdodGluZyB3aXRoIGluCj4gPiA+ID4gPiA+IGlteDhxLCAgcGVyaGFw cyB0aGF0J3MgeW91ciBpc3N1ZS4gRmV3IGRyaXZlciB3YXMgcHJvcG9zZWQsIHdlIGFyZSBzdGls bCBwZW5kaW5nCj4gPiA+ID4gPiA+IG9uIE5YUCBzb2x1dGlvbiB0byBiZSBzdWJtaXR0ZWQgKHRo ZXkgYXNrZWQgdXMgdG8gd2FpdCwgc3RpbGwgd2FpdGluZyA9KSkuCj4gPiA+ID4gPgo+ID4gPiA+ ID4gTmljb2xhcywKPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9u IHRvIHJlYWQgb2Zmc2V0IEZDLiAgVGhlcmUgd2FzIGFuIGF0dGVtcHQKPiA+ID4gPiA+IG1hZGUg YnkgTHVjYXMgU3RhY2ggdG8gZGV2ZWxvcCBhIFZQVSBibGstY3RybCBkcml2ZXIgdG8gY29vcmRp bmF0ZSB0aGUKPiA+ID4gPiA+IHBvd2VyLWRvbWFpbnMgd2l0aCB0aGUgR1BDIGRyaXZlci4gVW5m b3J0dW5hdGVseSwgaXQgZG9lcyBhcHBlYXIgdG8KPiA+ID4gPiA+IGhhbmcsIHNvIGl0IG1pZ2h0 IG5vdCBiZSBvcGVyYXRpbmcgY29ycmVjdGx5Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IEx1Y2FzLAo+ ID4gPiA+ID4KPiA+ID4gPiA+IERvIHlvdSBoYXZlIGFueSBpZGVhIG9mIHN0dWZmIEkgY2FuIHRy eSB0byBzZWUgaWYgdGhlIHBvd2VyIGRvbWFpbiBpcwo+ID4gPiA+ID4gY29taW5nIG9ubGluZSBj b3JyZWN0bHk/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gWyAgIDEwLjQzNDcyN10gaW14LXBnYyBpbXgt cGdjLWRvbWFpbi42OiByZXF1ZXN0IHRoZSB2cHVtaXggZG9tYWluIHRvIHBvd2VyIHVwCj4gPiA+ ID4gPiBbICAgMTAuNDYzNjQ3XSBpbXgtcGdjIGlteC1wZ2MtZG9tYWluLjY6IHJlcXVlc3QgdGhl IHZwdW1peCBBREI0MDAgdG8gcG93ZXIgdXAKPiA+ID4gPiA+IFsgICAxMC41MTcxNTVdIGlteC1w Z2MgaW14LXBnYy1kb21haW4uNjogZ2VucGQgdnB1bWl4IHN1Y2Nlc3MKPiA+ID4gPiA+IFsgICAx MC43Mjg5MjddIHZwdTogc2V0IGZ1c2UgYml0cyB0byBlbmFibGUKPiA+ID4gPiA+IFsgICAxMC44 MjU1MDBdIGlteDhtLWJsay1jdHJsIDM4MzMwMDAwLmJsay1jdHJsOiBwb3dlciB2cHVibGstZzEg R1BDIGRvbWFpbgo+ID4gPiA+ID4gWyAgIDEwLjg3ODk4Nl0gaW14LXBnYyBpbXgtcGdjLWRvbWFp bi43OiByZXF1ZXN0IHRoZSB2cHUtZzEgZG9tYWluIHRvIHBvd2VyIHVwCj4gPiA+ID4gPiBbICAg MTAuOTMyNDI5XSBpbXgtcGdjIGlteC1wZ2MtZG9tYWluLjc6IGdlbnBkIHZwdS1nMSBzdWNjZXNz Cj4gPiA+ID4gPiBbICAgMTAuOTcxOTg4XSBpbXg4bS1ibGstY3RybCAzODMzMDAwMC5ibGstY3Ry bDogZ2VucGQgdnB1YmxrLWcxIHN1Y2Nlc3MKPiA+ID4gPiA+IFsgICAxMS4wMDQ3MjZdIGhhbnRy by12cHUgMzgzMDAwMDAudmlkZW8tY29kZWM6IHJlZ2lzdGVyZWQKPiA+ID4gPiA+IG54cCxpbXg4 bW0tdnB1LWRlYyBhcyAvZGV2L3ZpZGVvMAo+ID4gPiA+ID4gWyAgIDExLjA0MDc2MF0gaW14OG0t YmxrLWN0cmwgMzgzMzAwMDAuYmxrLWN0cmw6IHBvd2VyIHZwdWJsay1nMiBHUEMgZG9tYWluCj4g PiA+ID4gPiBbICAgMTEuMDY2MTgxXSBpbXgtcGdjIGlteC1wZ2MtZG9tYWluLjg6IHJlcXVlc3Qg dGhlIHZwdS1nMiBkb21haW4gdG8gcG93ZXIgdXAKPiA+ID4gPiA+IFsgICAxMS4wODc4ODddIGlt eC1wZ2MgaW14LXBnYy1kb21haW4uODogZ2VucGQgdnB1LWcyIHN1Y2Nlc3MKPiA+ID4gPiA+IFsg ICAxMS4xMTM4MDhdIGlteDhtLWJsay1jdHJsIDM4MzMwMDAwLmJsay1jdHJsOiBnZW5wZCB2cHVi bGstZzIgc3VjY2Vzcwo+ID4gPiA+ID4gWyAgIDExLjEzOTYzNF0gaGFudHJvLXZwdSAzODMxMDAw MC52aWRlby1jb2RlYzogcmVnaXN0ZXJlZAo+ID4gPiA+ID4gbnhwLGlteDhtbS12cHUtZzItZGVj IGFzIC9kZXYvdmlkZW8xCj4gPiA+ID4gPiBbICAgMTEuMTU2NDYzXSBpbXg4bS1ibGstY3RybCAz ODMzMDAwMC5ibGstY3RybDogcG93ZXIgdnB1YmxrLWgxIEdQQyBkb21haW4KPiA+ID4gPiA+IFsg ICAxMS4xNzA4MTddIGlteC1wZ2MgaW14LXBnYy1kb21haW4uOTogcmVxdWVzdCB0aGUgdnB1LWgx IGRvbWFpbiB0byBwb3dlciB1cAo+ID4gPiA+ID4gWyAgIDExLjIzMjk5MF0gaW14LXBnYyBpbXgt cGdjLWRvbWFpbi45OiBnZW5wZCB2cHUtaDEgc3VjY2Vzcwo+ID4gPiA+ID4gWyAgIDExLjI1MjU0 Nl0gaW14OG0tYmxrLWN0cmwgMzgzMzAwMDAuYmxrLWN0cmw6IGdlbnBkIHZwdWJsay1oMSBzdWNj ZXNzCj4gPiA+ID4gPiBbICAgMTEuMjY2MTUyXSBoYW50cm8tdnB1IDM4MzIwMDAwLnZpZGVvLWNv ZGVjOiBDaGVja2luZyB2cHUtPmVuY19iYXNlICsgMHhmYwo+ID4gPiA+ID4KPiA+ID4gPiA+IDxo YW5nPgo+ID4gPiA+ID4KPiA+ID4gPiA+IGFkYW0KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBO aWNvbGFzLCBUaW0sIGFuZCBMdWNhcywKPiA+ID4gPgo+ID4gPiA+IEkgdGhpbmsgSSBoYXZlIHRo ZSBoYW5naW5nIHJlc29sdmVkIGluIHRoZSBwb3dlciBkb21haW5zLCBhbmQgSSdsbCBiZQo+ID4g PiA+IHB1c2hpbmcgdGhlIGZpeCB0byB0aGUgR1BDdjIuCj4gPiA+ID4KPiA+ID4gPiBGb3IgdGhl IEgxIEVuY29kZXIsIEkgYWRkZWQgc29tZSBkZWJ1Z2dpbmcgY29kZSB0byByZWFkIHRoZSBvZmZz ZXQKPiA+ID4gPiAweGZjIGFuZCBwcmludCBzb21lIGRhdGEgYmFzZWQgb24gdGhlIGZpbmRpbmdz IG9mIHRoYXQgVlBVLWgxIG9mZnNldC4KPiA+ID4gPiBJIGJhc2ljYWxseSBjaGVjayB0aGUgdmFy aW91cyBiaXRzIHBlciB0aGUgVFJNIHRvIHNlZSBpZiB0aGV5IGFyZSBzZXQKPiA+ID4gPiBhbmQg cHJpbnQgc29tZSBzcGxhdCB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCB0aGUgZnVuY3Rpb24g aXMKPiA+ID4gPiBzdXBwb3J0ZWQuCj4gPiA+ID4KPiA+ID4gPiBbICAgIDguODYxODY1XSBoYW50 cm8tdnB1IDM4MzIwMDAwLnZpZGVvLWNvZGVjOiBDaGVja2luZyB2cHUtPmVuY19iYXNlICsgMHhm Ywo+ID4gPiA+IFsgICAgOC44NzA1OTRdIGhhbnRyby12cHUgMzgzMjAwMDAudmlkZW8tY29kZWM6 IFN0YWJpbGl6YXRpb24gc3VwcG9ydGVkIGJ5IEhXCj4gPiA+ID4gWyAgICA4Ljg4OTM0MV0gaGFu dHJvLXZwdSAzODMyMDAwMC52aWRlby1jb2RlYzogVlA4IGVuY29kaW5nIHN1cHBvcnRlZCBieSBI Vwo+ID4gPiA+IFsgICAgOC44OTkzODZdIGhhbnRyby12cHUgMzgzMjAwMDAudmlkZW8tY29kZWM6 IEguMjY0IGVuY29kaW5nIHN1cHBvcnRlZCBieSBIVwo+ID4gPiA+IFsgICAgOC45MTgxNzFdIGhh bnRyby12cHUgMzgzMjAwMDAudmlkZW8tY29kZWM6IFJHQiB0byBZVVYgY29udmVyc2lvbgo+ID4g PiA+IHN1cHBvcnRlZCBieSBIVwo+ID4gPiA+IFsgICAgOC45MzQwNjddIGhhbnRyby12cHUgMzgz MjAwMDAudmlkZW8tY29kZWM6IHJlZ2lzdGVyZWQKPiA+ID4gPiBueHAsaW14OG1tLXZwdS1oMS1l bmMgYXMgL2Rldi92aWRlbzIKPiA+ID4gPgo+ID4gPiA+IFVuZm9ydHVuYXRlbHksIEpQRUcgaXMg bm90IGxpc3RlZCBhcyBzdXBwb3J0ZWQuICA6LSgKPiA+ID4KPiA+ID4gQWRhbSwKPiA+ID4KPiA+ ID4gV2VsbCBub3QgaGF2aW5nIEpQRUcgZW5jb2RlIHN1cHBvcnQgaXMgdW5mb3J0dW5hdGUsIGFu ZCB1bmV4cGVjdGVkLiBEbwo+ID4gPiB3ZSBub3QgaGF2ZSBoYW50cm8gc3VwcG9ydCB5ZXQgZm9y IFZQOC9IMjY0IGVuY29kZT8KPiA+Cj4gPiBUaGVyZSBpcyBubyBtYWlubGluZSBzdXBwb3J0IHll dC4gWW91IGNhbiBkZXJpdmUgZnJvbSBSSzMyODggc3VwcG9ydCB1c2luZyBHb29nbGUgQ2hyb21l T1MgbWV0aG9kIChhIHY0bDIgcGx1Z2lucyB0aGF0IHNpbXVsYXRlIGluIHVzZXJzcGFjZSBhIHN0 YXRlZnVsIGVuY29kZXIpOgo+ID4KPiA+IC0gbGlidjRsIHBsdWdpbnMgLyBodHRwczovL2Nocm9t aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW1vcy90aGlyZF9wYXJ0eS9saWJ2NGxwbHVnaW5z LysvcmVmcy9oZWFkcy9tYXN0ZXIKPiA+IC0gS2VybmVsIERyaXZlciAvIGh0dHBzOi8vY2hyb21p dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bW9zL3RoaXJkX3BhcnR5L2tlcm5lbC8rL2Nocm9t ZW9zLTQuNC9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwLXZwdS8KPiA+Cj4gPiA+Cj4g PiA+IEkgaGF2ZW4ndCBxdWl0ZSBmaWd1cmVkIG91dCBob3cgdG8gYnVpbGQgYSBtb2Rlcm4gbW9u by1yZXBvIGdzdHJlYW1lcgo+ID4gPiBvbiB0aGUgdWJ1bnR1IDIwLjA0IHJvb3RmcyBJJ20gdXNp bmcgc28gSSBoYXZlbid0IGJlZW4gYWJsZSB0byB0ZXN0Cj4gPiA+IFZQVSBlbmNvZGUvZGVjb2Rl IHByb3Blcmx5LiBJJ2xsIGtlZXAgd29ya2luZyBvbiBpdCB3aGVuIEknbSBiYWNrIGluCj4gPiA+ IHRoZSBvZmZpY2UgdGhlIGZvbGxvd2luZyB3ZWVrLgo+ID4KPiA+IERpZCBhIHF1aWNrIHRlc3Qg dG8gbWFrZSBzdXJlIHRoZXJlIGlzbid0IGFueSB1YnVudHUgc3BlY2lmaWMgYmxvY2tlcnMsIGhl cmUncyBhCj4gPiBkaXJ0eSBzY3JpcHQgdGhhdCBwcm9kdWNlIGEgbWluaW1hbCBHU3RyZWFtZXIs IHRoZXJlIHdhcyByZWFsbHkgbm90aGluZyBzcGVjaWFsCj4gPiBjb21wYXJlIHRvIG90aGVyIG1l c29uIHByb2plY3RzLiBOb3RlIHRoYXQgSSB1c2UgLS13cmFwLW1vZGU9bm9mYWxsYmFjayB0byBh dm9pZAo+ID4gbGV0dGluZyBHU3RyZWFtZXIgY29tcGxldGUgaXQncyBmZWF0dXJlLXNldCBieSBk b3dubG9hZGluZyB0aGUgcGxhbmV0LiBUaGlzCj4gPiBhbHJlYWR5IGJ1aWxkIHF1aXRlIGEgbG90 IGFuZCBjb3VsZCBsaWtlbHkgYmUgbWFkZSBzbWFsbGVyIGJ5IGF2b2lkIHBsdWdpbnMtZ29vZAo+ ID4gYnVpbGQtZGVwIGNhbGwsIGJ1dCB0aGVuIHlvdSBuZWVkIHRvIGNoZWNrIGZvciB2NGwyb2Rl Y3MgYW5kIHZpZGVvNGxpbnV4IGRldnMKPiA+IChtb3N0bHkgZ3VkZXYgYSBnbGliIHVkZXYgYmlu ZGluZykuCj4gPgo+ID4gIyBJbnN0YWxsIHVidW50dQo+ID4gcG9kbWFuIHJ1biAtaXQgLS1ybSB1 YnVudHU6MjAuMDQKPiA+IHNlZCAtaSAicy8jIGRlYi1zcmMvZGViLXNyYy8iIC9ldGMvYXB0L3Nv dXJjZXMubGlzdAo+ID4gYXB0IHVwZGF0ZQo+ID4gYXB0IGJ1aWxkLWRlcCBnc3RyZWFtZXIxLjAt cGx1Z2lucy1nb29kCj4gPiBhcHQgaW5zdGFsbCBnaXQgcHl0aG9uMy1waXAgZmxleCBiaXNvbgo+ ID4KPiA+ICMgTmVlZCBhIG5ld2VyIG1lc29uCj4gPiBwaXAzIGluc3RhbGwgLS11c2VyIG1lc29u Cj4gPiBleHBvcnQgUEFUSD0kUEFUSDp+Ly5sb2NhbC9iaW4KPiA+Cj4gPiAjIEJ1aWxkIEdTdHJl YW1lcgo+ID4gZ2l0IGNsb25lIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFt ZXIvZ3N0cmVhbWVyLmdpdAo+ID4gY2QgZ3N0cmVhbWVyCj4gPiBtZXNvbiBzZXR1cCBidWlsZCAt LXdyYXAtbW9kZT1ub2ZhbGxiYWNrCj4gPiBuaW5qYSAtQyBidWlsZAo+ID4KPiA+ICMgUnVuIGlu LXBsYWNlCj4gPiAuL2dzdC1lbnYucHkKPiA+IGdzdC1pbnNwZWN0LTEuMCB2NGwyY29kZWNzCj4g PiBnc3QtaW5zcGVjdCAxLjAgdmlkZW80bGludXgyCj4gPgo+IFRoYW5rcyBmb3IgdGhlIHN1Z2dl c3Rpb25zLgo+Cj4gSSBkb3dubG9hZGVkIHdoYXQncyBpbiB0aGUgbWFzdGVyIHJlcG86Cj4KPiBb Z3N0LW1haW5dIHJvb3RAbG9jYWxob3N0On4vZ3N0cmVhbWVyIyBnc3QtaW5zcGVjdC0xLjAgdjRs MmNvZGVjcwo+Cj4gKiogKGdzdC1wbHVnaW4tc2Nhbm5lcjo3MzE3KTogQ1JJVElDQUwgKio6IDEw OjI5OjUxLjg0NzogY2FuJ3QgZmluZAo+IGdpLnJlcG9zaXRvcnkuR3N0Cj4gUGx1Z2luIERldGFp bHM6Cj4gICBOYW1lICAgICAgICAgICAgICAgICAgICAgdjRsMmNvZGVjcwo+ICAgRGVzY3JpcHRp b24gICAgICAgICAgICAgIFY0TDIgQ09ERUMgQWNjZWxlcmF0b3JzIHBsdWdpbgo+ICAgRmlsZW5h bWUKPiAvcm9vdC9nc3RyZWFtZXIvYnVpbGRkaXIvc3VicHJvamVjdHMvZ3N0LXBsdWdpbnMtYmFk L3N5cy92NGwyY29kZWNzL2xpYmdzdHY0bDJjb2RlY3Muc28KPiAgIFZlcnNpb24gICAgICAgICAg ICAgICAgICAxLjE5LjMuMQo+ICAgTGljZW5zZSAgICAgICAgICAgICAgICAgIExHUEwKPiAgIFNv dXJjZSBtb2R1bGUgICAgICAgICAgICBnc3QtcGx1Z2lucy1iYWQKPiAgIEJpbmFyeSBwYWNrYWdl ICAgICAgICAgICBHU3RyZWFtZXIgQmFkIFBsdWctaW5zIGdpdAo+ICAgT3JpZ2luIFVSTCAgICAg ICAgICAgICAgIFVua25vd24gcGFja2FnZSBvcmlnaW4KPgo+ICAgdjRsMnNsaDI2NGRlYzogVjRM MiBTdGF0ZWxlc3MgSC4yNjQgVmlkZW8gRGVjb2Rlcgo+ICAgdjRsMnNsbXBlZzJkZWM6IFY0TDIg U3RhdGVsZXNzIE1wZWcyIFZpZGVvIERlY29kZXIKPiAgIHY0bDJzbHZwOGFscGhhZGVjb2RlYmlu OiBWUDggQWxwaGEgRGVjb2Rlcgo+ICAgdjRsMnNsdnA4ZGVjOiBWNEwyIFN0YXRlbGVzcyBWUDgg VmlkZW8gRGVjb2Rlcgo+Cj4gICA0IGZlYXR1cmVzOgo+ICAgKy0tIDQgZWxlbWVudHMKPgo+IFtn c3QtbWFpbl0gcm9vdEBsb2NhbGhvc3Q6fi9nc3RyZWFtZXIjIGdzdC1pbnNwZWN0LTEuMCB2aWRl bzRsaW51eDIKPiBQbHVnaW4gRGV0YWlsczoKPiAgIE5hbWUgICAgICAgICAgICAgICAgICAgICB2 aWRlbzRsaW51eDIKPiAgIERlc2NyaXB0aW9uICAgICAgICAgICAgICBlbGVtZW50cyBmb3IgVmlk ZW8gNCBMaW51eAo+ICAgRmlsZW5hbWUKPiAvcm9vdC9nc3RyZWFtZXIvYnVpbGRkaXIvc3VicHJv amVjdHMvZ3N0LXBsdWdpbnMtZ29vZC9zeXMvdjRsMi9saWJnc3R2aWRlbzRsaW51eDIuc28KPiAg IFZlcnNpb24gICAgICAgICAgICAgICAgICAxLjE5LjMuMQo+ICAgTGljZW5zZSAgICAgICAgICAg ICAgICAgIExHUEwKPiAgIFNvdXJjZSBtb2R1bGUgICAgICAgICAgICBnc3QtcGx1Z2lucy1nb29k Cj4gICBCaW5hcnkgcGFja2FnZSAgICAgICAgICAgR1N0cmVhbWVyIEdvb2QgUGx1Zy1pbnMgZ2l0 Cj4gICBPcmlnaW4gVVJMICAgICAgICAgICAgICAgVW5rbm93biBwYWNrYWdlIG9yaWdpbgo+Cj4g ICB2NGwyZGV2aWNlcHJvdmlkZXI6IFZpZGVvICh2aWRlbzRsaW51eDIpIERldmljZSBQcm92aWRl cgo+ICAgdjRsMmpwZWdlbmM6IFY0TDIgSlBFRyBFbmNvZGVyCj4gICB2NGwycmFkaW86IFJhZGlv ICh2aWRlbzRsaW51eDIpIFR1bmVyCj4gICB2NGwyc2luazogVmlkZW8gKHZpZGVvNGxpbnV4Mikg U2luawo+ICAgdjRsMnNyYzogVmlkZW8gKHZpZGVvNGxpbnV4MikgU291cmNlCj4KPiAgIDUgZmVh dHVyZXM6Cj4gICArLS0gNCBlbGVtZW50cwo+ICAgKy0tIDEgZGV2aWNlIHByb3ZpZGVycwo+Cj4g SSBzdGlsbCBoYXZlIHRoZSBIMSBlbmNvZGVyIGVuYWJsZWQsIGJ1dCBJIGtub3cgSlBFRyBpc24n dCBzdXBwb3J0ZWQsCj4gc28gSSdtIGdvaW5nIHRvIGF0dGVtcHQgdG8gZG8gc29tZSBkZWNvZGlu ZyBhbmQgcGlwZSB0byBmYWtlc2luayBzaW5jZQo+IEkgZG9uJ3QgaGF2ZSBhIGZ1bmN0aW9uYWwg ZGlzcGxheSB5ZXQuCj4KPiBnc3QtbGF1bmNoLTEuMCAtZXYgZmlsZXNyYyBsb2NhdGlvbj10cmFp bGVyXzEwODBwX2gyNjRfbXAzLmF2aSAhCj4gZGVjb2RlYmluMyAgISBmYWtlc2luawo+Cj4gUmVk aXN0cmlidXRlIGxhdGVuY3kuLi4KPiAvR3N0UGlwZWxpbmU6cGlwZWxpbmUwL0dzdERlY29kZWJp bjM6ZGVjb2RlYmluMy0wL3Y0bDJzbGgyNjRkZWM6djRsMnNsaDI2NGRlYzAuR3N0UGFkOnNyYzoK PiBjYXBzID0gdmlkZW8veC1yYXcsIGZvcm1hdD0oc3RyaW5nKU5WMTIsIHdpZHRoPShpbnQpMTky MCwKPiBoZWlnaHQ9KGludCkxMDgwLCBpbnRlcmxhY2UtbW9kZT0oc3RyaW5nKXByb2dyZXNzaXZl LAo+IG11bHRpdmlldy1tb2RlPShzdHJpbmcpbW9ubywKPiBtdWx0aXZpZXctZmxhZ3M9KEdzdFZp ZGVvTXVsdGl2aWV3RmxhZ3NTZXQpMDpmZmZmZmZmZjovcmlnaHQtdmlldy1maXJzdC9sZWZ0LWZs aXBwZWQvbGVmdC1mbG9wcGVkL3JpZ2h0LWZsaXBwZWQvcmlnaHQtZmxvcHBlZC9oYWxmLWFzcGVj dC9taXhlZC1tb25vLAo+IHBpeGVsLWFzcGVjdC1yYXRpbz0oZnJhY3Rpb24pMS8xLCBmcmFtZXJh dGU9KGZyYWN0aW9uKTI1LzEKPiAvR3N0UGlwZWxpbmU6cGlwZWxpbmUwL0dzdERlY29kZWJpbjM6 ZGVjb2RlYmluMy0wLkdzdEdob3N0UGFkOnZpZGVvXzA6Cj4gY2FwcyA9IHZpZGVvL3gtcmF3LCBm b3JtYXQ9KHN0cmluZylOVjEyLCB3aWR0aD0oaW50KTE5MjAsCj4gaGVpZ2h0PShpbnQpMTA4MCwg aW50ZXJsYWNlLW1vZGU9KHN0cmluZylwcm9ncmVzc2l2ZSwKPiBtdWx0aXZpZXctbW9kZT0oc3Ry aW5nKW1vbm8sCj4gbXVsdGl2aWV3LWZsYWdzPShHc3RWaWRlb011bHRpdmlld0ZsYWdzU2V0KTA6 ZmZmZmZmZmY6L3JpZ2h0LXZpZXctZmlyc3QvbGVmdC1mbGlwcGVkL2xlZnQtZmxvcHBlZC9yaWdo dC1mbGlwcGVkL3JpZ2h0LWZsb3BwZWQvaGFsZi1hc3BlY3QvbWl4ZWQtbW9ubywKPiBwaXhlbC1h c3BlY3QtcmF0aW89KGZyYWN0aW9uKTEvMSwgZnJhbWVyYXRlPShmcmFjdGlvbikyNS8xCj4gL0dz dFBpcGVsaW5lOnBpcGVsaW5lMC9Hc3REZWNvZGViaW4zOmRlY29kZWJpbjMtMC5Hc3RHaG9zdFBh ZDp2aWRlb18wLkdzdFByb3h5UGFkOnByb3h5cGFkNjoKPiBjYXBzID0gdmlkZW8veC1yYXcsIGZv cm1hdD0oc3RyaW5nKU5WMTIsIHdpZHRoPShpbnQpMTkyMCwKPiBoZWlnaHQ9KGludCkxMDgwLCBp bnRlcmxhY2UtbW9kZT0oc3RyaW5nKXByb2dyZXNzaXZlLAo+IG11bHRpdmlldy1tb2RlPShzdHJp bmcpbW9ubywKPiBtdWx0aXZpZXctZmxhZ3M9KEdzdFZpZGVvTXVsdGl2aWV3RmxhZ3NTZXQpMDpm ZmZmZmZmZjovcmlnaHQtdmlldy1maXJzdC9sZWZ0LWZsaXBwZWQvbGVmdC1mbG9wcGVkL3JpZ2h0 LWZsaXBwZWQvcmlnaHQtZmxvcHBlZC9oYWxmLWFzcGVjdC9taXhlZC1tb25vLAo+IHBpeGVsLWFz cGVjdC1yYXRpbz0oZnJhY3Rpb24pMS8xLCBmcmFtZXJhdGU9KGZyYWN0aW9uKTI1LzEKPiAvR3N0 UGlwZWxpbmU6cGlwZWxpbmUwL0dzdERlY29kZWJpbjM6ZGVjb2RlYmluMy0wL0dzdE11bHRpUXVl dWU6bXVsdGlxdWV1ZTA6Cj4gbWluLWludGVybGVhdmUtdGltZSA9IDMwMDAwMDAwMAo+IFJlZGlz dHJpYnV0ZSBsYXRlbmN5Li4uCj4gL0dzdFBpcGVsaW5lOnBpcGVsaW5lMC9Hc3REZWNvZGViaW4z OmRlY29kZWJpbjMtMC92NGwyc2xoMjY0ZGVjOnY0bDJzbGgyNjRkZWMwLkdzdFBhZDpzaW5rOgo+ IGNhcHMgPSB2aWRlby94LWgyNjQsIHZhcmlhbnQ9KHN0cmluZylpdHUsIGZyYW1lcmF0ZT0oZnJh Y3Rpb24pMjUvMSwKPiB3aWR0aD0oaW50KTE5MjAsIGhlaWdodD0oaW50KTEwODAsIGNocm9tYS1m b3JtYXQ9KHN0cmluZyk0OjI6MCwKPiBiaXQtZGVwdGgtbHVtYT0odWludCk4LCBiaXQtZGVwdGgt Y2hyb21hPSh1aW50KTgsCj4gcGFyc2VkPShib29sZWFuKXRydWUsIHN0cmVhbS1mb3JtYXQ9KHN0 cmluZylhdmMsIGFsaWdubWVudD0oc3RyaW5nKWF1LAo+IHByb2ZpbGU9KHN0cmluZyloaWdoLCBs ZXZlbD0oc3RyaW5nKTQsCj4gY29kZWNfZGF0YT0oYnVmZmVyKTAxNjQwMDI4ZmZlMTAwMWE2NzY0 MDAyOGFjZDk0MDc4MDIyN2U1ODQwMDAwMDMwMDA0MDAwMDAzMDBjODNjNjBjNjU4MDEwMDA2Njhl YmUzY2IyMmMwCj4gTmV3IGNsb2NrOiBHc3RTeXN0ZW1DbG9jawo+Cj4gQW5kIGl0IGFwcGVhcnMg dG8gc3RyZWFtLCBiZWNhdXNlIHRoZSBjb3VudGVyIGluY3JlYXNlcy4gIEkgaGF2ZW4ndAo+IGNo ZWNrZWQgdGhlIENQVSB1dGlsaXphdGlvbiwgYnV0IHRoZSBmYWN0IHRoYXQgaXQgc2hvd3MgdjRs MnNsaDI2NGRlYwo+IGlzIGdvb2QuCj4KPiBJcyB0aGVyZSBhIHdheSB0byBrbm93IGlmL2hvdyB0 aGUgZGVjb2RlciBpcyB1c2luZyB0aGUgcHJvcGVyIFZQVT8gIEkKPiBhc3N1bWUgaWYgaXQgd2Fz bid0IHVzaW5nIHRoZSBwcm9wZXIgb25lLCBpdCB3b3VsZCBmYWlsLCBidXQgd2FzIGp1c3QKPiBj dXJpb3VzLgo+CgpBIGZldyB3YXlzLiBZb3UgY2FuIGNoZWNrIC9wcm9jL2ludGVycnVwdHMsIHdo aWNoIHNob3VsZCBoYXZlClZQVSBhY3Rpdml0eS4KCk9yIGVuYWJsZSBkZWJ1ZyBtZXNzYWdlcyBm b3IgdGhlIG1vZHVsZSwKdXNpbmcgdGhlIGRlYnVnIGhhbnRybyBwYXJhbWV0ZXIuIFY0TDIgaGFz IGRlYnVnIG1lc3NhZ2VzCnRoYXQgeW91IGNhbiBlbmFibGUsIHNlZSAvc3lzL2NsYXNzL3ZpZGVv NGxpbnV4L3ZpZGVvMC9kZXZfZGVidWcuCgpJbnN0ZWFkIG9mIGZha2VzaW5rIHlvdSBjYW4gb3V0 cHV0IHRvIHBuZ2VuYy9qcGVnZW5jIGFuZCBjaGVjayB0aGUgb3V0cHV0CmlzIHZpc3VhbGx5IGNv cnJlY3QuIElmIGF0IGFsbCBwb3NzaWJsZSwgdGhlIHByb3BlciB3YXkgaXMgdG8gdXNlIEZsdXN0 ZXIsCmFuZCByZXBvcnQgdGhlIHNjb3JlIHlvdSBnZXQ6CgpodHRwczovL2dpdGh1Yi5jb20vZmx1 ZW5kby9mbHVzdGVyCgpJdCBzaG91bGQgYmUgZWFzeSB0byB1c2UuCgo+IEkgdGhpbmsgSSdsbCBy ZWRvIHRoZSBwYXRjaCB3aXRob3V0IHRoZSBSRkMgYW5kIHdpdGhvdXQgdGhlIEgxIGVuY29kZXIK PiB1bmxlc3MgYW55b25lIGhhcyBhbnkgb2JqZWN0aW9ucy4gIEkga25vdyBJIG5lZWQgdG8gcmVi YXNlIG9uCj4gbGludXgtbmV4dCBhbnl3YXkgYmVjYXVzZSB0aGUgcGF0Y2hlcyBkb24ndCBhcHBs eSBjbGVhbmx5LiAgSXMgdGhlcmUgYQo+IHNwZWNpZmljIGJyYW5jaCBJIHNob3VsZCB1c2U/ICBJ IGRvbid0IGtub3cgaWYgdGhpcyBnb2VzIHRocm91Z2gKPiBTaGF3bidzIElNWCB0cmVlIG9yIHRo ZSBtZWRpYSB0cmVlIChvciBhIGNvbWJpbmF0aW9uKQo+CgpZb3Ugc2hvdWxkIHJlYmFzZSBvbiBt ZWRpYSdzIG1hc3RlciBicmFuY2g6CgpodHRwczovL2dpdC5saW51eHR2Lm9yZy9tZWRpYV90cmVl LmdpdC9sb2cvCgpUaGFua3MsCkV6ZXF1aWVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9j a2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg== 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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 1EBC1C433F5 for ; Mon, 29 Nov 2021 16:56:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc: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=9bOTFwNjya6dKHH3plyMoaEH8P+RexvkQiIyY+/7IQM=; b=HnhrOn5bdWJ4II vwgpHt4vugTqEOfCLSWklLzauj6ZFafu22sIA+UclAUlqAOVY9iqkBpcqpeMung4I50ZJ3gAE5QmM K4uf/AIfwzoVDnANr72A80M5ciXkIMd1WTR3uY8yBpEsvGwiBjvHHy2xMRlW0yCps3Lf02tqYbChV 94tHr5vXvt4rPTez+QjK2EQqqAUfMXgR/BgVFwnc1+dqh8bRDvQ5atOZYJ83Zfl7tZ7yhnvUH2C4W fsfReoX76DM03DWeTdM+3gNwifpRRv8pThcQQtFt9dY6OXRDEy68opMtbKqmLCOASxp+i0iHgZsIh PSlh+VJ1Ocjz8+rH3N3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrjvD-001ViZ-PD; Mon, 29 Nov 2021 16:54:32 +0000 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrjv6-001Veo-Oy for linux-arm-kernel@lists.infradead.org; Mon, 29 Nov 2021 16:54:28 +0000 Received: by mail-ed1-x530.google.com with SMTP id v1so74662412edx.2 for ; Mon, 29 Nov 2021 08:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vanguardiasur-com-ar.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=UsyF/dWQQNrn0rwDgW+rSch0YemV0PivvOS2f76eXi0=; b=vjGZ/Jp2JJJGSplFrc0i7yjUrXuf25vecciBoV9m6tj0SLjfbzRZaEPTyZkj/Nlz0h Yw2fpFgKwIR1lJdTzyNqo/tr3oCCxSlMdYoUoQ0nARAMBNkk9kC/cwbBKp63pQ9rINwe LvDdcwvnqfiyDQPigro+4gdcbJ4VfCKPaXJKTVfDE9o738xXAsUYnfQHHAECx2yIqm4S r6tzuGUMhDqBCLhvCKrTyvRawiOzdLjfwqtdA8evXcxzPRR+VioW4QqzFKcd7uCwu0z+ sCX7y/R3luybBydMB62Nx7Nr3tuVPtvspT5StKJ0h8V1wJt8wvCdnqjbAcN6SnjVYGFd lnNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=UsyF/dWQQNrn0rwDgW+rSch0YemV0PivvOS2f76eXi0=; b=ZOU0XTIslAMi2BVelJkNhObywnLyHTMleGIjltD3yXnaBs6OSChDSpXzT7Ir0eHJ0J VszCwFFc995sbJAY8kjBHMRo2u2e//sui9ZsNqmwOBY5zu0XCacFZhIEl4oM9z1dU2r3 MBw/RmJHyQa03CriU4T6pvEBMIg5r/Pa7Tz2FnCZopuG3CEIIsK2B+Pj4/3oHeDrKXAj CwZXWk2tjoOXhGRi9T8e7kq69pX8uX4b/qjrW4512nVhUje35cHG94IilADAkfpIepRM 74twqJlXI8YrwmIIkIc/CTyfgzJVNIWsRoeCJUlU/U3v6UoQyb34rD6PaOMTxm7K077X TOWQ== X-Gm-Message-State: AOAM533ra+3kIoKqPqhpUmhd7fCwkbVh7xnTn+ryXF6eBTFFbNl8KcJW m90K5iN8IK7dRtWVVQPvqZns6810BkWr4t3fTRPElg== X-Google-Smtp-Source: ABdhPJxFQTeprjRnIKw/ySJAcM+Yoa3ZdxrVGjFqyzwScsybVOffDKzEHZT/8egB5EH9xyyyOefK5t2r/TIXeesucls= X-Received: by 2002:aa7:d412:: with SMTP id z18mr77515624edq.315.1638204861875; Mon, 29 Nov 2021 08:54:21 -0800 (PST) MIME-Version: 1.0 References: <20211106183802.893285-1-aford173@gmail.com> <718f7f6d6cd564d031c1963f1590c62d549ae725.camel@ndufresne.ca> <8db00a4b6faa99c940d9bc86e17161eb0db5efe3.camel@ndufresne.ca> <7f94eaacfddb8c5434c17f1e069ea87a17657ce9.camel@ndufresne.ca> In-Reply-To: From: Ezequiel Garcia Date: Mon, 29 Nov 2021 13:54:10 -0300 Message-ID: Subject: Re: [RFC 0/5] arm64: imx8mm: Enable Hantro VPUs To: Adam Ford Cc: Nicolas Dufresne , Tim Harvey , linux-media , Schrempf Frieder , Marek Vasut , Jagan Teki , Adam Ford-BE , cstevens@beaconembedded.com, Philipp Zabel , Mauro Carvalho Chehab , Rob Herring , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Greg Kroah-Hartman , Heiko Stuebner , Lucas Stach , Joakim Zhang , Alice Guo , Peng Fan , "open list:HANTRO VPU CODEC DRIVER" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE" , open list , "open list:STAGING SUBSYSTEM" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211129_085424_995581_459FC80D X-CRM114-Status: GOOD ( 52.53 ) 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-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 T24gTW9uLCAyOSBOb3YgMjAyMSBhdCAxMzo0OCwgQWRhbSBGb3JkIDxhZm9yZDE3M0BnbWFpbC5j b20+IHdyb3RlOgo+Cj4gT24gVHVlLCBOb3YgMjMsIDIwMjEgYXQgMjowNyBQTSBOaWNvbGFzIER1 ZnJlc25lIDxuaWNvbGFzQG5kdWZyZXNuZS5jYT4gd3JvdGU6Cj4gPgo+ID4gTGUgbHVuZGkgMjIg bm92ZW1icmUgMjAyMSDDoCAwOToyNSAtMDgwMCwgVGltIEhhcnZleSBhIMOpY3JpdCA6Cj4gPiA+ IE9uIFNhdCwgTm92IDIwLCAyMDIxIGF0IDc6MzYgQU0gQWRhbSBGb3JkIDxhZm9yZDE3M0BnbWFp bC5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBOb3YgMTksIDIwMjEgYXQgNToz NyBQTSBBZGFtIEZvcmQgPGFmb3JkMTczQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4g PiA+ID4gT24gRnJpLCBOb3YgMTksIDIwMjEgYXQgMTA6MjkgQU0gTmljb2xhcyBEdWZyZXNuZSA8 bmljb2xhc0BuZHVmcmVzbmUuY2E+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBIaSBB ZGFtLCBUaW0sCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFsuLi5dCj4gPiA+ID4gPiA+ID4gPiA+ ID4gTmljb2xhcyBhbmQgQWRhbSwKPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4g PiA+IEZvciB0aGUgSDEgcGF0Y2hlcyBpbiB0aGlzIHNlcmllczogSSd2ZSBiZWVuIGFibGUgdG8g dGVzdCB0aGUgSU1YOE1NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSDEgSlBFRyBlbmNvZGUgdXNpbmcg R1N0cmVhbWVyIDEuMTguNToKPiA+ID4gPiA+ID4gPiA+ID4gPiAkIGdzdC1pbnNwZWN0LTEuMCB8 IGdyZXAgLWUgInY0bDIuKmVuYyIKPiA+ID4gPiA+ID4gPiA+ID4gPiB2aWRlbzRsaW51eDI6ICB2 NGwyanBlZ2VuYzogVjRMMiBKUEVHIEVuY29kZXIKPiA+ID4gPiA+ID4gPiA+ID4gPiAkIGdzdC1s YXVuY2gtMS4wIHZpZGVvdGVzdHNyYyAhIGpwZWdlbmMgISBydHBqcGVncGF5ICEgdWRwc2luawo+ ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB2NGwy anBlZ2VuYwo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIGlzIGp1c3Qg YSB0cmFuc2NyaXB0IGVycm9yID8KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBOaWNv bGFzLAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IE5vISBUaGFua3MgZm9yIGNhdGNo aW5nIG15IG1pc3Rha2UuIEkgd2FzIHRlc3Rpbmcgd2l0aCBzb2Z0d2FyZSBlbmNvZGUuLi4gb29v cHMhCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gJ2dzdC1sYXVuY2gtMS4wIHZpZGVv dGVzdHNyYyAhIHY0bDJqcGVnZW5jICEgZmFrZXNpbmsnIGFjdHVhbGx5IGhhbmdzCj4gPiA+ID4g PiA+ID4gPiB0aGUgYm9hcmQgc28gbGlrZWx5IGEgcG93ZXItZG9tYWluIGlzc3VlIHRoZXJlPwo+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gVGhlIHY0bDItY29tcGxpYW5jZSB0ZXN0cyBmYWls IG9uIHRoZSBoMSBkZWNvZGVyIHdpdGggYSBoYW5nLCBidXQgSQo+ID4gPiA+ID4gPiA+IHRoaW5r IHdlJ3JlIHdyaXRpbmcgdG8gcmVnaXN0ZXJzIHdoaWNoIGFyZSBub3QgZG9jdW1lbnRlZCBpbiB0 aGUgTWluaQo+ID4gPiA+ID4gPiA+IFRSTS4gIFRoZSBNaW5pIFRSTSBkb2Vzbid0IGV4cGxpY2l0 bHkgc2hvdyB0aGUgSlBFRyBlbmNvZGluZyBhcyBhCj4gPiA+ID4gPiA+ID4gZmVhdHVyZSwgYnV0 IHNvbWUgb2YgdGhlIHJlZ2lzdGVycyBzdGF0ZSBKUEVHLCBidXQgYmVjYXVzZSBzb21lIG9mIHRo ZQo+ID4gPiA+ID4gPiA+IHJlZ2lzdGVycyB3cml0dGVuIGZvciB0aGUgSDEgYXJlIG5vdCBkb2N1 bWVudGVkIGluIHRoZSBUUk0uICBJZiB0aG9zZQo+ID4gPiA+ID4gPiA+IHJlZ2lzdGVycyBhcmUg cmVzdHJpY3RlZCBvciBub3QgaW4gdGhpcyBTb0MsIEkgYW0gY29uY2VybmVkIHRoYXQgaXQKPiA+ ID4gPiA+ID4gPiBtaWdodCBiZSByZWxhdGVkLiAgSSdsbCB0cnkgdG8gcnVuIHNvbWUgbW9yZSB0 ZXN0cyB0aGlzIHdlZWtlbmQgdG8KPiA+ID4gPiA+ID4gPiBjaGVjayBvbiB0aGUgc3RhdHVzIG9m IHRoZSBwb3dlci1kb21haW4gc3R1ZmYuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRvIHZlcmlm eSBpZiB0aGUgSFcgc3VwcG9ydCBKUEVHIGVuY29kaW5nIHlvdSBjYW4gcmVhZCBTV1JFRzYzIGJp dCAyNS4gVGhpcyBpcwo+ID4gPiA+ID4gPiBpbiB0aGUgVFJNLCBqdXN0IG5vdCBsYWJlbGxlZCBw cm9wZXJseS4gVG8gbWltaWMgdGhlIGRlY29kaW5nIHNpZGUsIHdvdWxkIGJlICJIVwo+ID4gPiA+ ID4gPiBzeW50aGVzaXMgY29uZmlnIHJlZ2lzdGVyIFgiIHdpdGggdGhlIGJpdCBsYWJlbGxlZCBT V19FTkNfSlBFR19QUk9GIChidXQKPiA+ID4gPiA+ID4gUFJPRi9wcm9maWxlIGlzIG9uIG9yIG9m ZikuIElmIHlvdXIgYm9hcmQgaGFuZyB3aGlsZSByZWFkaW5nIHRoaXMsIHlvdSBsaWtlbHkKPiA+ ID4gPiA+ID4gZGlkbid0IGdldCB0aGUgcG93ZXIgYml0IHJpZ2h0Lgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBJTVg4IGhhcyBhbiB1bmRvY3VtZW50ZWQgY29udHJvbCBibG9jayB0aGluZyB0aGF0 IHdlIGhhdmUgYmVlbiBmaWdodGluZyB3aXRoIGluCj4gPiA+ID4gPiA+IGlteDhxLCAgcGVyaGFw cyB0aGF0J3MgeW91ciBpc3N1ZS4gRmV3IGRyaXZlciB3YXMgcHJvcG9zZWQsIHdlIGFyZSBzdGls bCBwZW5kaW5nCj4gPiA+ID4gPiA+IG9uIE5YUCBzb2x1dGlvbiB0byBiZSBzdWJtaXR0ZWQgKHRo ZXkgYXNrZWQgdXMgdG8gd2FpdCwgc3RpbGwgd2FpdGluZyA9KSkuCj4gPiA+ID4gPgo+ID4gPiA+ ID4gTmljb2xhcywKPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9u IHRvIHJlYWQgb2Zmc2V0IEZDLiAgVGhlcmUgd2FzIGFuIGF0dGVtcHQKPiA+ID4gPiA+IG1hZGUg YnkgTHVjYXMgU3RhY2ggdG8gZGV2ZWxvcCBhIFZQVSBibGstY3RybCBkcml2ZXIgdG8gY29vcmRp bmF0ZSB0aGUKPiA+ID4gPiA+IHBvd2VyLWRvbWFpbnMgd2l0aCB0aGUgR1BDIGRyaXZlci4gVW5m b3J0dW5hdGVseSwgaXQgZG9lcyBhcHBlYXIgdG8KPiA+ID4gPiA+IGhhbmcsIHNvIGl0IG1pZ2h0 IG5vdCBiZSBvcGVyYXRpbmcgY29ycmVjdGx5Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IEx1Y2FzLAo+ ID4gPiA+ID4KPiA+ID4gPiA+IERvIHlvdSBoYXZlIGFueSBpZGVhIG9mIHN0dWZmIEkgY2FuIHRy eSB0byBzZWUgaWYgdGhlIHBvd2VyIGRvbWFpbiBpcwo+ID4gPiA+ID4gY29taW5nIG9ubGluZSBj b3JyZWN0bHk/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gWyAgIDEwLjQzNDcyN10gaW14LXBnYyBpbXgt cGdjLWRvbWFpbi42OiByZXF1ZXN0IHRoZSB2cHVtaXggZG9tYWluIHRvIHBvd2VyIHVwCj4gPiA+ ID4gPiBbICAgMTAuNDYzNjQ3XSBpbXgtcGdjIGlteC1wZ2MtZG9tYWluLjY6IHJlcXVlc3QgdGhl IHZwdW1peCBBREI0MDAgdG8gcG93ZXIgdXAKPiA+ID4gPiA+IFsgICAxMC41MTcxNTVdIGlteC1w Z2MgaW14LXBnYy1kb21haW4uNjogZ2VucGQgdnB1bWl4IHN1Y2Nlc3MKPiA+ID4gPiA+IFsgICAx MC43Mjg5MjddIHZwdTogc2V0IGZ1c2UgYml0cyB0byBlbmFibGUKPiA+ID4gPiA+IFsgICAxMC44 MjU1MDBdIGlteDhtLWJsay1jdHJsIDM4MzMwMDAwLmJsay1jdHJsOiBwb3dlciB2cHVibGstZzEg R1BDIGRvbWFpbgo+ID4gPiA+ID4gWyAgIDEwLjg3ODk4Nl0gaW14LXBnYyBpbXgtcGdjLWRvbWFp bi43OiByZXF1ZXN0IHRoZSB2cHUtZzEgZG9tYWluIHRvIHBvd2VyIHVwCj4gPiA+ID4gPiBbICAg MTAuOTMyNDI5XSBpbXgtcGdjIGlteC1wZ2MtZG9tYWluLjc6IGdlbnBkIHZwdS1nMSBzdWNjZXNz Cj4gPiA+ID4gPiBbICAgMTAuOTcxOTg4XSBpbXg4bS1ibGstY3RybCAzODMzMDAwMC5ibGstY3Ry bDogZ2VucGQgdnB1YmxrLWcxIHN1Y2Nlc3MKPiA+ID4gPiA+IFsgICAxMS4wMDQ3MjZdIGhhbnRy by12cHUgMzgzMDAwMDAudmlkZW8tY29kZWM6IHJlZ2lzdGVyZWQKPiA+ID4gPiA+IG54cCxpbXg4 bW0tdnB1LWRlYyBhcyAvZGV2L3ZpZGVvMAo+ID4gPiA+ID4gWyAgIDExLjA0MDc2MF0gaW14OG0t YmxrLWN0cmwgMzgzMzAwMDAuYmxrLWN0cmw6IHBvd2VyIHZwdWJsay1nMiBHUEMgZG9tYWluCj4g PiA+ID4gPiBbICAgMTEuMDY2MTgxXSBpbXgtcGdjIGlteC1wZ2MtZG9tYWluLjg6IHJlcXVlc3Qg dGhlIHZwdS1nMiBkb21haW4gdG8gcG93ZXIgdXAKPiA+ID4gPiA+IFsgICAxMS4wODc4ODddIGlt eC1wZ2MgaW14LXBnYy1kb21haW4uODogZ2VucGQgdnB1LWcyIHN1Y2Nlc3MKPiA+ID4gPiA+IFsg ICAxMS4xMTM4MDhdIGlteDhtLWJsay1jdHJsIDM4MzMwMDAwLmJsay1jdHJsOiBnZW5wZCB2cHVi bGstZzIgc3VjY2Vzcwo+ID4gPiA+ID4gWyAgIDExLjEzOTYzNF0gaGFudHJvLXZwdSAzODMxMDAw MC52aWRlby1jb2RlYzogcmVnaXN0ZXJlZAo+ID4gPiA+ID4gbnhwLGlteDhtbS12cHUtZzItZGVj IGFzIC9kZXYvdmlkZW8xCj4gPiA+ID4gPiBbICAgMTEuMTU2NDYzXSBpbXg4bS1ibGstY3RybCAz ODMzMDAwMC5ibGstY3RybDogcG93ZXIgdnB1YmxrLWgxIEdQQyBkb21haW4KPiA+ID4gPiA+IFsg ICAxMS4xNzA4MTddIGlteC1wZ2MgaW14LXBnYy1kb21haW4uOTogcmVxdWVzdCB0aGUgdnB1LWgx IGRvbWFpbiB0byBwb3dlciB1cAo+ID4gPiA+ID4gWyAgIDExLjIzMjk5MF0gaW14LXBnYyBpbXgt cGdjLWRvbWFpbi45OiBnZW5wZCB2cHUtaDEgc3VjY2Vzcwo+ID4gPiA+ID4gWyAgIDExLjI1MjU0 Nl0gaW14OG0tYmxrLWN0cmwgMzgzMzAwMDAuYmxrLWN0cmw6IGdlbnBkIHZwdWJsay1oMSBzdWNj ZXNzCj4gPiA+ID4gPiBbICAgMTEuMjY2MTUyXSBoYW50cm8tdnB1IDM4MzIwMDAwLnZpZGVvLWNv ZGVjOiBDaGVja2luZyB2cHUtPmVuY19iYXNlICsgMHhmYwo+ID4gPiA+ID4KPiA+ID4gPiA+IDxo YW5nPgo+ID4gPiA+ID4KPiA+ID4gPiA+IGFkYW0KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBO aWNvbGFzLCBUaW0sIGFuZCBMdWNhcywKPiA+ID4gPgo+ID4gPiA+IEkgdGhpbmsgSSBoYXZlIHRo ZSBoYW5naW5nIHJlc29sdmVkIGluIHRoZSBwb3dlciBkb21haW5zLCBhbmQgSSdsbCBiZQo+ID4g PiA+IHB1c2hpbmcgdGhlIGZpeCB0byB0aGUgR1BDdjIuCj4gPiA+ID4KPiA+ID4gPiBGb3IgdGhl IEgxIEVuY29kZXIsIEkgYWRkZWQgc29tZSBkZWJ1Z2dpbmcgY29kZSB0byByZWFkIHRoZSBvZmZz ZXQKPiA+ID4gPiAweGZjIGFuZCBwcmludCBzb21lIGRhdGEgYmFzZWQgb24gdGhlIGZpbmRpbmdz IG9mIHRoYXQgVlBVLWgxIG9mZnNldC4KPiA+ID4gPiBJIGJhc2ljYWxseSBjaGVjayB0aGUgdmFy aW91cyBiaXRzIHBlciB0aGUgVFJNIHRvIHNlZSBpZiB0aGV5IGFyZSBzZXQKPiA+ID4gPiBhbmQg cHJpbnQgc29tZSBzcGxhdCB0byBpbmRpY2F0ZSB3aGV0aGVyIG9yIG5vdCB0aGUgZnVuY3Rpb24g aXMKPiA+ID4gPiBzdXBwb3J0ZWQuCj4gPiA+ID4KPiA+ID4gPiBbICAgIDguODYxODY1XSBoYW50 cm8tdnB1IDM4MzIwMDAwLnZpZGVvLWNvZGVjOiBDaGVja2luZyB2cHUtPmVuY19iYXNlICsgMHhm Ywo+ID4gPiA+IFsgICAgOC44NzA1OTRdIGhhbnRyby12cHUgMzgzMjAwMDAudmlkZW8tY29kZWM6 IFN0YWJpbGl6YXRpb24gc3VwcG9ydGVkIGJ5IEhXCj4gPiA+ID4gWyAgICA4Ljg4OTM0MV0gaGFu dHJvLXZwdSAzODMyMDAwMC52aWRlby1jb2RlYzogVlA4IGVuY29kaW5nIHN1cHBvcnRlZCBieSBI Vwo+ID4gPiA+IFsgICAgOC44OTkzODZdIGhhbnRyby12cHUgMzgzMjAwMDAudmlkZW8tY29kZWM6 IEguMjY0IGVuY29kaW5nIHN1cHBvcnRlZCBieSBIVwo+ID4gPiA+IFsgICAgOC45MTgxNzFdIGhh bnRyby12cHUgMzgzMjAwMDAudmlkZW8tY29kZWM6IFJHQiB0byBZVVYgY29udmVyc2lvbgo+ID4g PiA+IHN1cHBvcnRlZCBieSBIVwo+ID4gPiA+IFsgICAgOC45MzQwNjddIGhhbnRyby12cHUgMzgz MjAwMDAudmlkZW8tY29kZWM6IHJlZ2lzdGVyZWQKPiA+ID4gPiBueHAsaW14OG1tLXZwdS1oMS1l bmMgYXMgL2Rldi92aWRlbzIKPiA+ID4gPgo+ID4gPiA+IFVuZm9ydHVuYXRlbHksIEpQRUcgaXMg bm90IGxpc3RlZCBhcyBzdXBwb3J0ZWQuICA6LSgKPiA+ID4KPiA+ID4gQWRhbSwKPiA+ID4KPiA+ ID4gV2VsbCBub3QgaGF2aW5nIEpQRUcgZW5jb2RlIHN1cHBvcnQgaXMgdW5mb3J0dW5hdGUsIGFu ZCB1bmV4cGVjdGVkLiBEbwo+ID4gPiB3ZSBub3QgaGF2ZSBoYW50cm8gc3VwcG9ydCB5ZXQgZm9y IFZQOC9IMjY0IGVuY29kZT8KPiA+Cj4gPiBUaGVyZSBpcyBubyBtYWlubGluZSBzdXBwb3J0IHll dC4gWW91IGNhbiBkZXJpdmUgZnJvbSBSSzMyODggc3VwcG9ydCB1c2luZyBHb29nbGUgQ2hyb21l T1MgbWV0aG9kIChhIHY0bDIgcGx1Z2lucyB0aGF0IHNpbXVsYXRlIGluIHVzZXJzcGFjZSBhIHN0 YXRlZnVsIGVuY29kZXIpOgo+ID4KPiA+IC0gbGlidjRsIHBsdWdpbnMgLyBodHRwczovL2Nocm9t aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW1vcy90aGlyZF9wYXJ0eS9saWJ2NGxwbHVnaW5z LysvcmVmcy9oZWFkcy9tYXN0ZXIKPiA+IC0gS2VybmVsIERyaXZlciAvIGh0dHBzOi8vY2hyb21p dW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bW9zL3RoaXJkX3BhcnR5L2tlcm5lbC8rL2Nocm9t ZW9zLTQuNC9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwLXZwdS8KPiA+Cj4gPiA+Cj4g PiA+IEkgaGF2ZW4ndCBxdWl0ZSBmaWd1cmVkIG91dCBob3cgdG8gYnVpbGQgYSBtb2Rlcm4gbW9u by1yZXBvIGdzdHJlYW1lcgo+ID4gPiBvbiB0aGUgdWJ1bnR1IDIwLjA0IHJvb3RmcyBJJ20gdXNp bmcgc28gSSBoYXZlbid0IGJlZW4gYWJsZSB0byB0ZXN0Cj4gPiA+IFZQVSBlbmNvZGUvZGVjb2Rl IHByb3Blcmx5LiBJJ2xsIGtlZXAgd29ya2luZyBvbiBpdCB3aGVuIEknbSBiYWNrIGluCj4gPiA+ IHRoZSBvZmZpY2UgdGhlIGZvbGxvd2luZyB3ZWVrLgo+ID4KPiA+IERpZCBhIHF1aWNrIHRlc3Qg dG8gbWFrZSBzdXJlIHRoZXJlIGlzbid0IGFueSB1YnVudHUgc3BlY2lmaWMgYmxvY2tlcnMsIGhl cmUncyBhCj4gPiBkaXJ0eSBzY3JpcHQgdGhhdCBwcm9kdWNlIGEgbWluaW1hbCBHU3RyZWFtZXIs IHRoZXJlIHdhcyByZWFsbHkgbm90aGluZyBzcGVjaWFsCj4gPiBjb21wYXJlIHRvIG90aGVyIG1l c29uIHByb2plY3RzLiBOb3RlIHRoYXQgSSB1c2UgLS13cmFwLW1vZGU9bm9mYWxsYmFjayB0byBh dm9pZAo+ID4gbGV0dGluZyBHU3RyZWFtZXIgY29tcGxldGUgaXQncyBmZWF0dXJlLXNldCBieSBk b3dubG9hZGluZyB0aGUgcGxhbmV0LiBUaGlzCj4gPiBhbHJlYWR5IGJ1aWxkIHF1aXRlIGEgbG90 IGFuZCBjb3VsZCBsaWtlbHkgYmUgbWFkZSBzbWFsbGVyIGJ5IGF2b2lkIHBsdWdpbnMtZ29vZAo+ ID4gYnVpbGQtZGVwIGNhbGwsIGJ1dCB0aGVuIHlvdSBuZWVkIHRvIGNoZWNrIGZvciB2NGwyb2Rl Y3MgYW5kIHZpZGVvNGxpbnV4IGRldnMKPiA+IChtb3N0bHkgZ3VkZXYgYSBnbGliIHVkZXYgYmlu ZGluZykuCj4gPgo+ID4gIyBJbnN0YWxsIHVidW50dQo+ID4gcG9kbWFuIHJ1biAtaXQgLS1ybSB1 YnVudHU6MjAuMDQKPiA+IHNlZCAtaSAicy8jIGRlYi1zcmMvZGViLXNyYy8iIC9ldGMvYXB0L3Nv dXJjZXMubGlzdAo+ID4gYXB0IHVwZGF0ZQo+ID4gYXB0IGJ1aWxkLWRlcCBnc3RyZWFtZXIxLjAt cGx1Z2lucy1nb29kCj4gPiBhcHQgaW5zdGFsbCBnaXQgcHl0aG9uMy1waXAgZmxleCBiaXNvbgo+ ID4KPiA+ICMgTmVlZCBhIG5ld2VyIG1lc29uCj4gPiBwaXAzIGluc3RhbGwgLS11c2VyIG1lc29u Cj4gPiBleHBvcnQgUEFUSD0kUEFUSDp+Ly5sb2NhbC9iaW4KPiA+Cj4gPiAjIEJ1aWxkIEdTdHJl YW1lcgo+ID4gZ2l0IGNsb25lIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFt ZXIvZ3N0cmVhbWVyLmdpdAo+ID4gY2QgZ3N0cmVhbWVyCj4gPiBtZXNvbiBzZXR1cCBidWlsZCAt LXdyYXAtbW9kZT1ub2ZhbGxiYWNrCj4gPiBuaW5qYSAtQyBidWlsZAo+ID4KPiA+ICMgUnVuIGlu LXBsYWNlCj4gPiAuL2dzdC1lbnYucHkKPiA+IGdzdC1pbnNwZWN0LTEuMCB2NGwyY29kZWNzCj4g PiBnc3QtaW5zcGVjdCAxLjAgdmlkZW80bGludXgyCj4gPgo+IFRoYW5rcyBmb3IgdGhlIHN1Z2dl c3Rpb25zLgo+Cj4gSSBkb3dubG9hZGVkIHdoYXQncyBpbiB0aGUgbWFzdGVyIHJlcG86Cj4KPiBb Z3N0LW1haW5dIHJvb3RAbG9jYWxob3N0On4vZ3N0cmVhbWVyIyBnc3QtaW5zcGVjdC0xLjAgdjRs MmNvZGVjcwo+Cj4gKiogKGdzdC1wbHVnaW4tc2Nhbm5lcjo3MzE3KTogQ1JJVElDQUwgKio6IDEw OjI5OjUxLjg0NzogY2FuJ3QgZmluZAo+IGdpLnJlcG9zaXRvcnkuR3N0Cj4gUGx1Z2luIERldGFp bHM6Cj4gICBOYW1lICAgICAgICAgICAgICAgICAgICAgdjRsMmNvZGVjcwo+ICAgRGVzY3JpcHRp b24gICAgICAgICAgICAgIFY0TDIgQ09ERUMgQWNjZWxlcmF0b3JzIHBsdWdpbgo+ICAgRmlsZW5h bWUKPiAvcm9vdC9nc3RyZWFtZXIvYnVpbGRkaXIvc3VicHJvamVjdHMvZ3N0LXBsdWdpbnMtYmFk L3N5cy92NGwyY29kZWNzL2xpYmdzdHY0bDJjb2RlY3Muc28KPiAgIFZlcnNpb24gICAgICAgICAg ICAgICAgICAxLjE5LjMuMQo+ICAgTGljZW5zZSAgICAgICAgICAgICAgICAgIExHUEwKPiAgIFNv dXJjZSBtb2R1bGUgICAgICAgICAgICBnc3QtcGx1Z2lucy1iYWQKPiAgIEJpbmFyeSBwYWNrYWdl ICAgICAgICAgICBHU3RyZWFtZXIgQmFkIFBsdWctaW5zIGdpdAo+ICAgT3JpZ2luIFVSTCAgICAg ICAgICAgICAgIFVua25vd24gcGFja2FnZSBvcmlnaW4KPgo+ICAgdjRsMnNsaDI2NGRlYzogVjRM MiBTdGF0ZWxlc3MgSC4yNjQgVmlkZW8gRGVjb2Rlcgo+ICAgdjRsMnNsbXBlZzJkZWM6IFY0TDIg U3RhdGVsZXNzIE1wZWcyIFZpZGVvIERlY29kZXIKPiAgIHY0bDJzbHZwOGFscGhhZGVjb2RlYmlu OiBWUDggQWxwaGEgRGVjb2Rlcgo+ICAgdjRsMnNsdnA4ZGVjOiBWNEwyIFN0YXRlbGVzcyBWUDgg VmlkZW8gRGVjb2Rlcgo+Cj4gICA0IGZlYXR1cmVzOgo+ICAgKy0tIDQgZWxlbWVudHMKPgo+IFtn c3QtbWFpbl0gcm9vdEBsb2NhbGhvc3Q6fi9nc3RyZWFtZXIjIGdzdC1pbnNwZWN0LTEuMCB2aWRl bzRsaW51eDIKPiBQbHVnaW4gRGV0YWlsczoKPiAgIE5hbWUgICAgICAgICAgICAgICAgICAgICB2 aWRlbzRsaW51eDIKPiAgIERlc2NyaXB0aW9uICAgICAgICAgICAgICBlbGVtZW50cyBmb3IgVmlk ZW8gNCBMaW51eAo+ICAgRmlsZW5hbWUKPiAvcm9vdC9nc3RyZWFtZXIvYnVpbGRkaXIvc3VicHJv amVjdHMvZ3N0LXBsdWdpbnMtZ29vZC9zeXMvdjRsMi9saWJnc3R2aWRlbzRsaW51eDIuc28KPiAg IFZlcnNpb24gICAgICAgICAgICAgICAgICAxLjE5LjMuMQo+ICAgTGljZW5zZSAgICAgICAgICAg ICAgICAgIExHUEwKPiAgIFNvdXJjZSBtb2R1bGUgICAgICAgICAgICBnc3QtcGx1Z2lucy1nb29k Cj4gICBCaW5hcnkgcGFja2FnZSAgICAgICAgICAgR1N0cmVhbWVyIEdvb2QgUGx1Zy1pbnMgZ2l0 Cj4gICBPcmlnaW4gVVJMICAgICAgICAgICAgICAgVW5rbm93biBwYWNrYWdlIG9yaWdpbgo+Cj4g ICB2NGwyZGV2aWNlcHJvdmlkZXI6IFZpZGVvICh2aWRlbzRsaW51eDIpIERldmljZSBQcm92aWRl cgo+ICAgdjRsMmpwZWdlbmM6IFY0TDIgSlBFRyBFbmNvZGVyCj4gICB2NGwycmFkaW86IFJhZGlv ICh2aWRlbzRsaW51eDIpIFR1bmVyCj4gICB2NGwyc2luazogVmlkZW8gKHZpZGVvNGxpbnV4Mikg U2luawo+ICAgdjRsMnNyYzogVmlkZW8gKHZpZGVvNGxpbnV4MikgU291cmNlCj4KPiAgIDUgZmVh dHVyZXM6Cj4gICArLS0gNCBlbGVtZW50cwo+ICAgKy0tIDEgZGV2aWNlIHByb3ZpZGVycwo+Cj4g SSBzdGlsbCBoYXZlIHRoZSBIMSBlbmNvZGVyIGVuYWJsZWQsIGJ1dCBJIGtub3cgSlBFRyBpc24n dCBzdXBwb3J0ZWQsCj4gc28gSSdtIGdvaW5nIHRvIGF0dGVtcHQgdG8gZG8gc29tZSBkZWNvZGlu ZyBhbmQgcGlwZSB0byBmYWtlc2luayBzaW5jZQo+IEkgZG9uJ3QgaGF2ZSBhIGZ1bmN0aW9uYWwg ZGlzcGxheSB5ZXQuCj4KPiBnc3QtbGF1bmNoLTEuMCAtZXYgZmlsZXNyYyBsb2NhdGlvbj10cmFp bGVyXzEwODBwX2gyNjRfbXAzLmF2aSAhCj4gZGVjb2RlYmluMyAgISBmYWtlc2luawo+Cj4gUmVk aXN0cmlidXRlIGxhdGVuY3kuLi4KPiAvR3N0UGlwZWxpbmU6cGlwZWxpbmUwL0dzdERlY29kZWJp bjM6ZGVjb2RlYmluMy0wL3Y0bDJzbGgyNjRkZWM6djRsMnNsaDI2NGRlYzAuR3N0UGFkOnNyYzoK PiBjYXBzID0gdmlkZW8veC1yYXcsIGZvcm1hdD0oc3RyaW5nKU5WMTIsIHdpZHRoPShpbnQpMTky MCwKPiBoZWlnaHQ9KGludCkxMDgwLCBpbnRlcmxhY2UtbW9kZT0oc3RyaW5nKXByb2dyZXNzaXZl LAo+IG11bHRpdmlldy1tb2RlPShzdHJpbmcpbW9ubywKPiBtdWx0aXZpZXctZmxhZ3M9KEdzdFZp ZGVvTXVsdGl2aWV3RmxhZ3NTZXQpMDpmZmZmZmZmZjovcmlnaHQtdmlldy1maXJzdC9sZWZ0LWZs aXBwZWQvbGVmdC1mbG9wcGVkL3JpZ2h0LWZsaXBwZWQvcmlnaHQtZmxvcHBlZC9oYWxmLWFzcGVj dC9taXhlZC1tb25vLAo+IHBpeGVsLWFzcGVjdC1yYXRpbz0oZnJhY3Rpb24pMS8xLCBmcmFtZXJh dGU9KGZyYWN0aW9uKTI1LzEKPiAvR3N0UGlwZWxpbmU6cGlwZWxpbmUwL0dzdERlY29kZWJpbjM6 ZGVjb2RlYmluMy0wLkdzdEdob3N0UGFkOnZpZGVvXzA6Cj4gY2FwcyA9IHZpZGVvL3gtcmF3LCBm b3JtYXQ9KHN0cmluZylOVjEyLCB3aWR0aD0oaW50KTE5MjAsCj4gaGVpZ2h0PShpbnQpMTA4MCwg aW50ZXJsYWNlLW1vZGU9KHN0cmluZylwcm9ncmVzc2l2ZSwKPiBtdWx0aXZpZXctbW9kZT0oc3Ry aW5nKW1vbm8sCj4gbXVsdGl2aWV3LWZsYWdzPShHc3RWaWRlb011bHRpdmlld0ZsYWdzU2V0KTA6 ZmZmZmZmZmY6L3JpZ2h0LXZpZXctZmlyc3QvbGVmdC1mbGlwcGVkL2xlZnQtZmxvcHBlZC9yaWdo dC1mbGlwcGVkL3JpZ2h0LWZsb3BwZWQvaGFsZi1hc3BlY3QvbWl4ZWQtbW9ubywKPiBwaXhlbC1h c3BlY3QtcmF0aW89KGZyYWN0aW9uKTEvMSwgZnJhbWVyYXRlPShmcmFjdGlvbikyNS8xCj4gL0dz dFBpcGVsaW5lOnBpcGVsaW5lMC9Hc3REZWNvZGViaW4zOmRlY29kZWJpbjMtMC5Hc3RHaG9zdFBh ZDp2aWRlb18wLkdzdFByb3h5UGFkOnByb3h5cGFkNjoKPiBjYXBzID0gdmlkZW8veC1yYXcsIGZv cm1hdD0oc3RyaW5nKU5WMTIsIHdpZHRoPShpbnQpMTkyMCwKPiBoZWlnaHQ9KGludCkxMDgwLCBp bnRlcmxhY2UtbW9kZT0oc3RyaW5nKXByb2dyZXNzaXZlLAo+IG11bHRpdmlldy1tb2RlPShzdHJp bmcpbW9ubywKPiBtdWx0aXZpZXctZmxhZ3M9KEdzdFZpZGVvTXVsdGl2aWV3RmxhZ3NTZXQpMDpm ZmZmZmZmZjovcmlnaHQtdmlldy1maXJzdC9sZWZ0LWZsaXBwZWQvbGVmdC1mbG9wcGVkL3JpZ2h0 LWZsaXBwZWQvcmlnaHQtZmxvcHBlZC9oYWxmLWFzcGVjdC9taXhlZC1tb25vLAo+IHBpeGVsLWFz cGVjdC1yYXRpbz0oZnJhY3Rpb24pMS8xLCBmcmFtZXJhdGU9KGZyYWN0aW9uKTI1LzEKPiAvR3N0 UGlwZWxpbmU6cGlwZWxpbmUwL0dzdERlY29kZWJpbjM6ZGVjb2RlYmluMy0wL0dzdE11bHRpUXVl dWU6bXVsdGlxdWV1ZTA6Cj4gbWluLWludGVybGVhdmUtdGltZSA9IDMwMDAwMDAwMAo+IFJlZGlz dHJpYnV0ZSBsYXRlbmN5Li4uCj4gL0dzdFBpcGVsaW5lOnBpcGVsaW5lMC9Hc3REZWNvZGViaW4z OmRlY29kZWJpbjMtMC92NGwyc2xoMjY0ZGVjOnY0bDJzbGgyNjRkZWMwLkdzdFBhZDpzaW5rOgo+ IGNhcHMgPSB2aWRlby94LWgyNjQsIHZhcmlhbnQ9KHN0cmluZylpdHUsIGZyYW1lcmF0ZT0oZnJh Y3Rpb24pMjUvMSwKPiB3aWR0aD0oaW50KTE5MjAsIGhlaWdodD0oaW50KTEwODAsIGNocm9tYS1m b3JtYXQ9KHN0cmluZyk0OjI6MCwKPiBiaXQtZGVwdGgtbHVtYT0odWludCk4LCBiaXQtZGVwdGgt Y2hyb21hPSh1aW50KTgsCj4gcGFyc2VkPShib29sZWFuKXRydWUsIHN0cmVhbS1mb3JtYXQ9KHN0 cmluZylhdmMsIGFsaWdubWVudD0oc3RyaW5nKWF1LAo+IHByb2ZpbGU9KHN0cmluZyloaWdoLCBs ZXZlbD0oc3RyaW5nKTQsCj4gY29kZWNfZGF0YT0oYnVmZmVyKTAxNjQwMDI4ZmZlMTAwMWE2NzY0 MDAyOGFjZDk0MDc4MDIyN2U1ODQwMDAwMDMwMDA0MDAwMDAzMDBjODNjNjBjNjU4MDEwMDA2Njhl YmUzY2IyMmMwCj4gTmV3IGNsb2NrOiBHc3RTeXN0ZW1DbG9jawo+Cj4gQW5kIGl0IGFwcGVhcnMg dG8gc3RyZWFtLCBiZWNhdXNlIHRoZSBjb3VudGVyIGluY3JlYXNlcy4gIEkgaGF2ZW4ndAo+IGNo ZWNrZWQgdGhlIENQVSB1dGlsaXphdGlvbiwgYnV0IHRoZSBmYWN0IHRoYXQgaXQgc2hvd3MgdjRs MnNsaDI2NGRlYwo+IGlzIGdvb2QuCj4KPiBJcyB0aGVyZSBhIHdheSB0byBrbm93IGlmL2hvdyB0 aGUgZGVjb2RlciBpcyB1c2luZyB0aGUgcHJvcGVyIFZQVT8gIEkKPiBhc3N1bWUgaWYgaXQgd2Fz bid0IHVzaW5nIHRoZSBwcm9wZXIgb25lLCBpdCB3b3VsZCBmYWlsLCBidXQgd2FzIGp1c3QKPiBj dXJpb3VzLgo+CgpBIGZldyB3YXlzLiBZb3UgY2FuIGNoZWNrIC9wcm9jL2ludGVycnVwdHMsIHdo aWNoIHNob3VsZCBoYXZlClZQVSBhY3Rpdml0eS4KCk9yIGVuYWJsZSBkZWJ1ZyBtZXNzYWdlcyBm b3IgdGhlIG1vZHVsZSwKdXNpbmcgdGhlIGRlYnVnIGhhbnRybyBwYXJhbWV0ZXIuIFY0TDIgaGFz IGRlYnVnIG1lc3NhZ2VzCnRoYXQgeW91IGNhbiBlbmFibGUsIHNlZSAvc3lzL2NsYXNzL3ZpZGVv NGxpbnV4L3ZpZGVvMC9kZXZfZGVidWcuCgpJbnN0ZWFkIG9mIGZha2VzaW5rIHlvdSBjYW4gb3V0 cHV0IHRvIHBuZ2VuYy9qcGVnZW5jIGFuZCBjaGVjayB0aGUgb3V0cHV0CmlzIHZpc3VhbGx5IGNv cnJlY3QuIElmIGF0IGFsbCBwb3NzaWJsZSwgdGhlIHByb3BlciB3YXkgaXMgdG8gdXNlIEZsdXN0 ZXIsCmFuZCByZXBvcnQgdGhlIHNjb3JlIHlvdSBnZXQ6CgpodHRwczovL2dpdGh1Yi5jb20vZmx1 ZW5kby9mbHVzdGVyCgpJdCBzaG91bGQgYmUgZWFzeSB0byB1c2UuCgo+IEkgdGhpbmsgSSdsbCBy ZWRvIHRoZSBwYXRjaCB3aXRob3V0IHRoZSBSRkMgYW5kIHdpdGhvdXQgdGhlIEgxIGVuY29kZXIK PiB1bmxlc3MgYW55b25lIGhhcyBhbnkgb2JqZWN0aW9ucy4gIEkga25vdyBJIG5lZWQgdG8gcmVi YXNlIG9uCj4gbGludXgtbmV4dCBhbnl3YXkgYmVjYXVzZSB0aGUgcGF0Y2hlcyBkb24ndCBhcHBs eSBjbGVhbmx5LiAgSXMgdGhlcmUgYQo+IHNwZWNpZmljIGJyYW5jaCBJIHNob3VsZCB1c2U/ICBJ IGRvbid0IGtub3cgaWYgdGhpcyBnb2VzIHRocm91Z2gKPiBTaGF3bidzIElNWCB0cmVlIG9yIHRo ZSBtZWRpYSB0cmVlIChvciBhIGNvbWJpbmF0aW9uKQo+CgpZb3Ugc2hvdWxkIHJlYmFzZSBvbiBt ZWRpYSdzIG1hc3RlciBicmFuY2g6CgpodHRwczovL2dpdC5saW51eHR2Lm9yZy9tZWRpYV90cmVl LmdpdC9sb2cvCgpUaGFua3MsCkV6ZXF1aWVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==