From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7D713FC3 for ; Wed, 1 Sep 2021 11:34:08 +0000 (UTC) Received: from [IPv6:2a01:e0a:4cb:a870:7491:e42a:441d:8852] (unknown [IPv6:2a01:e0a:4cb:a870:7491:e42a:441d:8852]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 8D3FE1F4132A; Wed, 1 Sep 2021 12:33:55 +0100 (BST) Subject: Re: [PATCH] media: hantro: Trace hevc hw cycles performance register To: Hans Verkuil , mchehab@kernel.org, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, Ezequiel Garcia References: <20210823135606.633052-1-benjamin.gaignard@collabora.com> From: Benjamin Gaignard Message-ID: <9e973cfd-5c12-26e9-d28e-0305cae1c5c5@collabora.com> Date: Wed, 1 Sep 2021 13:33:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 Precedence: bulk X-Mailing-List: linux-staging@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Le 01/09/2021 à 13:27, Hans Verkuil a écrit : > Hi Benjamin, > > I'm confused: this is also part of '[PATCH v4 0/9] Additional features for Hantro HEVC', so > do you want to merge this independently from that series? Are there differences between v4 1/9 > and this patch, or are they identical? Hi Hans, I thought that the series was to big so I decide to split it on smallest independent pieces. > > In any case, I'd like to have a Reviewed-by or Acked-by from Ezequiel before merging this. Get Ezequiel feedback is definitively need :-) Regards, Benjamin > > Regards, > > Hans > > On 23/08/2021 15:56, Benjamin Gaignard wrote: >> After each hevc decoded frame trace the hardware performance. >> It provides the number of hw cycles spend per decoded macroblock. >> >> Signed-off-by: Benjamin Gaignard >> --- >> Documentation/admin-guide/media/hantro.rst | 14 +++++++ >> .../admin-guide/media/v4l-drivers.rst | 1 + >> drivers/staging/media/hantro/hantro_drv.c | 3 ++ >> .../staging/media/hantro/hantro_g2_hevc_dec.c | 16 ++++++++ >> drivers/staging/media/hantro/hantro_g2_regs.h | 1 + >> drivers/staging/media/hantro/hantro_hw.h | 1 + >> drivers/staging/media/hantro/hantro_trace.h | 41 +++++++++++++++++++ >> drivers/staging/media/hantro/imx8m_vpu_hw.c | 1 + >> 8 files changed, 78 insertions(+) >> create mode 100644 Documentation/admin-guide/media/hantro.rst >> create mode 100644 drivers/staging/media/hantro/hantro_trace.h >> >> diff --git a/Documentation/admin-guide/media/hantro.rst b/Documentation/admin-guide/media/hantro.rst >> new file mode 100644 >> index 000000000000..6cb552a5dfcb >> --- /dev/null >> +++ b/Documentation/admin-guide/media/hantro.rst >> @@ -0,0 +1,14 @@ >> +.. SPDX-License-Identifier: GPL-2.0 >> + >> +================= >> +The hantro driver >> +================= >> + >> +Trace >> +~~~~~ >> + >> +You can trace the hardware decoding performances by using event tracing:: >> + >> + # echo hantro_hevc_perf >> /sys/kernel/debug/tracing/set_event >> + >> +That will keep a log of the number of hardware cycles spend per decoded macroblock >> diff --git a/Documentation/admin-guide/media/v4l-drivers.rst b/Documentation/admin-guide/media/v4l-drivers.rst >> index 9c7ebe2ca3bd..4f2f72a2b3b5 100644 >> --- a/Documentation/admin-guide/media/v4l-drivers.rst >> +++ b/Documentation/admin-guide/media/v4l-drivers.rst >> @@ -15,6 +15,7 @@ Video4Linux (V4L) driver-specific documentation >> cx88 >> davinci-vpbe >> fimc >> + hantro >> imx >> imx7 >> ipu3 >> diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c >> index 8a2edd67f2c6..236160c51e59 100644 >> --- a/drivers/staging/media/hantro/hantro_drv.c >> +++ b/drivers/staging/media/hantro/hantro_drv.c >> @@ -28,6 +28,9 @@ >> #include "hantro.h" >> #include "hantro_hw.h" >> >> +#define CREATE_TRACE_POINTS >> +#include "hantro_trace.h" >> + >> #define DRIVER_NAME "hantro-vpu" >> >> int hantro_debug; >> diff --git a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >> index 340efb57fd18..fef16d1724da 100644 >> --- a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >> +++ b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >> @@ -7,6 +7,7 @@ >> >> #include "hantro_hw.h" >> #include "hantro_g2_regs.h" >> +#include "hantro_trace.h" >> >> #define HEVC_DEC_MODE 0xC >> >> @@ -22,6 +23,21 @@ static inline void hantro_write_addr(struct hantro_dev *vpu, >> vdpu_write(vpu, addr & 0xffffffff, offset); >> } >> >> +void hantro_g2_hevc_dec_done(struct hantro_ctx *ctx) >> +{ >> + const struct hantro_hevc_dec_ctrls *ctrls = &ctx->hevc_dec.ctrls; >> + const struct v4l2_ctrl_hevc_sps *sps = ctrls->sps; >> + struct hantro_dev *vpu = ctx->dev; >> + u32 hw_cycles = 0; >> + u32 mbs = (sps->pic_width_in_luma_samples * >> + sps->pic_height_in_luma_samples) >> 8; >> + >> + if (mbs) >> + hw_cycles = vdpu_read(vpu, G2_HW_PERFORMANCE) / mbs; >> + >> + trace_hantro_hevc_perf(ctx, hw_cycles); >> +} >> + >> static void prepare_tile_info_buffer(struct hantro_ctx *ctx) >> { >> struct hantro_dev *vpu = ctx->dev; >> diff --git a/drivers/staging/media/hantro/hantro_g2_regs.h b/drivers/staging/media/hantro/hantro_g2_regs.h >> index bb22fa921914..17d84ec9c5c2 100644 >> --- a/drivers/staging/media/hantro/hantro_g2_regs.h >> +++ b/drivers/staging/media/hantro/hantro_g2_regs.h >> @@ -177,6 +177,7 @@ >> #define G2_REG_CONFIG_DEC_CLK_GATE_E BIT(16) >> #define G2_REG_CONFIG_DEC_CLK_GATE_IDLE_E BIT(17) >> >> +#define G2_HW_PERFORMANCE (G2_SWREG(63)) >> #define G2_ADDR_DST (G2_SWREG(65)) >> #define G2_REG_ADDR_REF(i) (G2_SWREG(67) + ((i) * 0x8)) >> #define G2_ADDR_DST_CHR (G2_SWREG(99)) >> diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h >> index df7b5e3a57b9..ab6f379354cc 100644 >> --- a/drivers/staging/media/hantro/hantro_hw.h >> +++ b/drivers/staging/media/hantro/hantro_hw.h >> @@ -250,6 +250,7 @@ void hantro_h264_dec_exit(struct hantro_ctx *ctx); >> int hantro_hevc_dec_init(struct hantro_ctx *ctx); >> void hantro_hevc_dec_exit(struct hantro_ctx *ctx); >> int hantro_g2_hevc_dec_run(struct hantro_ctx *ctx); >> +void hantro_g2_hevc_dec_done(struct hantro_ctx *ctx); >> int hantro_hevc_dec_prepare_run(struct hantro_ctx *ctx); >> dma_addr_t hantro_hevc_get_ref_buf(struct hantro_ctx *ctx, int poc); >> void hantro_hevc_ref_remove_unused(struct hantro_ctx *ctx); >> diff --git a/drivers/staging/media/hantro/hantro_trace.h b/drivers/staging/media/hantro/hantro_trace.h >> new file mode 100644 >> index 000000000000..fa8fec26fa3c >> --- /dev/null >> +++ b/drivers/staging/media/hantro/hantro_trace.h >> @@ -0,0 +1,41 @@ >> +/* SPDX-License-Identifier: GPL-2.0 */ >> +#if !defined(__HANTRO_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ) >> +#define __HANTRO_TRACE_H__ >> + >> +#include >> +#include >> + >> +#include "hantro.h" >> + >> +#undef TRACE_SYSTEM >> +#define TRACE_SYSTEM hantro >> +#define TRACE_INCLUDE_FILE hantro_trace >> + >> +TRACE_EVENT(hantro_hevc_perf, >> + TP_PROTO(struct hantro_ctx *ctx, u32 hw_cycles), >> + >> + TP_ARGS(ctx, hw_cycles), >> + >> + TP_STRUCT__entry( >> + __field(int, minor) >> + __field(struct v4l2_fh *, fh) >> + __field(u32, hw_cycles) >> + ), >> + >> + TP_fast_assign( >> + __entry->minor = ctx->fh.vdev->minor; >> + __entry->fh = &ctx->fh; >> + __entry->hw_cycles = hw_cycles; >> + ), >> + >> + TP_printk("minor = %d, fh = %p, %8d cycles / mb", >> + __entry->minor, __entry->fh, __entry->hw_cycles) >> +); >> + >> +#endif /* __HANTRO_TRACE_H__ */ >> + >> +#undef TRACE_INCLUDE_PATH >> +#define TRACE_INCLUDE_PATH ../../drivers/staging/media/hantro >> + >> +/* This part must be outside protection */ >> +#include >> diff --git a/drivers/staging/media/hantro/imx8m_vpu_hw.c b/drivers/staging/media/hantro/imx8m_vpu_hw.c >> index ea919bfb9891..7e9e24bb5057 100644 >> --- a/drivers/staging/media/hantro/imx8m_vpu_hw.c >> +++ b/drivers/staging/media/hantro/imx8m_vpu_hw.c >> @@ -239,6 +239,7 @@ static const struct hantro_codec_ops imx8mq_vpu_g2_codec_ops[] = { >> .reset = imx8m_vpu_g2_reset, >> .init = hantro_hevc_dec_init, >> .exit = hantro_hevc_dec_exit, >> + .done = hantro_g2_hevc_dec_done, >> }, >> }; >> >> 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=-16.7 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,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3714C4320A for ; Wed, 1 Sep 2021 11:35:00 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9290161026 for ; Wed, 1 Sep 2021 11:35:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9290161026 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=2ZndYzyv/7jkBPw5YdxSKS+fRAGd//3dude97AfeUpQ=; b=BRmEW2RwjuSYeKPWbDHdzQwOPh Tw0dzWzkon16B41ahfH1aWlgNyxbu3YlZQUzGtCqZgKnugEtHXn19K6ch4W+++K34+UVeN7mufOYo U88jwcDZXTK/64jddfmfdbbf3fiY7BWrw6MyyCjZ7ouNGyIQISQc+IfZ4tl9EVF37t5b+xHFfm/pf reoF/pA+zhs0mU5V7Oq/eRYLtsMvmTHqJ+BPaeZnWAsb2nAle7J54AzT+KRwkxhE2OsorApUWVw61 02ESvtdT7jCNwBVWNrDLXr25RYZc5gOYqj0fo+qZrr7I31/mOXHA+PlUMyXjHNI0xuksoj9tjcSpm Bszc0GjA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mLOW8-005cVX-QC; Wed, 01 Sep 2021 11:34:56 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mLOVK-005cBg-Cx; Wed, 01 Sep 2021 11:34:09 +0000 Received: from [IPv6:2a01:e0a:4cb:a870:7491:e42a:441d:8852] (unknown [IPv6:2a01:e0a:4cb:a870:7491:e42a:441d:8852]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 8D3FE1F4132A; Wed, 1 Sep 2021 12:33:55 +0100 (BST) Subject: Re: [PATCH] media: hantro: Trace hevc hw cycles performance register To: Hans Verkuil , mchehab@kernel.org, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, Ezequiel Garcia References: <20210823135606.633052-1-benjamin.gaignard@collabora.com> From: Benjamin Gaignard Message-ID: <9e973cfd-5c12-26e9-d28e-0305cae1c5c5@collabora.com> Date: Wed, 1 Sep 2021 13:33:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210901_043407_718419_744BF946 X-CRM114-Status: GOOD ( 23.72 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CkxlIDAxLzA5LzIwMjEgw6AgMTM6MjcsIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+IEhpIEJl bmphbWluLAo+Cj4gSSdtIGNvbmZ1c2VkOiB0aGlzIGlzIGFsc28gcGFydCBvZiAnW1BBVENIIHY0 IDAvOV0gQWRkaXRpb25hbCBmZWF0dXJlcyBmb3IgSGFudHJvIEhFVkMnLCBzbwo+IGRvIHlvdSB3 YW50IHRvIG1lcmdlIHRoaXMgaW5kZXBlbmRlbnRseSBmcm9tIHRoYXQgc2VyaWVzPyBBcmUgdGhl cmUgZGlmZmVyZW5jZXMgYmV0d2VlbiB2NCAxLzkKPiBhbmQgdGhpcyBwYXRjaCwgb3IgYXJlIHRo ZXkgaWRlbnRpY2FsPwoKSGkgSGFucywKCkkgdGhvdWdodCB0aGF0IHRoZSBzZXJpZXMgd2FzIHRv IGJpZyBzbyBJIGRlY2lkZSB0byBzcGxpdCBpdCBvbiBzbWFsbGVzdCBpbmRlcGVuZGVudCBwaWVj ZXMuCgo+Cj4gSW4gYW55IGNhc2UsIEknZCBsaWtlIHRvIGhhdmUgYSBSZXZpZXdlZC1ieSBvciBB Y2tlZC1ieSBmcm9tIEV6ZXF1aWVsIGJlZm9yZSBtZXJnaW5nIHRoaXMuCgpHZXQgRXplcXVpZWwg ZmVlZGJhY2sgaXMgZGVmaW5pdGl2ZWx5IG5lZWQgOi0pCgpSZWdhcmRzLAoKQmVuamFtaW4KCj4K PiBSZWdhcmRzLAo+Cj4gCUhhbnMKPgo+IE9uIDIzLzA4LzIwMjEgMTU6NTYsIEJlbmphbWluIEdh aWduYXJkIHdyb3RlOgo+PiBBZnRlciBlYWNoIGhldmMgZGVjb2RlZCBmcmFtZSB0cmFjZSB0aGUg aGFyZHdhcmUgcGVyZm9ybWFuY2UuCj4+IEl0IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgaHcgY3lj bGVzIHNwZW5kIHBlciBkZWNvZGVkIG1hY3JvYmxvY2suCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEJl bmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBjb2xsYWJvcmEuY29tPgo+PiAtLS0K Pj4gICBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QgICAgfCAxNCAr KysrKysrCj4+ICAgLi4uL2FkbWluLWd1aWRlL21lZGlhL3Y0bC1kcml2ZXJzLnJzdCAgICAgICAg IHwgIDEgKwo+PiAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jICAg ICB8ICAzICsrCj4+ICAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2Rl Yy5jIHwgMTYgKysrKysrKysKPj4gICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRy b19nMl9yZWdzLmggfCAgMSArCj4+ICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50 cm9faHcuaCAgICAgIHwgIDEgKwo+PiAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX3RyYWNlLmggICB8IDQxICsrKysrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jICAgfCAgMSArCj4+ICAgOCBmaWxlcyBjaGFu Z2VkLCA3OCBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvbWVkaWEvaGFudHJvLnJzdAo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb190cmFjZS5oCj4+Cj4+IGRpZmYgLS1n aXQgYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QgYi9Eb2N1bWVu dGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QKPj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi42Y2I1NTJhNWRmY2IKPj4gLS0tIC9kZXYvbnVsbAo+ PiArKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QKPj4gQEAg LTAsMCArMSwxNCBAQAo+PiArLi4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPj4g Kwo+PiArPT09PT09PT09PT09PT09PT0KPj4gK1RoZSBoYW50cm8gZHJpdmVyCj4+ICs9PT09PT09 PT09PT09PT09PQo+PiArCj4+ICtUcmFjZQo+PiArfn5+fn4KPj4gKwo+PiArWW91IGNhbiB0cmFj ZSB0aGUgaGFyZHdhcmUgZGVjb2RpbmcgcGVyZm9ybWFuY2VzIGJ5IHVzaW5nIGV2ZW50IHRyYWNp bmc6Ogo+PiArCj4+ICsgICAgIyBlY2hvIGhhbnRyb19oZXZjX3BlcmYgPj4gL3N5cy9rZXJuZWwv ZGVidWcvdHJhY2luZy9zZXRfZXZlbnQKPj4gKwo+PiArVGhhdCB3aWxsIGtlZXAgYSBsb2cgb2Yg dGhlIG51bWJlciBvZiBoYXJkd2FyZSBjeWNsZXMgc3BlbmQgcGVyIGRlY29kZWQgbWFjcm9ibG9j awo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS92NGwtZHJp dmVycy5yc3QgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL3Y0bC1kcml2ZXJzLnJz dAo+PiBpbmRleCA5YzdlYmUyY2EzYmQuLjRmMmY3MmEyYjNiNSAxMDA2NDQKPj4gLS0tIGEvRG9j dW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS92NGwtZHJpdmVycy5yc3QKPj4gKysrIGIvRG9j dW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS92NGwtZHJpdmVycy5yc3QKPj4gQEAgLTE1LDYg KzE1LDcgQEAgVmlkZW80TGludXggKFY0TCkgZHJpdmVyLXNwZWNpZmljIGRvY3VtZW50YXRpb24K Pj4gICAJY3g4OAo+PiAgIAlkYXZpbmNpLXZwYmUKPj4gICAJZmltYwo+PiArICAgICAgICBoYW50 cm8KPj4gICAJaW14Cj4+ICAgCWlteDcKPj4gICAJaXB1Mwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL2hhbnRyb19kcnYuYwo+PiBpbmRleCA4YTJlZGQ2N2YyYzYuLjIzNjE2MGM1MWU1 OSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2 LmMKPj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2LmMKPj4g QEAgLTI4LDYgKzI4LDkgQEAKPj4gICAjaW5jbHVkZSAiaGFudHJvLmgiCj4+ICAgI2luY2x1ZGUg ImhhbnRyb19ody5oIgo+PiAgIAo+PiArI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCj4+ICsj aW5jbHVkZSAiaGFudHJvX3RyYWNlLmgiCj4+ICsKPj4gICAjZGVmaW5lIERSSVZFUl9OQU1FICJo YW50cm8tdnB1Igo+PiAgIAo+PiAgIGludCBoYW50cm9fZGVidWc7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jIGIvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJfaGV2Y19kZWMuYwo+PiBpbmRleCAzNDBl ZmI1N2ZkMTguLmZlZjE2ZDE3MjRkYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21l ZGlhL2hhbnRyby9oYW50cm9fZzJfaGV2Y19kZWMuYwo+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcv bWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jCj4+IEBAIC03LDYgKzcsNyBAQAo+PiAg IAo+PiAgICNpbmNsdWRlICJoYW50cm9faHcuaCIKPj4gICAjaW5jbHVkZSAiaGFudHJvX2cyX3Jl Z3MuaCIKPj4gKyNpbmNsdWRlICJoYW50cm9fdHJhY2UuaCIKPj4gICAKPj4gICAjZGVmaW5lIEhF VkNfREVDX01PREUJMHhDCj4+ICAgCj4+IEBAIC0yMiw2ICsyMywyMSBAQCBzdGF0aWMgaW5saW5l IHZvaWQgaGFudHJvX3dyaXRlX2FkZHIoc3RydWN0IGhhbnRyb19kZXYgKnZwdSwKPj4gICAJdmRw dV93cml0ZSh2cHUsIGFkZHIgJiAweGZmZmZmZmZmLCBvZmZzZXQpOwo+PiAgIH0KPj4gICAKPj4g K3ZvaWQgaGFudHJvX2cyX2hldmNfZGVjX2RvbmUoc3RydWN0IGhhbnRyb19jdHggKmN0eCkKPj4g K3sKPj4gKwljb25zdCBzdHJ1Y3QgaGFudHJvX2hldmNfZGVjX2N0cmxzICpjdHJscyA9ICZjdHgt PmhldmNfZGVjLmN0cmxzOwo+PiArCWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgKnNw cyA9IGN0cmxzLT5zcHM7Cj4+ICsJc3RydWN0IGhhbnRyb19kZXYgKnZwdSA9IGN0eC0+ZGV2Owo+ PiArCXUzMiBod19jeWNsZXMgPSAwOwo+PiArCXUzMiBtYnMgPSAoc3BzLT5waWNfd2lkdGhfaW5f bHVtYV9zYW1wbGVzICoKPj4gKwkJICAgc3BzLT5waWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcykg Pj4gODsKPj4gKwo+PiArCWlmIChtYnMpCj4+ICsJCWh3X2N5Y2xlcyA9IHZkcHVfcmVhZCh2cHUs IEcyX0hXX1BFUkZPUk1BTkNFKSAvIG1iczsKPj4gKwo+PiArCXRyYWNlX2hhbnRyb19oZXZjX3Bl cmYoY3R4LCBod19jeWNsZXMpOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHZvaWQgcHJlcGFyZV90 aWxlX2luZm9fYnVmZmVyKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4+ICAgewo+PiAgIAlzdHJ1 Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5kZXY7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9yZWdzLmggYi9kcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL2hhbnRyb19nMl9yZWdzLmgKPj4gaW5kZXggYmIyMmZhOTIxOTE0Li4xN2Q4NGVj OWM1YzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJv X2cyX3JlZ3MuaAo+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19n Ml9yZWdzLmgKPj4gQEAgLTE3Nyw2ICsxNzcsNyBAQAo+PiAgICNkZWZpbmUgRzJfUkVHX0NPTkZJ R19ERUNfQ0xLX0dBVEVfRQkJQklUKDE2KQo+PiAgICNkZWZpbmUgRzJfUkVHX0NPTkZJR19ERUNf Q0xLX0dBVEVfSURMRV9FCUJJVCgxNykKPj4gICAKPj4gKyNkZWZpbmUgRzJfSFdfUEVSRk9STUFO Q0UJKEcyX1NXUkVHKDYzKSkKPj4gICAjZGVmaW5lIEcyX0FERFJfRFNUCQkoRzJfU1dSRUcoNjUp KQo+PiAgICNkZWZpbmUgRzJfUkVHX0FERFJfUkVGKGkpCShHMl9TV1JFRyg2NykgICsgKChpKSAq IDB4OCkpCj4+ICAgI2RlZmluZSBHMl9BRERSX0RTVF9DSFIJCShHMl9TV1JFRyg5OSkpCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oIGIvZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaAo+PiBpbmRleCBkZjdiNWUzYTU3 YjkuLmFiNmYzNzkzNTRjYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hh bnRyby9oYW50cm9faHcuaAo+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19ody5oCj4+IEBAIC0yNTAsNiArMjUwLDcgQEAgdm9pZCBoYW50cm9faDI2NF9kZWNfZXhp dChzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gICBpbnQgaGFudHJvX2hldmNfZGVjX2luaXQo c3RydWN0IGhhbnRyb19jdHggKmN0eCk7Cj4+ICAgdm9pZCBoYW50cm9faGV2Y19kZWNfZXhpdChz dHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gICBpbnQgaGFudHJvX2cyX2hldmNfZGVjX3J1bihz dHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gK3ZvaWQgaGFudHJvX2cyX2hldmNfZGVjX2RvbmUo c3RydWN0IGhhbnRyb19jdHggKmN0eCk7Cj4+ICAgaW50IGhhbnRyb19oZXZjX2RlY19wcmVwYXJl X3J1bihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gICBkbWFfYWRkcl90IGhhbnRyb19oZXZj X2dldF9yZWZfYnVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgsIGludCBwb2MpOwo+PiAgIHZvaWQg aGFudHJvX2hldmNfcmVmX3JlbW92ZV91bnVzZWQoc3RydWN0IGhhbnRyb19jdHggKmN0eCk7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb190cmFjZS5o IGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fdHJhY2UuaAo+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmZhOGZlYzI2ZmEzYwo+PiAtLS0g L2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX3Ry YWNlLmgKPj4gQEAgLTAsMCArMSw0MSBAQAo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAgKi8KPj4gKyNpZiAhZGVmaW5lZChfX0hBTlRST19UUkFDRV9IX18pIHx8IGRlZmlu ZWQoVFJBQ0VfSEVBREVSX01VTFRJX1JFQUQpCj4+ICsjZGVmaW5lIF9fSEFOVFJPX1RSQUNFX0hf Xwo+PiArCj4+ICsjaW5jbHVkZSA8bGludXgvdHJhY2Vwb2ludC5oPgo+PiArI2luY2x1ZGUgPG1l ZGlhL3ZpZGVvYnVmMi12NGwyLmg+Cj4+ICsKPj4gKyNpbmNsdWRlICJoYW50cm8uaCIKPj4gKwo+ PiArI3VuZGVmIFRSQUNFX1NZU1RFTQo+PiArI2RlZmluZSBUUkFDRV9TWVNURU0gaGFudHJvCj4+ ICsjZGVmaW5lIFRSQUNFX0lOQ0xVREVfRklMRSBoYW50cm9fdHJhY2UKPj4gKwo+PiArVFJBQ0Vf RVZFTlQoaGFudHJvX2hldmNfcGVyZiwKPj4gKwlUUF9QUk9UTyhzdHJ1Y3QgaGFudHJvX2N0eCAq Y3R4LCB1MzIgaHdfY3ljbGVzKSwKPj4gKwo+PiArCVRQX0FSR1MoY3R4LCBod19jeWNsZXMpLAo+ PiArCj4+ICsJVFBfU1RSVUNUX19lbnRyeSgKPj4gKwkJX19maWVsZChpbnQsIG1pbm9yKQo+PiAr CQlfX2ZpZWxkKHN0cnVjdCB2NGwyX2ZoICosIGZoKQo+PiArCQlfX2ZpZWxkKHUzMiwgaHdfY3lj bGVzKQo+PiArCSksCj4+ICsKPj4gKwlUUF9mYXN0X2Fzc2lnbigKPj4gKwkJX19lbnRyeS0+bWlu b3IgPSBjdHgtPmZoLnZkZXYtPm1pbm9yOwo+PiArCQlfX2VudHJ5LT5maCA9ICZjdHgtPmZoOwo+ PiArCQlfX2VudHJ5LT5od19jeWNsZXMgPSBod19jeWNsZXM7Cj4+ICsJKSwKPj4gKwo+PiArCVRQ X3ByaW50aygibWlub3IgPSAlZCwgZmggPSAlcCwgJThkIGN5Y2xlcyAvIG1iIiwKPj4gKwkJICBf X2VudHJ5LT5taW5vciwgX19lbnRyeS0+ZmgsIF9fZW50cnktPmh3X2N5Y2xlcykKPj4gKyk7Cj4+ ICsKPj4gKyNlbmRpZiAvKiBfX0hBTlRST19UUkFDRV9IX18gKi8KPj4gKwo+PiArI3VuZGVmIFRS QUNFX0lOQ0xVREVfUEFUSAo+PiArI2RlZmluZSBUUkFDRV9JTkNMVURFX1BBVEggLi4vLi4vZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRybwo+PiArCj4+ICsvKiBUaGlzIHBhcnQgbXVzdCBiZSBv dXRzaWRlIHByb3RlY3Rpb24gKi8KPj4gKyNpbmNsdWRlIDx0cmFjZS9kZWZpbmVfdHJhY2UuaD4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaW14OG1fdnB1X2h3 LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jCj4+IGluZGV4 IGVhOTE5YmZiOTg5MS4uN2U5ZTI0YmI1MDU3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaW14OG1fdnB1X2h3LmMKPj4gQEAgLTIzOSw2ICsyMzksNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGhhbnRyb19jb2RlY19vcHMgaW14OG1xX3ZwdV9nMl9jb2RlY19vcHNbXSA9 IHsKPj4gICAJCS5yZXNldCA9IGlteDhtX3ZwdV9nMl9yZXNldCwKPj4gICAJCS5pbml0ID0gaGFu dHJvX2hldmNfZGVjX2luaXQsCj4+ICAgCQkuZXhpdCA9IGhhbnRyb19oZXZjX2RlY19leGl0LAo+ PiArCQkuZG9uZSA9IGhhbnRyb19nMl9oZXZjX2RlY19kb25lLAo+PiAgIAl9LAo+PiAgIH07Cj4+ ICAgCj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJv Y2tjaGlwCg== 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=-16.7 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,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC4A4C432BE for ; Wed, 1 Sep 2021 11:36:46 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7582D60F92 for ; Wed, 1 Sep 2021 11:36:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 7582D60F92 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=GuNlSFUvOcl4U1lfwZLnCx9OuzIibihFvqrIdDNCguo=; b=x2m3kwghodSM+rm1xwjMyfFxaW SkAsi6nWj90Kzh0Wb/J2uItAyha9bu8keyjUau8YhovC8EQbsOEQO+3lNPQhYWW7X8N218qmTJLNr /S06U7qb3j6N/5kzV/aFL+jC/OJjx9CI+0q9Fw934CmAjSn+0+TPEH36nmxBIS3n2//5sjFSEcmIr kncys5f5g3/mtyIDQE2A4RZ2zx7HWvxTXjkSpP2bY3hfBimTIAyMjKqo3h0ApAXtqWG3xsPFq/Wx1 l3Hdldq8tVE3S4xFomi/OOtzDS4lYkSN4qkWo11U76/6BpUp9YD1gZqZKYobmHMQ7P0aoVTwv7pyI kfhSrXYw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mLOVU-005cFY-Gn; Wed, 01 Sep 2021 11:34:17 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mLOVK-005cBg-Cx; Wed, 01 Sep 2021 11:34:09 +0000 Received: from [IPv6:2a01:e0a:4cb:a870:7491:e42a:441d:8852] (unknown [IPv6:2a01:e0a:4cb:a870:7491:e42a:441d:8852]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 8D3FE1F4132A; Wed, 1 Sep 2021 12:33:55 +0100 (BST) Subject: Re: [PATCH] media: hantro: Trace hevc hw cycles performance register To: Hans Verkuil , mchehab@kernel.org, p.zabel@pengutronix.de, gregkh@linuxfoundation.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, Ezequiel Garcia References: <20210823135606.633052-1-benjamin.gaignard@collabora.com> From: Benjamin Gaignard Message-ID: <9e973cfd-5c12-26e9-d28e-0305cae1c5c5@collabora.com> Date: Wed, 1 Sep 2021 13:33:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210901_043407_718419_744BF946 X-CRM114-Status: GOOD ( 23.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkxlIDAxLzA5LzIwMjEgw6AgMTM6MjcsIEhhbnMgVmVya3VpbCBhIMOpY3JpdMKgOgo+IEhpIEJl bmphbWluLAo+Cj4gSSdtIGNvbmZ1c2VkOiB0aGlzIGlzIGFsc28gcGFydCBvZiAnW1BBVENIIHY0 IDAvOV0gQWRkaXRpb25hbCBmZWF0dXJlcyBmb3IgSGFudHJvIEhFVkMnLCBzbwo+IGRvIHlvdSB3 YW50IHRvIG1lcmdlIHRoaXMgaW5kZXBlbmRlbnRseSBmcm9tIHRoYXQgc2VyaWVzPyBBcmUgdGhl cmUgZGlmZmVyZW5jZXMgYmV0d2VlbiB2NCAxLzkKPiBhbmQgdGhpcyBwYXRjaCwgb3IgYXJlIHRo ZXkgaWRlbnRpY2FsPwoKSGkgSGFucywKCkkgdGhvdWdodCB0aGF0IHRoZSBzZXJpZXMgd2FzIHRv IGJpZyBzbyBJIGRlY2lkZSB0byBzcGxpdCBpdCBvbiBzbWFsbGVzdCBpbmRlcGVuZGVudCBwaWVj ZXMuCgo+Cj4gSW4gYW55IGNhc2UsIEknZCBsaWtlIHRvIGhhdmUgYSBSZXZpZXdlZC1ieSBvciBB Y2tlZC1ieSBmcm9tIEV6ZXF1aWVsIGJlZm9yZSBtZXJnaW5nIHRoaXMuCgpHZXQgRXplcXVpZWwg ZmVlZGJhY2sgaXMgZGVmaW5pdGl2ZWx5IG5lZWQgOi0pCgpSZWdhcmRzLAoKQmVuamFtaW4KCj4K PiBSZWdhcmRzLAo+Cj4gCUhhbnMKPgo+IE9uIDIzLzA4LzIwMjEgMTU6NTYsIEJlbmphbWluIEdh aWduYXJkIHdyb3RlOgo+PiBBZnRlciBlYWNoIGhldmMgZGVjb2RlZCBmcmFtZSB0cmFjZSB0aGUg aGFyZHdhcmUgcGVyZm9ybWFuY2UuCj4+IEl0IHByb3ZpZGVzIHRoZSBudW1iZXIgb2YgaHcgY3lj bGVzIHNwZW5kIHBlciBkZWNvZGVkIG1hY3JvYmxvY2suCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEJl bmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBjb2xsYWJvcmEuY29tPgo+PiAtLS0K Pj4gICBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QgICAgfCAxNCAr KysrKysrCj4+ICAgLi4uL2FkbWluLWd1aWRlL21lZGlhL3Y0bC1kcml2ZXJzLnJzdCAgICAgICAg IHwgIDEgKwo+PiAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2Rydi5jICAg ICB8ICAzICsrCj4+ICAgLi4uL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2Rl Yy5jIHwgMTYgKysrKysrKysKPj4gICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRy b19nMl9yZWdzLmggfCAgMSArCj4+ICAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50 cm9faHcuaCAgICAgIHwgIDEgKwo+PiAgIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFu dHJvX3RyYWNlLmggICB8IDQxICsrKysrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jICAgfCAgMSArCj4+ICAgOCBmaWxlcyBjaGFu Z2VkLCA3OCBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRp b24vYWRtaW4tZ3VpZGUvbWVkaWEvaGFudHJvLnJzdAo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb190cmFjZS5oCj4+Cj4+IGRpZmYgLS1n aXQgYS9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QgYi9Eb2N1bWVu dGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QKPj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggMDAwMDAwMDAwMDAwLi42Y2I1NTJhNWRmY2IKPj4gLS0tIC9kZXYvbnVsbAo+ PiArKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL2hhbnRyby5yc3QKPj4gQEAg LTAsMCArMSwxNCBAQAo+PiArLi4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPj4g Kwo+PiArPT09PT09PT09PT09PT09PT0KPj4gK1RoZSBoYW50cm8gZHJpdmVyCj4+ICs9PT09PT09 PT09PT09PT09PQo+PiArCj4+ICtUcmFjZQo+PiArfn5+fn4KPj4gKwo+PiArWW91IGNhbiB0cmFj ZSB0aGUgaGFyZHdhcmUgZGVjb2RpbmcgcGVyZm9ybWFuY2VzIGJ5IHVzaW5nIGV2ZW50IHRyYWNp bmc6Ogo+PiArCj4+ICsgICAgIyBlY2hvIGhhbnRyb19oZXZjX3BlcmYgPj4gL3N5cy9rZXJuZWwv ZGVidWcvdHJhY2luZy9zZXRfZXZlbnQKPj4gKwo+PiArVGhhdCB3aWxsIGtlZXAgYSBsb2cgb2Yg dGhlIG51bWJlciBvZiBoYXJkd2FyZSBjeWNsZXMgc3BlbmQgcGVyIGRlY29kZWQgbWFjcm9ibG9j awo+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS92NGwtZHJp dmVycy5yc3QgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21lZGlhL3Y0bC1kcml2ZXJzLnJz dAo+PiBpbmRleCA5YzdlYmUyY2EzYmQuLjRmMmY3MmEyYjNiNSAxMDA2NDQKPj4gLS0tIGEvRG9j dW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS92NGwtZHJpdmVycy5yc3QKPj4gKysrIGIvRG9j dW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9tZWRpYS92NGwtZHJpdmVycy5yc3QKPj4gQEAgLTE1LDYg KzE1LDcgQEAgVmlkZW80TGludXggKFY0TCkgZHJpdmVyLXNwZWNpZmljIGRvY3VtZW50YXRpb24K Pj4gICAJY3g4OAo+PiAgIAlkYXZpbmNpLXZwYmUKPj4gICAJZmltYwo+PiArICAgICAgICBoYW50 cm8KPj4gICAJaW14Cj4+ICAgCWlteDcKPj4gICAJaXB1Mwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL2hhbnRyb19kcnYuYwo+PiBpbmRleCA4YTJlZGQ2N2YyYzYuLjIzNjE2MGM1MWU1 OSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2 LmMKPj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZHJ2LmMKPj4g QEAgLTI4LDYgKzI4LDkgQEAKPj4gICAjaW5jbHVkZSAiaGFudHJvLmgiCj4+ICAgI2luY2x1ZGUg ImhhbnRyb19ody5oIgo+PiAgIAo+PiArI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCj4+ICsj aW5jbHVkZSAiaGFudHJvX3RyYWNlLmgiCj4+ICsKPj4gICAjZGVmaW5lIERSSVZFUl9OQU1FICJo YW50cm8tdnB1Igo+PiAgIAo+PiAgIGludCBoYW50cm9fZGVidWc7Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jIGIvZHJpdmVy cy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzJfaGV2Y19kZWMuYwo+PiBpbmRleCAzNDBl ZmI1N2ZkMTguLmZlZjE2ZDE3MjRkYSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21l ZGlhL2hhbnRyby9oYW50cm9fZzJfaGV2Y19kZWMuYwo+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcv bWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jCj4+IEBAIC03LDYgKzcsNyBAQAo+PiAg IAo+PiAgICNpbmNsdWRlICJoYW50cm9faHcuaCIKPj4gICAjaW5jbHVkZSAiaGFudHJvX2cyX3Jl Z3MuaCIKPj4gKyNpbmNsdWRlICJoYW50cm9fdHJhY2UuaCIKPj4gICAKPj4gICAjZGVmaW5lIEhF VkNfREVDX01PREUJMHhDCj4+ICAgCj4+IEBAIC0yMiw2ICsyMywyMSBAQCBzdGF0aWMgaW5saW5l IHZvaWQgaGFudHJvX3dyaXRlX2FkZHIoc3RydWN0IGhhbnRyb19kZXYgKnZwdSwKPj4gICAJdmRw dV93cml0ZSh2cHUsIGFkZHIgJiAweGZmZmZmZmZmLCBvZmZzZXQpOwo+PiAgIH0KPj4gICAKPj4g K3ZvaWQgaGFudHJvX2cyX2hldmNfZGVjX2RvbmUoc3RydWN0IGhhbnRyb19jdHggKmN0eCkKPj4g K3sKPj4gKwljb25zdCBzdHJ1Y3QgaGFudHJvX2hldmNfZGVjX2N0cmxzICpjdHJscyA9ICZjdHgt PmhldmNfZGVjLmN0cmxzOwo+PiArCWNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgKnNw cyA9IGN0cmxzLT5zcHM7Cj4+ICsJc3RydWN0IGhhbnRyb19kZXYgKnZwdSA9IGN0eC0+ZGV2Owo+ PiArCXUzMiBod19jeWNsZXMgPSAwOwo+PiArCXUzMiBtYnMgPSAoc3BzLT5waWNfd2lkdGhfaW5f bHVtYV9zYW1wbGVzICoKPj4gKwkJICAgc3BzLT5waWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcykg Pj4gODsKPj4gKwo+PiArCWlmIChtYnMpCj4+ICsJCWh3X2N5Y2xlcyA9IHZkcHVfcmVhZCh2cHUs IEcyX0hXX1BFUkZPUk1BTkNFKSAvIG1iczsKPj4gKwo+PiArCXRyYWNlX2hhbnRyb19oZXZjX3Bl cmYoY3R4LCBod19jeWNsZXMpOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIHZvaWQgcHJlcGFyZV90 aWxlX2luZm9fYnVmZmVyKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4+ICAgewo+PiAgIAlzdHJ1 Y3QgaGFudHJvX2RldiAqdnB1ID0gY3R4LT5kZXY7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9yZWdzLmggYi9kcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL2hhbnRyb19nMl9yZWdzLmgKPj4gaW5kZXggYmIyMmZhOTIxOTE0Li4xN2Q4NGVj OWM1YzIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJv X2cyX3JlZ3MuaAo+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19n Ml9yZWdzLmgKPj4gQEAgLTE3Nyw2ICsxNzcsNyBAQAo+PiAgICNkZWZpbmUgRzJfUkVHX0NPTkZJ R19ERUNfQ0xLX0dBVEVfRQkJQklUKDE2KQo+PiAgICNkZWZpbmUgRzJfUkVHX0NPTkZJR19ERUNf Q0xLX0dBVEVfSURMRV9FCUJJVCgxNykKPj4gICAKPj4gKyNkZWZpbmUgRzJfSFdfUEVSRk9STUFO Q0UJKEcyX1NXUkVHKDYzKSkKPj4gICAjZGVmaW5lIEcyX0FERFJfRFNUCQkoRzJfU1dSRUcoNjUp KQo+PiAgICNkZWZpbmUgRzJfUkVHX0FERFJfUkVGKGkpCShHMl9TV1JFRyg2NykgICsgKChpKSAq IDB4OCkpCj4+ICAgI2RlZmluZSBHMl9BRERSX0RTVF9DSFIJCShHMl9TV1JFRyg5OSkpCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19ody5oIGIvZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaAo+PiBpbmRleCBkZjdiNWUzYTU3 YjkuLmFiNmYzNzkzNTRjYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hh bnRyby9oYW50cm9faHcuaAo+PiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hh bnRyb19ody5oCj4+IEBAIC0yNTAsNiArMjUwLDcgQEAgdm9pZCBoYW50cm9faDI2NF9kZWNfZXhp dChzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gICBpbnQgaGFudHJvX2hldmNfZGVjX2luaXQo c3RydWN0IGhhbnRyb19jdHggKmN0eCk7Cj4+ICAgdm9pZCBoYW50cm9faGV2Y19kZWNfZXhpdChz dHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gICBpbnQgaGFudHJvX2cyX2hldmNfZGVjX3J1bihz dHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gK3ZvaWQgaGFudHJvX2cyX2hldmNfZGVjX2RvbmUo c3RydWN0IGhhbnRyb19jdHggKmN0eCk7Cj4+ICAgaW50IGhhbnRyb19oZXZjX2RlY19wcmVwYXJl X3J1bihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KTsKPj4gICBkbWFfYWRkcl90IGhhbnRyb19oZXZj X2dldF9yZWZfYnVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgsIGludCBwb2MpOwo+PiAgIHZvaWQg aGFudHJvX2hldmNfcmVmX3JlbW92ZV91bnVzZWQoc3RydWN0IGhhbnRyb19jdHggKmN0eCk7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb190cmFjZS5o IGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fdHJhY2UuaAo+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmZhOGZlYzI2ZmEzYwo+PiAtLS0g L2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX3Ry YWNlLmgKPj4gQEAgLTAsMCArMSw0MSBAQAo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAgKi8KPj4gKyNpZiAhZGVmaW5lZChfX0hBTlRST19UUkFDRV9IX18pIHx8IGRlZmlu ZWQoVFJBQ0VfSEVBREVSX01VTFRJX1JFQUQpCj4+ICsjZGVmaW5lIF9fSEFOVFJPX1RSQUNFX0hf Xwo+PiArCj4+ICsjaW5jbHVkZSA8bGludXgvdHJhY2Vwb2ludC5oPgo+PiArI2luY2x1ZGUgPG1l ZGlhL3ZpZGVvYnVmMi12NGwyLmg+Cj4+ICsKPj4gKyNpbmNsdWRlICJoYW50cm8uaCIKPj4gKwo+ PiArI3VuZGVmIFRSQUNFX1NZU1RFTQo+PiArI2RlZmluZSBUUkFDRV9TWVNURU0gaGFudHJvCj4+ ICsjZGVmaW5lIFRSQUNFX0lOQ0xVREVfRklMRSBoYW50cm9fdHJhY2UKPj4gKwo+PiArVFJBQ0Vf RVZFTlQoaGFudHJvX2hldmNfcGVyZiwKPj4gKwlUUF9QUk9UTyhzdHJ1Y3QgaGFudHJvX2N0eCAq Y3R4LCB1MzIgaHdfY3ljbGVzKSwKPj4gKwo+PiArCVRQX0FSR1MoY3R4LCBod19jeWNsZXMpLAo+ PiArCj4+ICsJVFBfU1RSVUNUX19lbnRyeSgKPj4gKwkJX19maWVsZChpbnQsIG1pbm9yKQo+PiAr CQlfX2ZpZWxkKHN0cnVjdCB2NGwyX2ZoICosIGZoKQo+PiArCQlfX2ZpZWxkKHUzMiwgaHdfY3lj bGVzKQo+PiArCSksCj4+ICsKPj4gKwlUUF9mYXN0X2Fzc2lnbigKPj4gKwkJX19lbnRyeS0+bWlu b3IgPSBjdHgtPmZoLnZkZXYtPm1pbm9yOwo+PiArCQlfX2VudHJ5LT5maCA9ICZjdHgtPmZoOwo+ PiArCQlfX2VudHJ5LT5od19jeWNsZXMgPSBod19jeWNsZXM7Cj4+ICsJKSwKPj4gKwo+PiArCVRQ X3ByaW50aygibWlub3IgPSAlZCwgZmggPSAlcCwgJThkIGN5Y2xlcyAvIG1iIiwKPj4gKwkJICBf X2VudHJ5LT5taW5vciwgX19lbnRyeS0+ZmgsIF9fZW50cnktPmh3X2N5Y2xlcykKPj4gKyk7Cj4+ ICsKPj4gKyNlbmRpZiAvKiBfX0hBTlRST19UUkFDRV9IX18gKi8KPj4gKwo+PiArI3VuZGVmIFRS QUNFX0lOQ0xVREVfUEFUSAo+PiArI2RlZmluZSBUUkFDRV9JTkNMVURFX1BBVEggLi4vLi4vZHJp dmVycy9zdGFnaW5nL21lZGlhL2hhbnRybwo+PiArCj4+ICsvKiBUaGlzIHBhcnQgbXVzdCBiZSBv dXRzaWRlIHByb3RlY3Rpb24gKi8KPj4gKyNpbmNsdWRlIDx0cmFjZS9kZWZpbmVfdHJhY2UuaD4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaW14OG1fdnB1X2h3 LmMgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jCj4+IGluZGV4 IGVhOTE5YmZiOTg5MS4uN2U5ZTI0YmI1MDU3IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL2lteDhtX3ZwdV9ody5jCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaW14OG1fdnB1X2h3LmMKPj4gQEAgLTIzOSw2ICsyMzksNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGhhbnRyb19jb2RlY19vcHMgaW14OG1xX3ZwdV9nMl9jb2RlY19vcHNbXSA9 IHsKPj4gICAJCS5yZXNldCA9IGlteDhtX3ZwdV9nMl9yZXNldCwKPj4gICAJCS5pbml0ID0gaGFu dHJvX2hldmNfZGVjX2luaXQsCj4+ICAgCQkuZXhpdCA9IGhhbnRyb19oZXZjX2RlY19leGl0LAo+ PiArCQkuZG9uZSA9IGhhbnRyb19nMl9oZXZjX2RlY19kb25lLAo+PiAgIAl9LAo+PiAgIH07Cj4+ ICAgCj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==