From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS 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 81F87C4320A for ; Sun, 25 Jul 2021 01:07:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 613ED608FB for ; Sun, 25 Jul 2021 01:07:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230021AbhGYA02 (ORCPT ); Sat, 24 Jul 2021 20:26:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:54020 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229588AbhGYA01 (ORCPT ); Sat, 24 Jul 2021 20:26:27 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 86ADB60E97; Sun, 25 Jul 2021 01:06:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627175218; bh=fNYWeoGfkrEGlvRqsBvaFqjKbW0GSDtz2uJ+0X2ZLNQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=IKRL4nsfkZVJmfWBs2rrm/oD9WD6XGm8hE63Ym9PN2d0NtcSl+q1x99sxIDPDKxLS IE7YfQPqu/zx7KaxicY7GIwdtci9f0X75eaNR4sByC4pzb+IT2jtb/NTltLlASXCV2 QG4fkjXc7M2lDGpyfK5+TwRaJv6SJAPV6Lg83YHdKtJkc4oRYDWU+ngADRCR4L82VY AxfUCLkKjqbzqN7V7hyg+MJqnwpLADnbc5SX55BL4i6RTvxVpXujkmTYVJNMHRfvm2 piip+prrpTX4cOY7VUg+Ujt7mJCivflk2klL0IJHGMPwX9vmjJMzS3y4WVwlB05/xk fnmQQ4Bs248qw== Received: by mail-ej1-f46.google.com with SMTP id nd39so9727991ejc.5; Sat, 24 Jul 2021 18:06:58 -0700 (PDT) X-Gm-Message-State: AOAM531XagkkHKqoKWckr8WeFketFPyXF+BKPq4fkOfysZXJfxpLkk4d iqsiuw5f49/HsdA6b0vjR/jR/eHYDqZHAOVhHA== X-Google-Smtp-Source: ABdhPJyPYHzSGay9THXQjirtuR1vbT6gpP0ZOf8MYFpyr9Lk72uYtT6mEHeVmQsK5gQHFu7lpbUg6j/2CxF8zHvBlss= X-Received: by 2002:a17:906:4745:: with SMTP id j5mr10861869ejs.75.1627175217149; Sat, 24 Jul 2021 18:06:57 -0700 (PDT) MIME-Version: 1.0 References: <20210719074640.25058-1-moudy.ho@mediatek.com> <20210719074640.25058-4-moudy.ho@mediatek.com> In-Reply-To: <20210719074640.25058-4-moudy.ho@mediatek.com> From: Chun-Kuang Hu Date: Sun, 25 Jul 2021 09:06:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 3/3] media: platform: mtk-mdp3: Add Mediatek MDP3 driver To: Moudy Ho Cc: Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Hans Verkuil , Jernej Skrabec , Maoguang Meng , daoyuan huang , Ping-Hsun Wu , Geert Uytterhoeven , Rob Landley , Laurent Pinchart , linux-media@vger.kernel.org, DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Tomasz Figa , Nicolas Boichat , acourbot@chromium.org, Pi-Hsun Shih , menghui.lin@mediatek.com, =?UTF-8?B?U2ogSHVhbmcgKOm7g+S/oeeSiyk=?= , ben.lok@mediatek.com, randy.wu@mediatek.com, srv_heupstream Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org , Hi, Moudy Moudy Ho =E6=96=BC 2021=E5=B9=B47=E6=9C=8819=E6=97= =A5 =E9=80=B1=E4=B8=80 =E4=B8=8B=E5=8D=884:19=E5=AF=AB=E9=81=93=EF=BC=9A > > This patch adds driver for Media Data Path 3 (MDP3). > Each modules' related operation control is sited in mtk-mdp3-comp.c > Each modules' register table is defined in file with "mdp_reg_" > and "mmsys_" prefix > GCE related API, operation control sited in mtk-mdp3-cmdq.c > V4L2 m2m device functions are implemented in mtk-mdp3-m2m.c > Probe, power, suspend/resume, system level functions are defined in > mtk-mdp3-core.c > > Signed-off-by: Ping-Hsun Wu > Signed-off-by: daoyuan huang > Signed-off-by: Moudy Ho > --- > Depend on: > [1] https://patchwork.kernel.org/project/linux-mediatek/patch/20190906= 115513.159705-9-acourbot@chromium.org/ > [2] https://patchwork.kernel.org/project/linux-mediatek/patch/20190906= 115513.159705-10-acourbot@chromium.org/ > --- [snip] > + > +static int mdp_path_subfrm_require(struct mdp_path_subfrm *subfrm, > + const struct mdp_path *path, > + struct mdp_cmd *cmd, u32 count) > +{ > + const struct img_config *config =3D path->config; > + const struct mdp_comp_ctx *ctx; > + phys_addr_t mm_mutex =3D path->mdp_dev->mm_mutex.reg_base; > + s32 mutex_id =3D -1; > + u32 mutex_sof =3D 0; > + int mdp_color =3D 0; > + int index; > + u8 subsys_id =3D path->mdp_dev->mm_mutex.subsys_id; > + > + /* Default value */ > + memset(subfrm, 0, sizeof(*subfrm)); > + > + for (index =3D 0; index < config->num_components; index++) { > + ctx =3D &path->comps[index]; > + if (is_output_disable(ctx->param, count)) > + continue; > + switch (ctx->comp->id) { > + /********************************************** > + * Name MSB LSB > + * DISP_MUTEX_MOD 23 0 > + * > + * Specifies which modules are in this mutex. > + * Every bit denotes a module. Bit definition: > + * 2 mdp_rdma0 > + * 4 mdp_rsz0 > + * 5 mdp_rsz1 > + * 6 mdp_tdshp > + * 7 mdp_wrot0 > + * 8 mdp_wdma > + * 13 mdp_color > + * 23 mdp_aal > + * 24 mdp_ccorr > + **********************************************/ > + case MDP_AAL0: > + subfrm->mutex_mod |=3D 1 << 23; > + break; > + case MDP_CCORR0: > + subfrm->mutex_mod |=3D 1 << 24; > + break; > + case MDP_COLOR0: > + if (mdp_color) > + subfrm->mutex_mod |=3D 1 << 13; > + break; > + case MDP_WDMA: > + subfrm->mutex_mod |=3D 1 << 8; > + subfrm->sofs[subfrm->num_sofs++] =3D MDP_WDMA; > + break; > + case MDP_WROT0: > + subfrm->mutex_mod |=3D 1 << 7; > + subfrm->sofs[subfrm->num_sofs++] =3D MDP_WROT0; > + break; > + case MDP_TDSHP0: > + subfrm->mutex_mod |=3D 1 << 6; > + subfrm->sofs[subfrm->num_sofs++] =3D MDP_TDSHP0; > + break; > + case MDP_SCL1: > + subfrm->mutex_mod |=3D 1 << 5; > + subfrm->sofs[subfrm->num_sofs++] =3D MDP_SCL1; > + break; > + case MDP_SCL0: > + subfrm->mutex_mod |=3D 1 << 4; > + subfrm->sofs[subfrm->num_sofs++] =3D MDP_SCL0; > + break; > + case MDP_RDMA0: > + mutex_id =3D DISP_MUTEX_MDP_FIRST + 1; > + subfrm->mutex_mod |=3D 1 << 2; > + subfrm->sofs[subfrm->num_sofs++] =3D MDP_RDMA0; > + break; > + case MDP_IMGI: > + mutex_id =3D DISP_MUTEX_MDP_FIRST; > + break; > + case MDP_WPEI: > + mutex_id =3D DISP_MUTEX_MDP_FIRST + 3; > + break; > + case MDP_WPEI2: > + mutex_id =3D DISP_MUTEX_MDP_FIRST + 4; > + break; > + default: > + break; > + } > + } > + > + subfrm->mutex_id =3D mutex_id; > + if (-1 =3D=3D mutex_id) { > + mdp_err("No mutex assigned"); > + return -EINVAL; > + } > + > + if (subfrm->mutex_mod) { > + /* Set mutex modules */ > + MM_REG_WRITE(cmd, subsys_id, mm_mutex, MM_MUTEX_MOD, > + subfrm->mutex_mod, 0x07FFFFFF); > + MM_REG_WRITE(cmd, subsys_id, mm_mutex, MM_MUTEX_SOF, > + mutex_sof, 0x00000007); Move mutex register setting to drivers/soc/mediatek/mtk-mutex.c, and let mtk-mutex driver provide interface for mdp driver to use. > + } > + return 0; > +} > + [snip] > + > +static int mdp_path_config_subfrm(struct mdp_cmd *cmd, struct mdp_path *= path, > + u32 count) > +{ > + struct mdp_path_subfrm subfrm; > + const struct img_config *config =3D path->config; > + const struct img_mmsys_ctrl *ctrl =3D &config->ctrls[count]; > + const struct img_mux *set; > + struct mdp_comp_ctx *ctx; > + phys_addr_t mmsys =3D path->mdp_dev->mmsys.reg_base; > + int index, ret; > + u8 subsys_id =3D path->mdp_dev->mmsys.subsys_id; > + > + /* Acquire components */ > + ret =3D mdp_path_subfrm_require(&subfrm, path, cmd, count); > + if (ret) > + return ret; > + /* Enable mux settings */ > + for (index =3D 0; index < ctrl->num_sets; index++) { > + set =3D &ctrl->sets[index]; > + MM_REG_WRITE_MASK(cmd, subsys_id, mmsys, set->reg, set->v= alue, > + 0xFFFFFFFF); Move mmsys register setting to drivers/soc/mediatek/mtk-mmsys.c, and let mtk-mmsys driver provide interface for mdp to use. Regards, Chun-Kuang. > + } > + /* Config sub-frame information */ > + for (index =3D (config->num_components - 1); index >=3D 0; index-= -) { > + ctx =3D &path->comps[index]; > + if (is_output_disable(ctx->param, count)) > + continue; > + ret =3D call_op(ctx, config_subfrm, cmd, count); > + if (ret) > + return ret; > + } > + /* Run components */ > + ret =3D mdp_path_subfrm_run(&subfrm, path, cmd); > + if (ret) > + return ret; > + /* Wait components done */ > + for (index =3D 0; index < config->num_components; index++) { > + ctx =3D &path->comps[index]; > + if (is_output_disable(ctx->param, count)) > + continue; > + ret =3D call_op(ctx, wait_comp_event, cmd); > + if (ret) > + return ret; > + } > + /* Advance to the next sub-frame */ > + for (index =3D 0; index < config->num_components; index++) { > + ctx =3D &path->comps[index]; > + ret =3D call_op(ctx, advance_subfrm, cmd, count); > + if (ret) > + return ret; > + } > + /* Disable mux settings */ > + for (index =3D 0; index < ctrl->num_sets; index++) { > + set =3D &ctrl->sets[index]; > + MM_REG_WRITE_MASK(cmd, subsys_id, mmsys, set->reg, 0, > + 0xFFFFFFFF); > + } > + return 0; > +} > + 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=-10.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97C8FC4338F for ; Sun, 25 Jul 2021 01:07:24 +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 5ABB160E90 for ; Sun, 25 Jul 2021 01:07:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5ABB160E90 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Xk3fiSxqfgvaKef1fGRGg0X7UBK/ndJVOlSL1NRvo30=; b=SN9uVDUx7rVZi+ +7IMSvLWHhiPGLCkna6j4BI9yvGPXyZAxaRq0x6oWQJF6Q+UuqQYijAxIIR7Yvx/sSqv3Cm3WaEzT eNpZjvA3leWDVJr1CYTTLFrfvDa314Npnjyb7VRN7juL9lzSkI+D1noizWBQO8WKBQzYqwxm+OAba 4zz1tIQ675QUF79CedfFmJUECgeVbDUS9Qv1psY2wCJ6FYUXrzQSIAU6EReIbrWUyq/SpcXfLf2PQ sVSvfEc1XJKu0UKSOhjT18PutWGGagSHWM28cGTzAFjgQ8WyB90nhGXKF/JAjVZBiidt5vCU0O5p5 wt8wu/bE44seOAHMgoyA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7Sbo-00821H-RI; Sun, 25 Jul 2021 01:07:12 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7Sbb-00820I-OY; Sun, 25 Jul 2021 01:07:01 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9077C60EB0; Sun, 25 Jul 2021 01:06:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627175218; bh=fNYWeoGfkrEGlvRqsBvaFqjKbW0GSDtz2uJ+0X2ZLNQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=IKRL4nsfkZVJmfWBs2rrm/oD9WD6XGm8hE63Ym9PN2d0NtcSl+q1x99sxIDPDKxLS IE7YfQPqu/zx7KaxicY7GIwdtci9f0X75eaNR4sByC4pzb+IT2jtb/NTltLlASXCV2 QG4fkjXc7M2lDGpyfK5+TwRaJv6SJAPV6Lg83YHdKtJkc4oRYDWU+ngADRCR4L82VY AxfUCLkKjqbzqN7V7hyg+MJqnwpLADnbc5SX55BL4i6RTvxVpXujkmTYVJNMHRfvm2 piip+prrpTX4cOY7VUg+Ujt7mJCivflk2klL0IJHGMPwX9vmjJMzS3y4WVwlB05/xk fnmQQ4Bs248qw== Received: by mail-ej1-f51.google.com with SMTP id ga41so9556769ejc.10; Sat, 24 Jul 2021 18:06:58 -0700 (PDT) X-Gm-Message-State: AOAM5305ZYQgrDlQpASRKiHlWy3q+8VOngyB8qsI0Oz1S3yH1NuSWchJ mqX6WHQn20FcmfmkmMkMfBmD38sb23eP4CKNfQ== X-Google-Smtp-Source: ABdhPJyPYHzSGay9THXQjirtuR1vbT6gpP0ZOf8MYFpyr9Lk72uYtT6mEHeVmQsK5gQHFu7lpbUg6j/2CxF8zHvBlss= X-Received: by 2002:a17:906:4745:: with SMTP id j5mr10861869ejs.75.1627175217149; Sat, 24 Jul 2021 18:06:57 -0700 (PDT) MIME-Version: 1.0 References: <20210719074640.25058-1-moudy.ho@mediatek.com> <20210719074640.25058-4-moudy.ho@mediatek.com> In-Reply-To: <20210719074640.25058-4-moudy.ho@mediatek.com> From: Chun-Kuang Hu Date: Sun, 25 Jul 2021 09:06:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 3/3] media: platform: mtk-mdp3: Add Mediatek MDP3 driver To: Moudy Ho Cc: Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Hans Verkuil , Jernej Skrabec , Maoguang Meng , daoyuan huang , Ping-Hsun Wu , Geert Uytterhoeven , Rob Landley , Laurent Pinchart , linux-media@vger.kernel.org, DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Tomasz Figa , Nicolas Boichat , acourbot@chromium.org, Pi-Hsun Shih , menghui.lin@mediatek.com, =?UTF-8?B?U2ogSHVhbmcgKOm7g+S/oeeSiyk=?= , ben.lok@mediatek.com, randy.wu@mediatek.com, srv_heupstream X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210724_180659_907224_57165C92 X-CRM114-Status: GOOD ( 19.20 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org LCAgSGksIE1vdWR5CgpNb3VkeSBIbyA8bW91ZHkuaG9AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5 tDfmnIgxOeaXpSDpgLHkuIAg5LiL5Y2INDoxOeWvq+mBk++8mgo+Cj4gVGhpcyBwYXRjaCBhZGRz IGRyaXZlciBmb3IgTWVkaWEgRGF0YSBQYXRoIDMgKE1EUDMpLgo+IEVhY2ggbW9kdWxlcycgcmVs YXRlZCBvcGVyYXRpb24gY29udHJvbCBpcyBzaXRlZCBpbiBtdGstbWRwMy1jb21wLmMKPiBFYWNo IG1vZHVsZXMnIHJlZ2lzdGVyIHRhYmxlIGlzIGRlZmluZWQgaW4gZmlsZSB3aXRoICJtZHBfcmVn XyIKPiBhbmQgIm1tc3lzXyIgcHJlZml4Cj4gR0NFIHJlbGF0ZWQgQVBJLCBvcGVyYXRpb24gY29u dHJvbCAgc2l0ZWQgaW4gbXRrLW1kcDMtY21kcS5jCj4gVjRMMiBtMm0gZGV2aWNlIGZ1bmN0aW9u cyBhcmUgaW1wbGVtZW50ZWQgaW4gbXRrLW1kcDMtbTJtLmMKPiBQcm9iZSwgcG93ZXIsIHN1c3Bl bmQvcmVzdW1lLCBzeXN0ZW0gbGV2ZWwgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGluCj4gbXRrLW1k cDMtY29yZS5jCj4KPiBTaWduZWQtb2ZmLWJ5OiBQaW5nLUhzdW4gV3UgPHBpbmctaHN1bi53dUBt ZWRpYXRlay5jb20+Cj4gU2lnbmVkLW9mZi1ieTogZGFveXVhbiBodWFuZyA8ZGFveXVhbi5odWFu Z0BtZWRpYXRlay5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTW91ZHkgSG8gPG1vdWR5LmhvQG1lZGlh dGVrLmNvbT4KPiAtLS0KPiBEZXBlbmQgb246Cj4gICAgWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcHJvamVjdC9saW51eC1tZWRpYXRlay9wYXRjaC8yMDE5MDkwNjExNTUxMy4xNTk3 MDUtOS1hY291cmJvdEBjaHJvbWl1bS5vcmcvCj4gICAgWzJdIGh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcHJvamVjdC9saW51eC1tZWRpYXRlay9wYXRjaC8yMDE5MDkwNjExNTUxMy4xNTk3 MDUtMTAtYWNvdXJib3RAY2hyb21pdW0ub3JnLwo+IC0tLQoKW3NuaXBdCgo+ICsKPiArc3RhdGlj IGludCBtZHBfcGF0aF9zdWJmcm1fcmVxdWlyZShzdHJ1Y3QgbWRwX3BhdGhfc3ViZnJtICpzdWJm cm0sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbWRw X3BhdGggKnBhdGgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg bWRwX2NtZCAqY21kLCB1MzIgY291bnQpCj4gK3sKPiArICAgICAgIGNvbnN0IHN0cnVjdCBpbWdf Y29uZmlnICpjb25maWcgPSBwYXRoLT5jb25maWc7Cj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgbWRw X2NvbXBfY3R4ICpjdHg7Cj4gKyAgICAgICBwaHlzX2FkZHJfdCBtbV9tdXRleCA9IHBhdGgtPm1k cF9kZXYtPm1tX211dGV4LnJlZ19iYXNlOwo+ICsgICAgICAgczMyIG11dGV4X2lkID0gLTE7Cj4g KyAgICAgICB1MzIgbXV0ZXhfc29mID0gMDsKPiArICAgICAgIGludCBtZHBfY29sb3IgPSAwOwo+ ICsgICAgICAgaW50IGluZGV4Owo+ICsgICAgICAgdTggc3Vic3lzX2lkID0gcGF0aC0+bWRwX2Rl di0+bW1fbXV0ZXguc3Vic3lzX2lkOwo+ICsKPiArICAgICAgIC8qIERlZmF1bHQgdmFsdWUgKi8K PiArICAgICAgIG1lbXNldChzdWJmcm0sIDAsIHNpemVvZigqc3ViZnJtKSk7Cj4gKwo+ICsgICAg ICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY29uZmlnLT5udW1fY29tcG9uZW50czsgaW5kZXgr Kykgewo+ICsgICAgICAgICAgICAgICBjdHggPSAmcGF0aC0+Y29tcHNbaW5kZXhdOwo+ICsgICAg ICAgICAgICAgICBpZiAoaXNfb3V0cHV0X2Rpc2FibGUoY3R4LT5wYXJhbSwgY291bnQpKQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgICAgICBzd2l0Y2gg KGN0eC0+Y29tcC0+aWQpIHsKPiArICAgICAgICAgICAgICAgLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICAgICAgICAgICAgICAgICogTmFtZSAgICAg ICAgICAgIE1TQiBMU0IKPiArICAgICAgICAgICAgICAgICogRElTUF9NVVRFWF9NT0QgICAyMyAg IDAKPiArICAgICAgICAgICAgICAgICoKPiArICAgICAgICAgICAgICAgICogU3BlY2lmaWVzIHdo aWNoIG1vZHVsZXMgYXJlIGluIHRoaXMgbXV0ZXguCj4gKyAgICAgICAgICAgICAgICAqIEV2ZXJ5 IGJpdCBkZW5vdGVzIGEgbW9kdWxlLiBCaXQgZGVmaW5pdGlvbjoKPiArICAgICAgICAgICAgICAg ICogIDIgbWRwX3JkbWEwCj4gKyAgICAgICAgICAgICAgICAqICA0IG1kcF9yc3owCj4gKyAgICAg ICAgICAgICAgICAqICA1IG1kcF9yc3oxCj4gKyAgICAgICAgICAgICAgICAqICA2IG1kcF90ZHNo cAo+ICsgICAgICAgICAgICAgICAgKiAgNyBtZHBfd3JvdDAKPiArICAgICAgICAgICAgICAgICog IDggbWRwX3dkbWEKPiArICAgICAgICAgICAgICAgICogIDEzIG1kcF9jb2xvcgo+ICsgICAgICAg ICAgICAgICAgKiAgMjMgbWRwX2FhbAo+ICsgICAgICAgICAgICAgICAgKiAgMjQgbWRwX2Njb3Jy Cj4gKyAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9BQUwwOgo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgMjM7Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQX0NDT1JSMDoKPiAr ICAgICAgICAgICAgICAgICAgICAgICBzdWJmcm0tPm11dGV4X21vZCB8PSAxIDw8IDI0Owo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9D T0xPUjA6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1kcF9jb2xvcikKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgMTM7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQ X1dETUE6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3ViZnJtLT5tdXRleF9tb2QgfD0gMSA8 PCA4Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+c29mc1tzdWJmcm0tPm51bV9z b2ZzKytdID0gTURQX1dETUE7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAg ICAgICAgICAgICAgIGNhc2UgTURQX1dST1QwOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1 YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgNzsKPiArICAgICAgICAgICAgICAgICAgICAgICBzdWJm cm0tPnNvZnNbc3ViZnJtLT5udW1fc29mcysrXSA9IE1EUF9XUk9UMDsKPiArICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgICAgY2FzZSBNRFBfVERTSFAwOgo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgNjsKPiArICAg ICAgICAgICAgICAgICAgICAgICBzdWJmcm0tPnNvZnNbc3ViZnJtLT5udW1fc29mcysrXSA9IE1E UF9URFNIUDA7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAg ICAgIGNhc2UgTURQX1NDTDE6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3ViZnJtLT5tdXRl eF9tb2QgfD0gMSA8PCA1Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+c29mc1tz dWJmcm0tPm51bV9zb2ZzKytdID0gTURQX1NDTDE7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQX1NDTDA6Cj4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3ViZnJtLT5tdXRleF9tb2QgfD0gMSA8PCA0Owo+ICsgICAgICAgICAgICAgICAg ICAgICAgIHN1YmZybS0+c29mc1tzdWJmcm0tPm51bV9zb2ZzKytdID0gTURQX1NDTDA7Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQX1JE TUEwOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIG11dGV4X2lkID0gRElTUF9NVVRFWF9NRFBf RklSU1QgKyAxOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9 IDEgPDwgMjsKPiArICAgICAgICAgICAgICAgICAgICAgICBzdWJmcm0tPnNvZnNbc3ViZnJtLT5u dW1fc29mcysrXSA9IE1EUF9SRE1BMDsKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK PiArICAgICAgICAgICAgICAgY2FzZSBNRFBfSU1HSToKPiArICAgICAgICAgICAgICAgICAgICAg ICBtdXRleF9pZCA9IERJU1BfTVVURVhfTURQX0ZJUlNUOwo+ICsgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9XUEVJOgo+ICsgICAgICAgICAg ICAgICAgICAgICAgIG11dGV4X2lkID0gRElTUF9NVVRFWF9NRFBfRklSU1QgKyAzOwo+ICsgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9XUEVJ MjoKPiArICAgICAgICAgICAgICAgICAgICAgICBtdXRleF9pZCA9IERJU1BfTVVURVhfTURQX0ZJ UlNUICsgNDsKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAg ICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAg ICAgICAgfQo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHN1YmZybS0+bXV0ZXhfaWQgPSBtdXRl eF9pZDsKPiArICAgICAgIGlmICgtMSA9PSBtdXRleF9pZCkgewo+ICsgICAgICAgICAgICAgICBt ZHBfZXJyKCJObyBtdXRleCBhc3NpZ25lZCIpOwo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBpZiAoc3ViZnJtLT5tdXRleF9tb2QpIHsK PiArICAgICAgICAgICAgICAgLyogU2V0IG11dGV4IG1vZHVsZXMgKi8KPiArICAgICAgICAgICAg ICAgTU1fUkVHX1dSSVRFKGNtZCwgc3Vic3lzX2lkLCBtbV9tdXRleCwgTU1fTVVURVhfTU9ELAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViZnJtLT5tdXRleF9tb2QsIDB4MDdGRkZG RkYpOwo+ICsgICAgICAgICAgICAgICBNTV9SRUdfV1JJVEUoY21kLCBzdWJzeXNfaWQsIG1tX211 dGV4LCBNTV9NVVRFWF9TT0YsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRleF9z b2YsIDB4MDAwMDAwMDcpOwoKTW92ZSBtdXRleCByZWdpc3RlciBzZXR0aW5nIHRvIGRyaXZlcnMv c29jL21lZGlhdGVrL210ay1tdXRleC5jLCBhbmQKbGV0IG10ay1tdXRleCBkcml2ZXIgcHJvdmlk ZSBpbnRlcmZhY2UgZm9yIG1kcCBkcml2ZXIgdG8gdXNlLgoKPiArICAgICAgIH0KPiArICAgICAg IHJldHVybiAwOwo+ICt9Cj4gKwoKW3NuaXBdCgo+ICsKPiArc3RhdGljIGludCBtZHBfcGF0aF9j b25maWdfc3ViZnJtKHN0cnVjdCBtZHBfY21kICpjbWQsIHN0cnVjdCBtZHBfcGF0aCAqcGF0aCwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGNvdW50KQo+ICt7Cj4gKyAg ICAgICBzdHJ1Y3QgbWRwX3BhdGhfc3ViZnJtIHN1YmZybTsKPiArICAgICAgIGNvbnN0IHN0cnVj dCBpbWdfY29uZmlnICpjb25maWcgPSBwYXRoLT5jb25maWc7Cj4gKyAgICAgICBjb25zdCBzdHJ1 Y3QgaW1nX21tc3lzX2N0cmwgKmN0cmwgPSAmY29uZmlnLT5jdHJsc1tjb3VudF07Cj4gKyAgICAg ICBjb25zdCBzdHJ1Y3QgaW1nX211eCAqc2V0Owo+ICsgICAgICAgc3RydWN0IG1kcF9jb21wX2N0 eCAqY3R4Owo+ICsgICAgICAgcGh5c19hZGRyX3QgbW1zeXMgPSBwYXRoLT5tZHBfZGV2LT5tbXN5 cy5yZWdfYmFzZTsKPiArICAgICAgIGludCBpbmRleCwgcmV0Owo+ICsgICAgICAgdTggc3Vic3lz X2lkID0gcGF0aC0+bWRwX2Rldi0+bW1zeXMuc3Vic3lzX2lkOwo+ICsKPiArICAgICAgIC8qIEFj cXVpcmUgY29tcG9uZW50cyAqLwo+ICsgICAgICAgcmV0ID0gbWRwX3BhdGhfc3ViZnJtX3JlcXVp cmUoJnN1YmZybSwgcGF0aCwgY21kLCBjb3VudCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgLyogRW5hYmxlIG11eCBzZXR0aW5ncyAq Lwo+ICsgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY3RybC0+bnVtX3NldHM7IGluZGV4 KyspIHsKPiArICAgICAgICAgICAgICAgc2V0ID0gJmN0cmwtPnNldHNbaW5kZXhdOwo+ICsgICAg ICAgICAgICAgICBNTV9SRUdfV1JJVEVfTUFTSyhjbWQsIHN1YnN5c19pZCwgbW1zeXMsIHNldC0+ cmVnLCBzZXQtPnZhbHVlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGKTsKCk1vdmUgbW1zeXMgcmVnaXN0ZXIgc2V0dGluZyB0byBkcml2ZXJzL3NvYy9tZWRp YXRlay9tdGstbW1zeXMuYywgYW5kCmxldCBtdGstbW1zeXMgZHJpdmVyIHByb3ZpZGUgaW50ZXJm YWNlIGZvciBtZHAgdG8gdXNlLgoKUmVnYXJkcywKQ2h1bi1LdWFuZy4KCj4gKyAgICAgICB9Cj4g KyAgICAgICAvKiBDb25maWcgc3ViLWZyYW1lIGluZm9ybWF0aW9uICovCj4gKyAgICAgICBmb3Ig KGluZGV4ID0gKGNvbmZpZy0+bnVtX2NvbXBvbmVudHMgLSAxKTsgaW5kZXggPj0gMDsgaW5kZXgt LSkgewo+ICsgICAgICAgICAgICAgICBjdHggPSAmcGF0aC0+Y29tcHNbaW5kZXhdOwo+ICsgICAg ICAgICAgICAgICBpZiAoaXNfb3V0cHV0X2Rpc2FibGUoY3R4LT5wYXJhbSwgY291bnQpKQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgICAgICByZXQgPSBj YWxsX29wKGN0eCwgY29uZmlnX3N1YmZybSwgY21kLCBjb3VudCk7Cj4gKyAgICAgICAgICAgICAg IGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArICAgICAg IH0KPiArICAgICAgIC8qIFJ1biBjb21wb25lbnRzICovCj4gKyAgICAgICByZXQgPSBtZHBfcGF0 aF9zdWJmcm1fcnVuKCZzdWJmcm0sIHBhdGgsIGNtZCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsg ICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgLyogV2FpdCBjb21wb25lbnRzIGRv bmUgKi8KPiArICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNvbmZpZy0+bnVtX2NvbXBv bmVudHM7IGluZGV4KyspIHsKPiArICAgICAgICAgICAgICAgY3R4ID0gJnBhdGgtPmNvbXBzW2lu ZGV4XTsKPiArICAgICAgICAgICAgICAgaWYgKGlzX291dHB1dF9kaXNhYmxlKGN0eC0+cGFyYW0s IGNvdW50KSkKPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICAg ICAgICAgcmV0ID0gY2FsbF9vcChjdHgsIHdhaXRfY29tcF9ldmVudCwgY21kKTsKPiArICAgICAg ICAgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ ICsgICAgICAgfQo+ICsgICAgICAgLyogQWR2YW5jZSB0byB0aGUgbmV4dCBzdWItZnJhbWUgKi8K PiArICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNvbmZpZy0+bnVtX2NvbXBvbmVudHM7 IGluZGV4KyspIHsKPiArICAgICAgICAgICAgICAgY3R4ID0gJnBhdGgtPmNvbXBzW2luZGV4XTsK PiArICAgICAgICAgICAgICAgcmV0ID0gY2FsbF9vcChjdHgsIGFkdmFuY2Vfc3ViZnJtLCBjbWQs IGNvdW50KTsKPiArICAgICAgICAgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgfQo+ICsgICAgICAgLyogRGlzYWJsZSBtdXggc2V0 dGluZ3MgKi8KPiArICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGN0cmwtPm51bV9zZXRz OyBpbmRleCsrKSB7Cj4gKyAgICAgICAgICAgICAgIHNldCA9ICZjdHJsLT5zZXRzW2luZGV4XTsK PiArICAgICAgICAgICAgICAgTU1fUkVHX1dSSVRFX01BU0soY21kLCBzdWJzeXNfaWQsIG1tc3lz LCBzZXQtPnJlZywgMCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG RkZGRik7Cj4gKyAgICAgICB9Cj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1h aWxpbmcgbGlzdApMaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK 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=-10.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS 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 8D9CAC4338F for ; Sun, 25 Jul 2021 01:08:51 +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 4627D608FB for ; Sun, 25 Jul 2021 01:08:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 4627D608FB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0BKEU5I0fon4Oj4CHujukT9EoGmM6DnQ+xkntmDDUQc=; b=0uTUJvO55iuMju MLJBoFdoFbL2HTS7c7kwpn8+GuGbjDTcsl9gxuW4p4RiRSKHBLsmsGMoP0e19sZ8UuVZTlXsbzpJ0 IfCKdlJnmj9Z93E6asR+a/5JxO0eyYaN+1JM2QIfUWrV/Dm3gvcHYQl+vZbPwRhg54YzDkW/f0DUT oGvOGZUDRbikvBu01WaItmft3p1AMiURhTg5UdnUEVb9+vzXZDBZ8AgfuFj83bl8YAxv3sZfPbKtJ Y+h2ODjQeCJXU0mbBy4q5cYbyGbgM82p3C7OckAYWMFKlM4o8LFXN+Ifohr8K4+7L+lsKwK8Lp14x eaOe6C9CIvrcQI8GnvVw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7Sbf-008214-Ig; Sun, 25 Jul 2021 01:07:03 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7Sbb-00820I-OY; Sun, 25 Jul 2021 01:07:01 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9077C60EB0; Sun, 25 Jul 2021 01:06:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627175218; bh=fNYWeoGfkrEGlvRqsBvaFqjKbW0GSDtz2uJ+0X2ZLNQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=IKRL4nsfkZVJmfWBs2rrm/oD9WD6XGm8hE63Ym9PN2d0NtcSl+q1x99sxIDPDKxLS IE7YfQPqu/zx7KaxicY7GIwdtci9f0X75eaNR4sByC4pzb+IT2jtb/NTltLlASXCV2 QG4fkjXc7M2lDGpyfK5+TwRaJv6SJAPV6Lg83YHdKtJkc4oRYDWU+ngADRCR4L82VY AxfUCLkKjqbzqN7V7hyg+MJqnwpLADnbc5SX55BL4i6RTvxVpXujkmTYVJNMHRfvm2 piip+prrpTX4cOY7VUg+Ujt7mJCivflk2klL0IJHGMPwX9vmjJMzS3y4WVwlB05/xk fnmQQ4Bs248qw== Received: by mail-ej1-f51.google.com with SMTP id ga41so9556769ejc.10; Sat, 24 Jul 2021 18:06:58 -0700 (PDT) X-Gm-Message-State: AOAM5305ZYQgrDlQpASRKiHlWy3q+8VOngyB8qsI0Oz1S3yH1NuSWchJ mqX6WHQn20FcmfmkmMkMfBmD38sb23eP4CKNfQ== X-Google-Smtp-Source: ABdhPJyPYHzSGay9THXQjirtuR1vbT6gpP0ZOf8MYFpyr9Lk72uYtT6mEHeVmQsK5gQHFu7lpbUg6j/2CxF8zHvBlss= X-Received: by 2002:a17:906:4745:: with SMTP id j5mr10861869ejs.75.1627175217149; Sat, 24 Jul 2021 18:06:57 -0700 (PDT) MIME-Version: 1.0 References: <20210719074640.25058-1-moudy.ho@mediatek.com> <20210719074640.25058-4-moudy.ho@mediatek.com> In-Reply-To: <20210719074640.25058-4-moudy.ho@mediatek.com> From: Chun-Kuang Hu Date: Sun, 25 Jul 2021 09:06:45 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 3/3] media: platform: mtk-mdp3: Add Mediatek MDP3 driver To: Moudy Ho Cc: Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Hans Verkuil , Jernej Skrabec , Maoguang Meng , daoyuan huang , Ping-Hsun Wu , Geert Uytterhoeven , Rob Landley , Laurent Pinchart , linux-media@vger.kernel.org, DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Tomasz Figa , Nicolas Boichat , acourbot@chromium.org, Pi-Hsun Shih , menghui.lin@mediatek.com, =?UTF-8?B?U2ogSHVhbmcgKOm7g+S/oeeSiyk=?= , ben.lok@mediatek.com, randy.wu@mediatek.com, srv_heupstream X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210724_180659_907224_57165C92 X-CRM114-Status: GOOD ( 19.20 ) 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 LCAgSGksIE1vdWR5CgpNb3VkeSBIbyA8bW91ZHkuaG9AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5 tDfmnIgxOeaXpSDpgLHkuIAg5LiL5Y2INDoxOeWvq+mBk++8mgo+Cj4gVGhpcyBwYXRjaCBhZGRz IGRyaXZlciBmb3IgTWVkaWEgRGF0YSBQYXRoIDMgKE1EUDMpLgo+IEVhY2ggbW9kdWxlcycgcmVs YXRlZCBvcGVyYXRpb24gY29udHJvbCBpcyBzaXRlZCBpbiBtdGstbWRwMy1jb21wLmMKPiBFYWNo IG1vZHVsZXMnIHJlZ2lzdGVyIHRhYmxlIGlzIGRlZmluZWQgaW4gZmlsZSB3aXRoICJtZHBfcmVn XyIKPiBhbmQgIm1tc3lzXyIgcHJlZml4Cj4gR0NFIHJlbGF0ZWQgQVBJLCBvcGVyYXRpb24gY29u dHJvbCAgc2l0ZWQgaW4gbXRrLW1kcDMtY21kcS5jCj4gVjRMMiBtMm0gZGV2aWNlIGZ1bmN0aW9u cyBhcmUgaW1wbGVtZW50ZWQgaW4gbXRrLW1kcDMtbTJtLmMKPiBQcm9iZSwgcG93ZXIsIHN1c3Bl bmQvcmVzdW1lLCBzeXN0ZW0gbGV2ZWwgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGluCj4gbXRrLW1k cDMtY29yZS5jCj4KPiBTaWduZWQtb2ZmLWJ5OiBQaW5nLUhzdW4gV3UgPHBpbmctaHN1bi53dUBt ZWRpYXRlay5jb20+Cj4gU2lnbmVkLW9mZi1ieTogZGFveXVhbiBodWFuZyA8ZGFveXVhbi5odWFu Z0BtZWRpYXRlay5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTW91ZHkgSG8gPG1vdWR5LmhvQG1lZGlh dGVrLmNvbT4KPiAtLS0KPiBEZXBlbmQgb246Cj4gICAgWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcHJvamVjdC9saW51eC1tZWRpYXRlay9wYXRjaC8yMDE5MDkwNjExNTUxMy4xNTk3 MDUtOS1hY291cmJvdEBjaHJvbWl1bS5vcmcvCj4gICAgWzJdIGh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcHJvamVjdC9saW51eC1tZWRpYXRlay9wYXRjaC8yMDE5MDkwNjExNTUxMy4xNTk3 MDUtMTAtYWNvdXJib3RAY2hyb21pdW0ub3JnLwo+IC0tLQoKW3NuaXBdCgo+ICsKPiArc3RhdGlj IGludCBtZHBfcGF0aF9zdWJmcm1fcmVxdWlyZShzdHJ1Y3QgbWRwX3BhdGhfc3ViZnJtICpzdWJm cm0sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbWRw X3BhdGggKnBhdGgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg bWRwX2NtZCAqY21kLCB1MzIgY291bnQpCj4gK3sKPiArICAgICAgIGNvbnN0IHN0cnVjdCBpbWdf Y29uZmlnICpjb25maWcgPSBwYXRoLT5jb25maWc7Cj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgbWRw X2NvbXBfY3R4ICpjdHg7Cj4gKyAgICAgICBwaHlzX2FkZHJfdCBtbV9tdXRleCA9IHBhdGgtPm1k cF9kZXYtPm1tX211dGV4LnJlZ19iYXNlOwo+ICsgICAgICAgczMyIG11dGV4X2lkID0gLTE7Cj4g KyAgICAgICB1MzIgbXV0ZXhfc29mID0gMDsKPiArICAgICAgIGludCBtZHBfY29sb3IgPSAwOwo+ ICsgICAgICAgaW50IGluZGV4Owo+ICsgICAgICAgdTggc3Vic3lzX2lkID0gcGF0aC0+bWRwX2Rl di0+bW1fbXV0ZXguc3Vic3lzX2lkOwo+ICsKPiArICAgICAgIC8qIERlZmF1bHQgdmFsdWUgKi8K PiArICAgICAgIG1lbXNldChzdWJmcm0sIDAsIHNpemVvZigqc3ViZnJtKSk7Cj4gKwo+ICsgICAg ICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY29uZmlnLT5udW1fY29tcG9uZW50czsgaW5kZXgr Kykgewo+ICsgICAgICAgICAgICAgICBjdHggPSAmcGF0aC0+Y29tcHNbaW5kZXhdOwo+ICsgICAg ICAgICAgICAgICBpZiAoaXNfb3V0cHV0X2Rpc2FibGUoY3R4LT5wYXJhbSwgY291bnQpKQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgICAgICBzd2l0Y2gg KGN0eC0+Y29tcC0+aWQpIHsKPiArICAgICAgICAgICAgICAgLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKPiArICAgICAgICAgICAgICAgICogTmFtZSAgICAg ICAgICAgIE1TQiBMU0IKPiArICAgICAgICAgICAgICAgICogRElTUF9NVVRFWF9NT0QgICAyMyAg IDAKPiArICAgICAgICAgICAgICAgICoKPiArICAgICAgICAgICAgICAgICogU3BlY2lmaWVzIHdo aWNoIG1vZHVsZXMgYXJlIGluIHRoaXMgbXV0ZXguCj4gKyAgICAgICAgICAgICAgICAqIEV2ZXJ5 IGJpdCBkZW5vdGVzIGEgbW9kdWxlLiBCaXQgZGVmaW5pdGlvbjoKPiArICAgICAgICAgICAgICAg ICogIDIgbWRwX3JkbWEwCj4gKyAgICAgICAgICAgICAgICAqICA0IG1kcF9yc3owCj4gKyAgICAg ICAgICAgICAgICAqICA1IG1kcF9yc3oxCj4gKyAgICAgICAgICAgICAgICAqICA2IG1kcF90ZHNo cAo+ICsgICAgICAgICAgICAgICAgKiAgNyBtZHBfd3JvdDAKPiArICAgICAgICAgICAgICAgICog IDggbWRwX3dkbWEKPiArICAgICAgICAgICAgICAgICogIDEzIG1kcF9jb2xvcgo+ICsgICAgICAg ICAgICAgICAgKiAgMjMgbWRwX2FhbAo+ICsgICAgICAgICAgICAgICAgKiAgMjQgbWRwX2Njb3Jy Cj4gKyAgICAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9BQUwwOgo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgMjM7Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQX0NDT1JSMDoKPiAr ICAgICAgICAgICAgICAgICAgICAgICBzdWJmcm0tPm11dGV4X21vZCB8PSAxIDw8IDI0Owo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9D T0xPUjA6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1kcF9jb2xvcikKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgMTM7Cj4g KyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQ X1dETUE6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3ViZnJtLT5tdXRleF9tb2QgfD0gMSA8 PCA4Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+c29mc1tzdWJmcm0tPm51bV9z b2ZzKytdID0gTURQX1dETUE7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAg ICAgICAgICAgICAgIGNhc2UgTURQX1dST1QwOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1 YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgNzsKPiArICAgICAgICAgICAgICAgICAgICAgICBzdWJm cm0tPnNvZnNbc3ViZnJtLT5udW1fc29mcysrXSA9IE1EUF9XUk9UMDsKPiArICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAgICAgY2FzZSBNRFBfVERTSFAwOgo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9IDEgPDwgNjsKPiArICAg ICAgICAgICAgICAgICAgICAgICBzdWJmcm0tPnNvZnNbc3ViZnJtLT5udW1fc29mcysrXSA9IE1E UF9URFNIUDA7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAg ICAgIGNhc2UgTURQX1NDTDE6Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3ViZnJtLT5tdXRl eF9tb2QgfD0gMSA8PCA1Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+c29mc1tz dWJmcm0tPm51bV9zb2ZzKytdID0gTURQX1NDTDE7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQX1NDTDA6Cj4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3ViZnJtLT5tdXRleF9tb2QgfD0gMSA8PCA0Owo+ICsgICAgICAgICAgICAgICAg ICAgICAgIHN1YmZybS0+c29mc1tzdWJmcm0tPm51bV9zb2ZzKytdID0gTURQX1NDTDA7Cj4gKyAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgICAgICAgIGNhc2UgTURQX1JE TUEwOgo+ICsgICAgICAgICAgICAgICAgICAgICAgIG11dGV4X2lkID0gRElTUF9NVVRFWF9NRFBf RklSU1QgKyAxOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1YmZybS0+bXV0ZXhfbW9kIHw9 IDEgPDwgMjsKPiArICAgICAgICAgICAgICAgICAgICAgICBzdWJmcm0tPnNvZnNbc3ViZnJtLT5u dW1fc29mcysrXSA9IE1EUF9SRE1BMDsKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK PiArICAgICAgICAgICAgICAgY2FzZSBNRFBfSU1HSToKPiArICAgICAgICAgICAgICAgICAgICAg ICBtdXRleF9pZCA9IERJU1BfTVVURVhfTURQX0ZJUlNUOwo+ICsgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9XUEVJOgo+ICsgICAgICAgICAg ICAgICAgICAgICAgIG11dGV4X2lkID0gRElTUF9NVVRFWF9NRFBfRklSU1QgKyAzOwo+ICsgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgICAgICAgICBjYXNlIE1EUF9XUEVJ MjoKPiArICAgICAgICAgICAgICAgICAgICAgICBtdXRleF9pZCA9IERJU1BfTVVURVhfTURQX0ZJ UlNUICsgNDsKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAgICAg ICAgZGVmYXVsdDoKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArICAgICAgICAg ICAgICAgfQo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHN1YmZybS0+bXV0ZXhfaWQgPSBtdXRl eF9pZDsKPiArICAgICAgIGlmICgtMSA9PSBtdXRleF9pZCkgewo+ICsgICAgICAgICAgICAgICBt ZHBfZXJyKCJObyBtdXRleCBhc3NpZ25lZCIpOwo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBpZiAoc3ViZnJtLT5tdXRleF9tb2QpIHsK PiArICAgICAgICAgICAgICAgLyogU2V0IG11dGV4IG1vZHVsZXMgKi8KPiArICAgICAgICAgICAg ICAgTU1fUkVHX1dSSVRFKGNtZCwgc3Vic3lzX2lkLCBtbV9tdXRleCwgTU1fTVVURVhfTU9ELAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViZnJtLT5tdXRleF9tb2QsIDB4MDdGRkZG RkYpOwo+ICsgICAgICAgICAgICAgICBNTV9SRUdfV1JJVEUoY21kLCBzdWJzeXNfaWQsIG1tX211 dGV4LCBNTV9NVVRFWF9TT0YsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRleF9z b2YsIDB4MDAwMDAwMDcpOwoKTW92ZSBtdXRleCByZWdpc3RlciBzZXR0aW5nIHRvIGRyaXZlcnMv c29jL21lZGlhdGVrL210ay1tdXRleC5jLCBhbmQKbGV0IG10ay1tdXRleCBkcml2ZXIgcHJvdmlk ZSBpbnRlcmZhY2UgZm9yIG1kcCBkcml2ZXIgdG8gdXNlLgoKPiArICAgICAgIH0KPiArICAgICAg IHJldHVybiAwOwo+ICt9Cj4gKwoKW3NuaXBdCgo+ICsKPiArc3RhdGljIGludCBtZHBfcGF0aF9j b25maWdfc3ViZnJtKHN0cnVjdCBtZHBfY21kICpjbWQsIHN0cnVjdCBtZHBfcGF0aCAqcGF0aCwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGNvdW50KQo+ICt7Cj4gKyAg ICAgICBzdHJ1Y3QgbWRwX3BhdGhfc3ViZnJtIHN1YmZybTsKPiArICAgICAgIGNvbnN0IHN0cnVj dCBpbWdfY29uZmlnICpjb25maWcgPSBwYXRoLT5jb25maWc7Cj4gKyAgICAgICBjb25zdCBzdHJ1 Y3QgaW1nX21tc3lzX2N0cmwgKmN0cmwgPSAmY29uZmlnLT5jdHJsc1tjb3VudF07Cj4gKyAgICAg ICBjb25zdCBzdHJ1Y3QgaW1nX211eCAqc2V0Owo+ICsgICAgICAgc3RydWN0IG1kcF9jb21wX2N0 eCAqY3R4Owo+ICsgICAgICAgcGh5c19hZGRyX3QgbW1zeXMgPSBwYXRoLT5tZHBfZGV2LT5tbXN5 cy5yZWdfYmFzZTsKPiArICAgICAgIGludCBpbmRleCwgcmV0Owo+ICsgICAgICAgdTggc3Vic3lz X2lkID0gcGF0aC0+bWRwX2Rldi0+bW1zeXMuc3Vic3lzX2lkOwo+ICsKPiArICAgICAgIC8qIEFj cXVpcmUgY29tcG9uZW50cyAqLwo+ICsgICAgICAgcmV0ID0gbWRwX3BhdGhfc3ViZnJtX3JlcXVp cmUoJnN1YmZybSwgcGF0aCwgY21kLCBjb3VudCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgLyogRW5hYmxlIG11eCBzZXR0aW5ncyAq Lwo+ICsgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY3RybC0+bnVtX3NldHM7IGluZGV4 KyspIHsKPiArICAgICAgICAgICAgICAgc2V0ID0gJmN0cmwtPnNldHNbaW5kZXhdOwo+ICsgICAg ICAgICAgICAgICBNTV9SRUdfV1JJVEVfTUFTSyhjbWQsIHN1YnN5c19pZCwgbW1zeXMsIHNldC0+ cmVnLCBzZXQtPnZhbHVlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGKTsKCk1vdmUgbW1zeXMgcmVnaXN0ZXIgc2V0dGluZyB0byBkcml2ZXJzL3NvYy9tZWRp YXRlay9tdGstbW1zeXMuYywgYW5kCmxldCBtdGstbW1zeXMgZHJpdmVyIHByb3ZpZGUgaW50ZXJm YWNlIGZvciBtZHAgdG8gdXNlLgoKUmVnYXJkcywKQ2h1bi1LdWFuZy4KCj4gKyAgICAgICB9Cj4g KyAgICAgICAvKiBDb25maWcgc3ViLWZyYW1lIGluZm9ybWF0aW9uICovCj4gKyAgICAgICBmb3Ig KGluZGV4ID0gKGNvbmZpZy0+bnVtX2NvbXBvbmVudHMgLSAxKTsgaW5kZXggPj0gMDsgaW5kZXgt LSkgewo+ICsgICAgICAgICAgICAgICBjdHggPSAmcGF0aC0+Y29tcHNbaW5kZXhdOwo+ICsgICAg ICAgICAgICAgICBpZiAoaXNfb3V0cHV0X2Rpc2FibGUoY3R4LT5wYXJhbSwgY291bnQpKQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgICAgICByZXQgPSBj YWxsX29wKGN0eCwgY29uZmlnX3N1YmZybSwgY21kLCBjb3VudCk7Cj4gKyAgICAgICAgICAgICAg IGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArICAgICAg IH0KPiArICAgICAgIC8qIFJ1biBjb21wb25lbnRzICovCj4gKyAgICAgICByZXQgPSBtZHBfcGF0 aF9zdWJmcm1fcnVuKCZzdWJmcm0sIHBhdGgsIGNtZCk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsg ICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgLyogV2FpdCBjb21wb25lbnRzIGRv bmUgKi8KPiArICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNvbmZpZy0+bnVtX2NvbXBv bmVudHM7IGluZGV4KyspIHsKPiArICAgICAgICAgICAgICAgY3R4ID0gJnBhdGgtPmNvbXBzW2lu ZGV4XTsKPiArICAgICAgICAgICAgICAgaWYgKGlzX291dHB1dF9kaXNhYmxlKGN0eC0+cGFyYW0s IGNvdW50KSkKPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICAg ICAgICAgcmV0ID0gY2FsbF9vcChjdHgsIHdhaXRfY29tcF9ldmVudCwgY21kKTsKPiArICAgICAg ICAgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ ICsgICAgICAgfQo+ICsgICAgICAgLyogQWR2YW5jZSB0byB0aGUgbmV4dCBzdWItZnJhbWUgKi8K PiArICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNvbmZpZy0+bnVtX2NvbXBvbmVudHM7 IGluZGV4KyspIHsKPiArICAgICAgICAgICAgICAgY3R4ID0gJnBhdGgtPmNvbXBzW2luZGV4XTsK PiArICAgICAgICAgICAgICAgcmV0ID0gY2FsbF9vcChjdHgsIGFkdmFuY2Vfc3ViZnJtLCBjbWQs IGNvdW50KTsKPiArICAgICAgICAgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgfQo+ICsgICAgICAgLyogRGlzYWJsZSBtdXggc2V0 dGluZ3MgKi8KPiArICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGN0cmwtPm51bV9zZXRz OyBpbmRleCsrKSB7Cj4gKyAgICAgICAgICAgICAgIHNldCA9ICZjdHJsLT5zZXRzW2luZGV4XTsK PiArICAgICAgICAgICAgICAgTU1fUkVHX1dSSVRFX01BU0soY21kLCBzdWJzeXNfaWQsIG1tc3lz LCBzZXQtPnJlZywgMCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG RkZGRik7Cj4gKyAgICAgICB9Cj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK