From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7172AC43460 for ; Thu, 6 May 2021 14:29:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4E9A760E09 for ; Thu, 6 May 2021 14:29:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234845AbhEFOaN (ORCPT ); Thu, 6 May 2021 10:30:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234812AbhEFOaM (ORCPT ); Thu, 6 May 2021 10:30:12 -0400 Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com [IPv6:2607:f8b0:4864:20::72e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2FD1C061761 for ; Thu, 6 May 2021 07:29:13 -0700 (PDT) Received: by mail-qk1-x72e.google.com with SMTP id q10so898980qkc.5 for ; Thu, 06 May 2021 07:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=0u96e57Z+1xVtYpsdQo9L1gyUGGB/AdDb46/CNeCtQ1aivWcYlLssYV+UVDb2UtD5W wJ7aW5jYyVAtsxe9bwsZ6SXMC7AXzW1Rz3VkMZUhah3G4NucVM+253gX+w4o+a6Z4Say hRA9NV69eYJDUQzhQbp8A1ha2PiIqDjJqT8b2jARnGRGh42FoeIy+Qus7g534T0Gswhn OzFnI/4JOcA2UPema641K+sOCPWv0KdYlXxGmElG4VZZcxZ/zXg1GDCEMvM75nfr2GmC 7ktrMxnU8BaSoUq3H2sDXb9ZJCvggHl70bcfut4Hm8S74xMtuHjlT65I+aUF0g1Mqiaf BLWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=tIIZErT7CTP7Vzxfxhhn2UTrsIgnQ6KTScTEU4MZKtRwitmwnX2UvzjYm7dgJx1Q4D 5r9Dy3TTLmjGLwyD7p0UKwyirUdteeAPpPufKj2mBRYl89pt8JGHmO6ZCALvRaur9PIW lof4/Vxn7LNnI3BmXyWjfuI/R6A0I4Bifm8SnYqmVfTMWzLQtdj6+nJWFjj3b8JaU+sf WKM1o4lB78SEr3eDfls9A42DSULsPARJa0FPla6Mm3IHbTsyJvMYpRBEl6R0ExSGmW0Q kAUDpqfJ6juRhyqe4FbhRRDu9SP+hTj8a7355MutbuUotetzeX4bY15W2CM6nCsDDtl+ cXLQ== X-Gm-Message-State: AOAM532QVKZP0gZV+EIF4WDHPsoWrAvilanBSFrGSsq+CBr/mC1GW4D7 836uF8z7otW/WTmef7bWSyLLfz27COIZySpQPS4= X-Google-Smtp-Source: ABdhPJwBLjKNP6aEe8hFOPRHRhSRkv5wP+9YODtFwFW5GW5DmRxNW2uhWkdMbMheliE8NhBkXiyRyQ== X-Received: by 2002:a05:620a:a5a:: with SMTP id j26mr4167891qka.156.1620311352924; Thu, 06 May 2021 07:29:12 -0700 (PDT) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h62sm2005578qkf.116.2021.05.06.07.29.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 May 2021 07:29:11 -0700 (PDT) Message-ID: <15e2b577e84ef19bfcfcbb23a7ea2bf63abefdb3.camel@ndufresne.ca> Subject: Re: [PATCH v10 6/9] media: uapi: Add a control for HANTRO driver From: Nicolas Dufresne To: John Cox , Hans Verkuil Cc: Benjamin Gaignard , ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com, lee.jones@linaro.org, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, emil.l.velikov@gmail.com, kernel@pengutronix.de, linux-imx@nxp.com, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, kernel@collabora.com, cphealy@gmail.com Date: Thu, 06 May 2021 10:29:09 -0400 In-Reply-To: References: <20210420121046.181889-1-benjamin.gaignard@collabora.com> <20210420121046.181889-7-benjamin.gaignard@collabora.com> <1cf94540-7f4d-0179-dd1e-0b82ee30f6d2@collabora.com> <815a4bd6-599b-cfb8-9ddc-efa4b7092c23@xs4all.nl> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.40.0 (3.40.0-1.fc34) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le jeudi 06 mai 2021 à 14:11 +0100, John Cox a écrit : > > On 05/05/2021 17:20, Benjamin Gaignard wrote: > > > > > > Le 05/05/2021 à 16:55, Hans Verkuil a écrit : > > > > On 20/04/2021 14:10, Benjamin Gaignard wrote: > > > > > The HEVC HANTRO driver needs to know the number of bits to skip at > > > > > the beginning of the slice header. > > > > > That is a hardware specific requirement so create a dedicated control > > > > > for this purpose. > > > > > > > > > > Signed-off-by: Benjamin Gaignard > > > > > --- > > > > >   .../userspace-api/media/drivers/hantro.rst | 19 > > > > > +++++++++++++++++++ > > > > >   .../userspace-api/media/drivers/index.rst | 1 + > > > > >   include/media/hevc-ctrls.h | 13 +++++++++++++ > > > > >   3 files changed, 33 insertions(+) > > > > >   create mode 100644 Documentation/userspace- > > > > > api/media/drivers/hantro.rst > > > > > > > > > > diff --git a/Documentation/userspace-api/media/drivers/hantro.rst > > > > > b/Documentation/userspace-api/media/drivers/hantro.rst > > > > > new file mode 100644 > > > > > index 000000000000..cd9754b4e005 > > > > > --- /dev/null > > > > > +++ b/Documentation/userspace-api/media/drivers/hantro.rst > > > > > @@ -0,0 +1,19 @@ > > > > > +.. SPDX-License-Identifier: GPL-2.0 > > > > > + > > > > > +Hantro video decoder driver > > > > > +=========================== > > > > > + > > > > > +The Hantro video decoder driver implements the following driver- > > > > > specific controls: > > > > > + > > > > > +``V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (integer)`` > > > > > + Specifies to Hantro HEVC video decoder driver the number of data > > > > > (in bits) to > > > > > + skip in the slice segment header. > > > > > + If non-IDR, the bits to be skipped go from syntax element > > > > > "pic_output_flag" > > > > > + to before syntax element "slice_temporal_mvp_enabled_flag". > > > > > + If IDR, the skipped bits are just "pic_output_flag" > > > > > + (separate_colour_plane_flag is not supported). > > > > I'm not very keen on this. Without this information the video data > > > > cannot be > > > > decoded, or will it just be suboptimal? > > > > > > Without that information the video can't be decoded. > > > > > > > > > > > The problem is that a generic decoder would have to know that the HW is > > > > a hantro, > > > > and then call this control. If they don't (and are testing on non-hantro > > > > HW), then > > > > it won't work, thus defeating the purpose of the HW independent decoder > > > > API. > > > > > > > > Since hantro is widely used, and if there is no other way to do this > > > > beside explitely > > > > setting this control, then perhaps this should be part of the standard > > > > HEVC API. > > > > Non-hantro drivers that do not need this can just skip it. > > > > > > Even if I put this parameter in decode_params structure that would means > > > that a generic > > > userland decoder will have to know how the compute this value for hantro > > > HW since it > > > isn't something that could be done on kernel side. > > > > But since hantro is very common, any userland decoder will need to calculate > > this anyway. > > So perhaps it is better to have this as part of the decode_params? > > > > I'd like to know what others think about this. > > I don't know exactly what I think on this - its all a bit of a mess. I There is no better way to describe the state of my own opinion about this. > don't think this is going to be the last HEVC decoder that needs some > non-standard setup that can't be trivially extracted from a standard > slice header parse. So if future decoders are going to have to generate > custom attributes to cope with their quirks then Hantro probably should > too. And if Hantro is common then the userspace progs will at least have > a framework for dealing with this sort of thing so when the next oddity > comes along. To add to this, when we moved it out of the decode_params, we were actually making it an example. We use large structure for the common stuff because is convenient, but with the current infrastructure, the cost of adding controls is rather low. So we need to think if we want to hide or highlight what looks like hardware design specific needs. There is nothing particularly wrong in the hardware, as Hantro traditionally parse a lot of the headers, but I suppose they don't really want to implement skip parsers because at some point the hardware becomes quite big and complex, skipping bits is just trivial. One thing I've been discussing with Benjamin yesterday is that while splitting, we also made the data exactly what the HW wants, which is a skip. A more reusable representation would have been to provide two offsets in the header. This way if another HW need a different skip, but with a different stop position, you can share the start position. Though, it's no longer a 1:1 match with how the HW is programmed, so not an easy call. As for having more quirks in more HW, the newer chips are designed with a constraints these days. As an example, you will notice that inside mpp (rockchip library) they use Microsoft DXVA parameters and use that as a contraint during the design. From comment Alex made around Mediatek, they actually used Google downstream Linux API as a constraint. As we do cover existing API like DXVA, NVDEC and VA as far as my review went. I don't really expect in fact newer design to require quirks/extensions so often, but making this one a split control would serve as an example how to keep things clear. Now, what I believe is missing in the story is a way for userspace to detect that extra (non standard) controls are needed. There might be other support decoder on the platform, or even a software decoder may be more suitable for the use cas then a corrupted output (which is what happens if you ignore the hantro control). So perhaps we should think of way to flag the requirement for some extra controls. Perhaps in the form of a bitmask of quirks, so the userspace can check early if it has the required implementation and fallback to something else if not. This is the type of API missing we have had in many other places in the fast, we did fix it after that fact, which was not ideal, but still acceptable. So I'm not like oh no, we screwed up the other stable API. But we have a use case here, perhaps we can learn from it ? p.s. I try to avoid extensions as this makes me think of the extra paremeters associates with the bitstream profile we may not support. We already provide list of support profiles, and have a good story, tested with stateful decoder on how to introduce new paremters along with new profiles. p.s. Notice that if we want to revive the VA driver (VA does not have this skip), we need to stop modifying the VA API, and just re-parse whatever is missing. Having a separate control can be used as a clear indication that double parsing is not needed for the specific implementation. Same would apply if some Wine folks want to emulate DXVA over V4L2 API (though unlikely as this is rarely seen on desktop). > > Regards > > John Cox > > > Regards, > > > > Hans > > > > > > > > > > > Regards, > > > Benjamin > > > > > > > > > > > Regards, > > > > > > > > Hans > > > > > > > > > + > > > > > +.. note:: > > > > > + > > > > > + This control is not yet part of the public kernel API and > > > > > + it is expected to change. > > > > > diff --git a/Documentation/userspace-api/media/drivers/index.rst > > > > > b/Documentation/userspace-api/media/drivers/index.rst > > > > > index 1a9038f5f9fa..12e3c512d718 100644 > > > > > --- a/Documentation/userspace-api/media/drivers/index.rst > > > > > +++ b/Documentation/userspace-api/media/drivers/index.rst > > > > > @@ -33,6 +33,7 @@ For more details see the file COPYING in the source > > > > > distribution of Linux. > > > > >    > > > > >    ccs > > > > >    cx2341x-uapi > > > > > + hantro > > > > >    imx-uapi > > > > >    max2175 > > > > >    meye-uapi > > > > > diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h > > > > > index 8e0109eea454..b713eeed1915 100644 > > > > > --- a/include/media/hevc-ctrls.h > > > > > +++ b/include/media/hevc-ctrls.h > > > > > @@ -224,4 +224,17 @@ struct v4l2_ctrl_hevc_decode_params { > > > > >    __u64 flags; > > > > >   }; > > > > >    > > > > > +/* MPEG-class control IDs specific to the Hantro driver as defined > > > > > by V4L2 */ > > > > > +#define > > > > > V4L2_CID_CODEC_HANTRO_BASE (V4L2_CTRL_CLASS_CODEC | 0x1200) > > > > > +/* > > > > > + * V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP - > > > > > + * the number of data (in bits) to skip in the > > > > > + * slice segment header. > > > > > + * If non-IDR, the bits to be skipped go from syntax element > > > > > "pic_output_flag" > > > > > + * to before syntax element "slice_temporal_mvp_enabled_flag". > > > > > + * If IDR, the skipped bits are just "pic_output_flag" > > > > > + * (separate_colour_plane_flag is not supported). > > > > > + */ > > > > > +#define > > > > > V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (V4L2_CID_CODEC_HANTRO_BASE + 0) > > > > > + > > > > >   #endif > > > > > > > > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 89BDAC433B4 for ; Thu, 6 May 2021 14:29:19 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 0702A60E09 for ; Thu, 6 May 2021 14:29:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0702A60E09 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ndufresne.ca Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 90CE4832AA; Thu, 6 May 2021 14:29:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qr1n9U6jXSeO; Thu, 6 May 2021 14:29:17 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id 27746832E6; Thu, 6 May 2021 14:29:17 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 8BD851BF2A5 for ; Thu, 6 May 2021 14:29:15 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 87A1E40277 for ; Thu, 6 May 2021 14:29:15 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=ndufresne-ca.20150623.gappssmtp.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23EuZAuoodxN for ; Thu, 6 May 2021 14:29:14 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-qk1-x731.google.com (mail-qk1-x731.google.com [IPv6:2607:f8b0:4864:20::731]) by smtp2.osuosl.org (Postfix) with ESMTPS id 3662C401EB for ; Thu, 6 May 2021 14:29:14 +0000 (UTC) Received: by mail-qk1-x731.google.com with SMTP id l129so5053709qke.8 for ; Thu, 06 May 2021 07:29:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=0u96e57Z+1xVtYpsdQo9L1gyUGGB/AdDb46/CNeCtQ1aivWcYlLssYV+UVDb2UtD5W wJ7aW5jYyVAtsxe9bwsZ6SXMC7AXzW1Rz3VkMZUhah3G4NucVM+253gX+w4o+a6Z4Say hRA9NV69eYJDUQzhQbp8A1ha2PiIqDjJqT8b2jARnGRGh42FoeIy+Qus7g534T0Gswhn OzFnI/4JOcA2UPema641K+sOCPWv0KdYlXxGmElG4VZZcxZ/zXg1GDCEMvM75nfr2GmC 7ktrMxnU8BaSoUq3H2sDXb9ZJCvggHl70bcfut4Hm8S74xMtuHjlT65I+aUF0g1Mqiaf BLWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=eyp8rqTr+dHai4txRm55Zf3iZfKVVbj6d42xU36GPpaYnmDdTPusq3TlVeJTgi4kpf C+kmtbWqAcq8TfwrNhFZ8R7RBlCibUd59znUENZ5N6NWC96Yt77UoF6T942fZ7SyVAkO SHsY2ERb0rCBi55vuUSCOHDhgk9b5jOPTD5KR1c20fV/fdy+awisbikX1t42rm2CsrRB Vb9bTtZ1P/Sc5A8kLNvTLbvalij/Q5XafliGP6+lV3XVsg4B8r+rt7Ai/Cv0NlI0uCce UBuZd32ybn0idmLl4B8+qw1bC4hjWQJwbZUS7yc7U8O7RrZQ72r9ZbN92sZOTZNbyfgg BswA== X-Gm-Message-State: AOAM530iBFbAffmyojs+hxRM3tNRsCOe/8FJb95LgOs6L7Yk3/HnA69p FLunbwEuwdCcyceRhCUUJP8zLw== X-Google-Smtp-Source: ABdhPJwBLjKNP6aEe8hFOPRHRhSRkv5wP+9YODtFwFW5GW5DmRxNW2uhWkdMbMheliE8NhBkXiyRyQ== X-Received: by 2002:a05:620a:a5a:: with SMTP id j26mr4167891qka.156.1620311352924; Thu, 06 May 2021 07:29:12 -0700 (PDT) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h62sm2005578qkf.116.2021.05.06.07.29.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 May 2021 07:29:11 -0700 (PDT) Message-ID: <15e2b577e84ef19bfcfcbb23a7ea2bf63abefdb3.camel@ndufresne.ca> Subject: Re: [PATCH v10 6/9] media: uapi: Add a control for HANTRO driver From: Nicolas Dufresne To: John Cox , Hans Verkuil Date: Thu, 06 May 2021 10:29:09 -0400 In-Reply-To: References: <20210420121046.181889-1-benjamin.gaignard@collabora.com> <20210420121046.181889-7-benjamin.gaignard@collabora.com> <1cf94540-7f4d-0179-dd1e-0b82ee30f6d2@collabora.com> <815a4bd6-599b-cfb8-9ddc-efa4b7092c23@xs4all.nl> User-Agent: Evolution 3.40.0 (3.40.0-1.fc34) MIME-Version: 1.0 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kernel@collabora.com, devel@driverdev.osuosl.org, Benjamin Gaignard , lee.jones@linaro.org, linux-rockchip@lists.infradead.org, wens@csie.org, linux-imx@nxp.com, cphealy@gmail.com, linux-media@vger.kernel.org, devicetree@vger.kernel.org, p.zabel@pengutronix.de, s.hauer@pengutronix.de, mripard@kernel.org, robh+dt@kernel.org, mchehab@kernel.org, ezequiel@collabora.com, linux-arm-kernel@lists.infradead.org, jernej.skrabec@siol.net, gregkh@linuxfoundation.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, paul.kocialkowski@bootlin.com, kernel@pengutronix.de, shawnguo@kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" TGUgamV1ZGkgMDYgbWFpIDIwMjEgw6AgMTQ6MTEgKzAxMDAsIEpvaG4gQ294IGEgw6ljcml0wqA6 Cj4gPiBPbiAwNS8wNS8yMDIxIDE3OjIwLCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4g Cj4gPiA+IExlIDA1LzA1LzIwMjEgw6AgMTY6NTUsIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+ ID4gPiA+IE9uIDIwLzA0LzIwMjEgMTQ6MTAsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+ID4g PiA+ID4gVGhlIEhFVkMgSEFOVFJPIGRyaXZlciBuZWVkcyB0byBrbm93IHRoZSBudW1iZXIgb2Yg Yml0cyB0byBza2lwIGF0Cj4gPiA+ID4gPiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzbGljZSBoZWFk ZXIuCj4gPiA+ID4gPiBUaGF0IGlzIGEgaGFyZHdhcmUgc3BlY2lmaWMgcmVxdWlyZW1lbnQgc28g Y3JlYXRlIGEgZGVkaWNhdGVkIGNvbnRyb2wKPiA+ID4gPiA+IGZvciB0aGlzIHB1cnBvc2UuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5q YW1pbi5nYWlnbmFyZEBjb2xsYWJvcmEuY29tPgo+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiDCoMKg Li4uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9oYW50cm8ucnN0ICAgIHwgMTkKPiA+ID4g PiA+ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+IMKgwqAuLi4vdXNlcnNwYWNlLWFwaS9t ZWRpYS9kcml2ZXJzL2luZGV4LnJzdCAgICAgfCAgMSArCj4gPiA+ID4gPiDCoMKgaW5jbHVkZS9t ZWRpYS9oZXZjLWN0cmxzLmggICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwo+ ID4gPiA+ID4gwqDCoDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4g wqDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL3VzZXJzcGFjZS0KPiA+ID4gPiA+ IGFwaS9tZWRpYS9kcml2ZXJzL2hhbnRyby5yc3QKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2hhbnRyby5y c3QKPiA+ID4gPiA+IGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL2RyaXZlcnMv aGFudHJvLnJzdAo+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uY2Q5NzU0YjRlMDA1Cj4gPiA+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ ID4gPiArKysgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9oYW50 cm8ucnN0Cj4gPiA+ID4gPiBAQCAtMCwwICsxLDE5IEBACj4gPiA+ID4gPiArLi4gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtIYW50cm8gdmlk ZW8gZGVjb2RlciBkcml2ZXIKPiA+ID4gPiA+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT0K PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtUaGUgSGFudHJvIHZpZGVvIGRlY29kZXIgZHJpdmVyIGlt cGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItCj4gPiA+ID4gPiBzcGVjaWZpYyBjb250cm9s czoKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtgYFY0TDJfQ0lEX0hBTlRST19IRVZDX1NMSUNFX0hF QURFUl9TS0lQIChpbnRlZ2VyKWBgCj4gPiA+ID4gPiArICAgIFNwZWNpZmllcyB0byBIYW50cm8g SEVWQyB2aWRlbyBkZWNvZGVyIGRyaXZlciB0aGUgbnVtYmVyIG9mIGRhdGEKPiA+ID4gPiA+IChp biBiaXRzKSB0bwo+ID4gPiA+ID4gKyAgICBza2lwIGluIHRoZSBzbGljZSBzZWdtZW50IGhlYWRl ci4KPiA+ID4gPiA+ICsgICAgSWYgbm9uLUlEUiwgdGhlIGJpdHMgdG8gYmUgc2tpcHBlZCBnbyBm cm9tIHN5bnRheCBlbGVtZW50Cj4gPiA+ID4gPiAicGljX291dHB1dF9mbGFnIgo+ID4gPiA+ID4g KyAgICB0byBiZWZvcmUgc3ludGF4IGVsZW1lbnQgInNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVk X2ZsYWciLgo+ID4gPiA+ID4gKyAgICBJZiBJRFIsIHRoZSBza2lwcGVkIGJpdHMgYXJlIGp1c3Qg InBpY19vdXRwdXRfZmxhZyIKPiA+ID4gPiA+ICsgICAgKHNlcGFyYXRlX2NvbG91cl9wbGFuZV9m bGFnIGlzIG5vdCBzdXBwb3J0ZWQpLgo+ID4gPiA+IEknbSBub3QgdmVyeSBrZWVuIG9uIHRoaXMu IFdpdGhvdXQgdGhpcyBpbmZvcm1hdGlvbiB0aGUgdmlkZW8gZGF0YQo+ID4gPiA+IGNhbm5vdCBi ZQo+ID4gPiA+IGRlY29kZWQsIG9yIHdpbGwgaXQganVzdCBiZSBzdWJvcHRpbWFsPwo+ID4gPiAK PiA+ID4gV2l0aG91dCB0aGF0IGluZm9ybWF0aW9uIHRoZSB2aWRlbyBjYW4ndCBiZSBkZWNvZGVk Lgo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBUaGUgcHJvYmxlbSBpcyB0aGF0IGEgZ2VuZXJpYyBk ZWNvZGVyIHdvdWxkIGhhdmUgdG8ga25vdyB0aGF0IHRoZSBIVyBpcwo+ID4gPiA+IGEgaGFudHJv LAo+ID4gPiA+IGFuZCB0aGVuIGNhbGwgdGhpcyBjb250cm9sLiBJZiB0aGV5IGRvbid0IChhbmQg YXJlIHRlc3Rpbmcgb24gbm9uLWhhbnRybwo+ID4gPiA+IEhXKSwgdGhlbgo+ID4gPiA+IGl0IHdv bid0IHdvcmssIHRodXMgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBIVyBpbmRlcGVuZGVu dCBkZWNvZGVyCj4gPiA+ID4gQVBJLgo+ID4gPiA+IAo+ID4gPiA+IFNpbmNlIGhhbnRybyBpcyB3 aWRlbHkgdXNlZCwgYW5kIGlmIHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byBkbyB0aGlzCj4gPiA+ ID4gYmVzaWRlIGV4cGxpdGVseQo+ID4gPiA+IHNldHRpbmcgdGhpcyBjb250cm9sLCB0aGVuIHBl cmhhcHMgdGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgc3RhbmRhcmQKPiA+ID4gPiBIRVZDIEFQ SS4KPiA+ID4gPiBOb24taGFudHJvIGRyaXZlcnMgdGhhdCBkbyBub3QgbmVlZCB0aGlzIGNhbiBq dXN0IHNraXAgaXQuCj4gPiA+IAo+ID4gPiBFdmVuIGlmIEkgcHV0IHRoaXMgcGFyYW1ldGVyIGlu IGRlY29kZV9wYXJhbXMgc3RydWN0dXJlIHRoYXQgd291bGQgbWVhbnMKPiA+ID4gdGhhdCBhIGdl bmVyaWMKPiA+ID4gdXNlcmxhbmQgZGVjb2RlciB3aWxsIGhhdmUgdG8ga25vdyBob3cgdGhlIGNv bXB1dGUgdGhpcyB2YWx1ZSBmb3IgaGFudHJvCj4gPiA+IEhXIHNpbmNlIGl0Cj4gPiA+IGlzbid0 IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIGRvbmUgb24ga2VybmVsIHNpZGUuCj4gPiAKPiA+IEJ1 dCBzaW5jZSBoYW50cm8gaXMgdmVyeSBjb21tb24sIGFueSB1c2VybGFuZCBkZWNvZGVyIHdpbGwg bmVlZCB0byBjYWxjdWxhdGUKPiA+IHRoaXMgYW55d2F5Lgo+ID4gU28gcGVyaGFwcyBpdCBpcyBi ZXR0ZXIgdG8gaGF2ZSB0aGlzIGFzIHBhcnQgb2YgdGhlIGRlY29kZV9wYXJhbXM/Cj4gPiAKPiA+ IEknZCBsaWtlIHRvIGtub3cgd2hhdCBvdGhlcnMgdGhpbmsgYWJvdXQgdGhpcy4KPiAKPiBJIGRv bid0IGtub3cgZXhhY3RseSB3aGF0IEkgdGhpbmsgb24gdGhpcyAtIGl0cyBhbGwgYSBiaXQgb2Yg YSBtZXNzLiBJCgpUaGVyZSBpcyBubyBiZXR0ZXIgd2F5IHRvIGRlc2NyaWJlIHRoZSBzdGF0ZSBv ZiBteSBvd24gb3BpbmlvbiBhYm91dCB0aGlzLgoKPiBkb24ndCB0aGluayB0aGlzIGlzIGdvaW5n IHRvIGJlIHRoZSBsYXN0IEhFVkMgZGVjb2RlciB0aGF0IG5lZWRzIHNvbWUKPiBub24tc3RhbmRh cmQgc2V0dXAgdGhhdCBjYW4ndCBiZSB0cml2aWFsbHkgZXh0cmFjdGVkIGZyb20gYSBzdGFuZGFy ZAo+IHNsaWNlIGhlYWRlciBwYXJzZS4gU28gaWYgZnV0dXJlIGRlY29kZXJzIGFyZSBnb2luZyB0 byBoYXZlIHRvIGdlbmVyYXRlCj4gY3VzdG9tIGF0dHJpYnV0ZXMgdG8gY29wZSB3aXRoIHRoZWly IHF1aXJrcyB0aGVuIEhhbnRybyBwcm9iYWJseSBzaG91bGQKPiB0b28uIEFuZCBpZiBIYW50cm8g aXMgY29tbW9uIHRoZW4gdGhlIHVzZXJzcGFjZSBwcm9ncyB3aWxsIGF0IGxlYXN0IGhhdmUKPiBh IGZyYW1ld29yayBmb3IgZGVhbGluZyB3aXRoIHRoaXMgc29ydCBvZiB0aGluZyBzbyB3aGVuIHRo ZSBuZXh0IG9kZGl0eQo+IGNvbWVzIGFsb25nLgoKVG8gYWRkIHRvIHRoaXMsIHdoZW4gd2UgbW92 ZWQgaXQgb3V0IG9mIHRoZSBkZWNvZGVfcGFyYW1zLCB3ZSB3ZXJlIGFjdHVhbGx5Cm1ha2luZyBp dCBhbiBleGFtcGxlLiBXZSB1c2UgbGFyZ2Ugc3RydWN0dXJlIGZvciB0aGUgY29tbW9uIHN0dWZm IGJlY2F1c2UgaXMKY29udmVuaWVudCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1 cmUsIHRoZSBjb3N0IG9mIGFkZGluZyBjb250cm9scyBpcwpyYXRoZXIgbG93LgoKU28gd2UgbmVl ZCB0byB0aGluayBpZiB3ZSB3YW50IHRvIGhpZGUgb3IgaGlnaGxpZ2h0IHdoYXQgbG9va3MgbGlr ZSBoYXJkd2FyZQpkZXNpZ24gc3BlY2lmaWMgbmVlZHMuIFRoZXJlIGlzIG5vdGhpbmcgcGFydGlj dWxhcmx5IHdyb25nIGluIHRoZSBoYXJkd2FyZSwgYXMKSGFudHJvIHRyYWRpdGlvbmFsbHkgcGFy c2UgYSBsb3Qgb2YgdGhlIGhlYWRlcnMsIGJ1dCBJIHN1cHBvc2UgdGhleSBkb24ndCByZWFsbHkK d2FudCB0byBpbXBsZW1lbnQgc2tpcCBwYXJzZXJzIGJlY2F1c2UgYXQgc29tZSBwb2ludCB0aGUg aGFyZHdhcmUgYmVjb21lcyBxdWl0ZQpiaWcgYW5kIGNvbXBsZXgsIHNraXBwaW5nIGJpdHMgaXMg anVzdCB0cml2aWFsLgoKT25lIHRoaW5nIEkndmUgYmVlbiBkaXNjdXNzaW5nIHdpdGggQmVuamFt aW4geWVzdGVyZGF5IGlzIHRoYXQgd2hpbGUgc3BsaXR0aW5nLAp3ZSBhbHNvIG1hZGUgdGhlIGRh dGEgZXhhY3RseSB3aGF0IHRoZSBIVyB3YW50cywgd2hpY2ggaXMgYSBza2lwLiBBIG1vcmUKcmV1 c2FibGUgcmVwcmVzZW50YXRpb24gd291bGQgaGF2ZSBiZWVuIHRvIHByb3ZpZGUgdHdvIG9mZnNl dHMgaW4gdGhlIGhlYWRlci4KVGhpcyB3YXkgaWYgYW5vdGhlciBIVyBuZWVkIGEgZGlmZmVyZW50 IHNraXAsIGJ1dCB3aXRoIGEgZGlmZmVyZW50IHN0b3AKcG9zaXRpb24sIHlvdSBjYW4gc2hhcmUg dGhlIHN0YXJ0IHBvc2l0aW9uLiBUaG91Z2gsIGl0J3Mgbm8gbG9uZ2VyIGEgMToxIG1hdGNoCndp dGggaG93IHRoZSBIVyBpcyBwcm9ncmFtbWVkLCBzbyBub3QgYW4gZWFzeSBjYWxsLgoKQXMgZm9y IGhhdmluZyBtb3JlIHF1aXJrcyBpbiBtb3JlIEhXLCB0aGUgbmV3ZXIgY2hpcHMgYXJlIGRlc2ln bmVkIHdpdGggYQpjb25zdHJhaW50cyB0aGVzZSBkYXlzLiBBcyBhbiBleGFtcGxlLCB5b3Ugd2ls bCBub3RpY2UgdGhhdCBpbnNpZGUgbXBwIChyb2NrY2hpcApsaWJyYXJ5KSB0aGV5IHVzZSBNaWNy b3NvZnQgRFhWQSBwYXJhbWV0ZXJzIGFuZCB1c2UgdGhhdCBhcyBhIGNvbnRyYWludCBkdXJpbmcK dGhlIGRlc2lnbi4gRnJvbSBjb21tZW50IEFsZXggbWFkZSBhcm91bmQgTWVkaWF0ZWssIHRoZXkg YWN0dWFsbHkgdXNlZCBHb29nbGUKZG93bnN0cmVhbSBMaW51eCBBUEkgYXMgYSBjb25zdHJhaW50 LiBBcyB3ZSBkbyBjb3ZlciBleGlzdGluZyBBUEkgbGlrZSBEWFZBLApOVkRFQyBhbmQgVkEgYXMg ZmFyIGFzIG15IHJldmlldyB3ZW50LiBJIGRvbid0IHJlYWxseSBleHBlY3QgaW4gZmFjdCBuZXdl cgpkZXNpZ24gdG8gcmVxdWlyZSBxdWlya3MvZXh0ZW5zaW9ucyBzbyBvZnRlbiwgYnV0IG1ha2lu ZyB0aGlzIG9uZSBhIHNwbGl0CmNvbnRyb2wgd291bGQgc2VydmUgYXMgYW4gZXhhbXBsZSBob3cg dG8ga2VlcCB0aGluZ3MgY2xlYXIuCgpOb3csIHdoYXQgSSBiZWxpZXZlIGlzIG1pc3NpbmcgaW4g dGhlIHN0b3J5IGlzIGEgd2F5IGZvciB1c2Vyc3BhY2UgdG8gZGV0ZWN0CnRoYXQgZXh0cmEgKG5v biBzdGFuZGFyZCkgY29udHJvbHMgYXJlIG5lZWRlZC4gVGhlcmUgbWlnaHQgYmUgb3RoZXIgc3Vw cG9ydApkZWNvZGVyIG9uIHRoZSBwbGF0Zm9ybSwgb3IgZXZlbiBhIHNvZnR3YXJlIGRlY29kZXIg bWF5IGJlIG1vcmUgc3VpdGFibGUgZm9yIHRoZQp1c2UgY2FzIHRoZW4gYSBjb3JydXB0ZWQgb3V0 cHV0ICh3aGljaCBpcyB3aGF0IGhhcHBlbnMgaWYgeW91IGlnbm9yZSB0aGUgaGFudHJvCmNvbnRy b2wpLiBTbyBwZXJoYXBzIHdlIHNob3VsZCB0aGluayBvZiB3YXkgdG8gZmxhZyB0aGUgcmVxdWly ZW1lbnQgZm9yIHNvbWUKZXh0cmEgY29udHJvbHMuIFBlcmhhcHMgaW4gdGhlIGZvcm0gb2YgYSBi aXRtYXNrIG9mIHF1aXJrcywgc28gdGhlIHVzZXJzcGFjZSBjYW4KY2hlY2sgZWFybHkgaWYgaXQg aGFzIHRoZSByZXF1aXJlZCBpbXBsZW1lbnRhdGlvbiBhbmQgZmFsbGJhY2sgdG8gc29tZXRoaW5n IGVsc2UKaWYgbm90LgoKVGhpcyBpcyB0aGUgdHlwZSBvZiBBUEkgbWlzc2luZyB3ZSBoYXZlIGhh ZCBpbiBtYW55IG90aGVyIHBsYWNlcyBpbiB0aGUgZmFzdCwgd2UKZGlkIGZpeCBpdCBhZnRlciB0 aGF0IGZhY3QsIHdoaWNoIHdhcyBub3QgaWRlYWwsIGJ1dCBzdGlsbCBhY2NlcHRhYmxlLiBTbyBJ J20Kbm90IGxpa2Ugb2ggbm8sIHdlIHNjcmV3ZWQgdXAgdGhlIG90aGVyIHN0YWJsZSBBUEkuIEJ1 dCB3ZSBoYXZlIGEgdXNlIGNhc2UgaGVyZSwKcGVyaGFwcyB3ZSBjYW4gbGVhcm4gZnJvbSBpdCA/ CgpwLnMuIEkgdHJ5IHRvIGF2b2lkIGV4dGVuc2lvbnMgYXMgdGhpcyBtYWtlcyBtZSB0aGluayBv ZiB0aGUgZXh0cmEgcGFyZW1ldGVycwphc3NvY2lhdGVzIHdpdGggdGhlIGJpdHN0cmVhbSBwcm9m aWxlIHdlIG1heSBub3Qgc3VwcG9ydC4gV2UgYWxyZWFkeSBwcm92aWRlCmxpc3Qgb2Ygc3VwcG9y dCBwcm9maWxlcywgYW5kIGhhdmUgYSBnb29kIHN0b3J5LCB0ZXN0ZWQgd2l0aCBzdGF0ZWZ1bCBk ZWNvZGVyIG9uCmhvdyB0byBpbnRyb2R1Y2UgbmV3IHBhcmVtdGVycyBhbG9uZyB3aXRoIG5ldyBw cm9maWxlcy4KCnAucy4gTm90aWNlIHRoYXQgaWYgd2Ugd2FudCB0byByZXZpdmUgdGhlIFZBIGRy aXZlciAoVkEgZG9lcyBub3QgaGF2ZSB0aGlzCnNraXApLCB3ZSBuZWVkIHRvIHN0b3AgbW9kaWZ5 aW5nIHRoZSBWQSBBUEksIGFuZCBqdXN0IHJlLXBhcnNlIHdoYXRldmVyIGlzCm1pc3NpbmcuIEhh dmluZyBhIHNlcGFyYXRlIGNvbnRyb2wgY2FuIGJlIHVzZWQgYXMgYSBjbGVhciBpbmRpY2F0aW9u IHRoYXQgZG91YmxlCnBhcnNpbmcgaXMgbm90IG5lZWRlZCBmb3IgdGhlIHNwZWNpZmljIGltcGxl bWVudGF0aW9uLiBTYW1lIHdvdWxkIGFwcGx5IGlmIHNvbWUKV2luZSBmb2xrcyB3YW50IHRvIGVt dWxhdGUgRFhWQSBvdmVyIFY0TDIgQVBJICh0aG91Z2ggdW5saWtlbHkgYXMgdGhpcyBpcyByYXJl bHkKc2VlbiBvbiBkZXNrdG9wKS4KCj4gCj4gUmVnYXJkcwo+IAo+IEpvaG4gQ294Cj4gCj4gPiBS ZWdhcmRzLAo+ID4gCj4gPiAJSGFucwo+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gUmVnYXJkcywK PiA+ID4gQmVuamFtaW4KPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiAK PiA+ID4gPiAJSGFucwo+ID4gPiA+IAo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKy4uIG5vdGU6Ogo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICAgVGhpcyBjb250cm9sIGlzIG5vdCB5ZXQgcGFy dCBvZiB0aGUgcHVibGljIGtlcm5lbCBBUEkgYW5kCj4gPiA+ID4gPiArICAgICAgICBpdCBpcyBl eHBlY3RlZCB0byBjaGFuZ2UuCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi91 c2Vyc3BhY2UtYXBpL21lZGlhL2RyaXZlcnMvaW5kZXgucnN0Cj4gPiA+ID4gPiBiL0RvY3VtZW50 YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2luZGV4LnJzdAo+ID4gPiA+ID4gaW5k ZXggMWE5MDM4ZjVmOWZhLi4xMmUzYzUxMmQ3MTggMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9Eb2N1 bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9pbmRleC5yc3QKPiA+ID4gPiA+ ICsrKyBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2luZGV4LnJz dAo+ID4gPiA+ID4gQEAgLTMzLDYgKzMzLDcgQEAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGZp bGUgQ09QWUlORyBpbiB0aGUgc291cmNlCj4gPiA+ID4gPiBkaXN0cmlidXRpb24gb2YgTGludXgu Cj4gPiA+ID4gPiDCoMKgCj4gPiA+ID4gPiDCoMKgCWNjcwo+ID4gPiA+ID4gwqDCoAljeDIzNDF4 LXVhcGkKPiA+ID4gPiA+ICsgICAgICAgIGhhbnRybwo+ID4gPiA+ID4gwqDCoAlpbXgtdWFwaQo+ ID4gPiA+ID4gwqDCoAltYXgyMTc1Cj4gPiA+ID4gPiDCoMKgCW1leWUtdWFwaQo+ID4gPiA+ID4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oIGIvaW5jbHVkZS9tZWRpYS9o ZXZjLWN0cmxzLmgKPiA+ID4gPiA+IGluZGV4IDhlMDEwOWVlYTQ1NC4uYjcxM2VlZWQxOTE1IDEw MDY0NAo+ID4gPiA+ID4gLS0tIGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmgKPiA+ID4gPiA+ ICsrKyBiL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oCj4gPiA+ID4gPiBAQCAtMjI0LDQgKzIy NCwxNyBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyB7Cj4gPiA+ID4gPiDC oMKgCV9fdTY0CWZsYWdzOwo+ID4gPiA+ID4gwqDCoH07Cj4gPiA+ID4gPiDCoMKgCj4gPiA+ID4g PiArLyogIE1QRUctY2xhc3MgY29udHJvbCBJRHMgc3BlY2lmaWMgdG8gdGhlIEhhbnRybyBkcml2 ZXIgYXMgZGVmaW5lZAo+ID4gPiA+ID4gYnkgVjRMMiAqLwo+ID4gPiA+ID4gKyNkZWZpbmUKPiA+ ID4gPiA+IFY0TDJfQ0lEX0NPREVDX0hBTlRST19CQVNFCQkJCShWNEwyX0NUUkxfQ0xBU1NfQ09E RUMgfCAweDEyMDApCj4gPiA+ID4gPiArLyoKPiA+ID4gPiA+ICsgKiBWNEwyX0NJRF9IQU5UUk9f SEVWQ19TTElDRV9IRUFERVJfU0tJUCAtCj4gPiA+ID4gPiArICogdGhlIG51bWJlciBvZiBkYXRh IChpbiBiaXRzKSB0byBza2lwIGluIHRoZQo+ID4gPiA+ID4gKyAqIHNsaWNlIHNlZ21lbnQgaGVh ZGVyLgo+ID4gPiA+ID4gKyAqIElmIG5vbi1JRFIsIHRoZSBiaXRzIHRvIGJlIHNraXBwZWQgZ28g ZnJvbSBzeW50YXggZWxlbWVudAo+ID4gPiA+ID4gInBpY19vdXRwdXRfZmxhZyIKPiA+ID4gPiA+ ICsgKiB0byBiZWZvcmUgc3ludGF4IGVsZW1lbnQgInNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVk X2ZsYWciLgo+ID4gPiA+ID4gKyAqIElmIElEUiwgdGhlIHNraXBwZWQgYml0cyBhcmUganVzdCAi cGljX291dHB1dF9mbGFnIgo+ID4gPiA+ID4gKyAqIChzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxh ZyBpcyBub3Qgc3VwcG9ydGVkKS4KPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICsjZGVmaW5lCj4g PiA+ID4gPiBWNEwyX0NJRF9IQU5UUk9fSEVWQ19TTElDRV9IRUFERVJfU0tJUAkoVjRMMl9DSURf Q09ERUNfSEFOVFJPX0JBU0UgKyAwKQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gwqDCoCNlbmRpZgo+ ID4gPiA+ID4gCj4gPiA+ID4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZGV2ZWwgbWFpbGluZyBsaXN0CmRldmVsQGxpbnV4ZHJpdmVycHJvamVjdC5v cmcKaHR0cDovL2RyaXZlcmRldi5saW51eGRyaXZlcnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpdmVyZGV2LWRldmVsCg== 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=-14.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23BF7C433B4 for ; Thu, 6 May 2021 14:29:27 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 8E1C36113E for ; Thu, 6 May 2021 14:29:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E1C36113E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ndufresne.ca 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date:Cc:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=nvJUtjEqUtj/JOtcUA106+TWlvAbzC96RrlrHBa773w=; b=hNasKDpdeDRnI6VLnV8N2cbWC d/fDJGhOi3NbI48XtbkgUuJMOUCkMyMwNGgKy/ODFiC1ZtZYTW0bMS+sAiET0fRG4DmzGwrSLI96h xx+hFOWQsTmpmOhvD5e9PrxZsSVrDCgMVmkA6qDwvhMpl3M1GlgbCuuFInZp657LKwr3f2iMZnqDC sonlKfhjs3AfpDNJ+h+OJ+a0p6eU/SGxlnW+8/fqLOy8upf/1IakgBDE1krBhgBAyke6tMnsUKF52 dsYCexSW2rEEzM+KWBJu9ob39Yeg2/lx8rLIqemz6nWAHgCvXHRfqZyzO3yxr1oRhSa0nOL43wfuB f0ilf8h6A==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lef0D-004R3m-62; Thu, 06 May 2021 14:29:21 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lef0B-004R2T-0Y for linux-rockchip@desiato.infradead.org; Thu, 06 May 2021 14:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject: Message-ID:Sender:Reply-To:Content-ID:Content-Description; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=Wy/Zp9ryPap3elE6jO3ueYRPRn JXeWPPFQ6AnsZzeg34uRcCNpkQcs0PLvl0dwGvzrWHfFA706ZX81Xok1qUKiodL8qKlvAnFRChNXv Yc4mD8UKgHiiasGhdq9HYFXnv7gua9Baqxv2/uh9q1r25sler789I8R/HmH5k5keXfV03nFLKYdRb KzkFeHP7HnORG2bacCAlYvqRtZgXCvtaCbpHDX2o6uGZ7h/17nhFsT8xH/6wxoNemW2XGvmrNhsk/ nXrAa1zS4R2KFbQex7D4DOnmLsdGnugK0e2M8P8MemkeS07hir5IvoCxH6PX5K+LbNQX3FKr72Sc5 fBmza0Ag==; Received: from mail-qk1-x72d.google.com ([2607:f8b0:4864:20::72d]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lef07-0065zb-0M for linux-rockchip@lists.infradead.org; Thu, 06 May 2021 14:29:16 +0000 Received: by mail-qk1-x72d.google.com with SMTP id 76so5044770qkn.13 for ; Thu, 06 May 2021 07:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=0u96e57Z+1xVtYpsdQo9L1gyUGGB/AdDb46/CNeCtQ1aivWcYlLssYV+UVDb2UtD5W wJ7aW5jYyVAtsxe9bwsZ6SXMC7AXzW1Rz3VkMZUhah3G4NucVM+253gX+w4o+a6Z4Say hRA9NV69eYJDUQzhQbp8A1ha2PiIqDjJqT8b2jARnGRGh42FoeIy+Qus7g534T0Gswhn OzFnI/4JOcA2UPema641K+sOCPWv0KdYlXxGmElG4VZZcxZ/zXg1GDCEMvM75nfr2GmC 7ktrMxnU8BaSoUq3H2sDXb9ZJCvggHl70bcfut4Hm8S74xMtuHjlT65I+aUF0g1Mqiaf BLWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=MbtNL7P/Iz+n1Zavji9bNfLBoEyZL/3dD/aeIFj3MYgTUaEeSBRQswL9eRILellywQ iV7XaXwnSHZXfAjtvZOVWi9MnhiVYGRkNgqTkXEWS7mRB3Ms+OIMIPoz5l2S7KQcGJRf MblNvoWNTkED0wtBvIr6LqcpgEDRrWGJeZX9LK8TMNA4srqjR1YBqroyiOp+XD/zLxnw SPLCK8GK5xSnwqhktWfs+XELHEeOlNKOCNolii+gdhJ9WjDniNDL1kFUAYZcCI8HxITi kELrhA4/S7yzAd/Rhngl2ofv6/2OAiv7Ho4Akwf0L57JsRi5Zou9hHsC/EBXOZVatCOh Ax9Q== X-Gm-Message-State: AOAM5302cytwB8OlLwXvjcFt+Go5m+c90g37hXLbuaP1xxZFOhrff+nz siLZXEJQ1j4HGPZwW3WktIre7A== X-Google-Smtp-Source: ABdhPJwBLjKNP6aEe8hFOPRHRhSRkv5wP+9YODtFwFW5GW5DmRxNW2uhWkdMbMheliE8NhBkXiyRyQ== X-Received: by 2002:a05:620a:a5a:: with SMTP id j26mr4167891qka.156.1620311352924; Thu, 06 May 2021 07:29:12 -0700 (PDT) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h62sm2005578qkf.116.2021.05.06.07.29.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 May 2021 07:29:11 -0700 (PDT) Message-ID: <15e2b577e84ef19bfcfcbb23a7ea2bf63abefdb3.camel@ndufresne.ca> Subject: Re: [PATCH v10 6/9] media: uapi: Add a control for HANTRO driver From: Nicolas Dufresne To: John Cox , Hans Verkuil Cc: Benjamin Gaignard , ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com, lee.jones@linaro.org, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, emil.l.velikov@gmail.com, kernel@pengutronix.de, linux-imx@nxp.com, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, kernel@collabora.com, cphealy@gmail.com Date: Thu, 06 May 2021 10:29:09 -0400 In-Reply-To: References: <20210420121046.181889-1-benjamin.gaignard@collabora.com> <20210420121046.181889-7-benjamin.gaignard@collabora.com> <1cf94540-7f4d-0179-dd1e-0b82ee30f6d2@collabora.com> <815a4bd6-599b-cfb8-9ddc-efa4b7092c23@xs4all.nl> User-Agent: Evolution 3.40.0 (3.40.0-1.fc34) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210506_072915_119836_B0FBDCBC X-CRM114-Status: GOOD ( 66.16 ) 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 TGUgamV1ZGkgMDYgbWFpIDIwMjEgw6AgMTQ6MTEgKzAxMDAsIEpvaG4gQ294IGEgw6ljcml0wqA6 Cj4gPiBPbiAwNS8wNS8yMDIxIDE3OjIwLCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4g Cj4gPiA+IExlIDA1LzA1LzIwMjEgw6AgMTY6NTUsIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+ ID4gPiA+IE9uIDIwLzA0LzIwMjEgMTQ6MTAsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+ID4g PiA+ID4gVGhlIEhFVkMgSEFOVFJPIGRyaXZlciBuZWVkcyB0byBrbm93IHRoZSBudW1iZXIgb2Yg Yml0cyB0byBza2lwIGF0Cj4gPiA+ID4gPiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzbGljZSBoZWFk ZXIuCj4gPiA+ID4gPiBUaGF0IGlzIGEgaGFyZHdhcmUgc3BlY2lmaWMgcmVxdWlyZW1lbnQgc28g Y3JlYXRlIGEgZGVkaWNhdGVkIGNvbnRyb2wKPiA+ID4gPiA+IGZvciB0aGlzIHB1cnBvc2UuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5q YW1pbi5nYWlnbmFyZEBjb2xsYWJvcmEuY29tPgo+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiDCoMKg Li4uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9oYW50cm8ucnN0ICAgIHwgMTkKPiA+ID4g PiA+ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+IMKgwqAuLi4vdXNlcnNwYWNlLWFwaS9t ZWRpYS9kcml2ZXJzL2luZGV4LnJzdCAgICAgfCAgMSArCj4gPiA+ID4gPiDCoMKgaW5jbHVkZS9t ZWRpYS9oZXZjLWN0cmxzLmggICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwo+ ID4gPiA+ID4gwqDCoDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4g wqDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL3VzZXJzcGFjZS0KPiA+ID4gPiA+ IGFwaS9tZWRpYS9kcml2ZXJzL2hhbnRyby5yc3QKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2hhbnRyby5y c3QKPiA+ID4gPiA+IGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL2RyaXZlcnMv aGFudHJvLnJzdAo+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uY2Q5NzU0YjRlMDA1Cj4gPiA+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ ID4gPiArKysgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9oYW50 cm8ucnN0Cj4gPiA+ID4gPiBAQCAtMCwwICsxLDE5IEBACj4gPiA+ID4gPiArLi4gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtIYW50cm8gdmlk ZW8gZGVjb2RlciBkcml2ZXIKPiA+ID4gPiA+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT0K PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtUaGUgSGFudHJvIHZpZGVvIGRlY29kZXIgZHJpdmVyIGlt cGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItCj4gPiA+ID4gPiBzcGVjaWZpYyBjb250cm9s czoKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtgYFY0TDJfQ0lEX0hBTlRST19IRVZDX1NMSUNFX0hF QURFUl9TS0lQIChpbnRlZ2VyKWBgCj4gPiA+ID4gPiArICAgIFNwZWNpZmllcyB0byBIYW50cm8g SEVWQyB2aWRlbyBkZWNvZGVyIGRyaXZlciB0aGUgbnVtYmVyIG9mIGRhdGEKPiA+ID4gPiA+IChp biBiaXRzKSB0bwo+ID4gPiA+ID4gKyAgICBza2lwIGluIHRoZSBzbGljZSBzZWdtZW50IGhlYWRl ci4KPiA+ID4gPiA+ICsgICAgSWYgbm9uLUlEUiwgdGhlIGJpdHMgdG8gYmUgc2tpcHBlZCBnbyBm cm9tIHN5bnRheCBlbGVtZW50Cj4gPiA+ID4gPiAicGljX291dHB1dF9mbGFnIgo+ID4gPiA+ID4g KyAgICB0byBiZWZvcmUgc3ludGF4IGVsZW1lbnQgInNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVk X2ZsYWciLgo+ID4gPiA+ID4gKyAgICBJZiBJRFIsIHRoZSBza2lwcGVkIGJpdHMgYXJlIGp1c3Qg InBpY19vdXRwdXRfZmxhZyIKPiA+ID4gPiA+ICsgICAgKHNlcGFyYXRlX2NvbG91cl9wbGFuZV9m bGFnIGlzIG5vdCBzdXBwb3J0ZWQpLgo+ID4gPiA+IEknbSBub3QgdmVyeSBrZWVuIG9uIHRoaXMu IFdpdGhvdXQgdGhpcyBpbmZvcm1hdGlvbiB0aGUgdmlkZW8gZGF0YQo+ID4gPiA+IGNhbm5vdCBi ZQo+ID4gPiA+IGRlY29kZWQsIG9yIHdpbGwgaXQganVzdCBiZSBzdWJvcHRpbWFsPwo+ID4gPiAK PiA+ID4gV2l0aG91dCB0aGF0IGluZm9ybWF0aW9uIHRoZSB2aWRlbyBjYW4ndCBiZSBkZWNvZGVk Lgo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBUaGUgcHJvYmxlbSBpcyB0aGF0IGEgZ2VuZXJpYyBk ZWNvZGVyIHdvdWxkIGhhdmUgdG8ga25vdyB0aGF0IHRoZSBIVyBpcwo+ID4gPiA+IGEgaGFudHJv LAo+ID4gPiA+IGFuZCB0aGVuIGNhbGwgdGhpcyBjb250cm9sLiBJZiB0aGV5IGRvbid0IChhbmQg YXJlIHRlc3Rpbmcgb24gbm9uLWhhbnRybwo+ID4gPiA+IEhXKSwgdGhlbgo+ID4gPiA+IGl0IHdv bid0IHdvcmssIHRodXMgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBIVyBpbmRlcGVuZGVu dCBkZWNvZGVyCj4gPiA+ID4gQVBJLgo+ID4gPiA+IAo+ID4gPiA+IFNpbmNlIGhhbnRybyBpcyB3 aWRlbHkgdXNlZCwgYW5kIGlmIHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byBkbyB0aGlzCj4gPiA+ ID4gYmVzaWRlIGV4cGxpdGVseQo+ID4gPiA+IHNldHRpbmcgdGhpcyBjb250cm9sLCB0aGVuIHBl cmhhcHMgdGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgc3RhbmRhcmQKPiA+ID4gPiBIRVZDIEFQ SS4KPiA+ID4gPiBOb24taGFudHJvIGRyaXZlcnMgdGhhdCBkbyBub3QgbmVlZCB0aGlzIGNhbiBq dXN0IHNraXAgaXQuCj4gPiA+IAo+ID4gPiBFdmVuIGlmIEkgcHV0IHRoaXMgcGFyYW1ldGVyIGlu IGRlY29kZV9wYXJhbXMgc3RydWN0dXJlIHRoYXQgd291bGQgbWVhbnMKPiA+ID4gdGhhdCBhIGdl bmVyaWMKPiA+ID4gdXNlcmxhbmQgZGVjb2RlciB3aWxsIGhhdmUgdG8ga25vdyBob3cgdGhlIGNv bXB1dGUgdGhpcyB2YWx1ZSBmb3IgaGFudHJvCj4gPiA+IEhXIHNpbmNlIGl0Cj4gPiA+IGlzbid0 IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIGRvbmUgb24ga2VybmVsIHNpZGUuCj4gPiAKPiA+IEJ1 dCBzaW5jZSBoYW50cm8gaXMgdmVyeSBjb21tb24sIGFueSB1c2VybGFuZCBkZWNvZGVyIHdpbGwg bmVlZCB0byBjYWxjdWxhdGUKPiA+IHRoaXMgYW55d2F5Lgo+ID4gU28gcGVyaGFwcyBpdCBpcyBi ZXR0ZXIgdG8gaGF2ZSB0aGlzIGFzIHBhcnQgb2YgdGhlIGRlY29kZV9wYXJhbXM/Cj4gPiAKPiA+ IEknZCBsaWtlIHRvIGtub3cgd2hhdCBvdGhlcnMgdGhpbmsgYWJvdXQgdGhpcy4KPiAKPiBJIGRv bid0IGtub3cgZXhhY3RseSB3aGF0IEkgdGhpbmsgb24gdGhpcyAtIGl0cyBhbGwgYSBiaXQgb2Yg YSBtZXNzLiBJCgpUaGVyZSBpcyBubyBiZXR0ZXIgd2F5IHRvIGRlc2NyaWJlIHRoZSBzdGF0ZSBv ZiBteSBvd24gb3BpbmlvbiBhYm91dCB0aGlzLgoKPiBkb24ndCB0aGluayB0aGlzIGlzIGdvaW5n IHRvIGJlIHRoZSBsYXN0IEhFVkMgZGVjb2RlciB0aGF0IG5lZWRzIHNvbWUKPiBub24tc3RhbmRh cmQgc2V0dXAgdGhhdCBjYW4ndCBiZSB0cml2aWFsbHkgZXh0cmFjdGVkIGZyb20gYSBzdGFuZGFy ZAo+IHNsaWNlIGhlYWRlciBwYXJzZS4gU28gaWYgZnV0dXJlIGRlY29kZXJzIGFyZSBnb2luZyB0 byBoYXZlIHRvIGdlbmVyYXRlCj4gY3VzdG9tIGF0dHJpYnV0ZXMgdG8gY29wZSB3aXRoIHRoZWly IHF1aXJrcyB0aGVuIEhhbnRybyBwcm9iYWJseSBzaG91bGQKPiB0b28uIEFuZCBpZiBIYW50cm8g aXMgY29tbW9uIHRoZW4gdGhlIHVzZXJzcGFjZSBwcm9ncyB3aWxsIGF0IGxlYXN0IGhhdmUKPiBh IGZyYW1ld29yayBmb3IgZGVhbGluZyB3aXRoIHRoaXMgc29ydCBvZiB0aGluZyBzbyB3aGVuIHRo ZSBuZXh0IG9kZGl0eQo+IGNvbWVzIGFsb25nLgoKVG8gYWRkIHRvIHRoaXMsIHdoZW4gd2UgbW92 ZWQgaXQgb3V0IG9mIHRoZSBkZWNvZGVfcGFyYW1zLCB3ZSB3ZXJlIGFjdHVhbGx5Cm1ha2luZyBp dCBhbiBleGFtcGxlLiBXZSB1c2UgbGFyZ2Ugc3RydWN0dXJlIGZvciB0aGUgY29tbW9uIHN0dWZm IGJlY2F1c2UgaXMKY29udmVuaWVudCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1 cmUsIHRoZSBjb3N0IG9mIGFkZGluZyBjb250cm9scyBpcwpyYXRoZXIgbG93LgoKU28gd2UgbmVl ZCB0byB0aGluayBpZiB3ZSB3YW50IHRvIGhpZGUgb3IgaGlnaGxpZ2h0IHdoYXQgbG9va3MgbGlr ZSBoYXJkd2FyZQpkZXNpZ24gc3BlY2lmaWMgbmVlZHMuIFRoZXJlIGlzIG5vdGhpbmcgcGFydGlj dWxhcmx5IHdyb25nIGluIHRoZSBoYXJkd2FyZSwgYXMKSGFudHJvIHRyYWRpdGlvbmFsbHkgcGFy c2UgYSBsb3Qgb2YgdGhlIGhlYWRlcnMsIGJ1dCBJIHN1cHBvc2UgdGhleSBkb24ndCByZWFsbHkK d2FudCB0byBpbXBsZW1lbnQgc2tpcCBwYXJzZXJzIGJlY2F1c2UgYXQgc29tZSBwb2ludCB0aGUg aGFyZHdhcmUgYmVjb21lcyBxdWl0ZQpiaWcgYW5kIGNvbXBsZXgsIHNraXBwaW5nIGJpdHMgaXMg anVzdCB0cml2aWFsLgoKT25lIHRoaW5nIEkndmUgYmVlbiBkaXNjdXNzaW5nIHdpdGggQmVuamFt aW4geWVzdGVyZGF5IGlzIHRoYXQgd2hpbGUgc3BsaXR0aW5nLAp3ZSBhbHNvIG1hZGUgdGhlIGRh dGEgZXhhY3RseSB3aGF0IHRoZSBIVyB3YW50cywgd2hpY2ggaXMgYSBza2lwLiBBIG1vcmUKcmV1 c2FibGUgcmVwcmVzZW50YXRpb24gd291bGQgaGF2ZSBiZWVuIHRvIHByb3ZpZGUgdHdvIG9mZnNl dHMgaW4gdGhlIGhlYWRlci4KVGhpcyB3YXkgaWYgYW5vdGhlciBIVyBuZWVkIGEgZGlmZmVyZW50 IHNraXAsIGJ1dCB3aXRoIGEgZGlmZmVyZW50IHN0b3AKcG9zaXRpb24sIHlvdSBjYW4gc2hhcmUg dGhlIHN0YXJ0IHBvc2l0aW9uLiBUaG91Z2gsIGl0J3Mgbm8gbG9uZ2VyIGEgMToxIG1hdGNoCndp dGggaG93IHRoZSBIVyBpcyBwcm9ncmFtbWVkLCBzbyBub3QgYW4gZWFzeSBjYWxsLgoKQXMgZm9y IGhhdmluZyBtb3JlIHF1aXJrcyBpbiBtb3JlIEhXLCB0aGUgbmV3ZXIgY2hpcHMgYXJlIGRlc2ln bmVkIHdpdGggYQpjb25zdHJhaW50cyB0aGVzZSBkYXlzLiBBcyBhbiBleGFtcGxlLCB5b3Ugd2ls bCBub3RpY2UgdGhhdCBpbnNpZGUgbXBwIChyb2NrY2hpcApsaWJyYXJ5KSB0aGV5IHVzZSBNaWNy b3NvZnQgRFhWQSBwYXJhbWV0ZXJzIGFuZCB1c2UgdGhhdCBhcyBhIGNvbnRyYWludCBkdXJpbmcK dGhlIGRlc2lnbi4gRnJvbSBjb21tZW50IEFsZXggbWFkZSBhcm91bmQgTWVkaWF0ZWssIHRoZXkg YWN0dWFsbHkgdXNlZCBHb29nbGUKZG93bnN0cmVhbSBMaW51eCBBUEkgYXMgYSBjb25zdHJhaW50 LiBBcyB3ZSBkbyBjb3ZlciBleGlzdGluZyBBUEkgbGlrZSBEWFZBLApOVkRFQyBhbmQgVkEgYXMg ZmFyIGFzIG15IHJldmlldyB3ZW50LiBJIGRvbid0IHJlYWxseSBleHBlY3QgaW4gZmFjdCBuZXdl cgpkZXNpZ24gdG8gcmVxdWlyZSBxdWlya3MvZXh0ZW5zaW9ucyBzbyBvZnRlbiwgYnV0IG1ha2lu ZyB0aGlzIG9uZSBhIHNwbGl0CmNvbnRyb2wgd291bGQgc2VydmUgYXMgYW4gZXhhbXBsZSBob3cg dG8ga2VlcCB0aGluZ3MgY2xlYXIuCgpOb3csIHdoYXQgSSBiZWxpZXZlIGlzIG1pc3NpbmcgaW4g dGhlIHN0b3J5IGlzIGEgd2F5IGZvciB1c2Vyc3BhY2UgdG8gZGV0ZWN0CnRoYXQgZXh0cmEgKG5v biBzdGFuZGFyZCkgY29udHJvbHMgYXJlIG5lZWRlZC4gVGhlcmUgbWlnaHQgYmUgb3RoZXIgc3Vw cG9ydApkZWNvZGVyIG9uIHRoZSBwbGF0Zm9ybSwgb3IgZXZlbiBhIHNvZnR3YXJlIGRlY29kZXIg bWF5IGJlIG1vcmUgc3VpdGFibGUgZm9yIHRoZQp1c2UgY2FzIHRoZW4gYSBjb3JydXB0ZWQgb3V0 cHV0ICh3aGljaCBpcyB3aGF0IGhhcHBlbnMgaWYgeW91IGlnbm9yZSB0aGUgaGFudHJvCmNvbnRy b2wpLiBTbyBwZXJoYXBzIHdlIHNob3VsZCB0aGluayBvZiB3YXkgdG8gZmxhZyB0aGUgcmVxdWly ZW1lbnQgZm9yIHNvbWUKZXh0cmEgY29udHJvbHMuIFBlcmhhcHMgaW4gdGhlIGZvcm0gb2YgYSBi aXRtYXNrIG9mIHF1aXJrcywgc28gdGhlIHVzZXJzcGFjZSBjYW4KY2hlY2sgZWFybHkgaWYgaXQg aGFzIHRoZSByZXF1aXJlZCBpbXBsZW1lbnRhdGlvbiBhbmQgZmFsbGJhY2sgdG8gc29tZXRoaW5n IGVsc2UKaWYgbm90LgoKVGhpcyBpcyB0aGUgdHlwZSBvZiBBUEkgbWlzc2luZyB3ZSBoYXZlIGhh ZCBpbiBtYW55IG90aGVyIHBsYWNlcyBpbiB0aGUgZmFzdCwgd2UKZGlkIGZpeCBpdCBhZnRlciB0 aGF0IGZhY3QsIHdoaWNoIHdhcyBub3QgaWRlYWwsIGJ1dCBzdGlsbCBhY2NlcHRhYmxlLiBTbyBJ J20Kbm90IGxpa2Ugb2ggbm8sIHdlIHNjcmV3ZWQgdXAgdGhlIG90aGVyIHN0YWJsZSBBUEkuIEJ1 dCB3ZSBoYXZlIGEgdXNlIGNhc2UgaGVyZSwKcGVyaGFwcyB3ZSBjYW4gbGVhcm4gZnJvbSBpdCA/ CgpwLnMuIEkgdHJ5IHRvIGF2b2lkIGV4dGVuc2lvbnMgYXMgdGhpcyBtYWtlcyBtZSB0aGluayBv ZiB0aGUgZXh0cmEgcGFyZW1ldGVycwphc3NvY2lhdGVzIHdpdGggdGhlIGJpdHN0cmVhbSBwcm9m aWxlIHdlIG1heSBub3Qgc3VwcG9ydC4gV2UgYWxyZWFkeSBwcm92aWRlCmxpc3Qgb2Ygc3VwcG9y dCBwcm9maWxlcywgYW5kIGhhdmUgYSBnb29kIHN0b3J5LCB0ZXN0ZWQgd2l0aCBzdGF0ZWZ1bCBk ZWNvZGVyIG9uCmhvdyB0byBpbnRyb2R1Y2UgbmV3IHBhcmVtdGVycyBhbG9uZyB3aXRoIG5ldyBw cm9maWxlcy4KCnAucy4gTm90aWNlIHRoYXQgaWYgd2Ugd2FudCB0byByZXZpdmUgdGhlIFZBIGRy aXZlciAoVkEgZG9lcyBub3QgaGF2ZSB0aGlzCnNraXApLCB3ZSBuZWVkIHRvIHN0b3AgbW9kaWZ5 aW5nIHRoZSBWQSBBUEksIGFuZCBqdXN0IHJlLXBhcnNlIHdoYXRldmVyIGlzCm1pc3NpbmcuIEhh dmluZyBhIHNlcGFyYXRlIGNvbnRyb2wgY2FuIGJlIHVzZWQgYXMgYSBjbGVhciBpbmRpY2F0aW9u IHRoYXQgZG91YmxlCnBhcnNpbmcgaXMgbm90IG5lZWRlZCBmb3IgdGhlIHNwZWNpZmljIGltcGxl bWVudGF0aW9uLiBTYW1lIHdvdWxkIGFwcGx5IGlmIHNvbWUKV2luZSBmb2xrcyB3YW50IHRvIGVt dWxhdGUgRFhWQSBvdmVyIFY0TDIgQVBJICh0aG91Z2ggdW5saWtlbHkgYXMgdGhpcyBpcyByYXJl bHkKc2VlbiBvbiBkZXNrdG9wKS4KCj4gCj4gUmVnYXJkcwo+IAo+IEpvaG4gQ294Cj4gCj4gPiBS ZWdhcmRzLAo+ID4gCj4gPiAJSGFucwo+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gUmVnYXJkcywK PiA+ID4gQmVuamFtaW4KPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiAK PiA+ID4gPiAJSGFucwo+ID4gPiA+IAo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKy4uIG5vdGU6Ogo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICAgVGhpcyBjb250cm9sIGlzIG5vdCB5ZXQgcGFy dCBvZiB0aGUgcHVibGljIGtlcm5lbCBBUEkgYW5kCj4gPiA+ID4gPiArICAgICAgICBpdCBpcyBl eHBlY3RlZCB0byBjaGFuZ2UuCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi91 c2Vyc3BhY2UtYXBpL21lZGlhL2RyaXZlcnMvaW5kZXgucnN0Cj4gPiA+ID4gPiBiL0RvY3VtZW50 YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2luZGV4LnJzdAo+ID4gPiA+ID4gaW5k ZXggMWE5MDM4ZjVmOWZhLi4xMmUzYzUxMmQ3MTggMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9Eb2N1 bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9pbmRleC5yc3QKPiA+ID4gPiA+ ICsrKyBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2luZGV4LnJz dAo+ID4gPiA+ID4gQEAgLTMzLDYgKzMzLDcgQEAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGZp bGUgQ09QWUlORyBpbiB0aGUgc291cmNlCj4gPiA+ID4gPiBkaXN0cmlidXRpb24gb2YgTGludXgu Cj4gPiA+ID4gPiDCoMKgCj4gPiA+ID4gPiDCoMKgCWNjcwo+ID4gPiA+ID4gwqDCoAljeDIzNDF4 LXVhcGkKPiA+ID4gPiA+ICsgICAgICAgIGhhbnRybwo+ID4gPiA+ID4gwqDCoAlpbXgtdWFwaQo+ ID4gPiA+ID4gwqDCoAltYXgyMTc1Cj4gPiA+ID4gPiDCoMKgCW1leWUtdWFwaQo+ID4gPiA+ID4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oIGIvaW5jbHVkZS9tZWRpYS9o ZXZjLWN0cmxzLmgKPiA+ID4gPiA+IGluZGV4IDhlMDEwOWVlYTQ1NC4uYjcxM2VlZWQxOTE1IDEw MDY0NAo+ID4gPiA+ID4gLS0tIGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmgKPiA+ID4gPiA+ ICsrKyBiL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oCj4gPiA+ID4gPiBAQCAtMjI0LDQgKzIy NCwxNyBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyB7Cj4gPiA+ID4gPiDC oMKgCV9fdTY0CWZsYWdzOwo+ID4gPiA+ID4gwqDCoH07Cj4gPiA+ID4gPiDCoMKgCj4gPiA+ID4g PiArLyogIE1QRUctY2xhc3MgY29udHJvbCBJRHMgc3BlY2lmaWMgdG8gdGhlIEhhbnRybyBkcml2 ZXIgYXMgZGVmaW5lZAo+ID4gPiA+ID4gYnkgVjRMMiAqLwo+ID4gPiA+ID4gKyNkZWZpbmUKPiA+ ID4gPiA+IFY0TDJfQ0lEX0NPREVDX0hBTlRST19CQVNFCQkJCShWNEwyX0NUUkxfQ0xBU1NfQ09E RUMgfCAweDEyMDApCj4gPiA+ID4gPiArLyoKPiA+ID4gPiA+ICsgKiBWNEwyX0NJRF9IQU5UUk9f SEVWQ19TTElDRV9IRUFERVJfU0tJUCAtCj4gPiA+ID4gPiArICogdGhlIG51bWJlciBvZiBkYXRh IChpbiBiaXRzKSB0byBza2lwIGluIHRoZQo+ID4gPiA+ID4gKyAqIHNsaWNlIHNlZ21lbnQgaGVh ZGVyLgo+ID4gPiA+ID4gKyAqIElmIG5vbi1JRFIsIHRoZSBiaXRzIHRvIGJlIHNraXBwZWQgZ28g ZnJvbSBzeW50YXggZWxlbWVudAo+ID4gPiA+ID4gInBpY19vdXRwdXRfZmxhZyIKPiA+ID4gPiA+ ICsgKiB0byBiZWZvcmUgc3ludGF4IGVsZW1lbnQgInNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVk X2ZsYWciLgo+ID4gPiA+ID4gKyAqIElmIElEUiwgdGhlIHNraXBwZWQgYml0cyBhcmUganVzdCAi cGljX291dHB1dF9mbGFnIgo+ID4gPiA+ID4gKyAqIChzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxh ZyBpcyBub3Qgc3VwcG9ydGVkKS4KPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICsjZGVmaW5lCj4g PiA+ID4gPiBWNEwyX0NJRF9IQU5UUk9fSEVWQ19TTElDRV9IRUFERVJfU0tJUAkoVjRMMl9DSURf Q09ERUNfSEFOVFJPX0JBU0UgKyAwKQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gwqDCoCNlbmRpZgo+ ID4gPiA+ID4gCj4gPiA+ID4gCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcm9ja2NoaXAK 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=-14.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70774C433B4 for ; Thu, 6 May 2021 14:32:06 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 D75B46113E for ; Thu, 6 May 2021 14:32:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D75B46113E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ndufresne.ca 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date:Cc:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=XLU/AwxzHQLw09GMyjDegESMgQal3TAhRtadNAEGUvg=; b=bZEodxV8jaj7tIagvCu+i8h3X PRxiur7iTM/k+EYqg/nWTsHq1MWg5Vdzj6I6pJ3ucWPBoQk579JkVkXq7RvrlcXpBDPBzHzu5WuZA tf7MJxoW2ORpDToCw8XWoIm+2MMCUbv1+su8pfZfvtwTvEdMJ9KpzhQog2kJxa85x74nPZZDgzJQS wzZzlHBzbg4RNh4AOoxFQ6JkTm3uT4ZDcDuJfRRaFUYPMHpANUwo9h3NkqFuINm/PdbEYwTEJgQ/w 60eDwRR0+LSg2BOkUr39+C75L4Gq4uT9/WKqewvm0RztuNBykiykwqmU7C2CMi1gp/zat5KOVIwmG VnojViwfQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lef0F-004R47-Of; Thu, 06 May 2021 14:29:23 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lef0B-004R2S-0w for linux-arm-kernel@desiato.infradead.org; Thu, 06 May 2021 14:29:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject: Message-ID:Sender:Reply-To:Content-ID:Content-Description; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=Wy/Zp9ryPap3elE6jO3ueYRPRn JXeWPPFQ6AnsZzeg34uRcCNpkQcs0PLvl0dwGvzrWHfFA706ZX81Xok1qUKiodL8qKlvAnFRChNXv Yc4mD8UKgHiiasGhdq9HYFXnv7gua9Baqxv2/uh9q1r25sler789I8R/HmH5k5keXfV03nFLKYdRb KzkFeHP7HnORG2bacCAlYvqRtZgXCvtaCbpHDX2o6uGZ7h/17nhFsT8xH/6wxoNemW2XGvmrNhsk/ nXrAa1zS4R2KFbQex7D4DOnmLsdGnugK0e2M8P8MemkeS07hir5IvoCxH6PX5K+LbNQX3FKr72Sc5 fBmza0Ag==; Received: from mail-qk1-x735.google.com ([2607:f8b0:4864:20::735]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lef07-0065zc-0X for linux-arm-kernel@lists.infradead.org; Thu, 06 May 2021 14:29:16 +0000 Received: by mail-qk1-x735.google.com with SMTP id a22so4496090qkl.10 for ; Thu, 06 May 2021 07:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=0u96e57Z+1xVtYpsdQo9L1gyUGGB/AdDb46/CNeCtQ1aivWcYlLssYV+UVDb2UtD5W wJ7aW5jYyVAtsxe9bwsZ6SXMC7AXzW1Rz3VkMZUhah3G4NucVM+253gX+w4o+a6Z4Say hRA9NV69eYJDUQzhQbp8A1ha2PiIqDjJqT8b2jARnGRGh42FoeIy+Qus7g534T0Gswhn OzFnI/4JOcA2UPema641K+sOCPWv0KdYlXxGmElG4VZZcxZ/zXg1GDCEMvM75nfr2GmC 7ktrMxnU8BaSoUq3H2sDXb9ZJCvggHl70bcfut4Hm8S74xMtuHjlT65I+aUF0g1Mqiaf BLWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=GW95dzInD2TKzR0jdVkWnUZGwBXxcKhZ1/8vg5w2zVE=; b=UE0kIp7FtCJqMD3tEEuAh1C7793C0ufYIMvHzllE/n2YWfBTy5Ehytf2mRi9cBs9Mw FtShbsCw6lz8dB8Hgeu1e9zhb95DBlsVQWaMgcNKlT+rVp6o/3RUXTgGl2HguHSrUD0t aozn9U3m4pFU/x/CvzJQvQrLamq/87Nxo5V7tKCIyfUtMi484R9ASNOeNZixmh/m4BAu D2NK7YMxpDHWxZBAPcR00H1tbNJdCWjXmgIepTkuaKZhiK3hU3zbHbTr7TvVdqG22ht6 yTdpVVfkqLv/0iF5wL9YphOU18p8NBv8f0HUnQJeupEdNlTphaAMnIK8RqLJ06z3UJ/E afDw== X-Gm-Message-State: AOAM533wKej2Z7+h9jGyde8VlbgS8gY4YTkHOmwcHtIS5DdXNzwCOaDk chPiXHfrvhguX+25cby2j2DQNA== X-Google-Smtp-Source: ABdhPJwBLjKNP6aEe8hFOPRHRhSRkv5wP+9YODtFwFW5GW5DmRxNW2uhWkdMbMheliE8NhBkXiyRyQ== X-Received: by 2002:a05:620a:a5a:: with SMTP id j26mr4167891qka.156.1620311352924; Thu, 06 May 2021 07:29:12 -0700 (PDT) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h62sm2005578qkf.116.2021.05.06.07.29.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 May 2021 07:29:11 -0700 (PDT) Message-ID: <15e2b577e84ef19bfcfcbb23a7ea2bf63abefdb3.camel@ndufresne.ca> Subject: Re: [PATCH v10 6/9] media: uapi: Add a control for HANTRO driver From: Nicolas Dufresne To: John Cox , Hans Verkuil Cc: Benjamin Gaignard , ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com, lee.jones@linaro.org, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, emil.l.velikov@gmail.com, kernel@pengutronix.de, linux-imx@nxp.com, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, kernel@collabora.com, cphealy@gmail.com Date: Thu, 06 May 2021 10:29:09 -0400 In-Reply-To: References: <20210420121046.181889-1-benjamin.gaignard@collabora.com> <20210420121046.181889-7-benjamin.gaignard@collabora.com> <1cf94540-7f4d-0179-dd1e-0b82ee30f6d2@collabora.com> <815a4bd6-599b-cfb8-9ddc-efa4b7092c23@xs4all.nl> User-Agent: Evolution 3.40.0 (3.40.0-1.fc34) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210506_072915_119281_A2863F03 X-CRM114-Status: GOOD ( 67.47 ) 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 TGUgamV1ZGkgMDYgbWFpIDIwMjEgw6AgMTQ6MTEgKzAxMDAsIEpvaG4gQ294IGEgw6ljcml0wqA6 Cj4gPiBPbiAwNS8wNS8yMDIxIDE3OjIwLCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPiA+ID4g Cj4gPiA+IExlIDA1LzA1LzIwMjEgw6AgMTY6NTUsIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+ ID4gPiA+IE9uIDIwLzA0LzIwMjEgMTQ6MTAsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+ID4g PiA+ID4gVGhlIEhFVkMgSEFOVFJPIGRyaXZlciBuZWVkcyB0byBrbm93IHRoZSBudW1iZXIgb2Yg Yml0cyB0byBza2lwIGF0Cj4gPiA+ID4gPiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzbGljZSBoZWFk ZXIuCj4gPiA+ID4gPiBUaGF0IGlzIGEgaGFyZHdhcmUgc3BlY2lmaWMgcmVxdWlyZW1lbnQgc28g Y3JlYXRlIGEgZGVkaWNhdGVkIGNvbnRyb2wKPiA+ID4gPiA+IGZvciB0aGlzIHB1cnBvc2UuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5q YW1pbi5nYWlnbmFyZEBjb2xsYWJvcmEuY29tPgo+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiDCoMKg Li4uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9oYW50cm8ucnN0ICAgIHwgMTkKPiA+ID4g PiA+ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+IMKgwqAuLi4vdXNlcnNwYWNlLWFwaS9t ZWRpYS9kcml2ZXJzL2luZGV4LnJzdCAgICAgfCAgMSArCj4gPiA+ID4gPiDCoMKgaW5jbHVkZS9t ZWRpYS9oZXZjLWN0cmxzLmggICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKysrKwo+ ID4gPiA+ID4gwqDCoDMgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4g wqDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL3VzZXJzcGFjZS0KPiA+ID4gPiA+ IGFwaS9tZWRpYS9kcml2ZXJzL2hhbnRyby5yc3QKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2hhbnRyby5y c3QKPiA+ID4gPiA+IGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL2RyaXZlcnMv aGFudHJvLnJzdAo+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uY2Q5NzU0YjRlMDA1Cj4gPiA+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ ID4gPiArKysgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9oYW50 cm8ucnN0Cj4gPiA+ID4gPiBAQCAtMCwwICsxLDE5IEBACj4gPiA+ID4gPiArLi4gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtIYW50cm8gdmlk ZW8gZGVjb2RlciBkcml2ZXIKPiA+ID4gPiA+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT0K PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtUaGUgSGFudHJvIHZpZGVvIGRlY29kZXIgZHJpdmVyIGlt cGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItCj4gPiA+ID4gPiBzcGVjaWZpYyBjb250cm9s czoKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICtgYFY0TDJfQ0lEX0hBTlRST19IRVZDX1NMSUNFX0hF QURFUl9TS0lQIChpbnRlZ2VyKWBgCj4gPiA+ID4gPiArICAgIFNwZWNpZmllcyB0byBIYW50cm8g SEVWQyB2aWRlbyBkZWNvZGVyIGRyaXZlciB0aGUgbnVtYmVyIG9mIGRhdGEKPiA+ID4gPiA+IChp biBiaXRzKSB0bwo+ID4gPiA+ID4gKyAgICBza2lwIGluIHRoZSBzbGljZSBzZWdtZW50IGhlYWRl ci4KPiA+ID4gPiA+ICsgICAgSWYgbm9uLUlEUiwgdGhlIGJpdHMgdG8gYmUgc2tpcHBlZCBnbyBm cm9tIHN5bnRheCBlbGVtZW50Cj4gPiA+ID4gPiAicGljX291dHB1dF9mbGFnIgo+ID4gPiA+ID4g KyAgICB0byBiZWZvcmUgc3ludGF4IGVsZW1lbnQgInNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVk X2ZsYWciLgo+ID4gPiA+ID4gKyAgICBJZiBJRFIsIHRoZSBza2lwcGVkIGJpdHMgYXJlIGp1c3Qg InBpY19vdXRwdXRfZmxhZyIKPiA+ID4gPiA+ICsgICAgKHNlcGFyYXRlX2NvbG91cl9wbGFuZV9m bGFnIGlzIG5vdCBzdXBwb3J0ZWQpLgo+ID4gPiA+IEknbSBub3QgdmVyeSBrZWVuIG9uIHRoaXMu IFdpdGhvdXQgdGhpcyBpbmZvcm1hdGlvbiB0aGUgdmlkZW8gZGF0YQo+ID4gPiA+IGNhbm5vdCBi ZQo+ID4gPiA+IGRlY29kZWQsIG9yIHdpbGwgaXQganVzdCBiZSBzdWJvcHRpbWFsPwo+ID4gPiAK PiA+ID4gV2l0aG91dCB0aGF0IGluZm9ybWF0aW9uIHRoZSB2aWRlbyBjYW4ndCBiZSBkZWNvZGVk Lgo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiBUaGUgcHJvYmxlbSBpcyB0aGF0IGEgZ2VuZXJpYyBk ZWNvZGVyIHdvdWxkIGhhdmUgdG8ga25vdyB0aGF0IHRoZSBIVyBpcwo+ID4gPiA+IGEgaGFudHJv LAo+ID4gPiA+IGFuZCB0aGVuIGNhbGwgdGhpcyBjb250cm9sLiBJZiB0aGV5IGRvbid0IChhbmQg YXJlIHRlc3Rpbmcgb24gbm9uLWhhbnRybwo+ID4gPiA+IEhXKSwgdGhlbgo+ID4gPiA+IGl0IHdv bid0IHdvcmssIHRodXMgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBIVyBpbmRlcGVuZGVu dCBkZWNvZGVyCj4gPiA+ID4gQVBJLgo+ID4gPiA+IAo+ID4gPiA+IFNpbmNlIGhhbnRybyBpcyB3 aWRlbHkgdXNlZCwgYW5kIGlmIHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byBkbyB0aGlzCj4gPiA+ ID4gYmVzaWRlIGV4cGxpdGVseQo+ID4gPiA+IHNldHRpbmcgdGhpcyBjb250cm9sLCB0aGVuIHBl cmhhcHMgdGhpcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgc3RhbmRhcmQKPiA+ID4gPiBIRVZDIEFQ SS4KPiA+ID4gPiBOb24taGFudHJvIGRyaXZlcnMgdGhhdCBkbyBub3QgbmVlZCB0aGlzIGNhbiBq dXN0IHNraXAgaXQuCj4gPiA+IAo+ID4gPiBFdmVuIGlmIEkgcHV0IHRoaXMgcGFyYW1ldGVyIGlu IGRlY29kZV9wYXJhbXMgc3RydWN0dXJlIHRoYXQgd291bGQgbWVhbnMKPiA+ID4gdGhhdCBhIGdl bmVyaWMKPiA+ID4gdXNlcmxhbmQgZGVjb2RlciB3aWxsIGhhdmUgdG8ga25vdyBob3cgdGhlIGNv bXB1dGUgdGhpcyB2YWx1ZSBmb3IgaGFudHJvCj4gPiA+IEhXIHNpbmNlIGl0Cj4gPiA+IGlzbid0 IHNvbWV0aGluZyB0aGF0IGNvdWxkIGJlIGRvbmUgb24ga2VybmVsIHNpZGUuCj4gPiAKPiA+IEJ1 dCBzaW5jZSBoYW50cm8gaXMgdmVyeSBjb21tb24sIGFueSB1c2VybGFuZCBkZWNvZGVyIHdpbGwg bmVlZCB0byBjYWxjdWxhdGUKPiA+IHRoaXMgYW55d2F5Lgo+ID4gU28gcGVyaGFwcyBpdCBpcyBi ZXR0ZXIgdG8gaGF2ZSB0aGlzIGFzIHBhcnQgb2YgdGhlIGRlY29kZV9wYXJhbXM/Cj4gPiAKPiA+ IEknZCBsaWtlIHRvIGtub3cgd2hhdCBvdGhlcnMgdGhpbmsgYWJvdXQgdGhpcy4KPiAKPiBJIGRv bid0IGtub3cgZXhhY3RseSB3aGF0IEkgdGhpbmsgb24gdGhpcyAtIGl0cyBhbGwgYSBiaXQgb2Yg YSBtZXNzLiBJCgpUaGVyZSBpcyBubyBiZXR0ZXIgd2F5IHRvIGRlc2NyaWJlIHRoZSBzdGF0ZSBv ZiBteSBvd24gb3BpbmlvbiBhYm91dCB0aGlzLgoKPiBkb24ndCB0aGluayB0aGlzIGlzIGdvaW5n IHRvIGJlIHRoZSBsYXN0IEhFVkMgZGVjb2RlciB0aGF0IG5lZWRzIHNvbWUKPiBub24tc3RhbmRh cmQgc2V0dXAgdGhhdCBjYW4ndCBiZSB0cml2aWFsbHkgZXh0cmFjdGVkIGZyb20gYSBzdGFuZGFy ZAo+IHNsaWNlIGhlYWRlciBwYXJzZS4gU28gaWYgZnV0dXJlIGRlY29kZXJzIGFyZSBnb2luZyB0 byBoYXZlIHRvIGdlbmVyYXRlCj4gY3VzdG9tIGF0dHJpYnV0ZXMgdG8gY29wZSB3aXRoIHRoZWly IHF1aXJrcyB0aGVuIEhhbnRybyBwcm9iYWJseSBzaG91bGQKPiB0b28uIEFuZCBpZiBIYW50cm8g aXMgY29tbW9uIHRoZW4gdGhlIHVzZXJzcGFjZSBwcm9ncyB3aWxsIGF0IGxlYXN0IGhhdmUKPiBh IGZyYW1ld29yayBmb3IgZGVhbGluZyB3aXRoIHRoaXMgc29ydCBvZiB0aGluZyBzbyB3aGVuIHRo ZSBuZXh0IG9kZGl0eQo+IGNvbWVzIGFsb25nLgoKVG8gYWRkIHRvIHRoaXMsIHdoZW4gd2UgbW92 ZWQgaXQgb3V0IG9mIHRoZSBkZWNvZGVfcGFyYW1zLCB3ZSB3ZXJlIGFjdHVhbGx5Cm1ha2luZyBp dCBhbiBleGFtcGxlLiBXZSB1c2UgbGFyZ2Ugc3RydWN0dXJlIGZvciB0aGUgY29tbW9uIHN0dWZm IGJlY2F1c2UgaXMKY29udmVuaWVudCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgaW5mcmFzdHJ1Y3R1 cmUsIHRoZSBjb3N0IG9mIGFkZGluZyBjb250cm9scyBpcwpyYXRoZXIgbG93LgoKU28gd2UgbmVl ZCB0byB0aGluayBpZiB3ZSB3YW50IHRvIGhpZGUgb3IgaGlnaGxpZ2h0IHdoYXQgbG9va3MgbGlr ZSBoYXJkd2FyZQpkZXNpZ24gc3BlY2lmaWMgbmVlZHMuIFRoZXJlIGlzIG5vdGhpbmcgcGFydGlj dWxhcmx5IHdyb25nIGluIHRoZSBoYXJkd2FyZSwgYXMKSGFudHJvIHRyYWRpdGlvbmFsbHkgcGFy c2UgYSBsb3Qgb2YgdGhlIGhlYWRlcnMsIGJ1dCBJIHN1cHBvc2UgdGhleSBkb24ndCByZWFsbHkK d2FudCB0byBpbXBsZW1lbnQgc2tpcCBwYXJzZXJzIGJlY2F1c2UgYXQgc29tZSBwb2ludCB0aGUg aGFyZHdhcmUgYmVjb21lcyBxdWl0ZQpiaWcgYW5kIGNvbXBsZXgsIHNraXBwaW5nIGJpdHMgaXMg anVzdCB0cml2aWFsLgoKT25lIHRoaW5nIEkndmUgYmVlbiBkaXNjdXNzaW5nIHdpdGggQmVuamFt aW4geWVzdGVyZGF5IGlzIHRoYXQgd2hpbGUgc3BsaXR0aW5nLAp3ZSBhbHNvIG1hZGUgdGhlIGRh dGEgZXhhY3RseSB3aGF0IHRoZSBIVyB3YW50cywgd2hpY2ggaXMgYSBza2lwLiBBIG1vcmUKcmV1 c2FibGUgcmVwcmVzZW50YXRpb24gd291bGQgaGF2ZSBiZWVuIHRvIHByb3ZpZGUgdHdvIG9mZnNl dHMgaW4gdGhlIGhlYWRlci4KVGhpcyB3YXkgaWYgYW5vdGhlciBIVyBuZWVkIGEgZGlmZmVyZW50 IHNraXAsIGJ1dCB3aXRoIGEgZGlmZmVyZW50IHN0b3AKcG9zaXRpb24sIHlvdSBjYW4gc2hhcmUg dGhlIHN0YXJ0IHBvc2l0aW9uLiBUaG91Z2gsIGl0J3Mgbm8gbG9uZ2VyIGEgMToxIG1hdGNoCndp dGggaG93IHRoZSBIVyBpcyBwcm9ncmFtbWVkLCBzbyBub3QgYW4gZWFzeSBjYWxsLgoKQXMgZm9y IGhhdmluZyBtb3JlIHF1aXJrcyBpbiBtb3JlIEhXLCB0aGUgbmV3ZXIgY2hpcHMgYXJlIGRlc2ln bmVkIHdpdGggYQpjb25zdHJhaW50cyB0aGVzZSBkYXlzLiBBcyBhbiBleGFtcGxlLCB5b3Ugd2ls bCBub3RpY2UgdGhhdCBpbnNpZGUgbXBwIChyb2NrY2hpcApsaWJyYXJ5KSB0aGV5IHVzZSBNaWNy b3NvZnQgRFhWQSBwYXJhbWV0ZXJzIGFuZCB1c2UgdGhhdCBhcyBhIGNvbnRyYWludCBkdXJpbmcK dGhlIGRlc2lnbi4gRnJvbSBjb21tZW50IEFsZXggbWFkZSBhcm91bmQgTWVkaWF0ZWssIHRoZXkg YWN0dWFsbHkgdXNlZCBHb29nbGUKZG93bnN0cmVhbSBMaW51eCBBUEkgYXMgYSBjb25zdHJhaW50 LiBBcyB3ZSBkbyBjb3ZlciBleGlzdGluZyBBUEkgbGlrZSBEWFZBLApOVkRFQyBhbmQgVkEgYXMg ZmFyIGFzIG15IHJldmlldyB3ZW50LiBJIGRvbid0IHJlYWxseSBleHBlY3QgaW4gZmFjdCBuZXdl cgpkZXNpZ24gdG8gcmVxdWlyZSBxdWlya3MvZXh0ZW5zaW9ucyBzbyBvZnRlbiwgYnV0IG1ha2lu ZyB0aGlzIG9uZSBhIHNwbGl0CmNvbnRyb2wgd291bGQgc2VydmUgYXMgYW4gZXhhbXBsZSBob3cg dG8ga2VlcCB0aGluZ3MgY2xlYXIuCgpOb3csIHdoYXQgSSBiZWxpZXZlIGlzIG1pc3NpbmcgaW4g dGhlIHN0b3J5IGlzIGEgd2F5IGZvciB1c2Vyc3BhY2UgdG8gZGV0ZWN0CnRoYXQgZXh0cmEgKG5v biBzdGFuZGFyZCkgY29udHJvbHMgYXJlIG5lZWRlZC4gVGhlcmUgbWlnaHQgYmUgb3RoZXIgc3Vw cG9ydApkZWNvZGVyIG9uIHRoZSBwbGF0Zm9ybSwgb3IgZXZlbiBhIHNvZnR3YXJlIGRlY29kZXIg bWF5IGJlIG1vcmUgc3VpdGFibGUgZm9yIHRoZQp1c2UgY2FzIHRoZW4gYSBjb3JydXB0ZWQgb3V0 cHV0ICh3aGljaCBpcyB3aGF0IGhhcHBlbnMgaWYgeW91IGlnbm9yZSB0aGUgaGFudHJvCmNvbnRy b2wpLiBTbyBwZXJoYXBzIHdlIHNob3VsZCB0aGluayBvZiB3YXkgdG8gZmxhZyB0aGUgcmVxdWly ZW1lbnQgZm9yIHNvbWUKZXh0cmEgY29udHJvbHMuIFBlcmhhcHMgaW4gdGhlIGZvcm0gb2YgYSBi aXRtYXNrIG9mIHF1aXJrcywgc28gdGhlIHVzZXJzcGFjZSBjYW4KY2hlY2sgZWFybHkgaWYgaXQg aGFzIHRoZSByZXF1aXJlZCBpbXBsZW1lbnRhdGlvbiBhbmQgZmFsbGJhY2sgdG8gc29tZXRoaW5n IGVsc2UKaWYgbm90LgoKVGhpcyBpcyB0aGUgdHlwZSBvZiBBUEkgbWlzc2luZyB3ZSBoYXZlIGhh ZCBpbiBtYW55IG90aGVyIHBsYWNlcyBpbiB0aGUgZmFzdCwgd2UKZGlkIGZpeCBpdCBhZnRlciB0 aGF0IGZhY3QsIHdoaWNoIHdhcyBub3QgaWRlYWwsIGJ1dCBzdGlsbCBhY2NlcHRhYmxlLiBTbyBJ J20Kbm90IGxpa2Ugb2ggbm8sIHdlIHNjcmV3ZWQgdXAgdGhlIG90aGVyIHN0YWJsZSBBUEkuIEJ1 dCB3ZSBoYXZlIGEgdXNlIGNhc2UgaGVyZSwKcGVyaGFwcyB3ZSBjYW4gbGVhcm4gZnJvbSBpdCA/ CgpwLnMuIEkgdHJ5IHRvIGF2b2lkIGV4dGVuc2lvbnMgYXMgdGhpcyBtYWtlcyBtZSB0aGluayBv ZiB0aGUgZXh0cmEgcGFyZW1ldGVycwphc3NvY2lhdGVzIHdpdGggdGhlIGJpdHN0cmVhbSBwcm9m aWxlIHdlIG1heSBub3Qgc3VwcG9ydC4gV2UgYWxyZWFkeSBwcm92aWRlCmxpc3Qgb2Ygc3VwcG9y dCBwcm9maWxlcywgYW5kIGhhdmUgYSBnb29kIHN0b3J5LCB0ZXN0ZWQgd2l0aCBzdGF0ZWZ1bCBk ZWNvZGVyIG9uCmhvdyB0byBpbnRyb2R1Y2UgbmV3IHBhcmVtdGVycyBhbG9uZyB3aXRoIG5ldyBw cm9maWxlcy4KCnAucy4gTm90aWNlIHRoYXQgaWYgd2Ugd2FudCB0byByZXZpdmUgdGhlIFZBIGRy aXZlciAoVkEgZG9lcyBub3QgaGF2ZSB0aGlzCnNraXApLCB3ZSBuZWVkIHRvIHN0b3AgbW9kaWZ5 aW5nIHRoZSBWQSBBUEksIGFuZCBqdXN0IHJlLXBhcnNlIHdoYXRldmVyIGlzCm1pc3NpbmcuIEhh dmluZyBhIHNlcGFyYXRlIGNvbnRyb2wgY2FuIGJlIHVzZWQgYXMgYSBjbGVhciBpbmRpY2F0aW9u IHRoYXQgZG91YmxlCnBhcnNpbmcgaXMgbm90IG5lZWRlZCBmb3IgdGhlIHNwZWNpZmljIGltcGxl bWVudGF0aW9uLiBTYW1lIHdvdWxkIGFwcGx5IGlmIHNvbWUKV2luZSBmb2xrcyB3YW50IHRvIGVt dWxhdGUgRFhWQSBvdmVyIFY0TDIgQVBJICh0aG91Z2ggdW5saWtlbHkgYXMgdGhpcyBpcyByYXJl bHkKc2VlbiBvbiBkZXNrdG9wKS4KCj4gCj4gUmVnYXJkcwo+IAo+IEpvaG4gQ294Cj4gCj4gPiBS ZWdhcmRzLAo+ID4gCj4gPiAJSGFucwo+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gUmVnYXJkcywK PiA+ID4gQmVuamFtaW4KPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiAK PiA+ID4gPiAJSGFucwo+ID4gPiA+IAo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKy4uIG5vdGU6Ogo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKyAgICAgICAgVGhpcyBjb250cm9sIGlzIG5vdCB5ZXQgcGFy dCBvZiB0aGUgcHVibGljIGtlcm5lbCBBUEkgYW5kCj4gPiA+ID4gPiArICAgICAgICBpdCBpcyBl eHBlY3RlZCB0byBjaGFuZ2UuCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi91 c2Vyc3BhY2UtYXBpL21lZGlhL2RyaXZlcnMvaW5kZXgucnN0Cj4gPiA+ID4gPiBiL0RvY3VtZW50 YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2luZGV4LnJzdAo+ID4gPiA+ID4gaW5k ZXggMWE5MDM4ZjVmOWZhLi4xMmUzYzUxMmQ3MTggMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9Eb2N1 bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvZHJpdmVycy9pbmRleC5yc3QKPiA+ID4gPiA+ ICsrKyBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS9kcml2ZXJzL2luZGV4LnJz dAo+ID4gPiA+ID4gQEAgLTMzLDYgKzMzLDcgQEAgRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGZp bGUgQ09QWUlORyBpbiB0aGUgc291cmNlCj4gPiA+ID4gPiBkaXN0cmlidXRpb24gb2YgTGludXgu Cj4gPiA+ID4gPiDCoMKgCj4gPiA+ID4gPiDCoMKgCWNjcwo+ID4gPiA+ID4gwqDCoAljeDIzNDF4 LXVhcGkKPiA+ID4gPiA+ICsgICAgICAgIGhhbnRybwo+ID4gPiA+ID4gwqDCoAlpbXgtdWFwaQo+ ID4gPiA+ID4gwqDCoAltYXgyMTc1Cj4gPiA+ID4gPiDCoMKgCW1leWUtdWFwaQo+ID4gPiA+ID4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oIGIvaW5jbHVkZS9tZWRpYS9o ZXZjLWN0cmxzLmgKPiA+ID4gPiA+IGluZGV4IDhlMDEwOWVlYTQ1NC4uYjcxM2VlZWQxOTE1IDEw MDY0NAo+ID4gPiA+ID4gLS0tIGEvaW5jbHVkZS9tZWRpYS9oZXZjLWN0cmxzLmgKPiA+ID4gPiA+ ICsrKyBiL2luY2x1ZGUvbWVkaWEvaGV2Yy1jdHJscy5oCj4gPiA+ID4gPiBAQCAtMjI0LDQgKzIy NCwxNyBAQCBzdHJ1Y3QgdjRsMl9jdHJsX2hldmNfZGVjb2RlX3BhcmFtcyB7Cj4gPiA+ID4gPiDC oMKgCV9fdTY0CWZsYWdzOwo+ID4gPiA+ID4gwqDCoH07Cj4gPiA+ID4gPiDCoMKgCj4gPiA+ID4g PiArLyogIE1QRUctY2xhc3MgY29udHJvbCBJRHMgc3BlY2lmaWMgdG8gdGhlIEhhbnRybyBkcml2 ZXIgYXMgZGVmaW5lZAo+ID4gPiA+ID4gYnkgVjRMMiAqLwo+ID4gPiA+ID4gKyNkZWZpbmUKPiA+ ID4gPiA+IFY0TDJfQ0lEX0NPREVDX0hBTlRST19CQVNFCQkJCShWNEwyX0NUUkxfQ0xBU1NfQ09E RUMgfCAweDEyMDApCj4gPiA+ID4gPiArLyoKPiA+ID4gPiA+ICsgKiBWNEwyX0NJRF9IQU5UUk9f SEVWQ19TTElDRV9IRUFERVJfU0tJUCAtCj4gPiA+ID4gPiArICogdGhlIG51bWJlciBvZiBkYXRh IChpbiBiaXRzKSB0byBza2lwIGluIHRoZQo+ID4gPiA+ID4gKyAqIHNsaWNlIHNlZ21lbnQgaGVh ZGVyLgo+ID4gPiA+ID4gKyAqIElmIG5vbi1JRFIsIHRoZSBiaXRzIHRvIGJlIHNraXBwZWQgZ28g ZnJvbSBzeW50YXggZWxlbWVudAo+ID4gPiA+ID4gInBpY19vdXRwdXRfZmxhZyIKPiA+ID4gPiA+ ICsgKiB0byBiZWZvcmUgc3ludGF4IGVsZW1lbnQgInNsaWNlX3RlbXBvcmFsX212cF9lbmFibGVk X2ZsYWciLgo+ID4gPiA+ID4gKyAqIElmIElEUiwgdGhlIHNraXBwZWQgYml0cyBhcmUganVzdCAi cGljX291dHB1dF9mbGFnIgo+ID4gPiA+ID4gKyAqIChzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxh ZyBpcyBub3Qgc3VwcG9ydGVkKS4KPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICsjZGVmaW5lCj4g PiA+ID4gPiBWNEwyX0NJRF9IQU5UUk9fSEVWQ19TTElDRV9IRUFERVJfU0tJUAkoVjRMMl9DSURf Q09ERUNfSEFOVFJPX0JBU0UgKyAwKQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gwqDCoCNlbmRpZgo+ ID4gPiA+ID4gCj4gPiA+ID4gCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK