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.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UPPERCASE_50_75,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 E72D8C433E4 for ; Sat, 25 Jul 2020 02:11:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BEACB2067D for ; Sat, 25 Jul 2020 02:11:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595643082; bh=MiK1PVba9d6hMg6wGLKI8oBgC2V0lNCvk+9hka8SO+Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:List-ID:From; b=CiCZHsqx1UkpeH0e/DO25fa79ZrQXeD1XMFkMbDWpwTgiWiE/DUZ9PZcMEQGE7MAf Ggph0w+5jh457D8P1mN/gP4roC1VfjyGR8LTS145VDxnawKgep6ZL8FtbRM/OUaFd9 nn8ksYvgzgUpSBU5ozNcFUYijcBY8MijKR+pHJlo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726686AbgGYCLV (ORCPT ); Fri, 24 Jul 2020 22:11:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:38010 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726493AbgGYCLU (ORCPT ); Fri, 24 Jul 2020 22:11:20 -0400 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2C89920768; Sat, 25 Jul 2020 02:11:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595643079; bh=MiK1PVba9d6hMg6wGLKI8oBgC2V0lNCvk+9hka8SO+Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=R0ARucDOpPXl8q8xzkpdzxpN/0aLP4sB7Dxc+7cT8HrVRKXigAOuvNVPzQGZkChPm JPSma0lw83Wo8kCro44XBKrztoV04mZ/TNxXowA8ZfLip4jEVs95br/T7EziapNc2j 2fSMvLdRyLVCpvMaAU76YE7yTn5Hl3up4A+i6zOs= Received: by mail-ej1-f46.google.com with SMTP id y10so11803339eje.1; Fri, 24 Jul 2020 19:11:19 -0700 (PDT) X-Gm-Message-State: AOAM5338pKK24p4GSWzXvBoxdMhmB1+gHgNN/Qp1H7ow8/ty1wA4NwZN 2UHli/OkWYjVvEG0N3VVA3+/AVLUqC8XGPu56A== X-Google-Smtp-Source: ABdhPJwN4QCvJGX+aHwkNCAkKNmSR1ftSbRuurw8gS+0nF4FVDXZN2SkQuDo/nPWuuv4Nd6/79c3mpHhn0j/pwLsjJs= X-Received: by 2002:a17:906:6959:: with SMTP id c25mr11593383ejs.375.1595643077613; Fri, 24 Jul 2020 19:11:17 -0700 (PDT) MIME-Version: 1.0 References: <1595469798-3824-1-git-send-email-yongqiang.niu@mediatek.com> <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> In-Reply-To: <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> From: Chun-Kuang Hu Date: Sat, 25 Jul 2020 10:11:06 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v7, PATCH 2/7] mtk-mmsys: add mmsys private data To: Yongqiang Niu Cc: CK Hu , Philipp Zabel , Rob Herring , Matthias Brugger , Mark Rutland , devicetree@vger.kernel.org, David Airlie , linux-kernel , DRI Development , "moderated list:ARM/Mediatek SoC support" , Daniel Vetter , Linux ARM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Yongqiang: Yongqiang Niu =E6=96=BC 2020=E5=B9=B47=E6=9C= =8823=E6=97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8A=E5=8D=8810:05=E5=AF=AB=E9=81=93= =EF=BC=9A > > add mmsys private data > > Feature: drm/mediatek > Signed-off-by: Yongqiang Niu > --- > drivers/soc/mediatek/Makefile | 1 + > drivers/soc/mediatek/mmsys/Makefile | 2 + > drivers/soc/mediatek/mmsys/mt2701-mmsys.c | 250 ++++++++++++++++++++++++= +++ > drivers/soc/mediatek/mtk-mmsys.c | 271 +++++-------------------= ------ > include/linux/soc/mediatek/mtk-mmsys.h | 15 ++ > 5 files changed, 314 insertions(+), 225 deletions(-) > create mode 100644 drivers/soc/mediatek/mmsys/Makefile > create mode 100644 drivers/soc/mediatek/mmsys/mt2701-mmsys.c > > diff --git a/drivers/soc/mediatek/Makefile b/drivers/soc/mediatek/Makefil= e > index 2afa7b9..b37ac2c 100644 > --- a/drivers/soc/mediatek/Makefile > +++ b/drivers/soc/mediatek/Makefile > @@ -3,3 +3,4 @@ obj-$(CONFIG_MTK_CMDQ) +=3D mtk-cmdq-helper.o > obj-$(CONFIG_MTK_PMIC_WRAP) +=3D mtk-pmic-wrap.o > obj-$(CONFIG_MTK_SCPSYS) +=3D mtk-scpsys.o > obj-$(CONFIG_MTK_MMSYS) +=3D mtk-mmsys.o > +obj-$(CONFIG_MTK_MMSYS) +=3D mmsys/ > diff --git a/drivers/soc/mediatek/mmsys/Makefile b/drivers/soc/mediatek/m= msys/Makefile > new file mode 100644 > index 0000000..33b0dab > --- /dev/null > +++ b/drivers/soc/mediatek/mmsys/Makefile > @@ -0,0 +1,2 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +obj-y +=3D mt2701-mmsys.o > diff --git a/drivers/soc/mediatek/mmsys/mt2701-mmsys.c b/drivers/soc/medi= atek/mmsys/mt2701-mmsys.c > new file mode 100644 > index 0000000..b8e53b0 > --- /dev/null > +++ b/drivers/soc/mediatek/mmsys/mt2701-mmsys.c > @@ -0,0 +1,250 @@ > +// SPDX-License-Identifier: GPL-2.0 > +// > +// Copyright (c) 2020 MediaTek Inc. > + > +#include > +#include > +#include > +#include > +#include > + > +#define DISP_REG_CONFIG_DISP_OVL0_MOUT_EN 0x040 > +#define DISP_REG_CONFIG_DISP_OVL1_MOUT_EN 0x044 > +#define DISP_REG_CONFIG_DISP_OD_MOUT_EN 0x048 > +#define DISP_REG_CONFIG_DISP_GAMMA_MOUT_EN 0x04c > +#define DISP_REG_CONFIG_DISP_UFOE_MOUT_EN 0x050 > +#define DISP_REG_CONFIG_DISP_COLOR0_SEL_IN 0x084 > +#define DISP_REG_CONFIG_DISP_COLOR1_SEL_IN 0x088 > +#define DISP_REG_CONFIG_DSIE_SEL_IN 0x0a4 > +#define DISP_REG_CONFIG_DSIO_SEL_IN 0x0a8 > +#define DISP_REG_CONFIG_DPI_SEL_IN 0x0ac > +#define DISP_REG_CONFIG_DISP_RDMA2_SOUT 0x0b8 > +#define DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN 0x0c4 > +#define DISP_REG_CONFIG_DISP_RDMA1_SOUT_EN 0x0c8 > +#define DISP_REG_CONFIG_MMSYS_CG_CON0 0x100 > + > +#define DISP_REG_CONFIG_DISP_OVL_MOUT_EN 0x030 > +#define DISP_REG_CONFIG_OUT_SEL 0x04c > +#define DISP_REG_CONFIG_DSI_SEL 0x050 > +#define DISP_REG_CONFIG_DPI_SEL 0x064 > + > +#define OVL0_MOUT_EN_COLOR0 0x1 > +#define OD_MOUT_EN_RDMA0 0x1 > +#define OD1_MOUT_EN_RDMA1 BIT(16) > +#define UFOE_MOUT_EN_DSI0 0x1 > +#define COLOR0_SEL_IN_OVL0 0x1 > +#define OVL1_MOUT_EN_COLOR1 0x1 > +#define GAMMA_MOUT_EN_RDMA1 0x1 > +#define RDMA0_SOUT_DPI0 0x2 > +#define RDMA0_SOUT_DPI1 0x3 > +#define RDMA0_SOUT_DSI1 0x1 > +#define RDMA0_SOUT_DSI2 0x4 > +#define RDMA0_SOUT_DSI3 0x5 > +#define RDMA1_SOUT_DPI0 0x2 > +#define RDMA1_SOUT_DPI1 0x3 > +#define RDMA1_SOUT_DSI1 0x1 > +#define RDMA1_SOUT_DSI2 0x4 > +#define RDMA1_SOUT_DSI3 0x5 > +#define RDMA2_SOUT_DPI0 0x2 > +#define RDMA2_SOUT_DPI1 0x3 > +#define RDMA2_SOUT_DSI1 0x1 > +#define RDMA2_SOUT_DSI2 0x4 > +#define RDMA2_SOUT_DSI3 0x5 > +#define DPI0_SEL_IN_RDMA1 0x1 > +#define DPI0_SEL_IN_RDMA2 0x3 > +#define DPI1_SEL_IN_RDMA1 (0x1 << 8) > +#define DPI1_SEL_IN_RDMA2 (0x3 << 8) > +#define DSI0_SEL_IN_RDMA1 0x1 > +#define DSI0_SEL_IN_RDMA2 0x4 > +#define DSI1_SEL_IN_RDMA1 0x1 > +#define DSI1_SEL_IN_RDMA2 0x4 > +#define DSI2_SEL_IN_RDMA1 (0x1 << 16) > +#define DSI2_SEL_IN_RDMA2 (0x4 << 16) > +#define DSI3_SEL_IN_RDMA1 (0x1 << 16) > +#define DSI3_SEL_IN_RDMA2 (0x4 << 16) > +#define COLOR1_SEL_IN_OVL1 0x1 > + > +#define OVL_MOUT_EN_RDMA 0x1 > +#define BLS_TO_DSI_RDMA1_TO_DPI1 0x8 > +#define BLS_TO_DPI_RDMA1_TO_DSI 0x2 > +#define DSI_SEL_IN_BLS 0x0 > +#define DPI_SEL_IN_BLS 0x0 > +#define DSI_SEL_IN_RDMA 0x1 > + > +static unsigned int mtk_mmsys_ddp_mout_en(enum mtk_ddp_comp_id cur, > + enum mtk_ddp_comp_id next, > + unsigned int *addr) > +{ > + unsigned int value; > + > + if (cur =3D=3D DDP_COMPONENT_OVL0 && next =3D=3D DDP_COMPONENT_CO= LOR0) { > + *addr =3D DISP_REG_CONFIG_DISP_OVL0_MOUT_EN; > + value =3D OVL0_MOUT_EN_COLOR0; > + } else if (cur =3D=3D DDP_COMPONENT_OVL0 && next =3D=3D DDP_COMPO= NENT_RDMA0) { > + *addr =3D DISP_REG_CONFIG_DISP_OVL_MOUT_EN; > + value =3D OVL_MOUT_EN_RDMA; > + } else if (cur =3D=3D DDP_COMPONENT_OD0 && next =3D=3D DDP_COMPON= ENT_RDMA0) { > + *addr =3D DISP_REG_CONFIG_DISP_OD_MOUT_EN; > + value =3D OD_MOUT_EN_RDMA0; > + } else if (cur =3D=3D DDP_COMPONENT_UFOE && next =3D=3D DDP_COMPO= NENT_DSI0) { > + *addr =3D DISP_REG_CONFIG_DISP_UFOE_MOUT_EN; > + value =3D UFOE_MOUT_EN_DSI0; > + } else if (cur =3D=3D DDP_COMPONENT_OVL1 && next =3D=3D DDP_COMPO= NENT_COLOR1) { > + *addr =3D DISP_REG_CONFIG_DISP_OVL1_MOUT_EN; > + value =3D OVL1_MOUT_EN_COLOR1; > + } else if (cur =3D=3D DDP_COMPONENT_GAMMA && next =3D=3D DDP_COMP= ONENT_RDMA1) { > + *addr =3D DISP_REG_CONFIG_DISP_GAMMA_MOUT_EN; > + value =3D GAMMA_MOUT_EN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_OD1 && next =3D=3D DDP_COMPON= ENT_RDMA1) { > + *addr =3D DISP_REG_CONFIG_DISP_OD_MOUT_EN; > + value =3D OD1_MOUT_EN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA0 && next =3D=3D DDP_COMP= ONENT_DPI0) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN; > + value =3D RDMA0_SOUT_DPI0; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA0 && next =3D=3D DDP_COMP= ONENT_DPI1) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN; > + value =3D RDMA0_SOUT_DPI1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA0 && next =3D=3D DDP_COMP= ONENT_DSI1) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN; > + value =3D RDMA0_SOUT_DSI1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA0 && next =3D=3D DDP_COMP= ONENT_DSI2) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN; > + value =3D RDMA0_SOUT_DSI2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA0 && next =3D=3D DDP_COMP= ONENT_DSI3) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA0_SOUT_EN; > + value =3D RDMA0_SOUT_DSI3; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI1) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA1_SOUT_EN; > + value =3D RDMA1_SOUT_DSI1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI2) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA1_SOUT_EN; > + value =3D RDMA1_SOUT_DSI2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI3) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA1_SOUT_EN; > + value =3D RDMA1_SOUT_DSI3; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DPI0) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA1_SOUT_EN; > + value =3D RDMA1_SOUT_DPI0; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DPI1) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA1_SOUT_EN; > + value =3D RDMA1_SOUT_DPI1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DPI0) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA2_SOUT; > + value =3D RDMA2_SOUT_DPI0; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DPI1) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA2_SOUT; > + value =3D RDMA2_SOUT_DPI1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI1) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA2_SOUT; > + value =3D RDMA2_SOUT_DSI1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI2) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA2_SOUT; > + value =3D RDMA2_SOUT_DSI2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI3) { > + *addr =3D DISP_REG_CONFIG_DISP_RDMA2_SOUT; > + value =3D RDMA2_SOUT_DSI3; > + } else { > + value =3D 0; > + } > + > + return value; > +} > + > +static unsigned int mtk_mmsys_ddp_sel_in(enum mtk_ddp_comp_id cur, > + enum mtk_ddp_comp_id next, > + unsigned int *addr) > +{ > + unsigned int value; > + > + if (cur =3D=3D DDP_COMPONENT_OVL0 && next =3D=3D DDP_COMPONENT_CO= LOR0) { > + *addr =3D DISP_REG_CONFIG_DISP_COLOR0_SEL_IN; > + value =3D COLOR0_SEL_IN_OVL0; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DPI0) { > + *addr =3D DISP_REG_CONFIG_DPI_SEL_IN; > + value =3D DPI0_SEL_IN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DPI1) { > + *addr =3D DISP_REG_CONFIG_DPI_SEL_IN; > + value =3D DPI1_SEL_IN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI0) { > + *addr =3D DISP_REG_CONFIG_DSIE_SEL_IN; > + value =3D DSI0_SEL_IN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI1) { > + *addr =3D DISP_REG_CONFIG_DSIO_SEL_IN; > + value =3D DSI1_SEL_IN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI2) { > + *addr =3D DISP_REG_CONFIG_DSIE_SEL_IN; > + value =3D DSI2_SEL_IN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA1 && next =3D=3D DDP_COMP= ONENT_DSI3) { > + *addr =3D DISP_REG_CONFIG_DSIO_SEL_IN; > + value =3D DSI3_SEL_IN_RDMA1; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DPI0) { > + *addr =3D DISP_REG_CONFIG_DPI_SEL_IN; > + value =3D DPI0_SEL_IN_RDMA2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DPI1) { > + *addr =3D DISP_REG_CONFIG_DPI_SEL_IN; > + value =3D DPI1_SEL_IN_RDMA2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI0) { > + *addr =3D DISP_REG_CONFIG_DSIE_SEL_IN; > + value =3D DSI0_SEL_IN_RDMA2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI1) { > + *addr =3D DISP_REG_CONFIG_DSIO_SEL_IN; > + value =3D DSI1_SEL_IN_RDMA2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI2) { > + *addr =3D DISP_REG_CONFIG_DSIE_SEL_IN; > + value =3D DSI2_SEL_IN_RDMA2; > + } else if (cur =3D=3D DDP_COMPONENT_RDMA2 && next =3D=3D DDP_COMP= ONENT_DSI3) { > + *addr =3D DISP_REG_CONFIG_DSIE_SEL_IN; > + value =3D DSI3_SEL_IN_RDMA2; > + } else if (cur =3D=3D DDP_COMPONENT_OVL1 && next =3D=3D DDP_COMPO= NENT_COLOR1) { > + *addr =3D DISP_REG_CONFIG_DISP_COLOR1_SEL_IN; > + value =3D COLOR1_SEL_IN_OVL1; > + } else if (cur =3D=3D DDP_COMPONENT_BLS && next =3D=3D DDP_COMPON= ENT_DSI0) { > + *addr =3D DISP_REG_CONFIG_DSI_SEL; > + value =3D DSI_SEL_IN_BLS; > + } else { > + value =3D 0; > + } > + > + return value; > +} > + > +static void mtk_mmsys_ddp_sout_sel(void __iomem *config_regs, > + enum mtk_ddp_comp_id cur, > + enum mtk_ddp_comp_id next) > +{ > + if (cur =3D=3D DDP_COMPONENT_BLS && next =3D=3D DDP_COMPONENT_DSI= 0) { > + writel_relaxed(BLS_TO_DSI_RDMA1_TO_DPI1, > + config_regs + DISP_REG_CONFIG_OUT_SEL); > + } else if (cur =3D=3D DDP_COMPONENT_BLS && next =3D=3D DDP_COMPON= ENT_DPI0) { > + writel_relaxed(BLS_TO_DPI_RDMA1_TO_DSI, > + config_regs + DISP_REG_CONFIG_OUT_SEL); > + writel_relaxed(DSI_SEL_IN_RDMA, > + config_regs + DISP_REG_CONFIG_DSI_SEL); > + writel_relaxed(DPI_SEL_IN_BLS, > + config_regs + DISP_REG_CONFIG_DPI_SEL); > + } > +} > + > +static struct mtk_mmsys_conn_funcs mmsys_funcs =3D { > + .mout_en =3D mtk_mmsys_ddp_mout_en, > + .sel_in =3D mtk_mmsys_ddp_sel_in, > + .sout_sel =3D mtk_mmsys_ddp_sout_sel, I think you could implement these three function to be the same as the three of mt8183 with mt2701 version of mmsys_mout_en[], mmsys_sel_in[], mmsys_sout_sel[]. If you worry that you could not test on mt2701, we could temporarily accept this and wait for someone has mt2701 (or mt8173) to rewrite these three function to be the same as mt8183. Regards, Chun-Kuang. > +}; > + 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.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UPPERCASE_50_75,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 3FEEEC433E0 for ; Sat, 25 Jul 2020 02:11:36 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 F3E6C2067D for ; Sat, 25 Jul 2020 02:11:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="vNct2HfQ"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="R0ARucDO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3E6C2067D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id: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=G6OfjB0g0RMTxbUqYucvZpMyfzoMg2/NG3o+CrKzbx0=; b=vNct2HfQO7G0a05m6adKj31zD FAoB6h6qLJSRLoBrWF6XMEXlptLRsWlLlrVWu/zly6Wdv3dl8Maskx2o4h3VAGDRffQVdqMhEDFrG vGIf0Ern8wX63G3dYv+250hre9fzZgdtV6/z1SE/Gnb5ox1pl9o+81j86lZvG04XL2o39Lhm+RPww URnaanYfMqwewehqqUCnIKXAUxQqFu4fm8TvDoY0H3emUgWIpaoiskv2HQg0SxxCp9g/EdKph0+80 5R7imxKCXRQLwKeY26d8GOw8uBVyFKkbcGUZaHCWZpYZaa1KzPI1Hyal4sRzN+iZsP9iNN61UOqX7 QTFzPqFnw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jz9em-0000Cy-Hq; Sat, 25 Jul 2020 02:11:24 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jz9ei-0000C5-Fq; Sat, 25 Jul 2020 02:11:21 +0000 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1985C2067D; Sat, 25 Jul 2020 02:11:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595643079; bh=MiK1PVba9d6hMg6wGLKI8oBgC2V0lNCvk+9hka8SO+Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=R0ARucDOpPXl8q8xzkpdzxpN/0aLP4sB7Dxc+7cT8HrVRKXigAOuvNVPzQGZkChPm JPSma0lw83Wo8kCro44XBKrztoV04mZ/TNxXowA8ZfLip4jEVs95br/T7EziapNc2j 2fSMvLdRyLVCpvMaAU76YE7yTn5Hl3up4A+i6zOs= Received: by mail-ej1-f50.google.com with SMTP id a21so11744818ejj.10; Fri, 24 Jul 2020 19:11:19 -0700 (PDT) X-Gm-Message-State: AOAM531/GqLc4Zu3bLiDCf4IiGMFS7OoqEhVwMLdD21NzP02RxAKIrcZ asxlkzqj8US6ti7NSsay7g1eb6d+wwxYkOb03w== X-Google-Smtp-Source: ABdhPJwN4QCvJGX+aHwkNCAkKNmSR1ftSbRuurw8gS+0nF4FVDXZN2SkQuDo/nPWuuv4Nd6/79c3mpHhn0j/pwLsjJs= X-Received: by 2002:a17:906:6959:: with SMTP id c25mr11593383ejs.375.1595643077613; Fri, 24 Jul 2020 19:11:17 -0700 (PDT) MIME-Version: 1.0 References: <1595469798-3824-1-git-send-email-yongqiang.niu@mediatek.com> <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> In-Reply-To: <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> From: Chun-Kuang Hu Date: Sat, 25 Jul 2020 10:11:06 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v7, PATCH 2/7] mtk-mmsys: add mmsys private data To: Yongqiang Niu X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200724_221120_671813_9A2C49C6 X-CRM114-Status: GOOD ( 17.66 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Daniel Vetter , David Airlie , linux-kernel , DRI Development , Matthias Brugger , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Philipp Zabel , CK Hu , Linux ARM 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 SGksIFlvbmdxaWFuZzoKCllvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29t PiDmlrwgMjAyMOW5tDfmnIgyM+aXpSDpgLHlm5sg5LiK5Y2IMTA6MDXlr6vpgZPvvJoKPgo+IGFk ZCBtbXN5cyBwcml2YXRlIGRhdGEKPgo+IEZlYXR1cmU6IGRybS9tZWRpYXRlawo+IFNpZ25lZC1v ZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArCj4gIGRy aXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlICAgICAgIHwgICAyICsKPiAgZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMgfCAyNTAgKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jICAgICAgICAg IHwgMjcxICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2xpbnV4L3Nv Yy9tZWRpYXRlay9tdGstbW1zeXMuaCAgICB8ICAxNSArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDMx NCBpbnNlcnRpb25zKCspLCAyMjUgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmlsZQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01h a2VmaWxlCj4gaW5kZXggMmFmYTdiOS4uYjM3YWMyYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxl Cj4gQEAgLTMsMyArMyw0IEBAIG9iai0kKENPTkZJR19NVEtfQ01EUSkgKz0gbXRrLWNtZHEtaGVs cGVyLm8KPiAgb2JqLSQoQ09ORklHX01US19QTUlDX1dSQVApICs9IG10ay1wbWljLXdyYXAubwo+ ICBvYmotJChDT05GSUdfTVRLX1NDUFNZUykgKz0gbXRrLXNjcHN5cy5vCj4gIG9iai0kKENPTkZJ R19NVEtfTU1TWVMpICs9IG10ay1tbXN5cy5vCj4gK29iai0kKENPTkZJR19NVEtfTU1TWVMpICs9 IG1tc3lzLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmls ZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwLi4zM2IwZGFiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Ry aXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlCj4gQEAgLTAsMCArMSwyIEBACj4gKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ICtvYmoteSArPSBtdDI3MDEt bW1zeXMubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9tdDI3MDEt bW1zeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1tbXN5cy5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5iOGU1M2IwCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1tbXN5cy5jCj4gQEAg LTAsMCArMSwyNTAgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiAr Ly8KPiArLy8gQ29weXJpZ2h0IChjKSAyMDIwIE1lZGlhVGVrIEluYy4KPiArCj4gKyNpbmNsdWRl IDxsaW51eC9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9vZl9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oPgo+ICsKPiArI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU4gICAgICAweDA0MAo+ICsjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19ESVNQX09WTDFfTU9VVF9FTiAgICAgIDB4MDQ0Cj4gKyNkZWZpbmUg RElTUF9SRUdfQ09ORklHX0RJU1BfT0RfTU9VVF9FTiAgICAgICAgICAgICAgICAweDA0OAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU4gICAgIDB4MDRjCj4gKyNk ZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VOICAgICAgMHgwNTAKPiArI2Rl ZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9DT0xPUjBfU0VMX0lOICAgICAweDA4NAo+ICsjZGVm aW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMV9TRUxfSU4gICAgIDB4MDg4Cj4gKyNkZWZp bmUgRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOICAgICAgICAgICAgMHgwYTQKPiArI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU4gICAgICAgICAgICAweDBhOAo+ICsjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOICAgICAgICAgICAgIDB4MGFjCj4gKyNkZWZpbmUg RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVCAgICAgICAgICAgICAgICAweDBiOAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU4gICAgIDB4MGM0Cj4gKyNk ZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTiAgICAgMHgwYzgKPiArI2Rl ZmluZSBESVNQX1JFR19DT05GSUdfTU1TWVNfQ0dfQ09OMCAgICAgICAgICAweDEwMAo+ICsKPiAr I2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkxfTU9VVF9FTiAgICAgICAweDAzMAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMICAgICAgICAgICAgICAgICAgICAgICAgMHgw NGMKPiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfRFNJX1NFTCAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDUwCj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUwgICAgICAgICAgICAg ICAgICAgICAgICAweDA2NAo+ICsKPiArI2RlZmluZSBPVkwwX01PVVRfRU5fQ09MT1IwICAgICAg ICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBPRF9NT1VUX0VOX1JETUEwICAgICAgICAgICAg ICAgICAgICAgICAweDEKPiArI2RlZmluZSBPRDFfTU9VVF9FTl9SRE1BMSAgICAgICAgICAgICAg ICAgICAgICBCSVQoMTYpCj4gKyNkZWZpbmUgVUZPRV9NT1VUX0VOX0RTSTAgICAgICAgICAgICAg ICAgICAgICAgMHgxCj4gKyNkZWZpbmUgQ09MT1IwX1NFTF9JTl9PVkwwICAgICAgICAgICAgICAg ICAgICAgMHgxCj4gKyNkZWZpbmUgT1ZMMV9NT1VUX0VOX0NPTE9SMSAgICAgICAgICAgICAgICAg ICAgMHgxCj4gKyNkZWZpbmUgR0FNTUFfTU9VVF9FTl9SRE1BMSAgICAgICAgICAgICAgICAgICAg MHgxCj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EUEkwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDIKPiArI2RlZmluZSBSRE1BMF9TT1VUX0RQSTEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4Mwo+ICsjZGVmaW5lIFJETUEwX1NPVVRfRFNJMSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgxCj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EU0kyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDQKPiArI2RlZmluZSBSRE1BMF9TT1VUX0RTSTMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQo+ICsjZGVmaW5lIFJETUExX1NPVVRfRFBJMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCj4gKyNkZWZpbmUgUkRNQTFfU09VVF9E UEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKPiArI2RlZmluZSBSRE1BMV9T T1VUX0RTSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQo+ICsjZGVmaW5lIFJE TUExX1NPVVRfRFNJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Cj4gKyNkZWZp bmUgUkRNQTFfU09VVF9EU0kzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKPiAr I2RlZmluZSBSRE1BMl9TT1VUX0RQSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 Mgo+ICsjZGVmaW5lIFJETUEyX1NPVVRfRFBJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgzCj4gKyNkZWZpbmUgUkRNQTJfU09VVF9EU0kxICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDEKPiArI2RlZmluZSBSRE1BMl9TT1VUX0RTSTIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NAo+ICsjZGVmaW5lIFJETUEyX1NPVVRfRFNJMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg1Cj4gKyNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTEgICAgICAg ICAgICAgICAgICAgICAgMHgxCj4gKyNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTIgICAgICAgICAg ICAgICAgICAgICAgMHgzCj4gKyNkZWZpbmUgRFBJMV9TRUxfSU5fUkRNQTEgICAgICAgICAgICAg ICAgICAgICAgKDB4MSA8PCA4KQo+ICsjZGVmaW5lIERQSTFfU0VMX0lOX1JETUEyICAgICAgICAg ICAgICAgICAgICAgICgweDMgPDwgOCkKPiArI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMSAgICAg ICAgICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMiAgICAgICAg ICAgICAgICAgICAgICAweDQKPiArI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMSAgICAgICAgICAg ICAgICAgICAgICAweDEKPiArI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMiAgICAgICAgICAgICAg ICAgICAgICAweDQKPiArI2RlZmluZSBEU0kyX1NFTF9JTl9SRE1BMSAgICAgICAgICAgICAgICAg ICAgICAoMHgxIDw8IDE2KQo+ICsjZGVmaW5lIERTSTJfU0VMX0lOX1JETUEyICAgICAgICAgICAg ICAgICAgICAgICgweDQgPDwgMTYpCj4gKyNkZWZpbmUgRFNJM19TRUxfSU5fUkRNQTEgICAgICAg ICAgICAgICAgICAgICAgKDB4MSA8PCAxNikKPiArI2RlZmluZSBEU0kzX1NFTF9JTl9SRE1BMiAg ICAgICAgICAgICAgICAgICAgICAoMHg0IDw8IDE2KQo+ICsjZGVmaW5lIENPTE9SMV9TRUxfSU5f T1ZMMSAgICAgICAgICAgICAgICAgICAgIDB4MQo+ICsKPiArI2RlZmluZSBPVkxfTU9VVF9FTl9S RE1BICAgICAgICAgICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBCTFNfVE9fRFNJX1JETUEx X1RPX0RQSTEgICAgICAgICAgICAgICAweDgKPiArI2RlZmluZSBCTFNfVE9fRFBJX1JETUExX1RP X0RTSSAgICAgICAgICAgICAgICAgICAgICAgIDB4Mgo+ICsjZGVmaW5lIERTSV9TRUxfSU5fQkxT ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIERQSV9TRUxfSU5fQkxTICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIERTSV9TRUxfSU5fUkRNQSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgaW50 IG10a19tbXN5c19kZHBfbW91dF9lbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQg bmV4dCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgKmFkZHIpCj4gK3sKPiArICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZTsKPiArCj4gKyAg ICAgICBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfQ09MT1IwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfT1ZMMF9NT1VUX0VOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IE9WTDBfTU9VVF9FTl9D T0xPUjA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX09WTDAgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX1JETUEwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVl ID0gT1ZMX01PVVRfRU5fUkRNQTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfT0QwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCkgewo+ICsgICAgICAgICAg ICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47Cj4gKyAgICAgICAg ICAgICAgIHZhbHVlID0gT0RfTU9VVF9FTl9SRE1BMDsKPiArICAgICAgIH0gZWxzZSBpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfVUZPRSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgewo+ ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1VGT0VfTU9VVF9F TjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBVRk9FX01PVVRfRU5fRFNJMDsKPiArICAgICAg IH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01Q T05FTlRfQ09MT1IxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfT1ZMMV9NT1VUX0VOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IE9WTDFfTU9VVF9F Tl9DT0xPUjE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0dBTU1B ICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgewo+ICsgICAgICAgICAgICAgICAqYWRk ciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU47Cj4gKyAgICAgICAgICAgICAg IHZhbHVlID0gR0FNTUFfTU9VVF9FTl9SRE1BMTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09 IEREUF9DT01QT05FTlRfT0QxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgewo+ICsg ICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47Cj4g KyAgICAgICAgICAgICAgIHZhbHVlID0gT0QxX01PVVRfRU5fUkRNQTE7Cj4gKyAgICAgICB9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf UkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RQSTA7 Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBS RE1BMF9TT1VUX0RQSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAg ICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4g KyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9F TjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTI7Cj4gKyAgICAgICB9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kzKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RT STM7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElT UF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUg PSBSRE1BMV9TT1VUX0RTSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAg ICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09V VF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTM7Cj4gKyAgICAg ICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EUEkwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VU X0RQSTA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYm IG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFs dWUgPSBSRE1BMV9TT1VUX0RQSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7Cj4gKyAgICAgICAg ICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09V VDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTE7Cj4gKyAgICAgICB9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTE7 Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1B Ml9TT1VUX0RTSTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JE TUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7Cj4gKyAgICAgICAgICAgICAgICph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAg dmFsdWUgPSBSRE1BMl9TT1VUX0RTSTM7Cj4gKyAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAg ICAgICB2YWx1ZSA9IDA7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbHVlOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgaW50IG10a19tbXN5c19kZHBfc2VsX2luKGVudW0g bXRrX2RkcF9jb21wX2lkIGN1ciwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmFkZHIpCj4gK3sKPiArICAgICAgIHVu c2lnbmVkIGludCB2YWx1ZTsKPiArCj4gKyAgICAgICBpZiAoY3VyID09IEREUF9DT01QT05FTlRf T1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1IwKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTjsKPiArICAgICAgICAg ICAgICAgdmFsdWUgPSBDT0xPUjBfU0VMX0lOX09WTDA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47Cj4g KyAgICAgICAgICAgICAgIHZhbHVlID0gRFBJMF9TRUxfSU5fUkRNQTE7Cj4gKyAgICAgICB9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9T RUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVlID0gRFBJMV9TRUxfSU5fUkRNQTE7Cj4gKyAg ICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9EU0kwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09O RklHX0RTSUVfU0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERTSTBfU0VMX0lOX1JE TUExOwo+ICsgICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBu ZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBEU0kx X1NFTF9JTl9SRE1BMTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRf UkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsKPiArICAgICAgICAgICAgICAg KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZh bHVlID0gRFNJMl9TRUxfSU5fUkRNQTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7Cj4gKyAgICAg ICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSU9fU0VMX0lOOwo+ICsgICAgICAg ICAgICAgICB2YWx1ZSA9IERTSTNfU0VMX0lOX1JETUExOwo+ICsgICAgICAgfSBlbHNlIGlmIChj dXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkg ewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOwo+ ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUEyOwo+ICsgICAgICAgfSBl bHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfRFBJMSkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElf U0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERQSTFfU0VMX0lOX1JETUEyOwo+ICsg ICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EU0lFX1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBEU0kwX1NFTF9JTl9S RE1BMjsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsKPiArICAgICAgICAgICAgICAgKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVlID0gRFNJ MV9TRUxfSU5fUkRNQTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2 YWx1ZSA9IERTSTJfU0VMX0lOX1JETUEyOwo+ICsgICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgewo+ICsgICAg ICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBEU0kzX1NFTF9JTl9SRE1BMjsKPiArICAgICAgIH0gZWxzZSBpZiAo Y3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1Ix KSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1Ix X1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBDT0xPUjFfU0VMX0lOX09WTDE7Cj4g KyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EU0lfU0VMOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERTSV9TRUxfSU5fQkxTOwo+ ICsgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSAwOwo+ICsgICAgICAg fQo+ICsKPiArICAgICAgIHJldHVybiB2YWx1ZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbXRr X21tc3lzX2RkcF9zb3V0X3NlbCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4 dCkKPiArewo+ICsgICAgICAgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09 IEREUF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChC TFNfVE9fRFNJX1JETUExX1RPX0RQSTEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX09VVF9TRUwpOwo+ICsgICAgICAgfSBlbHNl IGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQ STApIHsKPiArICAgICAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoQkxTX1RPX0RQSV9SRE1BMV9U T19EU0ksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19yZWdzICsgRElT UF9SRUdfQ09ORklHX09VVF9TRUwpOwo+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChE U0lfU0VMX0lOX1JETUEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19y ZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9TRUwpOwo+ICsgICAgICAgICAgICAgICB3cml0ZWxf cmVsYXhlZChEUElfU0VMX0lOX0JMUywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfRFBJX1NFTCk7Cj4gKyAgICAgICB9Cj4gK30K PiArCj4gK3N0YXRpYyBzdHJ1Y3QgbXRrX21tc3lzX2Nvbm5fZnVuY3MgbW1zeXNfZnVuY3MgPSB7 Cj4gKyAgICAgICAubW91dF9lbiA9IG10a19tbXN5c19kZHBfbW91dF9lbiwKPiArICAgICAgIC5z ZWxfaW4gPSBtdGtfbW1zeXNfZGRwX3NlbF9pbiwKPiArICAgICAgIC5zb3V0X3NlbCA9IG10a19t bXN5c19kZHBfc291dF9zZWwsCgpJIHRoaW5rIHlvdSBjb3VsZCBpbXBsZW1lbnQgdGhlc2UgdGhy ZWUgZnVuY3Rpb24gdG8gYmUgdGhlIHNhbWUgYXMgdGhlCnRocmVlIG9mIG10ODE4MyB3aXRoIG10 MjcwMSB2ZXJzaW9uIG9mIG1tc3lzX21vdXRfZW5bXSwKbW1zeXNfc2VsX2luW10sIG1tc3lzX3Nv dXRfc2VsW10uIElmIHlvdSB3b3JyeSB0aGF0IHlvdSBjb3VsZCBub3QgdGVzdApvbiBtdDI3MDEs IHdlIGNvdWxkIHRlbXBvcmFyaWx5IGFjY2VwdCB0aGlzIGFuZCB3YWl0IGZvciBzb21lb25lIGhh cwptdDI3MDEgKG9yIG10ODE3MykgdG8gcmV3cml0ZSB0aGVzZSB0aHJlZSBmdW5jdGlvbiB0byBi ZSB0aGUgc2FtZSBhcwptdDgxODMuCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArfTsKPiArCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1tZWRp YXRlayBtYWlsaW5nIGxpc3QKTGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCg== 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.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UPPERCASE_50_75,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 9F55CC433E0 for ; Sat, 25 Jul 2020 02:13:20 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 5B4532067D for ; Sat, 25 Jul 2020 02:13:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="MdhXkY+y"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="R0ARucDO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5B4532067D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id: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=CmRhsgFUz4ECoBxoENFiZ2gWxCY87YctQM+v4AgwEVE=; b=MdhXkY+yhowGF0y+02pMcNEbX fcTVzcCsSYjEMGnn/i+BiAtY4kEYfXbecdo8lkI4FrNvt1A9ND27gnK5Du8MVdM/D9a4pqphTT/bb VGZOY8o472h92wRpm0v0QYFdDMsUaaUwLtRS7YhmAWS7mElpS8mi3ipNjgJ87Kl8Or7DU76dbRRx8 V4MNDY9eFdp2VdfGP90sFHHlUmHykJLbGb2fTtv1UeObvfES6osGCwbo/1u4mTa/NSncybzZaldSO TUTNYu9BxIYJSdFnic7T11OzdHJ/BjknSUig2tGreKe2AmL07FHrJZy/YxO2pDfdi+fUojGE7GQdJ N3DNOTkuA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jz9el-0000Cb-Ac; Sat, 25 Jul 2020 02:11:23 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jz9ei-0000C5-Fq; Sat, 25 Jul 2020 02:11:21 +0000 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1985C2067D; Sat, 25 Jul 2020 02:11:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595643079; bh=MiK1PVba9d6hMg6wGLKI8oBgC2V0lNCvk+9hka8SO+Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=R0ARucDOpPXl8q8xzkpdzxpN/0aLP4sB7Dxc+7cT8HrVRKXigAOuvNVPzQGZkChPm JPSma0lw83Wo8kCro44XBKrztoV04mZ/TNxXowA8ZfLip4jEVs95br/T7EziapNc2j 2fSMvLdRyLVCpvMaAU76YE7yTn5Hl3up4A+i6zOs= Received: by mail-ej1-f50.google.com with SMTP id a21so11744818ejj.10; Fri, 24 Jul 2020 19:11:19 -0700 (PDT) X-Gm-Message-State: AOAM531/GqLc4Zu3bLiDCf4IiGMFS7OoqEhVwMLdD21NzP02RxAKIrcZ asxlkzqj8US6ti7NSsay7g1eb6d+wwxYkOb03w== X-Google-Smtp-Source: ABdhPJwN4QCvJGX+aHwkNCAkKNmSR1ftSbRuurw8gS+0nF4FVDXZN2SkQuDo/nPWuuv4Nd6/79c3mpHhn0j/pwLsjJs= X-Received: by 2002:a17:906:6959:: with SMTP id c25mr11593383ejs.375.1595643077613; Fri, 24 Jul 2020 19:11:17 -0700 (PDT) MIME-Version: 1.0 References: <1595469798-3824-1-git-send-email-yongqiang.niu@mediatek.com> <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> In-Reply-To: <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> From: Chun-Kuang Hu Date: Sat, 25 Jul 2020 10:11:06 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v7, PATCH 2/7] mtk-mmsys: add mmsys private data To: Yongqiang Niu X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200724_221120_671813_9A2C49C6 X-CRM114-Status: GOOD ( 17.66 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, Daniel Vetter , David Airlie , linux-kernel , DRI Development , Matthias Brugger , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Philipp Zabel , CK Hu , Linux ARM 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 SGksIFlvbmdxaWFuZzoKCllvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29t PiDmlrwgMjAyMOW5tDfmnIgyM+aXpSDpgLHlm5sg5LiK5Y2IMTA6MDXlr6vpgZPvvJoKPgo+IGFk ZCBtbXN5cyBwcml2YXRlIGRhdGEKPgo+IEZlYXR1cmU6IGRybS9tZWRpYXRlawo+IFNpZ25lZC1v ZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArCj4gIGRy aXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlICAgICAgIHwgICAyICsKPiAgZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMgfCAyNTAgKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jICAgICAgICAg IHwgMjcxICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2xpbnV4L3Nv Yy9tZWRpYXRlay9tdGstbW1zeXMuaCAgICB8ICAxNSArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDMx NCBpbnNlcnRpb25zKCspLCAyMjUgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmlsZQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01h a2VmaWxlCj4gaW5kZXggMmFmYTdiOS4uYjM3YWMyYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxl Cj4gQEAgLTMsMyArMyw0IEBAIG9iai0kKENPTkZJR19NVEtfQ01EUSkgKz0gbXRrLWNtZHEtaGVs cGVyLm8KPiAgb2JqLSQoQ09ORklHX01US19QTUlDX1dSQVApICs9IG10ay1wbWljLXdyYXAubwo+ ICBvYmotJChDT05GSUdfTVRLX1NDUFNZUykgKz0gbXRrLXNjcHN5cy5vCj4gIG9iai0kKENPTkZJ R19NVEtfTU1TWVMpICs9IG10ay1tbXN5cy5vCj4gK29iai0kKENPTkZJR19NVEtfTU1TWVMpICs9 IG1tc3lzLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmls ZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwLi4zM2IwZGFiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Ry aXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlCj4gQEAgLTAsMCArMSwyIEBACj4gKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ICtvYmoteSArPSBtdDI3MDEt bW1zeXMubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9tdDI3MDEt bW1zeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1tbXN5cy5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5iOGU1M2IwCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1tbXN5cy5jCj4gQEAg LTAsMCArMSwyNTAgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiAr Ly8KPiArLy8gQ29weXJpZ2h0IChjKSAyMDIwIE1lZGlhVGVrIEluYy4KPiArCj4gKyNpbmNsdWRl IDxsaW51eC9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9vZl9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oPgo+ICsKPiArI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU4gICAgICAweDA0MAo+ICsjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19ESVNQX09WTDFfTU9VVF9FTiAgICAgIDB4MDQ0Cj4gKyNkZWZpbmUg RElTUF9SRUdfQ09ORklHX0RJU1BfT0RfTU9VVF9FTiAgICAgICAgICAgICAgICAweDA0OAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU4gICAgIDB4MDRjCj4gKyNk ZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VOICAgICAgMHgwNTAKPiArI2Rl ZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9DT0xPUjBfU0VMX0lOICAgICAweDA4NAo+ICsjZGVm aW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMV9TRUxfSU4gICAgIDB4MDg4Cj4gKyNkZWZp bmUgRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOICAgICAgICAgICAgMHgwYTQKPiArI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU4gICAgICAgICAgICAweDBhOAo+ICsjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOICAgICAgICAgICAgIDB4MGFjCj4gKyNkZWZpbmUg RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVCAgICAgICAgICAgICAgICAweDBiOAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU4gICAgIDB4MGM0Cj4gKyNk ZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTiAgICAgMHgwYzgKPiArI2Rl ZmluZSBESVNQX1JFR19DT05GSUdfTU1TWVNfQ0dfQ09OMCAgICAgICAgICAweDEwMAo+ICsKPiAr I2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkxfTU9VVF9FTiAgICAgICAweDAzMAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMICAgICAgICAgICAgICAgICAgICAgICAgMHgw NGMKPiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfRFNJX1NFTCAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDUwCj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUwgICAgICAgICAgICAg ICAgICAgICAgICAweDA2NAo+ICsKPiArI2RlZmluZSBPVkwwX01PVVRfRU5fQ09MT1IwICAgICAg ICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBPRF9NT1VUX0VOX1JETUEwICAgICAgICAgICAg ICAgICAgICAgICAweDEKPiArI2RlZmluZSBPRDFfTU9VVF9FTl9SRE1BMSAgICAgICAgICAgICAg ICAgICAgICBCSVQoMTYpCj4gKyNkZWZpbmUgVUZPRV9NT1VUX0VOX0RTSTAgICAgICAgICAgICAg ICAgICAgICAgMHgxCj4gKyNkZWZpbmUgQ09MT1IwX1NFTF9JTl9PVkwwICAgICAgICAgICAgICAg ICAgICAgMHgxCj4gKyNkZWZpbmUgT1ZMMV9NT1VUX0VOX0NPTE9SMSAgICAgICAgICAgICAgICAg ICAgMHgxCj4gKyNkZWZpbmUgR0FNTUFfTU9VVF9FTl9SRE1BMSAgICAgICAgICAgICAgICAgICAg MHgxCj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EUEkwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDIKPiArI2RlZmluZSBSRE1BMF9TT1VUX0RQSTEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4Mwo+ICsjZGVmaW5lIFJETUEwX1NPVVRfRFNJMSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgxCj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EU0kyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDQKPiArI2RlZmluZSBSRE1BMF9TT1VUX0RTSTMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQo+ICsjZGVmaW5lIFJETUExX1NPVVRfRFBJMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCj4gKyNkZWZpbmUgUkRNQTFfU09VVF9E UEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKPiArI2RlZmluZSBSRE1BMV9T T1VUX0RTSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQo+ICsjZGVmaW5lIFJE TUExX1NPVVRfRFNJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Cj4gKyNkZWZp bmUgUkRNQTFfU09VVF9EU0kzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKPiAr I2RlZmluZSBSRE1BMl9TT1VUX0RQSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 Mgo+ICsjZGVmaW5lIFJETUEyX1NPVVRfRFBJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgzCj4gKyNkZWZpbmUgUkRNQTJfU09VVF9EU0kxICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDEKPiArI2RlZmluZSBSRE1BMl9TT1VUX0RTSTIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NAo+ICsjZGVmaW5lIFJETUEyX1NPVVRfRFNJMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg1Cj4gKyNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTEgICAgICAg ICAgICAgICAgICAgICAgMHgxCj4gKyNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTIgICAgICAgICAg ICAgICAgICAgICAgMHgzCj4gKyNkZWZpbmUgRFBJMV9TRUxfSU5fUkRNQTEgICAgICAgICAgICAg ICAgICAgICAgKDB4MSA8PCA4KQo+ICsjZGVmaW5lIERQSTFfU0VMX0lOX1JETUEyICAgICAgICAg ICAgICAgICAgICAgICgweDMgPDwgOCkKPiArI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMSAgICAg ICAgICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMiAgICAgICAg ICAgICAgICAgICAgICAweDQKPiArI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMSAgICAgICAgICAg ICAgICAgICAgICAweDEKPiArI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMiAgICAgICAgICAgICAg ICAgICAgICAweDQKPiArI2RlZmluZSBEU0kyX1NFTF9JTl9SRE1BMSAgICAgICAgICAgICAgICAg ICAgICAoMHgxIDw8IDE2KQo+ICsjZGVmaW5lIERTSTJfU0VMX0lOX1JETUEyICAgICAgICAgICAg ICAgICAgICAgICgweDQgPDwgMTYpCj4gKyNkZWZpbmUgRFNJM19TRUxfSU5fUkRNQTEgICAgICAg ICAgICAgICAgICAgICAgKDB4MSA8PCAxNikKPiArI2RlZmluZSBEU0kzX1NFTF9JTl9SRE1BMiAg ICAgICAgICAgICAgICAgICAgICAoMHg0IDw8IDE2KQo+ICsjZGVmaW5lIENPTE9SMV9TRUxfSU5f T1ZMMSAgICAgICAgICAgICAgICAgICAgIDB4MQo+ICsKPiArI2RlZmluZSBPVkxfTU9VVF9FTl9S RE1BICAgICAgICAgICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBCTFNfVE9fRFNJX1JETUEx X1RPX0RQSTEgICAgICAgICAgICAgICAweDgKPiArI2RlZmluZSBCTFNfVE9fRFBJX1JETUExX1RP X0RTSSAgICAgICAgICAgICAgICAgICAgICAgIDB4Mgo+ICsjZGVmaW5lIERTSV9TRUxfSU5fQkxT ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIERQSV9TRUxfSU5fQkxTICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIERTSV9TRUxfSU5fUkRNQSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgaW50 IG10a19tbXN5c19kZHBfbW91dF9lbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQg bmV4dCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgKmFkZHIpCj4gK3sKPiArICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZTsKPiArCj4gKyAg ICAgICBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfQ09MT1IwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfT1ZMMF9NT1VUX0VOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IE9WTDBfTU9VVF9FTl9D T0xPUjA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX09WTDAgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX1JETUEwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVl ID0gT1ZMX01PVVRfRU5fUkRNQTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfT0QwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCkgewo+ICsgICAgICAgICAg ICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47Cj4gKyAgICAgICAg ICAgICAgIHZhbHVlID0gT0RfTU9VVF9FTl9SRE1BMDsKPiArICAgICAgIH0gZWxzZSBpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfVUZPRSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgewo+ ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1VGT0VfTU9VVF9F TjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBVRk9FX01PVVRfRU5fRFNJMDsKPiArICAgICAg IH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01Q T05FTlRfQ09MT1IxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfT1ZMMV9NT1VUX0VOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IE9WTDFfTU9VVF9F Tl9DT0xPUjE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0dBTU1B ICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgewo+ICsgICAgICAgICAgICAgICAqYWRk ciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU47Cj4gKyAgICAgICAgICAgICAg IHZhbHVlID0gR0FNTUFfTU9VVF9FTl9SRE1BMTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09 IEREUF9DT01QT05FTlRfT0QxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgewo+ICsg ICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47Cj4g KyAgICAgICAgICAgICAgIHZhbHVlID0gT0QxX01PVVRfRU5fUkRNQTE7Cj4gKyAgICAgICB9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf UkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RQSTA7 Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBS RE1BMF9TT1VUX0RQSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAg ICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4g KyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9F TjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTI7Cj4gKyAgICAgICB9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kzKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RT STM7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElT UF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUg PSBSRE1BMV9TT1VUX0RTSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAg ICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09V VF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTM7Cj4gKyAgICAg ICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EUEkwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VU X0RQSTA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYm IG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFs dWUgPSBSRE1BMV9TT1VUX0RQSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7Cj4gKyAgICAgICAg ICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09V VDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTE7Cj4gKyAgICAgICB9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTE7 Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1B Ml9TT1VUX0RTSTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JE TUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7Cj4gKyAgICAgICAgICAgICAgICph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAg dmFsdWUgPSBSRE1BMl9TT1VUX0RTSTM7Cj4gKyAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAg ICAgICB2YWx1ZSA9IDA7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbHVlOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgaW50IG10a19tbXN5c19kZHBfc2VsX2luKGVudW0g bXRrX2RkcF9jb21wX2lkIGN1ciwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmFkZHIpCj4gK3sKPiArICAgICAgIHVu c2lnbmVkIGludCB2YWx1ZTsKPiArCj4gKyAgICAgICBpZiAoY3VyID09IEREUF9DT01QT05FTlRf T1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1IwKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTjsKPiArICAgICAgICAg ICAgICAgdmFsdWUgPSBDT0xPUjBfU0VMX0lOX09WTDA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47Cj4g KyAgICAgICAgICAgICAgIHZhbHVlID0gRFBJMF9TRUxfSU5fUkRNQTE7Cj4gKyAgICAgICB9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9T RUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVlID0gRFBJMV9TRUxfSU5fUkRNQTE7Cj4gKyAg ICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9EU0kwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09O RklHX0RTSUVfU0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERTSTBfU0VMX0lOX1JE TUExOwo+ICsgICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBu ZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBEU0kx X1NFTF9JTl9SRE1BMTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRf UkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsKPiArICAgICAgICAgICAgICAg KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZh bHVlID0gRFNJMl9TRUxfSU5fUkRNQTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7Cj4gKyAgICAg ICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSU9fU0VMX0lOOwo+ICsgICAgICAg ICAgICAgICB2YWx1ZSA9IERTSTNfU0VMX0lOX1JETUExOwo+ICsgICAgICAgfSBlbHNlIGlmIChj dXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkg ewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOwo+ ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUEyOwo+ICsgICAgICAgfSBl bHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfRFBJMSkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElf U0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERQSTFfU0VMX0lOX1JETUEyOwo+ICsg ICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EU0lFX1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBEU0kwX1NFTF9JTl9S RE1BMjsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsKPiArICAgICAgICAgICAgICAgKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVlID0gRFNJ MV9TRUxfSU5fUkRNQTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2 YWx1ZSA9IERTSTJfU0VMX0lOX1JETUEyOwo+ICsgICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgewo+ICsgICAg ICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBEU0kzX1NFTF9JTl9SRE1BMjsKPiArICAgICAgIH0gZWxzZSBpZiAo Y3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1Ix KSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1Ix X1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBDT0xPUjFfU0VMX0lOX09WTDE7Cj4g KyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EU0lfU0VMOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERTSV9TRUxfSU5fQkxTOwo+ ICsgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSAwOwo+ICsgICAgICAg fQo+ICsKPiArICAgICAgIHJldHVybiB2YWx1ZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbXRr X21tc3lzX2RkcF9zb3V0X3NlbCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4 dCkKPiArewo+ICsgICAgICAgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09 IEREUF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChC TFNfVE9fRFNJX1JETUExX1RPX0RQSTEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX09VVF9TRUwpOwo+ICsgICAgICAgfSBlbHNl IGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQ STApIHsKPiArICAgICAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoQkxTX1RPX0RQSV9SRE1BMV9U T19EU0ksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19yZWdzICsgRElT UF9SRUdfQ09ORklHX09VVF9TRUwpOwo+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChE U0lfU0VMX0lOX1JETUEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19y ZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9TRUwpOwo+ICsgICAgICAgICAgICAgICB3cml0ZWxf cmVsYXhlZChEUElfU0VMX0lOX0JMUywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfRFBJX1NFTCk7Cj4gKyAgICAgICB9Cj4gK30K PiArCj4gK3N0YXRpYyBzdHJ1Y3QgbXRrX21tc3lzX2Nvbm5fZnVuY3MgbW1zeXNfZnVuY3MgPSB7 Cj4gKyAgICAgICAubW91dF9lbiA9IG10a19tbXN5c19kZHBfbW91dF9lbiwKPiArICAgICAgIC5z ZWxfaW4gPSBtdGtfbW1zeXNfZGRwX3NlbF9pbiwKPiArICAgICAgIC5zb3V0X3NlbCA9IG10a19t bXN5c19kZHBfc291dF9zZWwsCgpJIHRoaW5rIHlvdSBjb3VsZCBpbXBsZW1lbnQgdGhlc2UgdGhy ZWUgZnVuY3Rpb24gdG8gYmUgdGhlIHNhbWUgYXMgdGhlCnRocmVlIG9mIG10ODE4MyB3aXRoIG10 MjcwMSB2ZXJzaW9uIG9mIG1tc3lzX21vdXRfZW5bXSwKbW1zeXNfc2VsX2luW10sIG1tc3lzX3Nv dXRfc2VsW10uIElmIHlvdSB3b3JyeSB0aGF0IHlvdSBjb3VsZCBub3QgdGVzdApvbiBtdDI3MDEs IHdlIGNvdWxkIHRlbXBvcmFyaWx5IGFjY2VwdCB0aGlzIGFuZCB3YWl0IGZvciBzb21lb25lIGhh cwptdDI3MDEgKG9yIG10ODE3MykgdG8gcmV3cml0ZSB0aGVzZSB0aHJlZSBmdW5jdGlvbiB0byBi ZSB0aGUgc2FtZSBhcwptdDgxODMuCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArfTsKPiArCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0t a2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2Vy bmVsCg== 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=-9.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,UPPERCASE_50_75 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 9FE93C433E1 for ; Sat, 25 Jul 2020 02:11:21 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 6A2B720737 for ; Sat, 25 Jul 2020 02:11:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="R0ARucDO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6A2B720737 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4AAAC6EA56; Sat, 25 Jul 2020 02:11:20 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id CCBF16EA56 for ; Sat, 25 Jul 2020 02:11:19 +0000 (UTC) Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2B0F820759 for ; Sat, 25 Jul 2020 02:11:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595643079; bh=MiK1PVba9d6hMg6wGLKI8oBgC2V0lNCvk+9hka8SO+Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=R0ARucDOpPXl8q8xzkpdzxpN/0aLP4sB7Dxc+7cT8HrVRKXigAOuvNVPzQGZkChPm JPSma0lw83Wo8kCro44XBKrztoV04mZ/TNxXowA8ZfLip4jEVs95br/T7EziapNc2j 2fSMvLdRyLVCpvMaAU76YE7yTn5Hl3up4A+i6zOs= Received: by mail-ej1-f54.google.com with SMTP id w9so11744551ejc.8 for ; Fri, 24 Jul 2020 19:11:19 -0700 (PDT) X-Gm-Message-State: AOAM533mONYwI6MOGItYQxEFJw5PcV9dbasloezMM+YKBuTIUmHlcwJq KfFobYcDNqyI/kgbaYuClhMP8JY9PpBpPFvTDQ== X-Google-Smtp-Source: ABdhPJwN4QCvJGX+aHwkNCAkKNmSR1ftSbRuurw8gS+0nF4FVDXZN2SkQuDo/nPWuuv4Nd6/79c3mpHhn0j/pwLsjJs= X-Received: by 2002:a17:906:6959:: with SMTP id c25mr11593383ejs.375.1595643077613; Fri, 24 Jul 2020 19:11:17 -0700 (PDT) MIME-Version: 1.0 References: <1595469798-3824-1-git-send-email-yongqiang.niu@mediatek.com> <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> In-Reply-To: <1595469798-3824-3-git-send-email-yongqiang.niu@mediatek.com> From: Chun-Kuang Hu Date: Sat, 25 Jul 2020 10:11:06 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v7, PATCH 2/7] mtk-mmsys: add mmsys private data To: Yongqiang Niu X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree@vger.kernel.org, David Airlie , linux-kernel , DRI Development , Matthias Brugger , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Linux ARM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGksIFlvbmdxaWFuZzoKCllvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29t PiDmlrwgMjAyMOW5tDfmnIgyM+aXpSDpgLHlm5sg5LiK5Y2IMTA6MDXlr6vpgZPvvJoKPgo+IGFk ZCBtbXN5cyBwcml2YXRlIGRhdGEKPgo+IEZlYXR1cmU6IGRybS9tZWRpYXRlawo+IFNpZ25lZC1v ZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArCj4gIGRy aXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlICAgICAgIHwgICAyICsKPiAgZHJpdmVy cy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMgfCAyNTAgKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jICAgICAgICAg IHwgMjcxICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2xpbnV4L3Nv Yy9tZWRpYXRlay9tdGstbW1zeXMuaCAgICB8ICAxNSArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDMx NCBpbnNlcnRpb25zKCspLCAyMjUgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmlsZQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXQyNzAxLW1tc3lzLmMKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3NvYy9tZWRpYXRlay9NYWtlZmlsZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01h a2VmaWxlCj4gaW5kZXggMmFmYTdiOS4uYjM3YWMyYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL01ha2VmaWxl Cj4gQEAgLTMsMyArMyw0IEBAIG9iai0kKENPTkZJR19NVEtfQ01EUSkgKz0gbXRrLWNtZHEtaGVs cGVyLm8KPiAgb2JqLSQoQ09ORklHX01US19QTUlDX1dSQVApICs9IG10ay1wbWljLXdyYXAubwo+ ICBvYmotJChDT05GSUdfTVRLX1NDUFNZUykgKz0gbXRrLXNjcHN5cy5vCj4gIG9iai0kKENPTkZJ R19NVEtfTU1TWVMpICs9IG10ay1tbXN5cy5vCj4gK29iai0kKENPTkZJR19NVEtfTU1TWVMpICs9 IG1tc3lzLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9NYWtlZmls ZSBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwLi4zM2IwZGFiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Ry aXZlcnMvc29jL21lZGlhdGVrL21tc3lzL01ha2VmaWxlCj4gQEAgLTAsMCArMSwyIEBACj4gKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ICtvYmoteSArPSBtdDI3MDEt bW1zeXMubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9tdDI3MDEt bW1zeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1tbXN5cy5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5iOGU1M2IwCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL21tc3lzL210MjcwMS1tbXN5cy5jCj4gQEAg LTAsMCArMSwyNTAgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiAr Ly8KPiArLy8gQ29weXJpZ2h0IChjKSAyMDIwIE1lZGlhVGVrIEluYy4KPiArCj4gKyNpbmNsdWRl IDxsaW51eC9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lvLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9vZl9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ ICsjaW5jbHVkZSA8bGludXgvc29jL21lZGlhdGVrL210ay1tbXN5cy5oPgo+ICsKPiArI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU4gICAgICAweDA0MAo+ICsjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19ESVNQX09WTDFfTU9VVF9FTiAgICAgIDB4MDQ0Cj4gKyNkZWZpbmUg RElTUF9SRUdfQ09ORklHX0RJU1BfT0RfTU9VVF9FTiAgICAgICAgICAgICAgICAweDA0OAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU4gICAgIDB4MDRjCj4gKyNk ZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VOICAgICAgMHgwNTAKPiArI2Rl ZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9DT0xPUjBfU0VMX0lOICAgICAweDA4NAo+ICsjZGVm aW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX0NPTE9SMV9TRUxfSU4gICAgIDB4MDg4Cj4gKyNkZWZp bmUgRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOICAgICAgICAgICAgMHgwYTQKPiArI2RlZmlu ZSBESVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU4gICAgICAgICAgICAweDBhOAo+ICsjZGVmaW5l IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOICAgICAgICAgICAgIDB4MGFjCj4gKyNkZWZpbmUg RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVCAgICAgICAgICAgICAgICAweDBiOAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU4gICAgIDB4MGM0Cj4gKyNk ZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTiAgICAgMHgwYzgKPiArI2Rl ZmluZSBESVNQX1JFR19DT05GSUdfTU1TWVNfQ0dfQ09OMCAgICAgICAgICAweDEwMAo+ICsKPiAr I2RlZmluZSBESVNQX1JFR19DT05GSUdfRElTUF9PVkxfTU9VVF9FTiAgICAgICAweDAzMAo+ICsj ZGVmaW5lIERJU1BfUkVHX0NPTkZJR19PVVRfU0VMICAgICAgICAgICAgICAgICAgICAgICAgMHgw NGMKPiArI2RlZmluZSBESVNQX1JFR19DT05GSUdfRFNJX1NFTCAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDUwCj4gKyNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RQSV9TRUwgICAgICAgICAgICAg ICAgICAgICAgICAweDA2NAo+ICsKPiArI2RlZmluZSBPVkwwX01PVVRfRU5fQ09MT1IwICAgICAg ICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBPRF9NT1VUX0VOX1JETUEwICAgICAgICAgICAg ICAgICAgICAgICAweDEKPiArI2RlZmluZSBPRDFfTU9VVF9FTl9SRE1BMSAgICAgICAgICAgICAg ICAgICAgICBCSVQoMTYpCj4gKyNkZWZpbmUgVUZPRV9NT1VUX0VOX0RTSTAgICAgICAgICAgICAg ICAgICAgICAgMHgxCj4gKyNkZWZpbmUgQ09MT1IwX1NFTF9JTl9PVkwwICAgICAgICAgICAgICAg ICAgICAgMHgxCj4gKyNkZWZpbmUgT1ZMMV9NT1VUX0VOX0NPTE9SMSAgICAgICAgICAgICAgICAg ICAgMHgxCj4gKyNkZWZpbmUgR0FNTUFfTU9VVF9FTl9SRE1BMSAgICAgICAgICAgICAgICAgICAg MHgxCj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EUEkwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDIKPiArI2RlZmluZSBSRE1BMF9TT1VUX0RQSTEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4Mwo+ICsjZGVmaW5lIFJETUEwX1NPVVRfRFNJMSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgxCj4gKyNkZWZpbmUgUkRNQTBfU09VVF9EU0kyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDQKPiArI2RlZmluZSBSRE1BMF9TT1VUX0RTSTMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NQo+ICsjZGVmaW5lIFJETUExX1NPVVRfRFBJMCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyCj4gKyNkZWZpbmUgUkRNQTFfU09VVF9E UEkxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMKPiArI2RlZmluZSBSRE1BMV9T T1VUX0RTSTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MQo+ICsjZGVmaW5lIFJE TUExX1NPVVRfRFNJMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Cj4gKyNkZWZp bmUgUkRNQTFfU09VVF9EU0kzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUKPiAr I2RlZmluZSBSRE1BMl9TT1VUX0RQSTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 Mgo+ICsjZGVmaW5lIFJETUEyX1NPVVRfRFBJMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgzCj4gKyNkZWZpbmUgUkRNQTJfU09VVF9EU0kxICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDEKPiArI2RlZmluZSBSRE1BMl9TT1VUX0RTSTIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NAo+ICsjZGVmaW5lIFJETUEyX1NPVVRfRFNJMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg1Cj4gKyNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTEgICAgICAg ICAgICAgICAgICAgICAgMHgxCj4gKyNkZWZpbmUgRFBJMF9TRUxfSU5fUkRNQTIgICAgICAgICAg ICAgICAgICAgICAgMHgzCj4gKyNkZWZpbmUgRFBJMV9TRUxfSU5fUkRNQTEgICAgICAgICAgICAg ICAgICAgICAgKDB4MSA8PCA4KQo+ICsjZGVmaW5lIERQSTFfU0VMX0lOX1JETUEyICAgICAgICAg ICAgICAgICAgICAgICgweDMgPDwgOCkKPiArI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMSAgICAg ICAgICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBEU0kwX1NFTF9JTl9SRE1BMiAgICAgICAg ICAgICAgICAgICAgICAweDQKPiArI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMSAgICAgICAgICAg ICAgICAgICAgICAweDEKPiArI2RlZmluZSBEU0kxX1NFTF9JTl9SRE1BMiAgICAgICAgICAgICAg ICAgICAgICAweDQKPiArI2RlZmluZSBEU0kyX1NFTF9JTl9SRE1BMSAgICAgICAgICAgICAgICAg ICAgICAoMHgxIDw8IDE2KQo+ICsjZGVmaW5lIERTSTJfU0VMX0lOX1JETUEyICAgICAgICAgICAg ICAgICAgICAgICgweDQgPDwgMTYpCj4gKyNkZWZpbmUgRFNJM19TRUxfSU5fUkRNQTEgICAgICAg ICAgICAgICAgICAgICAgKDB4MSA8PCAxNikKPiArI2RlZmluZSBEU0kzX1NFTF9JTl9SRE1BMiAg ICAgICAgICAgICAgICAgICAgICAoMHg0IDw8IDE2KQo+ICsjZGVmaW5lIENPTE9SMV9TRUxfSU5f T1ZMMSAgICAgICAgICAgICAgICAgICAgIDB4MQo+ICsKPiArI2RlZmluZSBPVkxfTU9VVF9FTl9S RE1BICAgICAgICAgICAgICAgICAgICAgICAweDEKPiArI2RlZmluZSBCTFNfVE9fRFNJX1JETUEx X1RPX0RQSTEgICAgICAgICAgICAgICAweDgKPiArI2RlZmluZSBCTFNfVE9fRFBJX1JETUExX1RP X0RTSSAgICAgICAgICAgICAgICAgICAgICAgIDB4Mgo+ICsjZGVmaW5lIERTSV9TRUxfSU5fQkxT ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIERQSV9TRUxfSU5fQkxTICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MAo+ICsjZGVmaW5lIERTSV9TRUxfSU5fUkRNQSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgaW50 IG10a19tbXN5c19kZHBfbW91dF9lbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQg bmV4dCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgKmFkZHIpCj4gK3sKPiArICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZTsKPiArCj4gKyAg ICAgICBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfQ09MT1IwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfT1ZMMF9NT1VUX0VOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IE9WTDBfTU9VVF9FTl9D T0xPUjA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX09WTDAgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX1JETUEwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVl ID0gT1ZMX01PVVRfRU5fUkRNQTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfT0QwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCkgewo+ICsgICAgICAgICAg ICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47Cj4gKyAgICAgICAg ICAgICAgIHZhbHVlID0gT0RfTU9VVF9FTl9SRE1BMDsKPiArICAgICAgIH0gZWxzZSBpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfVUZPRSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMCkgewo+ ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1VGT0VfTU9VVF9F TjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBVRk9FX01PVVRfRU5fRFNJMDsKPiArICAgICAg IH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01Q T05FTlRfQ09MT1IxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfT1ZMMV9NT1VUX0VOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IE9WTDFfTU9VVF9F Tl9DT0xPUjE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0dBTU1B ICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgewo+ICsgICAgICAgICAgICAgICAqYWRk ciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU47Cj4gKyAgICAgICAgICAgICAg IHZhbHVlID0gR0FNTUFfTU9VVF9FTl9SRE1BMTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09 IEREUF9DT01QT05FTlRfT0QxICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSkgewo+ICsg ICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX09EX01PVVRfRU47Cj4g KyAgICAgICAgICAgICAgIHZhbHVlID0gT0QxX01PVVRfRU5fUkRNQTE7Cj4gKyAgICAgICB9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf UkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RQSTA7 Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBS RE1BMF9TT1VUX0RQSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAg ICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4g KyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9F TjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTI7Cj4gKyAgICAgICB9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kzKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTBfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMF9TT1VUX0RT STM7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElT UF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUg PSBSRE1BMV9TT1VUX0RTSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAg ICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09V VF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VUX0RTSTM7Cj4gKyAgICAg ICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NP TVBPTkVOVF9EUEkwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMV9TT1VU X0RQSTA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYm IG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFfU09VVF9FTjsKPiArICAgICAgICAgICAgICAgdmFs dWUgPSBSRE1BMV9TT1VUX0RQSTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7Cj4gKyAgICAgICAg ICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09V VDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTE7Cj4gKyAgICAgICB9 IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBP TkVOVF9EU0kxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTE7 Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBSRE1B Ml9TT1VUX0RTSTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JE TUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7Cj4gKyAgICAgICAgICAgICAgICph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsKPiArICAgICAgICAgICAgICAg dmFsdWUgPSBSRE1BMl9TT1VUX0RTSTM7Cj4gKyAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAg ICAgICB2YWx1ZSA9IDA7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgcmV0dXJuIHZhbHVlOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgdW5zaWduZWQgaW50IG10a19tbXN5c19kZHBfc2VsX2luKGVudW0g bXRrX2RkcF9jb21wX2lkIGN1ciwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmFkZHIpCj4gK3sKPiArICAgICAgIHVu c2lnbmVkIGludCB2YWx1ZTsKPiArCj4gKyAgICAgICBpZiAoY3VyID09IEREUF9DT01QT05FTlRf T1ZMMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1IwKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTjsKPiArICAgICAgICAg ICAgICAgdmFsdWUgPSBDT0xPUjBfU0VMX0lOX09WTDA7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkwKSB7 Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47Cj4g KyAgICAgICAgICAgICAgIHZhbHVlID0gRFBJMF9TRUxfSU5fUkRNQTE7Cj4gKyAgICAgICB9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVO VF9EUEkxKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9T RUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVlID0gRFBJMV9TRUxfSU5fUkRNQTE7Cj4gKyAg ICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9EU0kwKSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09O RklHX0RTSUVfU0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERTSTBfU0VMX0lOX1JE TUExOwo+ICsgICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBu ZXh0ID09IEREUF9DT01QT05FTlRfRFNJMSkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJ U1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBEU0kx X1NFTF9JTl9SRE1BMTsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRf UkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsKPiArICAgICAgICAgICAgICAg KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZh bHVlID0gRFNJMl9TRUxfSU5fUkRNQTE7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7Cj4gKyAgICAg ICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSU9fU0VMX0lOOwo+ICsgICAgICAg ICAgICAgICB2YWx1ZSA9IERTSTNfU0VMX0lOX1JETUExOwo+ICsgICAgICAgfSBlbHNlIGlmIChj dXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkg ewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOwo+ ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUEyOwo+ICsgICAgICAgfSBl bHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05F TlRfRFBJMSkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElf U0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERQSTFfU0VMX0lOX1JETUEyOwo+ICsg ICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EU0lFX1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBEU0kwX1NFTF9JTl9S RE1BMjsKPiArICAgICAgIH0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYg bmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsKPiArICAgICAgICAgICAgICAgKmFkZHIgPSBE SVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU47Cj4gKyAgICAgICAgICAgICAgIHZhbHVlID0gRFNJ MV9TRUxfSU5fUkRNQTI7Cj4gKyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5U X1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7Cj4gKyAgICAgICAgICAgICAg ICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOwo+ICsgICAgICAgICAgICAgICB2 YWx1ZSA9IERTSTJfU0VMX0lOX1JETUEyOwo+ICsgICAgICAgfSBlbHNlIGlmIChjdXIgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMykgewo+ICsgICAg ICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsKPiArICAgICAg ICAgICAgICAgdmFsdWUgPSBEU0kzX1NFTF9JTl9SRE1BMjsKPiArICAgICAgIH0gZWxzZSBpZiAo Y3VyID09IEREUF9DT01QT05FTlRfT1ZMMSAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfQ09MT1Ix KSB7Cj4gKyAgICAgICAgICAgICAgICphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1Ix X1NFTF9JTjsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSBDT0xPUjFfU0VMX0lOX09WTDE7Cj4g KyAgICAgICB9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICAqYWRkciA9IERJU1BfUkVHX0NP TkZJR19EU0lfU0VMOwo+ICsgICAgICAgICAgICAgICB2YWx1ZSA9IERTSV9TRUxfSU5fQkxTOwo+ ICsgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgdmFsdWUgPSAwOwo+ICsgICAgICAg fQo+ICsKPiArICAgICAgIHJldHVybiB2YWx1ZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbXRr X21tc3lzX2RkcF9zb3V0X3NlbCh2b2lkIF9faW9tZW0gKmNvbmZpZ19yZWdzLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4 dCkKPiArewo+ICsgICAgICAgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX0JMUyAmJiBuZXh0ID09 IEREUF9DT01QT05FTlRfRFNJMCkgewo+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChC TFNfVE9fRFNJX1JETUExX1RPX0RQSTEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbmZpZ19yZWdzICsgRElTUF9SRUdfQ09ORklHX09VVF9TRUwpOwo+ICsgICAgICAgfSBlbHNl IGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9CTFMgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQ STApIHsKPiArICAgICAgICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoQkxTX1RPX0RQSV9SRE1BMV9U T19EU0ksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19yZWdzICsgRElT UF9SRUdfQ09ORklHX09VVF9TRUwpOwo+ICsgICAgICAgICAgICAgICB3cml0ZWxfcmVsYXhlZChE U0lfU0VMX0lOX1JETUEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19y ZWdzICsgRElTUF9SRUdfQ09ORklHX0RTSV9TRUwpOwo+ICsgICAgICAgICAgICAgICB3cml0ZWxf cmVsYXhlZChEUElfU0VMX0lOX0JMUywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uZmlnX3JlZ3MgKyBESVNQX1JFR19DT05GSUdfRFBJX1NFTCk7Cj4gKyAgICAgICB9Cj4gK30K PiArCj4gK3N0YXRpYyBzdHJ1Y3QgbXRrX21tc3lzX2Nvbm5fZnVuY3MgbW1zeXNfZnVuY3MgPSB7 Cj4gKyAgICAgICAubW91dF9lbiA9IG10a19tbXN5c19kZHBfbW91dF9lbiwKPiArICAgICAgIC5z ZWxfaW4gPSBtdGtfbW1zeXNfZGRwX3NlbF9pbiwKPiArICAgICAgIC5zb3V0X3NlbCA9IG10a19t bXN5c19kZHBfc291dF9zZWwsCgpJIHRoaW5rIHlvdSBjb3VsZCBpbXBsZW1lbnQgdGhlc2UgdGhy ZWUgZnVuY3Rpb24gdG8gYmUgdGhlIHNhbWUgYXMgdGhlCnRocmVlIG9mIG10ODE4MyB3aXRoIG10 MjcwMSB2ZXJzaW9uIG9mIG1tc3lzX21vdXRfZW5bXSwKbW1zeXNfc2VsX2luW10sIG1tc3lzX3Nv dXRfc2VsW10uIElmIHlvdSB3b3JyeSB0aGF0IHlvdSBjb3VsZCBub3QgdGVzdApvbiBtdDI3MDEs IHdlIGNvdWxkIHRlbXBvcmFyaWx5IGFjY2VwdCB0aGlzIGFuZCB3YWl0IGZvciBzb21lb25lIGhh cwptdDI3MDEgKG9yIG10ODE3MykgdG8gcmV3cml0ZSB0aGVzZSB0aHJlZSBmdW5jdGlvbiB0byBi ZSB0aGUgc2FtZSBhcwptdDgxODMuCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArfTsKPiArCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=