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=-18.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,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 C399DC433DB for ; Sat, 30 Jan 2021 10:09:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8851664DE4 for ; Sat, 30 Jan 2021 10:09:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232274AbhA3KIn (ORCPT ); Sat, 30 Jan 2021 05:08:43 -0500 Received: from mail.kernel.org ([198.145.29.99]:48406 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230114AbhA3KGc (ORCPT ); Sat, 30 Jan 2021 05:06:32 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0410364E0C; Sat, 30 Jan 2021 10:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612001149; bh=/QEbBItZgyb0oI8KAuKDpk4DtDTW9iuhXIrM7+HRj6Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=uf66muYjBLSFDN1tuCKLNKmenCUK2Tl2dcCVTzqZayiHcWOSZzZlqzdiny3M4pH8v 3PVLo+PdH2Oq6yF8GY/xuncTRukJWvlEGrSm0uFPIlaqppCLdYfCIIGr+ylO19UgTg Px3DWlsgAbXxs7iiWjy4DSiG5hYlcTIHeB5BGzvCkZntfo8hThzBqQNzmUWoKWS9Mb zhN9+J8PtSzJ+sCC6ZyBb18of1hV1xgQvXXjpAP7oY1uhnCfDuCh/+SjUI9iFbj+FO jX4LYTNy+RqixvGsXjjes5kO+3ArDOut14CwnsetT+DtwxdeGn1nxirKXj7XMJmASj xsBytYi8V/RAg== Received: by mail-ej1-f54.google.com with SMTP id rv9so16584736ejb.13; Sat, 30 Jan 2021 02:05:48 -0800 (PST) X-Gm-Message-State: AOAM530ahvfvjYJC+LL32FHuGFiiosfQjJ7v0lcN5fMB+S5lWdvkNnYS MFCmCEmdutPVTsaqKItd5xKJZk15hd/HtwMiLQ== X-Google-Smtp-Source: ABdhPJx4ZRZnhyAay/ZYFKC/OlCSQkwfbYOSwwxbJU5pv0BqOKlmlC90ebOQ5LbXchWco/Z6VAoK1Y4uAB2EtE1ODJM= X-Received: by 2002:a17:906:a106:: with SMTP id t6mr8473323ejy.63.1612001147416; Sat, 30 Jan 2021 02:05:47 -0800 (PST) MIME-Version: 1.0 References: <20210129092209.2584718-1-hsinyi@chromium.org> <20210129092209.2584718-5-hsinyi@chromium.org> In-Reply-To: <20210129092209.2584718-5-hsinyi@chromium.org> From: Chun-Kuang Hu Date: Sat, 30 Jan 2021 18:05:34 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v13 4/8] drm/mediatek: separate gamma module To: Hsin-Yi Wang Cc: CK Hu , Philipp Zabel , Matthias Brugger , Mark Rutland , DTML , Yongqiang Niu , 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 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Hsin-Yi: Hsin-Yi Wang =E6=96=BC 2021=E5=B9=B41=E6=9C=8829=E6= =97=A5 =E9=80=B1=E4=BA=94 =E4=B8=8B=E5=8D=885:23=E5=AF=AB=E9=81=93=EF=BC=9A > > From: Yongqiang Niu > > mt8183 gamma module will different with mt8173 > separate gamma for add private data After I clean up all checkpatch error, applied to mediatek-drm-next [1]. Remember to clean up all checkpatch error before send out patches. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/= log/?h=3Dmediatek-drm-next Regards, Chun-Kuang. > > Signed-off-by: Yongqiang Niu > Signed-off-by: Hsin-Yi Wang > Reviewed-by: CK Hu > --- > drivers/gpu/drm/mediatek/Makefile | 1 + > drivers/gpu/drm/mediatek/mtk_disp_drv.h | 10 + > drivers/gpu/drm/mediatek/mtk_disp_gamma.c | 191 ++++++++++++++++++++ > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 71 ++------ > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 +- > drivers/gpu/drm/mediatek/mtk_drm_drv.h | 1 + > 6 files changed, 217 insertions(+), 61 deletions(-) > create mode 100644 drivers/gpu/drm/mediatek/mtk_disp_gamma.c > > diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek= /Makefile > index 01d06332f7679..b64674b944860 100644 > --- a/drivers/gpu/drm/mediatek/Makefile > +++ b/drivers/gpu/drm/mediatek/Makefile > @@ -1,6 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > > mediatek-drm-y :=3D mtk_disp_color.o \ > + mtk_disp_gamma.o \ > mtk_disp_ovl.o \ > mtk_disp_rdma.o \ > mtk_drm_crtc.o \ > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h b/drivers/gpu/drm/me= diatek/mtk_disp_drv.h > index 9e5537f76b22a..02191010699f8 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > @@ -27,6 +27,16 @@ void mtk_dpi_stop(struct device *dev); > void mtk_dsi_ddp_start(struct device *dev); > void mtk_dsi_ddp_stop(struct device *dev); > > +int mtk_gamma_clk_enable(struct device *dev); > +void mtk_gamma_clk_disable(struct device *dev); > +void mtk_gamma_config(struct device *dev, unsigned int w, > + unsigned int h, unsigned int vrefresh, > + unsigned int bpc, struct cmdq_pkt *cmdq_pkt); > +void mtk_gamma_set(struct device *dev, struct drm_crtc_state *state); > +void mtk_gamma_set_common(void __iomem *regs, struct drm_crtc_state *sta= te); > +void mtk_gamma_start(struct device *dev); > +void mtk_gamma_stop(struct device *dev); > + > void mtk_ovl_bgclr_in_on(struct device *dev); > void mtk_ovl_bgclr_in_off(struct device *dev); > void mtk_ovl_bypass_shadow(struct device *dev); > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_gamma.c b/drivers/gpu/drm/= mediatek/mtk_disp_gamma.c > new file mode 100644 > index 0000000000000..6b520807921e3 > --- /dev/null > +++ b/drivers/gpu/drm/mediatek/mtk_disp_gamma.c > @@ -0,0 +1,191 @@ > +/* > + * SPDX-License-Identifier: > + * > + * Copyright (c) 2020 MediaTek Inc. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include "mtk_disp_drv.h" > +#include "mtk_drm_crtc.h" > +#include "mtk_drm_ddp_comp.h" > + > +#define DISP_GAMMA_EN 0x0000 > +#define GAMMA_EN BIT(0) > +#define DISP_GAMMA_CFG 0x0020 > +#define GAMMA_LUT_EN BIT(1) > +#define GAMMA_DITHERING BIT(2) > +#define DISP_GAMMA_SIZE 0x0030 > +#define DISP_GAMMA_LUT 0x0700 > + > +#define LUT_10BIT_MASK 0x03ff > + > +struct mtk_disp_gamma_data { > + u32 reserved; > +}; > + > +/** > + * struct mtk_disp_gamma - DISP_GAMMA driver structure > + * @ddp_comp - structure containing type enum and hardware resources > + * @crtc - associated crtc to report irq events to > + */ > +struct mtk_disp_gamma { > + struct clk *clk; > + void __iomem *regs; > + struct cmdq_client_reg cmdq_reg; > + const struct mtk_disp_gamma_data *data; > +}; > + > +int mtk_gamma_clk_enable(struct device *dev) > +{ > + struct mtk_disp_gamma *gamma =3D dev_get_drvdata(dev); > + > + return clk_prepare_enable(gamma->clk); > +} > + > +void mtk_gamma_clk_disable(struct device *dev) > +{ > + struct mtk_disp_gamma *gamma =3D dev_get_drvdata(dev); > + > + clk_disable_unprepare(gamma->clk); > +} > + > +void mtk_gamma_set_common(void __iomem *regs, struct drm_crtc_state *sta= te) > +{ > + unsigned int i, reg; > + struct drm_color_lut *lut; > + void __iomem *lut_base; > + u32 word; > + > + if (state->gamma_lut) { > + reg =3D readl(regs + DISP_GAMMA_CFG); > + reg =3D reg | GAMMA_LUT_EN; > + writel(reg, regs + DISP_GAMMA_CFG); > + lut_base =3D regs + DISP_GAMMA_LUT; > + lut =3D (struct drm_color_lut *)state->gamma_lut->data; > + for (i =3D 0; i < MTK_LUT_SIZE; i++) { > + word =3D (((lut[i].red >> 6) & LUT_10BIT_MASK) <<= 20) + > + (((lut[i].green >> 6) & LUT_10BIT_MASK) <= < 10) + > + ((lut[i].blue >> 6) & LUT_10BIT_MASK); > + writel(word, (lut_base + i * 4)); > + } > + } > +} > + > +void mtk_gamma_set(struct device *dev, struct drm_crtc_state *state) > +{ > + struct mtk_disp_gamma *gamma =3D dev_get_drvdata(dev); > + > + mtk_gamma_set_common(gamma->regs, state); > +} > + > +void mtk_gamma_config(struct device *dev, unsigned int w, > + unsigned int h, unsigned int vrefresh, > + unsigned int bpc, struct cmdq_pkt *cmdq_pkt) > +{ > + struct mtk_disp_gamma *gamma =3D dev_get_drvdata(dev); > + > + mtk_ddp_write(cmdq_pkt, h << 16 | w, &gamma->cmdq_reg, gamma->reg= s, > + DISP_GAMMA_SIZE); > + mtk_dither_set_common(gamma->regs, &gamma->cmdq_reg, bpc, DISP_GA= MMA_CFG, > + GAMMA_DITHERING, cmdq_pkt); > +} > + > +void mtk_gamma_start(struct device *dev) > +{ > + struct mtk_disp_gamma *gamma =3D dev_get_drvdata(dev); > + > + writel(GAMMA_EN, gamma->regs + DISP_GAMMA_EN); > +} > + > +void mtk_gamma_stop(struct device *dev) > +{ > + struct mtk_disp_gamma *gamma =3D dev_get_drvdata(dev); > + > + writel_relaxed(0x0, gamma->regs + DISP_GAMMA_EN); > +} > + > +static int mtk_disp_gamma_bind(struct device *dev, struct device *master= , > + void *data) > +{ > + return 0; > +} > + > +static void mtk_disp_gamma_unbind(struct device *dev, struct device *mas= ter, > + void *data) > +{ > +} > + > +static const struct component_ops mtk_disp_gamma_component_ops =3D { > + .bind =3D mtk_disp_gamma_bind, > + .unbind =3D mtk_disp_gamma_unbind, > +}; > + > +static int mtk_disp_gamma_probe(struct platform_device *pdev) > +{ > + struct device *dev =3D &pdev->dev; > + struct mtk_disp_gamma *priv; > + struct resource *res; > + int ret; > + > + priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); > + if (!priv) > + return -ENOMEM; > + > + priv->clk =3D devm_clk_get(dev, NULL); > + if (IS_ERR(priv->clk)) { > + dev_err(dev, "failed to get gamma clk\n"); > + return PTR_ERR(priv->clk); > + } > + > + res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); > + priv->regs =3D devm_ioremap_resource(dev, res); > + if (IS_ERR(priv->regs)) { > + dev_err(dev, "failed to ioremap gamma\n"); > + return PTR_ERR(priv->regs); > + } > + > +#if IS_REACHABLE(CONFIG_MTK_CMDQ) > + ret =3D cmdq_dev_get_client_reg(dev, &priv->cmdq_reg, 0); > + if (ret) > + dev_dbg(dev, "get mediatek,gce-client-reg fail!\n"); > +#endif > + > + priv->data =3D of_device_get_match_data(dev); > + platform_set_drvdata(pdev, priv); > + > + ret =3D component_add(dev, &mtk_disp_gamma_component_ops); > + if (ret) > + dev_err(dev, "Failed to add component: %d\n", ret); > + > + return ret; > +} > + > +static int mtk_disp_gamma_remove(struct platform_device *pdev) > +{ > + component_del(&pdev->dev, &mtk_disp_gamma_component_ops); > + > + return 0; > +} > + > +static const struct of_device_id mtk_disp_gamma_driver_dt_match[] =3D { > + { .compatible =3D "mediatek,mt8173-disp-gamma"}, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, mtk_disp_gamma_driver_dt_match); > + > +struct platform_driver mtk_disp_gamma_driver =3D { > + .probe =3D mtk_disp_gamma_probe, > + .remove =3D mtk_disp_gamma_remove, > + .driver =3D { > + .name =3D "mediatek-disp-gamma", > + .owner =3D THIS_MODULE, > + .of_match_table =3D mtk_disp_gamma_driver_dt_match, > + }, > +}; > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/dr= m/mediatek/mtk_drm_ddp_comp.c > index 07804ab16f44d..ac2cb25620357 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > @@ -55,11 +55,6 @@ > #define DITHER_RELAY_MODE BIT(0) > #define DISP_DITHER_SIZE 0x0030 > > -#define DISP_GAMMA_EN 0x0000 > -#define DISP_GAMMA_CFG 0x0020 > -#define DISP_GAMMA_SIZE 0x0030 > -#define DISP_GAMMA_LUT 0x0700 > - > #define LUT_10BIT_MASK 0x03ff > > #define OD_RELAYMODE BIT(0) > @@ -68,9 +63,6 @@ > > #define AAL_EN BIT(0) > > -#define GAMMA_EN BIT(0) > -#define GAMMA_LUT_EN BIT(1) > - > #define DISP_DITHERING BIT(2) > #define DITHER_LSB_ERR_SHIFT_R(x) (((x) & 0x7) << 28) > #define DITHER_OVFLW_BIT_R(x) (((x) & 0x7) << 24) > @@ -151,7 +143,6 @@ static void mtk_ddp_clk_disable(struct device *dev) > clk_disable_unprepare(priv->clk); > } > > - > void mtk_dither_set_common(void __iomem *regs, struct cmdq_client_reg *c= mdq_reg, > unsigned int bpc, unsigned int cfg, > unsigned int dither_en, struct cmdq_pkt *cmdq_= pkt) > @@ -221,6 +212,13 @@ static void mtk_aal_config(struct device *dev, unsig= ned int w, > mtk_ddp_write(cmdq_pkt, w << 16 | h, &priv->cmdq_reg, priv->regs,= DISP_AAL_SIZE); > } > > +static void mtk_aal_gamma_set(struct device *dev, struct drm_crtc_state = *state) > +{ > + struct mtk_ddp_comp_dev *priv =3D dev_get_drvdata(dev); > + > + mtk_gamma_set_common(priv->regs, state); > +} > + > static void mtk_aal_start(struct device *dev) > { > struct mtk_ddp_comp_dev *priv =3D dev_get_drvdata(dev); > @@ -335,58 +333,10 @@ static void mtk_dither_stop(struct device *dev) > writel_relaxed(0x0, priv->regs + DISP_DITHER_EN); > } > > -static void mtk_gamma_config(struct device *dev, unsigned int w, > - unsigned int h, unsigned int vrefresh, > - unsigned int bpc, struct cmdq_pkt *cmdq_pkt) > -{ > - struct mtk_ddp_comp_dev *priv =3D dev_get_drvdata(dev); > - > - mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs,= DISP_GAMMA_SIZE); > - mtk_dither_set(dev, bpc, DISP_GAMMA_CFG, cmdq_pkt); > -} > - > -static void mtk_gamma_start(struct device *dev) > -{ > - struct mtk_ddp_comp_dev *priv =3D dev_get_drvdata(dev); > - > - writel(GAMMA_EN, priv->regs + DISP_GAMMA_EN); > -} > - > -static void mtk_gamma_stop(struct device *dev) > -{ > - struct mtk_ddp_comp_dev *priv =3D dev_get_drvdata(dev); > - > - writel_relaxed(0x0, priv->regs + DISP_GAMMA_EN); > -} > - > -static void mtk_gamma_set(struct device *dev, > - struct drm_crtc_state *state) > -{ > - struct mtk_ddp_comp_dev *priv =3D dev_get_drvdata(dev); > - unsigned int i, reg; > - struct drm_color_lut *lut; > - void __iomem *lut_base; > - u32 word; > - > - if (state->gamma_lut) { > - reg =3D readl(priv->regs + DISP_GAMMA_CFG); > - reg =3D reg | GAMMA_LUT_EN; > - writel(reg, priv->regs + DISP_GAMMA_CFG); > - lut_base =3D priv->regs + DISP_GAMMA_LUT; > - lut =3D (struct drm_color_lut *)state->gamma_lut->data; > - for (i =3D 0; i < MTK_LUT_SIZE; i++) { > - word =3D (((lut[i].red >> 6) & LUT_10BIT_MASK) <<= 20) + > - (((lut[i].green >> 6) & LUT_10BIT_MASK) <= < 10) + > - ((lut[i].blue >> 6) & LUT_10BIT_MASK); > - writel(word, (lut_base + i * 4)); > - } > - } > -} > - > static const struct mtk_ddp_comp_funcs ddp_aal =3D { > .clk_enable =3D mtk_ddp_clk_enable, > .clk_disable =3D mtk_ddp_clk_disable, > - .gamma_set =3D mtk_gamma_set, > + .gamma_set =3D mtk_aal_gamma_set, > .config =3D mtk_aal_config, > .start =3D mtk_aal_start, > .stop =3D mtk_aal_stop, > @@ -427,8 +377,8 @@ static const struct mtk_ddp_comp_funcs ddp_dsi =3D { > }; > > static const struct mtk_ddp_comp_funcs ddp_gamma =3D { > - .clk_enable =3D mtk_ddp_clk_enable, > - .clk_disable =3D mtk_ddp_clk_disable, > + .clk_enable =3D mtk_gamma_clk_enable, > + .clk_disable =3D mtk_gamma_clk_disable, > .gamma_set =3D mtk_gamma_set, > .config =3D mtk_gamma_config, > .start =3D mtk_gamma_start, > @@ -644,6 +594,7 @@ int mtk_ddp_comp_init(struct device_node *node, struc= t mtk_ddp_comp *comp, > > if (type =3D=3D MTK_DISP_BLS || > type =3D=3D MTK_DISP_COLOR || > + type =3D=3D MTK_DISP_GAMMA || > type =3D=3D MTK_DPI || > type =3D=3D MTK_DSI || > type =3D=3D MTK_DISP_OVL || > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/med= iatek/mtk_drm_drv.c > index 5d39dd54255d1..279d3e6f11563 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -486,11 +486,12 @@ static int mtk_drm_probe(struct platform_device *pd= ev) > private->comp_node[comp_id] =3D of_node_get(node); > > /* > - * Currently only the COLOR, OVL, RDMA, DSI, and DPI bloc= ks have > + * Currently only the COLOR, GAMMA, OVL, RDMA, DSI, and D= PI blocks have > * separate component platform drivers and initialize the= ir own > * DDP component structure. The others are initialized he= re. > */ > if (comp_type =3D=3D MTK_DISP_COLOR || > + comp_type =3D=3D MTK_DISP_GAMMA || > comp_type =3D=3D MTK_DISP_OVL || > comp_type =3D=3D MTK_DISP_OVL_2L || > comp_type =3D=3D MTK_DISP_RDMA || > @@ -589,6 +590,7 @@ static struct platform_driver mtk_drm_platform_driver= =3D { > > static struct platform_driver * const mtk_drm_drivers[] =3D { > &mtk_disp_color_driver, > + &mtk_disp_gamma_driver, > &mtk_disp_ovl_driver, > &mtk_disp_rdma_driver, > &mtk_dpi_driver, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/med= iatek/mtk_drm_drv.h > index e8238fa4aa2ac..0e54e3d51014a 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h > @@ -47,6 +47,7 @@ struct mtk_drm_private { > }; > > extern struct platform_driver mtk_disp_color_driver; > +extern struct platform_driver mtk_disp_gamma_driver; > extern struct platform_driver mtk_disp_ovl_driver; > extern struct platform_driver mtk_disp_rdma_driver; > extern struct platform_driver mtk_dpi_driver; > -- > 2.30.0.365.g02bc693789-goog > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, 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 7AC56C433E0 for ; Sat, 30 Jan 2021 10:06:09 +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 0878B64DE7 for ; Sat, 30 Jan 2021 10:06:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0878B64DE7 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=5FS96wn1UhWf9IBMJDrVnxo8eDRqMUr6i7rV9GQVst4=; b=tLtvJjbppbifq+D9rvt9T8Xtc 4rM0bDL8y2jqWlL/prIYIUL1QqevcorCy3Yjtbbtg0o1kf2hw5lt57zO5A3YdDLpd1xPYWalXF6v3 fjS2L1NrDAeaIxouDqUlRPUmPGbG2pamOXBklesGeD3kMyEkM5QM0066sFxt9D5igWHenHXNDNoRN b2eG94YE/iSYOLeM5CW4VdbrteGTrlsuNKGtIdcOoRcOUacYpnr+wR+g/B9sh+WfuSjDbMXnPJL9D c31AKC8fORIe3ld2X7xXgiDHe9Odjq5H+repw+4TMZ27s2JBxvTBaZdmrdEEZleuW0mYLsoHQ5Mjt jecHn1K2w==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l5n8f-0003cj-Ui; Sat, 30 Jan 2021 10:05:57 +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 1l5n8Z-0003aq-2T; Sat, 30 Jan 2021 10:05:52 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id E9DD364E08; Sat, 30 Jan 2021 10:05:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612001149; bh=/QEbBItZgyb0oI8KAuKDpk4DtDTW9iuhXIrM7+HRj6Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=uf66muYjBLSFDN1tuCKLNKmenCUK2Tl2dcCVTzqZayiHcWOSZzZlqzdiny3M4pH8v 3PVLo+PdH2Oq6yF8GY/xuncTRukJWvlEGrSm0uFPIlaqppCLdYfCIIGr+ylO19UgTg Px3DWlsgAbXxs7iiWjy4DSiG5hYlcTIHeB5BGzvCkZntfo8hThzBqQNzmUWoKWS9Mb zhN9+J8PtSzJ+sCC6ZyBb18of1hV1xgQvXXjpAP7oY1uhnCfDuCh/+SjUI9iFbj+FO jX4LYTNy+RqixvGsXjjes5kO+3ArDOut14CwnsetT+DtwxdeGn1nxirKXj7XMJmASj xsBytYi8V/RAg== Received: by mail-ej1-f47.google.com with SMTP id i8so172519ejc.7; Sat, 30 Jan 2021 02:05:48 -0800 (PST) X-Gm-Message-State: AOAM533Qu3pXDy+n6GHiw0cn4IwX7rtaAkH6CcIXitv82eCUqBxK97y2 RZA2gebtFc7vzwWhEqv+SbCnt/m9ltuxkLWtjQ== X-Google-Smtp-Source: ABdhPJx4ZRZnhyAay/ZYFKC/OlCSQkwfbYOSwwxbJU5pv0BqOKlmlC90ebOQ5LbXchWco/Z6VAoK1Y4uAB2EtE1ODJM= X-Received: by 2002:a17:906:a106:: with SMTP id t6mr8473323ejy.63.1612001147416; Sat, 30 Jan 2021 02:05:47 -0800 (PST) MIME-Version: 1.0 References: <20210129092209.2584718-1-hsinyi@chromium.org> <20210129092209.2584718-5-hsinyi@chromium.org> In-Reply-To: <20210129092209.2584718-5-hsinyi@chromium.org> From: Chun-Kuang Hu Date: Sat, 30 Jan 2021 18:05:34 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v13 4/8] drm/mediatek: separate gamma module To: Hsin-Yi Wang X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210130_050551_272648_0B5C552E X-CRM114-Status: GOOD ( 29.22 ) 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 , DTML , Philipp Zabel , David Airlie , linux-kernel , DRI Development , Matthias Brugger , "moderated list:ARM/Mediatek SoC support" , Yongqiang Niu , CK Hu , Daniel Vetter , 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 SGksIEhzaW4tWWk6CgpIc2luLVlpIFdhbmcgPGhzaW55aUBjaHJvbWl1bS5vcmc+IOaWvCAyMDIx 5bm0MeaciDI55pelIOmAseS6lCDkuIvljYg1OjIz5a+r6YGT77yaCj4KPiBGcm9tOiBZb25ncWlh bmcgTml1IDx5b25ncWlhbmcubml1QG1lZGlhdGVrLmNvbT4KPgo+IG10ODE4MyBnYW1tYSBtb2R1 bGUgd2lsbCBkaWZmZXJlbnQgd2l0aCBtdDgxNzMKPiBzZXBhcmF0ZSBnYW1tYSBmb3IgYWRkIHBy aXZhdGUgZGF0YQoKQWZ0ZXIgSSBjbGVhbiB1cCBhbGwgY2hlY2twYXRjaCBlcnJvciwgYXBwbGll ZCB0byBtZWRpYXRlay1kcm0tbmV4dApbMV0uIFJlbWVtYmVyIHRvIGNsZWFuIHVwIGFsbCBjaGVj a3BhdGNoIGVycm9yIGJlZm9yZSBzZW5kIG91dApwYXRjaGVzLgoKWzFdIGh0dHBzOi8vZ2l0Lmtl cm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2NodW5rdWFuZy5odS9saW51eC5naXQv bG9nLz9oPW1lZGlhdGVrLWRybS1uZXh0CgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPgo+IFNpZ25l ZC1vZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEhzaW4tWWkgV2FuZyA8aHNpbnlpQGNocm9taXVtLm9yZz4KPiBSZXZpZXdl ZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGlzcF9kcnYuaCAgICAgfCAgMTAgKwo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2Rpc3BfZ2FtbWEuYyAgIHwgMTkxICsrKysrKysrKysrKysrKysrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgfCAgNzEgKystLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgICAgICB8ICAgNCArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgICAgIHwgICAxICsKPiAg NiBmaWxlcyBjaGFuZ2VkLCAyMTcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZ2FtbWEu Ywo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQo+IGluZGV4IDAxZDA2MzMyZjc2NzkuLmI2 NDY3NGI5NDQ4NjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2Vm aWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gQEAgLTEsNiAr MSw3IEBACj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPgo+ICBtZWRpYXRl ay1kcm0teSA6PSBtdGtfZGlzcF9jb2xvci5vIFwKPiArICAgICAgICAgICAgICAgICBtdGtfZGlz cF9nYW1tYS5vIFwKPiAgICAgICAgICAgICAgICAgICBtdGtfZGlzcF9vdmwubyBcCj4gICAgICAg ICAgICAgICAgICAgbXRrX2Rpc3BfcmRtYS5vIFwKPiAgICAgICAgICAgICAgICAgICBtdGtfZHJt X2NydGMubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9kcnYuaAo+IGluZGV4 IDllNTUzN2Y3NmIyMmEuLjAyMTkxMDEwNjk5ZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX2Rydi5oCj4gQEAgLTI3LDYgKzI3LDE2IEBAIHZvaWQgbXRrX2RwaV9zdG9w KHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gIHZvaWQgbXRrX2RzaV9kZHBfc3RhcnQoc3RydWN0IGRl dmljZSAqZGV2KTsKPiAgdm9pZCBtdGtfZHNpX2RkcF9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7 Cj4KPiAraW50IG10a19nYW1tYV9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK3Zv aWQgbXRrX2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK3ZvaWQgbXRr X2dhbW1hX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwK PiArICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpOwo+ICt2b2lkIG10a19nYW1tYV9zZXQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsKPiArdm9pZCBtdGtfZ2FtbWFfc2V0X2NvbW1v bih2b2lkIF9faW9tZW0gKnJlZ3MsIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwo+ICt2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICt2b2lkIG10a19nYW1t YV9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gKwo+ICB2b2lkIG10a19vdmxfYmdjbHJfaW5f b24oc3RydWN0IGRldmljZSAqZGV2KTsKPiAgdm9pZCBtdGtfb3ZsX2JnY2xyX2luX29mZihzdHJ1 Y3QgZGV2aWNlICpkZXYpOwo+ICB2b2lkIG10a19vdmxfYnlwYXNzX3NoYWRvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3BfZ2FtbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9nYW1tYS5jCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi42YjUyMDgwNzkyMWUz Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9nYW1tYS5jCj4gQEAgLTAsMCArMSwxOTEgQEAKPiArLyoKPiArICogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6Cj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMCBNZWRpYVRlayBJbmMuCj4g KyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvY29t cG9uZW50Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L29mX2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9t dGstY21kcS5oPgo+ICsKPiArI2luY2x1ZGUgIm10a19kaXNwX2Rydi5oIgo+ICsjaW5jbHVkZSAi bXRrX2RybV9jcnRjLmgiCj4gKyNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiCj4gKwo+ICsj ZGVmaW5lIERJU1BfR0FNTUFfRU4gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAo+ICsj ZGVmaW5lIEdBTU1BX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklU KDApCj4gKyNkZWZpbmUgRElTUF9HQU1NQV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDIwCj4gKyNkZWZpbmUgR0FNTUFfTFVUX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCSVQoMSkKPiArI2RlZmluZSBHQU1NQV9ESVRIRVJJTkcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQklUKDIpCj4gKyNkZWZpbmUgRElTUF9HQU1NQV9TSVpFICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKPiArI2RlZmluZSBESVNQX0dBTU1B X0xVVCAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAKPiArCj4gKyNkZWZpbmUgTFVUXzEw QklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCj4gKwo+ICtzdHJ1Y3QgbXRr X2Rpc3BfZ2FtbWFfZGF0YSB7Cj4gKyAgICAgICB1MzIgcmVzZXJ2ZWQ7Cj4gK307Cj4gKwo+ICsv KioKPiArICogc3RydWN0IG10a19kaXNwX2dhbW1hIC0gRElTUF9HQU1NQSBkcml2ZXIgc3RydWN0 dXJlCj4gKyAqIEBkZHBfY29tcCAtIHN0cnVjdHVyZSBjb250YWluaW5nIHR5cGUgZW51bSBhbmQg aGFyZHdhcmUgcmVzb3VyY2VzCj4gKyAqIEBjcnRjIC0gYXNzb2NpYXRlZCBjcnRjIHRvIHJlcG9y dCBpcnEgZXZlbnRzIHRvCj4gKyAqLwo+ICtzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgewo+ICsgICAg ICAgc3RydWN0IGNsayAqY2xrOwo+ICsgICAgICAgdm9pZCBfX2lvbWVtICpyZWdzOwo+ICsgICAg ICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyBjbWRxX3JlZzsKPiArICAgICAgIGNvbnN0IHN0cnVj dCBtdGtfZGlzcF9nYW1tYV9kYXRhICpkYXRhOwo+ICt9Owo+ICsKPiAraW50IG10a19nYW1tYV9j bGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3RydWN0IG10a19k aXNwX2dhbW1hICpnYW1tYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAgICAgIHJl dHVybiBjbGtfcHJlcGFyZV9lbmFibGUoZ2FtbWEtPmNsayk7Cj4gK30KPiArCj4gK3ZvaWQgbXRr X2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3Ry dWN0IG10a19kaXNwX2dhbW1hICpnYW1tYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiAr ICAgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShnYW1tYS0+Y2xrKTsKPiArfQo+ICsKPiArdm9p ZCBtdGtfZ2FtbWFfc2V0X2NvbW1vbih2b2lkIF9faW9tZW0gKnJlZ3MsIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArICAgICAgIHVuc2lnbmVkIGludCBpLCByZWc7Cj4gKyAg ICAgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0Owo+ICsgICAgICAgdm9pZCBfX2lvbWVtICps dXRfYmFzZTsKPiArICAgICAgIHUzMiB3b3JkOwo+ICsKPiArICAgICAgIGlmIChzdGF0ZS0+Z2Ft bWFfbHV0KSB7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlYWRsKHJlZ3MgKyBESVNQX0dBTU1B X0NGRyk7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlZyB8IEdBTU1BX0xVVF9FTjsKPiArICAg ICAgICAgICAgICAgd3JpdGVsKHJlZywgcmVncyArIERJU1BfR0FNTUFfQ0ZHKTsKPiArICAgICAg ICAgICAgICAgbHV0X2Jhc2UgPSByZWdzICsgRElTUF9HQU1NQV9MVVQ7Cj4gKyAgICAgICAgICAg ICAgIGx1dCA9IChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqKXN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7 Cj4gKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBNVEtfTFVUX1NJWkU7IGkrKykgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHdvcmQgPSAoKChsdXRbaV0ucmVkID4+IDYpICYgTFVU XzEwQklUX01BU0spIDw8IDIwKSArCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KChsdXRbaV0uZ3JlZW4gPj4gNikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMTApICsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgobHV0W2ldLmJsdWUgPj4gNikgJiBMVVRfMTBCSVRf TUFTSyk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVsKHdvcmQsIChsdXRfYmFzZSAr IGkgKiA0KSk7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgIH0KPiArfQo+ICsKPiArdm9p ZCBtdGtfZ2FtbWFfc2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpzdGF0ZSkKPiArewo+ICsgICAgICAgc3RydWN0IG10a19kaXNwX2dhbW1hICpnYW1tYSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAgICAgIG10a19nYW1tYV9zZXRfY29tbW9uKGdh bW1hLT5yZWdzLCBzdGF0ZSk7Cj4gK30KPiArCj4gK3ZvaWQgbXRrX2dhbW1hX2NvbmZpZyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ICsgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLAo+ICsgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgKmdhbW1hID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAxNiB8IHcsICZn YW1tYS0+Y21kcV9yZWcsIGdhbW1hLT5yZWdzLAo+ICsgICAgICAgICAgICAgICAgICAgICBESVNQ X0dBTU1BX1NJWkUpOwo+ICsgICAgICAgbXRrX2RpdGhlcl9zZXRfY29tbW9uKGdhbW1hLT5yZWdz LCAmZ2FtbWEtPmNtZHFfcmVnLCBicGMsIERJU1BfR0FNTUFfQ0ZHLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdBTU1BX0RJVEhFUklORywgY21kcV9wa3QpOwo+ICt9Cj4gKwo+ICt2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArICAgICAgIHN0 cnVjdCBtdGtfZGlzcF9nYW1tYSAqZ2FtbWEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4g KyAgICAgICB3cml0ZWwoR0FNTUFfRU4sIGdhbW1hLT5yZWdzICsgRElTUF9HQU1NQV9FTik7Cj4g K30KPiArCj4gK3ZvaWQgbXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgKmdhbW1hID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsgICAgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCBnYW1tYS0+cmVncyArIERJU1Bf R0FNTUFfRU4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX2dhbW1hX2JpbmQoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCj4gK3sKPiArICAgICAgIHJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBtdGtfZGlzcF9nYW1tYV91bmJpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQgKmRhdGEpCj4gK3sKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBj b21wb25lbnRfb3BzIG10a19kaXNwX2dhbW1hX2NvbXBvbmVudF9vcHMgPSB7Cj4gKyAgICAgICAu YmluZCAgID0gbXRrX2Rpc3BfZ2FtbWFfYmluZCwKPiArICAgICAgIC51bmJpbmQgPSBtdGtfZGlz cF9nYW1tYV91bmJpbmQsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX2dhbW1hX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEg KnByaXY7Cj4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiArICAgICAgIGludCByZXQ7 Cj4gKwo+ICsgICAgICAgcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdG UF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFwcml2KQo+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiArCj4gKyAgICAgICBwcml2LT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxM KTsKPiArICAgICAgIGlmIChJU19FUlIocHJpdi0+Y2xrKSkgewo+ICsgICAgICAgICAgICAgICBk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZ2FtbWEgY2xrXG4iKTsKPiArICAgICAgICAgICAg ICAgcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBy ZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ICsg ICAgICAgcHJpdi0+cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKyAg ICAgICBpZiAoSVNfRVJSKHByaXYtPnJlZ3MpKSB7Cj4gKyAgICAgICAgICAgICAgIGRldl9lcnIo ZGV2LCAiZmFpbGVkIHRvIGlvcmVtYXAgZ2FtbWFcbiIpOwo+ICsgICAgICAgICAgICAgICByZXR1 cm4gUFRSX0VSUihwcml2LT5yZWdzKTsKPiArICAgICAgIH0KPiArCj4gKyNpZiBJU19SRUFDSEFC TEUoQ09ORklHX01US19DTURRKQo+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0X2NsaWVudF9y ZWcoZGV2LCAmcHJpdi0+Y21kcV9yZWcsIDApOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAg ICAgICAgICAgZGV2X2RiZyhkZXYsICJnZXQgbWVkaWF0ZWssZ2NlLWNsaWVudC1yZWcgZmFpbCFc biIpOwo+ICsjZW5kaWYKPiArCj4gKyAgICAgICBwcml2LT5kYXRhID0gb2ZfZGV2aWNlX2dldF9t YXRjaF9kYXRhKGRldik7Cj4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwcml2 KTsKPiArCj4gKyAgICAgICByZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10a19kaXNwX2dhbW1h X2NvbXBvbmVudF9vcHMpOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgZGV2 X2VycihkZXYsICJGYWlsZWQgdG8gYWRkIGNvbXBvbmVudDogJWRcbiIsIHJldCk7Cj4gKwo+ICsg ICAgICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdGtfZGlzcF9nYW1tYV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsgICAgICAgY29tcG9u ZW50X2RlbCgmcGRldi0+ZGV2LCAmbXRrX2Rpc3BfZ2FtbWFfY29tcG9uZW50X29wcyk7Cj4gKwo+ ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG10a19kaXNwX2dhbW1hX2RyaXZlcl9kdF9tYXRjaFtdID0gewo+ICsgICAgICAgeyAu Y29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1nYW1tYSJ9LAo+ICsgICAgICAge30s Cj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kaXNwX2dhbW1hX2RyaXZlcl9k dF9tYXRjaCk7Cj4gKwo+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX2dhbW1hX2Ry aXZlciA9IHsKPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX2dhbW1hX3Byb2Jl LAo+ICsgICAgICAgLnJlbW92ZSAgICAgICAgID0gbXRrX2Rpc3BfZ2FtbWFfcmVtb3ZlLAo+ICsg ICAgICAgLmRyaXZlciAgICAgICAgID0gewo+ICsgICAgICAgICAgICAgICAubmFtZSAgID0gIm1l ZGlhdGVrLWRpc3AtZ2FtbWEiLAo+ICsgICAgICAgICAgICAgICAub3duZXIgID0gVEhJU19NT0RV TEUsCj4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG10a19kaXNwX2dhbW1hX2Ry aXZlcl9kdF9tYXRjaCwKPiArICAgICAgIH0sCj4gK307Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCj4gaW5kZXggMDc4MDRhYjE2ZjQ0ZC4uYWMyY2IyNTYy MDM1NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBf Y29tcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAu Ywo+IEBAIC01NSwxMSArNTUsNiBAQAo+ICAjZGVmaW5lIERJVEhFUl9SRUxBWV9NT0RFICAgICAg ICAgICAgICAgICAgICAgIEJJVCgwKQo+ICAjZGVmaW5lIERJU1BfRElUSEVSX1NJWkUgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzMAo+Cj4gLSNkZWZpbmUgRElTUF9HQU1NQV9FTiAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwCj4gLSNkZWZpbmUgRElTUF9HQU1NQV9DRkcgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDIwCj4gLSNkZWZpbmUgRElTUF9HQU1NQV9TSVpFICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKPiAtI2RlZmluZSBESVNQX0dBTU1BX0xV VCAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAKPiAtCj4gICNkZWZpbmUgTFVUXzEwQklU X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCj4KPiAgI2RlZmluZSBPRF9SRUxB WU1PREUgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkKPiBAQCAtNjgsOSArNjMsNiBA QAo+Cj4gICNkZWZpbmUgQUFMX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklU KDApCj4KPiAtI2RlZmluZSBHQU1NQV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC SVQoMCkKPiAtI2RlZmluZSBHQU1NQV9MVVRfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICBC SVQoMSkKPiAtCj4gICNkZWZpbmUgRElTUF9ESVRIRVJJTkcgICAgICAgICAgICAgICAgICAgICAg ICAgQklUKDIpCj4gICNkZWZpbmUgRElUSEVSX0xTQl9FUlJfU0hJRlRfUih4KSAgICAgICAgICAg ICAgKCgoeCkgJiAweDcpIDw8IDI4KQo+ICAjZGVmaW5lIERJVEhFUl9PVkZMV19CSVRfUih4KSAg ICAgICAgICAgICAgICAgICgoKHgpICYgMHg3KSA8PCAyNCkKPiBAQCAtMTUxLDcgKzE0Myw2IEBA IHN0YXRpYyB2b2lkIG10a19kZHBfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAg ICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByaXYtPmNsayk7Cj4gIH0KPgo+IC0KPiAgdm9p ZCBtdGtfZGl0aGVyX3NldF9jb21tb24odm9pZCBfX2lvbWVtICpyZWdzLCBzdHJ1Y3QgY21kcV9j bGllbnRfcmVnICpjbWRxX3JlZywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgYnBjLCB1bnNpZ25lZCBpbnQgY2ZnLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBkaXRoZXJfZW4sIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpCj4gQEAg LTIyMSw2ICsyMTIsMTMgQEAgc3RhdGljIHZvaWQgbXRrX2FhbF9jb25maWcoc3RydWN0IGRldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgdywKPiAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3Qs IHcgPDwgMTYgfCBoLCAmcHJpdi0+Y21kcV9yZWcsIHByaXYtPnJlZ3MsIERJU1BfQUFMX1NJWkUp Owo+ICB9Cj4KPiArc3RhdGljIHZvaWQgbXRrX2FhbF9nYW1tYV9zZXQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAg ICAgICBtdGtfZ2FtbWFfc2V0X2NvbW1vbihwcml2LT5yZWdzLCBzdGF0ZSk7Cj4gK30KPiArCj4g IHN0YXRpYyB2b2lkIG10a19hYWxfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gICAg ICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+IEBAIC0zMzUsNTggKzMzMywxMCBAQCBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0b3Aoc3Ry dWN0IGRldmljZSAqZGV2KQo+ICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCBwcml2LT5yZWdz ICsgRElTUF9ESVRIRVJfRU4pOwo+ICB9Cj4KPiAtc3RhdGljIHZvaWQgbXRrX2dhbW1hX2NvbmZp ZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpCj4gLXsKPiAtICAgICAgIHN0cnVjdCBtdGtfZGRwX2NvbXBfZGV2ICpwcml2 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQo+IC0gICAgICAgbXRrX2RkcF93cml0ZShjbWRx X3BrdCwgaCA8PCAxNiB8IHcsICZwcml2LT5jbWRxX3JlZywgcHJpdi0+cmVncywgRElTUF9HQU1N QV9TSVpFKTsKPiAtICAgICAgIG10a19kaXRoZXJfc2V0KGRldiwgYnBjLCBESVNQX0dBTU1BX0NG RywgY21kcV9wa3QpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBtdGtfZ2FtbWFfc3RhcnQoc3Ry dWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLSAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAq cHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0KPiAtICAgICAgIHdyaXRlbChHQU1NQV9F TiwgcHJpdi0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQg bXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLSAgICAgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0KPiAtICAg ICAgIHdyaXRlbF9yZWxheGVkKDB4MCwgcHJpdi0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAt fQo+IC0KPiAtc3RhdGljIHZvaWQgbXRrX2dhbW1hX3NldChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ IC17Cj4gLSAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwo+IC0gICAgICAgdW5zaWduZWQgaW50IGksIHJlZzsKPiAtICAgICAgIHN0cnVj dCBkcm1fY29sb3JfbHV0ICpsdXQ7Cj4gLSAgICAgICB2b2lkIF9faW9tZW0gKmx1dF9iYXNlOwo+ IC0gICAgICAgdTMyIHdvcmQ7Cj4gLQo+IC0gICAgICAgaWYgKHN0YXRlLT5nYW1tYV9sdXQpIHsK PiAtICAgICAgICAgICAgICAgcmVnID0gcmVhZGwocHJpdi0+cmVncyArIERJU1BfR0FNTUFfQ0ZH KTsKPiAtICAgICAgICAgICAgICAgcmVnID0gcmVnIHwgR0FNTUFfTFVUX0VOOwo+IC0gICAgICAg ICAgICAgICB3cml0ZWwocmVnLCBwcml2LT5yZWdzICsgRElTUF9HQU1NQV9DRkcpOwo+IC0gICAg ICAgICAgICAgICBsdXRfYmFzZSA9IHByaXYtPnJlZ3MgKyBESVNQX0dBTU1BX0xVVDsKPiAtICAg ICAgICAgICAgICAgbHV0ID0gKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopc3RhdGUtPmdhbW1hX2x1 dC0+ZGF0YTsKPiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IE1US19MVVRfU0laRTsg aSsrKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgd29yZCA9ICgoKGx1dFtpXS5yZWQgPj4g NikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMjApICsKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoKGx1dFtpXS5ncmVlbiA+PiA2KSAmIExVVF8xMEJJVF9NQVNLKSA8PCAxMCkgKwo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsdXRbaV0uYmx1ZSA+PiA2KSAmIExV VF8xMEJJVF9NQVNLKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICB3cml0ZWwod29yZCwgKGx1 dF9iYXNlICsgaSAqIDQpKTsKPiAtICAgICAgICAgICAgICAgfQo+IC0gICAgICAgfQo+IC19Cj4g LQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfYWFsID0gewo+ ICAgICAgICAgLmNsa19lbmFibGUgPSBtdGtfZGRwX2Nsa19lbmFibGUsCj4gICAgICAgICAuY2xr X2Rpc2FibGUgPSBtdGtfZGRwX2Nsa19kaXNhYmxlLAo+IC0gICAgICAgLmdhbW1hX3NldCA9IG10 a19nYW1tYV9zZXQsCj4gKyAgICAgICAuZ2FtbWFfc2V0ID0gbXRrX2FhbF9nYW1tYV9zZXQsCj4g ICAgICAgICAuY29uZmlnID0gbXRrX2FhbF9jb25maWcsCj4gICAgICAgICAuc3RhcnQgPSBtdGtf YWFsX3N0YXJ0LAo+ICAgICAgICAgLnN0b3AgPSBtdGtfYWFsX3N0b3AsCj4gQEAgLTQyNyw4ICsz NzcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfZHNpID0g ewo+ICB9Owo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9n YW1tYSA9IHsKPiAtICAgICAgIC5jbGtfZW5hYmxlID0gbXRrX2RkcF9jbGtfZW5hYmxlLAo+IC0g ICAgICAgLmNsa19kaXNhYmxlID0gbXRrX2RkcF9jbGtfZGlzYWJsZSwKPiArICAgICAgIC5jbGtf ZW5hYmxlID0gbXRrX2dhbW1hX2Nsa19lbmFibGUsCj4gKyAgICAgICAuY2xrX2Rpc2FibGUgPSBt dGtfZ2FtbWFfY2xrX2Rpc2FibGUsCj4gICAgICAgICAuZ2FtbWFfc2V0ID0gbXRrX2dhbW1hX3Nl dCwKPiAgICAgICAgIC5jb25maWcgPSBtdGtfZ2FtbWFfY29uZmlnLAo+ICAgICAgICAgLnN0YXJ0 ID0gbXRrX2dhbW1hX3N0YXJ0LAo+IEBAIC02NDQsNiArNTk0LDcgQEAgaW50IG10a19kZHBfY29t cF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwKPgo+ICAgICAgICAgaWYgKHR5cGUgPT0gTVRLX0RJU1BfQkxTIHx8Cj4gICAgICAgICAgICAg dHlwZSA9PSBNVEtfRElTUF9DT0xPUiB8fAo+ICsgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1Bf R0FNTUEgfHwKPiAgICAgICAgICAgICB0eXBlID09IE1US19EUEkgfHwKPiAgICAgICAgICAgICB0 eXBlID09IE1US19EU0kgfHwKPiAgICAgICAgICAgICB0eXBlID09IE1US19ESVNQX09WTCB8fAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCj4gaW5kZXggNWQzOWRkNTQyNTVk MS4uMjc5ZDNlNmYxMTU2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Ry di5jCj4gQEAgLTQ4NiwxMSArNDg2LDEyIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgICAgICAgICAgICAgICBwcml2YXRlLT5jb21w X25vZGVbY29tcF9pZF0gPSBvZl9ub2RlX2dldChub2RlKTsKPgo+ICAgICAgICAgICAgICAgICAv Kgo+IC0gICAgICAgICAgICAgICAgKiBDdXJyZW50bHkgb25seSB0aGUgQ09MT1IsIE9WTCwgUkRN QSwgRFNJLCBhbmQgRFBJIGJsb2NrcyBoYXZlCj4gKyAgICAgICAgICAgICAgICAqIEN1cnJlbnRs eSBvbmx5IHRoZSBDT0xPUiwgR0FNTUEsIE9WTCwgUkRNQSwgRFNJLCBhbmQgRFBJIGJsb2NrcyBo YXZlCj4gICAgICAgICAgICAgICAgICAqIHNlcGFyYXRlIGNvbXBvbmVudCBwbGF0Zm9ybSBkcml2 ZXJzIGFuZCBpbml0aWFsaXplIHRoZWlyIG93bgo+ICAgICAgICAgICAgICAgICAgKiBERFAgY29t cG9uZW50IHN0cnVjdHVyZS4gVGhlIG90aGVycyBhcmUgaW5pdGlhbGl6ZWQgaGVyZS4KPiAgICAg ICAgICAgICAgICAgICovCj4gICAgICAgICAgICAgICAgIGlmIChjb21wX3R5cGUgPT0gTVRLX0RJ U1BfQ09MT1IgfHwKPiArICAgICAgICAgICAgICAgICAgIGNvbXBfdHlwZSA9PSBNVEtfRElTUF9H QU1NQSB8fAo+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTCB8 fAo+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTF8yTCB8fAo+ ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX1JETUEgfHwKPiBAQCAt NTg5LDYgKzU5MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kcm1fcGxh dGZvcm1fZHJpdmVyID0gewo+Cj4gIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICogY29u c3QgbXRrX2RybV9kcml2ZXJzW10gPSB7Cj4gICAgICAgICAmbXRrX2Rpc3BfY29sb3JfZHJpdmVy LAo+ICsgICAgICAgJm10a19kaXNwX2dhbW1hX2RyaXZlciwKPiAgICAgICAgICZtdGtfZGlzcF9v dmxfZHJpdmVyLAo+ICAgICAgICAgJm10a19kaXNwX3JkbWFfZHJpdmVyLAo+ICAgICAgICAgJm10 a19kcGlfZHJpdmVyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCj4gaW5k ZXggZTgyMzhmYTRhYTJhYy4uMGU1NGUzZDUxMDE0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5oCj4gQEAgLTQ3LDYgKzQ3LDcgQEAgc3RydWN0IG10a19kcm1fcHJp dmF0ZSB7Cj4gIH07Cj4KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3Bf Y29sb3JfZHJpdmVyOwo+ICtleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9n YW1tYV9kcml2ZXI7Cj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292 bF9kcml2ZXI7Cj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX3JkbWFf ZHJpdmVyOwo+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZHBpX2RyaXZlcjsK PiAtLQo+IDIuMzAuMC4zNjUuZzAyYmM2OTM3ODktZ29vZwo+Cj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IExpbnV4LW1lZGlhdGVrIG1haWxpbmcg bGlzdAo+IExpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1tZWRpYXRlayBtYWls aW5nIGxpc3QKTGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, 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 4D265C433E9 for ; Sat, 30 Jan 2021 10:07:21 +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 F1DC364DE7 for ; Sat, 30 Jan 2021 10:07:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F1DC364DE7 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=PzAacS482jBAGCoCG15JGFYXqSw83iEbhmaFg9Ks670=; b=TVYK2SDmr0pbxMkEwh0VgiZez wnmFOXqebJcujqnKl17t8lbsqy1yRSLlNygZhDLWbljQ4+1u/3ElL2tyETaDuR13o/2H83Gru7YWe gxFBK8HZXUQF1Vj7zIWu40lSbzzjqysY4+BIjI6MGeQ4M6rW5FJ14zbtiQAoq18lWlnPaC+N/8sga HIfNpuQD9FTnem7EKls6zf7aZaj+BSUseadLtE4gh8Vgo19DG0qxGkXrDZ1a6ORUqcWU5W6ygJVQl 6uY5rNrauI9FZElRunXj8RJL+lU3IqTRXb6WJH8/zrwHP4D3q3ZUT2PHgmUf/wKyUgfEpndPqTuf8 tePxezWnw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l5n8c-0003bN-QI; Sat, 30 Jan 2021 10:05:54 +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 1l5n8Z-0003aq-2T; Sat, 30 Jan 2021 10:05:52 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id E9DD364E08; Sat, 30 Jan 2021 10:05:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612001149; bh=/QEbBItZgyb0oI8KAuKDpk4DtDTW9iuhXIrM7+HRj6Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=uf66muYjBLSFDN1tuCKLNKmenCUK2Tl2dcCVTzqZayiHcWOSZzZlqzdiny3M4pH8v 3PVLo+PdH2Oq6yF8GY/xuncTRukJWvlEGrSm0uFPIlaqppCLdYfCIIGr+ylO19UgTg Px3DWlsgAbXxs7iiWjy4DSiG5hYlcTIHeB5BGzvCkZntfo8hThzBqQNzmUWoKWS9Mb zhN9+J8PtSzJ+sCC6ZyBb18of1hV1xgQvXXjpAP7oY1uhnCfDuCh/+SjUI9iFbj+FO jX4LYTNy+RqixvGsXjjes5kO+3ArDOut14CwnsetT+DtwxdeGn1nxirKXj7XMJmASj xsBytYi8V/RAg== Received: by mail-ej1-f47.google.com with SMTP id i8so172519ejc.7; Sat, 30 Jan 2021 02:05:48 -0800 (PST) X-Gm-Message-State: AOAM533Qu3pXDy+n6GHiw0cn4IwX7rtaAkH6CcIXitv82eCUqBxK97y2 RZA2gebtFc7vzwWhEqv+SbCnt/m9ltuxkLWtjQ== X-Google-Smtp-Source: ABdhPJx4ZRZnhyAay/ZYFKC/OlCSQkwfbYOSwwxbJU5pv0BqOKlmlC90ebOQ5LbXchWco/Z6VAoK1Y4uAB2EtE1ODJM= X-Received: by 2002:a17:906:a106:: with SMTP id t6mr8473323ejy.63.1612001147416; Sat, 30 Jan 2021 02:05:47 -0800 (PST) MIME-Version: 1.0 References: <20210129092209.2584718-1-hsinyi@chromium.org> <20210129092209.2584718-5-hsinyi@chromium.org> In-Reply-To: <20210129092209.2584718-5-hsinyi@chromium.org> From: Chun-Kuang Hu Date: Sat, 30 Jan 2021 18:05:34 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v13 4/8] drm/mediatek: separate gamma module To: Hsin-Yi Wang X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210130_050551_272648_0B5C552E X-CRM114-Status: GOOD ( 29.22 ) 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 , DTML , Philipp Zabel , David Airlie , linux-kernel , DRI Development , Matthias Brugger , "moderated list:ARM/Mediatek SoC support" , Yongqiang Niu , CK Hu , Daniel Vetter , 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 SGksIEhzaW4tWWk6CgpIc2luLVlpIFdhbmcgPGhzaW55aUBjaHJvbWl1bS5vcmc+IOaWvCAyMDIx 5bm0MeaciDI55pelIOmAseS6lCDkuIvljYg1OjIz5a+r6YGT77yaCj4KPiBGcm9tOiBZb25ncWlh bmcgTml1IDx5b25ncWlhbmcubml1QG1lZGlhdGVrLmNvbT4KPgo+IG10ODE4MyBnYW1tYSBtb2R1 bGUgd2lsbCBkaWZmZXJlbnQgd2l0aCBtdDgxNzMKPiBzZXBhcmF0ZSBnYW1tYSBmb3IgYWRkIHBy aXZhdGUgZGF0YQoKQWZ0ZXIgSSBjbGVhbiB1cCBhbGwgY2hlY2twYXRjaCBlcnJvciwgYXBwbGll ZCB0byBtZWRpYXRlay1kcm0tbmV4dApbMV0uIFJlbWVtYmVyIHRvIGNsZWFuIHVwIGFsbCBjaGVj a3BhdGNoIGVycm9yIGJlZm9yZSBzZW5kIG91dApwYXRjaGVzLgoKWzFdIGh0dHBzOi8vZ2l0Lmtl cm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2NodW5rdWFuZy5odS9saW51eC5naXQv bG9nLz9oPW1lZGlhdGVrLWRybS1uZXh0CgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPgo+IFNpZ25l ZC1vZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEhzaW4tWWkgV2FuZyA8aHNpbnlpQGNocm9taXVtLm9yZz4KPiBSZXZpZXdl ZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGlzcF9kcnYuaCAgICAgfCAgMTAgKwo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2Rpc3BfZ2FtbWEuYyAgIHwgMTkxICsrKysrKysrKysrKysrKysrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgfCAgNzEgKystLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgICAgICB8ICAgNCArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgICAgIHwgICAxICsKPiAg NiBmaWxlcyBjaGFuZ2VkLCAyMTcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZ2FtbWEu Ywo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQo+IGluZGV4IDAxZDA2MzMyZjc2NzkuLmI2 NDY3NGI5NDQ4NjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2Vm aWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gQEAgLTEsNiAr MSw3IEBACj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPgo+ICBtZWRpYXRl ay1kcm0teSA6PSBtdGtfZGlzcF9jb2xvci5vIFwKPiArICAgICAgICAgICAgICAgICBtdGtfZGlz cF9nYW1tYS5vIFwKPiAgICAgICAgICAgICAgICAgICBtdGtfZGlzcF9vdmwubyBcCj4gICAgICAg ICAgICAgICAgICAgbXRrX2Rpc3BfcmRtYS5vIFwKPiAgICAgICAgICAgICAgICAgICBtdGtfZHJt X2NydGMubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9kcnYuaAo+IGluZGV4 IDllNTUzN2Y3NmIyMmEuLjAyMTkxMDEwNjk5ZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX2Rydi5oCj4gQEAgLTI3LDYgKzI3LDE2IEBAIHZvaWQgbXRrX2RwaV9zdG9w KHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gIHZvaWQgbXRrX2RzaV9kZHBfc3RhcnQoc3RydWN0IGRl dmljZSAqZGV2KTsKPiAgdm9pZCBtdGtfZHNpX2RkcF9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7 Cj4KPiAraW50IG10a19nYW1tYV9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK3Zv aWQgbXRrX2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK3ZvaWQgbXRr X2dhbW1hX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwK PiArICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpOwo+ICt2b2lkIG10a19nYW1tYV9zZXQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsKPiArdm9pZCBtdGtfZ2FtbWFfc2V0X2NvbW1v bih2b2lkIF9faW9tZW0gKnJlZ3MsIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwo+ICt2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICt2b2lkIG10a19nYW1t YV9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gKwo+ICB2b2lkIG10a19vdmxfYmdjbHJfaW5f b24oc3RydWN0IGRldmljZSAqZGV2KTsKPiAgdm9pZCBtdGtfb3ZsX2JnY2xyX2luX29mZihzdHJ1 Y3QgZGV2aWNlICpkZXYpOwo+ICB2b2lkIG10a19vdmxfYnlwYXNzX3NoYWRvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3BfZ2FtbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9nYW1tYS5jCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi42YjUyMDgwNzkyMWUz Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9nYW1tYS5jCj4gQEAgLTAsMCArMSwxOTEgQEAKPiArLyoKPiArICogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6Cj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMCBNZWRpYVRlayBJbmMuCj4g KyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvY29t cG9uZW50Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L29mX2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9t dGstY21kcS5oPgo+ICsKPiArI2luY2x1ZGUgIm10a19kaXNwX2Rydi5oIgo+ICsjaW5jbHVkZSAi bXRrX2RybV9jcnRjLmgiCj4gKyNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiCj4gKwo+ICsj ZGVmaW5lIERJU1BfR0FNTUFfRU4gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAo+ICsj ZGVmaW5lIEdBTU1BX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklU KDApCj4gKyNkZWZpbmUgRElTUF9HQU1NQV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDIwCj4gKyNkZWZpbmUgR0FNTUFfTFVUX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCSVQoMSkKPiArI2RlZmluZSBHQU1NQV9ESVRIRVJJTkcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQklUKDIpCj4gKyNkZWZpbmUgRElTUF9HQU1NQV9TSVpFICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKPiArI2RlZmluZSBESVNQX0dBTU1B X0xVVCAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAKPiArCj4gKyNkZWZpbmUgTFVUXzEw QklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCj4gKwo+ICtzdHJ1Y3QgbXRr X2Rpc3BfZ2FtbWFfZGF0YSB7Cj4gKyAgICAgICB1MzIgcmVzZXJ2ZWQ7Cj4gK307Cj4gKwo+ICsv KioKPiArICogc3RydWN0IG10a19kaXNwX2dhbW1hIC0gRElTUF9HQU1NQSBkcml2ZXIgc3RydWN0 dXJlCj4gKyAqIEBkZHBfY29tcCAtIHN0cnVjdHVyZSBjb250YWluaW5nIHR5cGUgZW51bSBhbmQg aGFyZHdhcmUgcmVzb3VyY2VzCj4gKyAqIEBjcnRjIC0gYXNzb2NpYXRlZCBjcnRjIHRvIHJlcG9y dCBpcnEgZXZlbnRzIHRvCj4gKyAqLwo+ICtzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgewo+ICsgICAg ICAgc3RydWN0IGNsayAqY2xrOwo+ICsgICAgICAgdm9pZCBfX2lvbWVtICpyZWdzOwo+ICsgICAg ICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyBjbWRxX3JlZzsKPiArICAgICAgIGNvbnN0IHN0cnVj dCBtdGtfZGlzcF9nYW1tYV9kYXRhICpkYXRhOwo+ICt9Owo+ICsKPiAraW50IG10a19nYW1tYV9j bGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3RydWN0IG10a19k aXNwX2dhbW1hICpnYW1tYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAgICAgIHJl dHVybiBjbGtfcHJlcGFyZV9lbmFibGUoZ2FtbWEtPmNsayk7Cj4gK30KPiArCj4gK3ZvaWQgbXRr X2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3Ry dWN0IG10a19kaXNwX2dhbW1hICpnYW1tYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiAr ICAgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShnYW1tYS0+Y2xrKTsKPiArfQo+ICsKPiArdm9p ZCBtdGtfZ2FtbWFfc2V0X2NvbW1vbih2b2lkIF9faW9tZW0gKnJlZ3MsIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArICAgICAgIHVuc2lnbmVkIGludCBpLCByZWc7Cj4gKyAg ICAgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0Owo+ICsgICAgICAgdm9pZCBfX2lvbWVtICps dXRfYmFzZTsKPiArICAgICAgIHUzMiB3b3JkOwo+ICsKPiArICAgICAgIGlmIChzdGF0ZS0+Z2Ft bWFfbHV0KSB7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlYWRsKHJlZ3MgKyBESVNQX0dBTU1B X0NGRyk7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlZyB8IEdBTU1BX0xVVF9FTjsKPiArICAg ICAgICAgICAgICAgd3JpdGVsKHJlZywgcmVncyArIERJU1BfR0FNTUFfQ0ZHKTsKPiArICAgICAg ICAgICAgICAgbHV0X2Jhc2UgPSByZWdzICsgRElTUF9HQU1NQV9MVVQ7Cj4gKyAgICAgICAgICAg ICAgIGx1dCA9IChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqKXN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7 Cj4gKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBNVEtfTFVUX1NJWkU7IGkrKykgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHdvcmQgPSAoKChsdXRbaV0ucmVkID4+IDYpICYgTFVU XzEwQklUX01BU0spIDw8IDIwKSArCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KChsdXRbaV0uZ3JlZW4gPj4gNikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMTApICsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgobHV0W2ldLmJsdWUgPj4gNikgJiBMVVRfMTBCSVRf TUFTSyk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVsKHdvcmQsIChsdXRfYmFzZSAr IGkgKiA0KSk7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgIH0KPiArfQo+ICsKPiArdm9p ZCBtdGtfZ2FtbWFfc2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpzdGF0ZSkKPiArewo+ICsgICAgICAgc3RydWN0IG10a19kaXNwX2dhbW1hICpnYW1tYSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAgICAgIG10a19nYW1tYV9zZXRfY29tbW9uKGdh bW1hLT5yZWdzLCBzdGF0ZSk7Cj4gK30KPiArCj4gK3ZvaWQgbXRrX2dhbW1hX2NvbmZpZyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ICsgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLAo+ICsgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgKmdhbW1hID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAxNiB8IHcsICZn YW1tYS0+Y21kcV9yZWcsIGdhbW1hLT5yZWdzLAo+ICsgICAgICAgICAgICAgICAgICAgICBESVNQ X0dBTU1BX1NJWkUpOwo+ICsgICAgICAgbXRrX2RpdGhlcl9zZXRfY29tbW9uKGdhbW1hLT5yZWdz LCAmZ2FtbWEtPmNtZHFfcmVnLCBicGMsIERJU1BfR0FNTUFfQ0ZHLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdBTU1BX0RJVEhFUklORywgY21kcV9wa3QpOwo+ICt9Cj4gKwo+ICt2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArICAgICAgIHN0 cnVjdCBtdGtfZGlzcF9nYW1tYSAqZ2FtbWEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4g KyAgICAgICB3cml0ZWwoR0FNTUFfRU4sIGdhbW1hLT5yZWdzICsgRElTUF9HQU1NQV9FTik7Cj4g K30KPiArCj4gK3ZvaWQgbXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgKmdhbW1hID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsgICAgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCBnYW1tYS0+cmVncyArIERJU1Bf R0FNTUFfRU4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX2dhbW1hX2JpbmQoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCj4gK3sKPiArICAgICAgIHJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBtdGtfZGlzcF9nYW1tYV91bmJpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQgKmRhdGEpCj4gK3sKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBj b21wb25lbnRfb3BzIG10a19kaXNwX2dhbW1hX2NvbXBvbmVudF9vcHMgPSB7Cj4gKyAgICAgICAu YmluZCAgID0gbXRrX2Rpc3BfZ2FtbWFfYmluZCwKPiArICAgICAgIC51bmJpbmQgPSBtdGtfZGlz cF9nYW1tYV91bmJpbmQsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX2dhbW1hX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEg KnByaXY7Cj4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiArICAgICAgIGludCByZXQ7 Cj4gKwo+ICsgICAgICAgcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdG UF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFwcml2KQo+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiArCj4gKyAgICAgICBwcml2LT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxM KTsKPiArICAgICAgIGlmIChJU19FUlIocHJpdi0+Y2xrKSkgewo+ICsgICAgICAgICAgICAgICBk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZ2FtbWEgY2xrXG4iKTsKPiArICAgICAgICAgICAg ICAgcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBy ZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ICsg ICAgICAgcHJpdi0+cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKyAg ICAgICBpZiAoSVNfRVJSKHByaXYtPnJlZ3MpKSB7Cj4gKyAgICAgICAgICAgICAgIGRldl9lcnIo ZGV2LCAiZmFpbGVkIHRvIGlvcmVtYXAgZ2FtbWFcbiIpOwo+ICsgICAgICAgICAgICAgICByZXR1 cm4gUFRSX0VSUihwcml2LT5yZWdzKTsKPiArICAgICAgIH0KPiArCj4gKyNpZiBJU19SRUFDSEFC TEUoQ09ORklHX01US19DTURRKQo+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0X2NsaWVudF9y ZWcoZGV2LCAmcHJpdi0+Y21kcV9yZWcsIDApOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAg ICAgICAgICAgZGV2X2RiZyhkZXYsICJnZXQgbWVkaWF0ZWssZ2NlLWNsaWVudC1yZWcgZmFpbCFc biIpOwo+ICsjZW5kaWYKPiArCj4gKyAgICAgICBwcml2LT5kYXRhID0gb2ZfZGV2aWNlX2dldF9t YXRjaF9kYXRhKGRldik7Cj4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwcml2 KTsKPiArCj4gKyAgICAgICByZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10a19kaXNwX2dhbW1h X2NvbXBvbmVudF9vcHMpOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgZGV2 X2VycihkZXYsICJGYWlsZWQgdG8gYWRkIGNvbXBvbmVudDogJWRcbiIsIHJldCk7Cj4gKwo+ICsg ICAgICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdGtfZGlzcF9nYW1tYV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsgICAgICAgY29tcG9u ZW50X2RlbCgmcGRldi0+ZGV2LCAmbXRrX2Rpc3BfZ2FtbWFfY29tcG9uZW50X29wcyk7Cj4gKwo+ ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG10a19kaXNwX2dhbW1hX2RyaXZlcl9kdF9tYXRjaFtdID0gewo+ICsgICAgICAgeyAu Y29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1nYW1tYSJ9LAo+ICsgICAgICAge30s Cj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kaXNwX2dhbW1hX2RyaXZlcl9k dF9tYXRjaCk7Cj4gKwo+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX2dhbW1hX2Ry aXZlciA9IHsKPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX2dhbW1hX3Byb2Jl LAo+ICsgICAgICAgLnJlbW92ZSAgICAgICAgID0gbXRrX2Rpc3BfZ2FtbWFfcmVtb3ZlLAo+ICsg ICAgICAgLmRyaXZlciAgICAgICAgID0gewo+ICsgICAgICAgICAgICAgICAubmFtZSAgID0gIm1l ZGlhdGVrLWRpc3AtZ2FtbWEiLAo+ICsgICAgICAgICAgICAgICAub3duZXIgID0gVEhJU19NT0RV TEUsCj4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG10a19kaXNwX2dhbW1hX2Ry aXZlcl9kdF9tYXRjaCwKPiArICAgICAgIH0sCj4gK307Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCj4gaW5kZXggMDc4MDRhYjE2ZjQ0ZC4uYWMyY2IyNTYy MDM1NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBf Y29tcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAu Ywo+IEBAIC01NSwxMSArNTUsNiBAQAo+ICAjZGVmaW5lIERJVEhFUl9SRUxBWV9NT0RFICAgICAg ICAgICAgICAgICAgICAgIEJJVCgwKQo+ICAjZGVmaW5lIERJU1BfRElUSEVSX1NJWkUgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzMAo+Cj4gLSNkZWZpbmUgRElTUF9HQU1NQV9FTiAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwCj4gLSNkZWZpbmUgRElTUF9HQU1NQV9DRkcgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDIwCj4gLSNkZWZpbmUgRElTUF9HQU1NQV9TSVpFICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKPiAtI2RlZmluZSBESVNQX0dBTU1BX0xV VCAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAKPiAtCj4gICNkZWZpbmUgTFVUXzEwQklU X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCj4KPiAgI2RlZmluZSBPRF9SRUxB WU1PREUgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkKPiBAQCAtNjgsOSArNjMsNiBA QAo+Cj4gICNkZWZpbmUgQUFMX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklU KDApCj4KPiAtI2RlZmluZSBHQU1NQV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC SVQoMCkKPiAtI2RlZmluZSBHQU1NQV9MVVRfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICBC SVQoMSkKPiAtCj4gICNkZWZpbmUgRElTUF9ESVRIRVJJTkcgICAgICAgICAgICAgICAgICAgICAg ICAgQklUKDIpCj4gICNkZWZpbmUgRElUSEVSX0xTQl9FUlJfU0hJRlRfUih4KSAgICAgICAgICAg ICAgKCgoeCkgJiAweDcpIDw8IDI4KQo+ICAjZGVmaW5lIERJVEhFUl9PVkZMV19CSVRfUih4KSAg ICAgICAgICAgICAgICAgICgoKHgpICYgMHg3KSA8PCAyNCkKPiBAQCAtMTUxLDcgKzE0Myw2IEBA IHN0YXRpYyB2b2lkIG10a19kZHBfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAg ICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByaXYtPmNsayk7Cj4gIH0KPgo+IC0KPiAgdm9p ZCBtdGtfZGl0aGVyX3NldF9jb21tb24odm9pZCBfX2lvbWVtICpyZWdzLCBzdHJ1Y3QgY21kcV9j bGllbnRfcmVnICpjbWRxX3JlZywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgYnBjLCB1bnNpZ25lZCBpbnQgY2ZnLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBkaXRoZXJfZW4sIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpCj4gQEAg LTIyMSw2ICsyMTIsMTMgQEAgc3RhdGljIHZvaWQgbXRrX2FhbF9jb25maWcoc3RydWN0IGRldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgdywKPiAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3Qs IHcgPDwgMTYgfCBoLCAmcHJpdi0+Y21kcV9yZWcsIHByaXYtPnJlZ3MsIERJU1BfQUFMX1NJWkUp Owo+ICB9Cj4KPiArc3RhdGljIHZvaWQgbXRrX2FhbF9nYW1tYV9zZXQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAg ICAgICBtdGtfZ2FtbWFfc2V0X2NvbW1vbihwcml2LT5yZWdzLCBzdGF0ZSk7Cj4gK30KPiArCj4g IHN0YXRpYyB2b2lkIG10a19hYWxfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gICAg ICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+IEBAIC0zMzUsNTggKzMzMywxMCBAQCBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0b3Aoc3Ry dWN0IGRldmljZSAqZGV2KQo+ICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCBwcml2LT5yZWdz ICsgRElTUF9ESVRIRVJfRU4pOwo+ICB9Cj4KPiAtc3RhdGljIHZvaWQgbXRrX2dhbW1hX2NvbmZp ZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpCj4gLXsKPiAtICAgICAgIHN0cnVjdCBtdGtfZGRwX2NvbXBfZGV2ICpwcml2 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQo+IC0gICAgICAgbXRrX2RkcF93cml0ZShjbWRx X3BrdCwgaCA8PCAxNiB8IHcsICZwcml2LT5jbWRxX3JlZywgcHJpdi0+cmVncywgRElTUF9HQU1N QV9TSVpFKTsKPiAtICAgICAgIG10a19kaXRoZXJfc2V0KGRldiwgYnBjLCBESVNQX0dBTU1BX0NG RywgY21kcV9wa3QpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBtdGtfZ2FtbWFfc3RhcnQoc3Ry dWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLSAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAq cHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0KPiAtICAgICAgIHdyaXRlbChHQU1NQV9F TiwgcHJpdi0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQg bXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLSAgICAgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0KPiAtICAg ICAgIHdyaXRlbF9yZWxheGVkKDB4MCwgcHJpdi0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAt fQo+IC0KPiAtc3RhdGljIHZvaWQgbXRrX2dhbW1hX3NldChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ IC17Cj4gLSAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwo+IC0gICAgICAgdW5zaWduZWQgaW50IGksIHJlZzsKPiAtICAgICAgIHN0cnVj dCBkcm1fY29sb3JfbHV0ICpsdXQ7Cj4gLSAgICAgICB2b2lkIF9faW9tZW0gKmx1dF9iYXNlOwo+ IC0gICAgICAgdTMyIHdvcmQ7Cj4gLQo+IC0gICAgICAgaWYgKHN0YXRlLT5nYW1tYV9sdXQpIHsK PiAtICAgICAgICAgICAgICAgcmVnID0gcmVhZGwocHJpdi0+cmVncyArIERJU1BfR0FNTUFfQ0ZH KTsKPiAtICAgICAgICAgICAgICAgcmVnID0gcmVnIHwgR0FNTUFfTFVUX0VOOwo+IC0gICAgICAg ICAgICAgICB3cml0ZWwocmVnLCBwcml2LT5yZWdzICsgRElTUF9HQU1NQV9DRkcpOwo+IC0gICAg ICAgICAgICAgICBsdXRfYmFzZSA9IHByaXYtPnJlZ3MgKyBESVNQX0dBTU1BX0xVVDsKPiAtICAg ICAgICAgICAgICAgbHV0ID0gKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopc3RhdGUtPmdhbW1hX2x1 dC0+ZGF0YTsKPiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IE1US19MVVRfU0laRTsg aSsrKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgd29yZCA9ICgoKGx1dFtpXS5yZWQgPj4g NikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMjApICsKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoKGx1dFtpXS5ncmVlbiA+PiA2KSAmIExVVF8xMEJJVF9NQVNLKSA8PCAxMCkgKwo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsdXRbaV0uYmx1ZSA+PiA2KSAmIExV VF8xMEJJVF9NQVNLKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICB3cml0ZWwod29yZCwgKGx1 dF9iYXNlICsgaSAqIDQpKTsKPiAtICAgICAgICAgICAgICAgfQo+IC0gICAgICAgfQo+IC19Cj4g LQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfYWFsID0gewo+ ICAgICAgICAgLmNsa19lbmFibGUgPSBtdGtfZGRwX2Nsa19lbmFibGUsCj4gICAgICAgICAuY2xr X2Rpc2FibGUgPSBtdGtfZGRwX2Nsa19kaXNhYmxlLAo+IC0gICAgICAgLmdhbW1hX3NldCA9IG10 a19nYW1tYV9zZXQsCj4gKyAgICAgICAuZ2FtbWFfc2V0ID0gbXRrX2FhbF9nYW1tYV9zZXQsCj4g ICAgICAgICAuY29uZmlnID0gbXRrX2FhbF9jb25maWcsCj4gICAgICAgICAuc3RhcnQgPSBtdGtf YWFsX3N0YXJ0LAo+ICAgICAgICAgLnN0b3AgPSBtdGtfYWFsX3N0b3AsCj4gQEAgLTQyNyw4ICsz NzcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfZHNpID0g ewo+ICB9Owo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9n YW1tYSA9IHsKPiAtICAgICAgIC5jbGtfZW5hYmxlID0gbXRrX2RkcF9jbGtfZW5hYmxlLAo+IC0g ICAgICAgLmNsa19kaXNhYmxlID0gbXRrX2RkcF9jbGtfZGlzYWJsZSwKPiArICAgICAgIC5jbGtf ZW5hYmxlID0gbXRrX2dhbW1hX2Nsa19lbmFibGUsCj4gKyAgICAgICAuY2xrX2Rpc2FibGUgPSBt dGtfZ2FtbWFfY2xrX2Rpc2FibGUsCj4gICAgICAgICAuZ2FtbWFfc2V0ID0gbXRrX2dhbW1hX3Nl dCwKPiAgICAgICAgIC5jb25maWcgPSBtdGtfZ2FtbWFfY29uZmlnLAo+ICAgICAgICAgLnN0YXJ0 ID0gbXRrX2dhbW1hX3N0YXJ0LAo+IEBAIC02NDQsNiArNTk0LDcgQEAgaW50IG10a19kZHBfY29t cF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwKPgo+ICAgICAgICAgaWYgKHR5cGUgPT0gTVRLX0RJU1BfQkxTIHx8Cj4gICAgICAgICAgICAg dHlwZSA9PSBNVEtfRElTUF9DT0xPUiB8fAo+ICsgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1Bf R0FNTUEgfHwKPiAgICAgICAgICAgICB0eXBlID09IE1US19EUEkgfHwKPiAgICAgICAgICAgICB0 eXBlID09IE1US19EU0kgfHwKPiAgICAgICAgICAgICB0eXBlID09IE1US19ESVNQX09WTCB8fAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCj4gaW5kZXggNWQzOWRkNTQyNTVk MS4uMjc5ZDNlNmYxMTU2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Ry di5jCj4gQEAgLTQ4NiwxMSArNDg2LDEyIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgICAgICAgICAgICAgICBwcml2YXRlLT5jb21w X25vZGVbY29tcF9pZF0gPSBvZl9ub2RlX2dldChub2RlKTsKPgo+ICAgICAgICAgICAgICAgICAv Kgo+IC0gICAgICAgICAgICAgICAgKiBDdXJyZW50bHkgb25seSB0aGUgQ09MT1IsIE9WTCwgUkRN QSwgRFNJLCBhbmQgRFBJIGJsb2NrcyBoYXZlCj4gKyAgICAgICAgICAgICAgICAqIEN1cnJlbnRs eSBvbmx5IHRoZSBDT0xPUiwgR0FNTUEsIE9WTCwgUkRNQSwgRFNJLCBhbmQgRFBJIGJsb2NrcyBo YXZlCj4gICAgICAgICAgICAgICAgICAqIHNlcGFyYXRlIGNvbXBvbmVudCBwbGF0Zm9ybSBkcml2 ZXJzIGFuZCBpbml0aWFsaXplIHRoZWlyIG93bgo+ICAgICAgICAgICAgICAgICAgKiBERFAgY29t cG9uZW50IHN0cnVjdHVyZS4gVGhlIG90aGVycyBhcmUgaW5pdGlhbGl6ZWQgaGVyZS4KPiAgICAg ICAgICAgICAgICAgICovCj4gICAgICAgICAgICAgICAgIGlmIChjb21wX3R5cGUgPT0gTVRLX0RJ U1BfQ09MT1IgfHwKPiArICAgICAgICAgICAgICAgICAgIGNvbXBfdHlwZSA9PSBNVEtfRElTUF9H QU1NQSB8fAo+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTCB8 fAo+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTF8yTCB8fAo+ ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX1JETUEgfHwKPiBAQCAt NTg5LDYgKzU5MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kcm1fcGxh dGZvcm1fZHJpdmVyID0gewo+Cj4gIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICogY29u c3QgbXRrX2RybV9kcml2ZXJzW10gPSB7Cj4gICAgICAgICAmbXRrX2Rpc3BfY29sb3JfZHJpdmVy LAo+ICsgICAgICAgJm10a19kaXNwX2dhbW1hX2RyaXZlciwKPiAgICAgICAgICZtdGtfZGlzcF9v dmxfZHJpdmVyLAo+ICAgICAgICAgJm10a19kaXNwX3JkbWFfZHJpdmVyLAo+ICAgICAgICAgJm10 a19kcGlfZHJpdmVyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCj4gaW5k ZXggZTgyMzhmYTRhYTJhYy4uMGU1NGUzZDUxMDE0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5oCj4gQEAgLTQ3LDYgKzQ3LDcgQEAgc3RydWN0IG10a19kcm1fcHJp dmF0ZSB7Cj4gIH07Cj4KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3Bf Y29sb3JfZHJpdmVyOwo+ICtleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9n YW1tYV9kcml2ZXI7Cj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292 bF9kcml2ZXI7Cj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX3JkbWFf ZHJpdmVyOwo+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZHBpX2RyaXZlcjsK PiAtLQo+IDIuMzAuMC4zNjUuZzAyYmM2OTM3ODktZ29vZwo+Cj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IExpbnV4LW1lZGlhdGVrIG1haWxpbmcg bGlzdAo+IExpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AE1EC433E0 for ; Sat, 30 Jan 2021 10:05:52 +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 0484F64DE7 for ; Sat, 30 Jan 2021 10:05:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0484F64DE7 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 323496E03C; Sat, 30 Jan 2021 10:05:51 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E2796E03C for ; Sat, 30 Jan 2021 10:05:49 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id F2F7464E0A for ; Sat, 30 Jan 2021 10:05:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612001149; bh=/QEbBItZgyb0oI8KAuKDpk4DtDTW9iuhXIrM7+HRj6Q=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=uf66muYjBLSFDN1tuCKLNKmenCUK2Tl2dcCVTzqZayiHcWOSZzZlqzdiny3M4pH8v 3PVLo+PdH2Oq6yF8GY/xuncTRukJWvlEGrSm0uFPIlaqppCLdYfCIIGr+ylO19UgTg Px3DWlsgAbXxs7iiWjy4DSiG5hYlcTIHeB5BGzvCkZntfo8hThzBqQNzmUWoKWS9Mb zhN9+J8PtSzJ+sCC6ZyBb18of1hV1xgQvXXjpAP7oY1uhnCfDuCh/+SjUI9iFbj+FO jX4LYTNy+RqixvGsXjjes5kO+3ArDOut14CwnsetT+DtwxdeGn1nxirKXj7XMJmASj xsBytYi8V/RAg== Received: by mail-ej1-f46.google.com with SMTP id a10so16615920ejg.10 for ; Sat, 30 Jan 2021 02:05:48 -0800 (PST) X-Gm-Message-State: AOAM53121lLwmrIZih/nhrGMMo7E7FeFTwDgfHYufdeaHmOghTmXhGQU Bi+CFeRSJGAQSiuNNa4djooSmiBvhRQqmHebMw== X-Google-Smtp-Source: ABdhPJx4ZRZnhyAay/ZYFKC/OlCSQkwfbYOSwwxbJU5pv0BqOKlmlC90ebOQ5LbXchWco/Z6VAoK1Y4uAB2EtE1ODJM= X-Received: by 2002:a17:906:a106:: with SMTP id t6mr8473323ejy.63.1612001147416; Sat, 30 Jan 2021 02:05:47 -0800 (PST) MIME-Version: 1.0 References: <20210129092209.2584718-1-hsinyi@chromium.org> <20210129092209.2584718-5-hsinyi@chromium.org> In-Reply-To: <20210129092209.2584718-5-hsinyi@chromium.org> From: Chun-Kuang Hu Date: Sat, 30 Jan 2021 18:05:34 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v13 4/8] drm/mediatek: separate gamma module To: Hsin-Yi Wang 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 , DTML , David Airlie , linux-kernel , DRI Development , Matthias Brugger , "moderated list:ARM/Mediatek SoC support" , Yongqiang Niu , Linux ARM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGksIEhzaW4tWWk6CgpIc2luLVlpIFdhbmcgPGhzaW55aUBjaHJvbWl1bS5vcmc+IOaWvCAyMDIx 5bm0MeaciDI55pelIOmAseS6lCDkuIvljYg1OjIz5a+r6YGT77yaCj4KPiBGcm9tOiBZb25ncWlh bmcgTml1IDx5b25ncWlhbmcubml1QG1lZGlhdGVrLmNvbT4KPgo+IG10ODE4MyBnYW1tYSBtb2R1 bGUgd2lsbCBkaWZmZXJlbnQgd2l0aCBtdDgxNzMKPiBzZXBhcmF0ZSBnYW1tYSBmb3IgYWRkIHBy aXZhdGUgZGF0YQoKQWZ0ZXIgSSBjbGVhbiB1cCBhbGwgY2hlY2twYXRjaCBlcnJvciwgYXBwbGll ZCB0byBtZWRpYXRlay1kcm0tbmV4dApbMV0uIFJlbWVtYmVyIHRvIGNsZWFuIHVwIGFsbCBjaGVj a3BhdGNoIGVycm9yIGJlZm9yZSBzZW5kIG91dApwYXRjaGVzLgoKWzFdIGh0dHBzOi8vZ2l0Lmtl cm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2NodW5rdWFuZy5odS9saW51eC5naXQv bG9nLz9oPW1lZGlhdGVrLWRybS1uZXh0CgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPgo+IFNpZ25l ZC1vZmYtYnk6IFlvbmdxaWFuZyBOaXUgPHlvbmdxaWFuZy5uaXVAbWVkaWF0ZWsuY29tPgo+IFNp Z25lZC1vZmYtYnk6IEhzaW4tWWkgV2FuZyA8aHNpbnlpQGNocm9taXVtLm9yZz4KPiBSZXZpZXdl ZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZGlzcF9kcnYuaCAgICAgfCAgMTAgKwo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2Rpc3BfZ2FtbWEuYyAgIHwgMTkxICsrKysrKysrKysrKysrKysrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgfCAgNzEgKystLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgICAgICB8ICAgNCArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAgICAgIHwgICAxICsKPiAg NiBmaWxlcyBjaGFuZ2VkLCAyMTcgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZ2FtbWEu Ywo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZSBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtlZmlsZQo+IGluZGV4IDAxZDA2MzMyZjc2NzkuLmI2 NDY3NGI5NDQ4NjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2Vm aWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gQEAgLTEsNiAr MSw3IEBACj4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPgo+ICBtZWRpYXRl ay1kcm0teSA6PSBtdGtfZGlzcF9jb2xvci5vIFwKPiArICAgICAgICAgICAgICAgICBtdGtfZGlz cF9nYW1tYS5vIFwKPiAgICAgICAgICAgICAgICAgICBtdGtfZGlzcF9vdmwubyBcCj4gICAgICAg ICAgICAgICAgICAgbXRrX2Rpc3BfcmRtYS5vIFwKPiAgICAgICAgICAgICAgICAgICBtdGtfZHJt X2NydGMubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9kcnYuaAo+IGluZGV4 IDllNTUzN2Y3NmIyMmEuLjAyMTkxMDEwNjk5ZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kaXNwX2Rydi5oCj4gQEAgLTI3LDYgKzI3LDE2IEBAIHZvaWQgbXRrX2RwaV9zdG9w KHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gIHZvaWQgbXRrX2RzaV9kZHBfc3RhcnQoc3RydWN0IGRl dmljZSAqZGV2KTsKPiAgdm9pZCBtdGtfZHNpX2RkcF9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7 Cj4KPiAraW50IG10a19nYW1tYV9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK3Zv aWQgbXRrX2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gK3ZvaWQgbXRr X2dhbW1hX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwK PiArICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpOwo+ICt2b2lkIG10a19nYW1tYV9zZXQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKTsKPiArdm9pZCBtdGtfZ2FtbWFfc2V0X2NvbW1v bih2b2lkIF9faW9tZW0gKnJlZ3MsIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpOwo+ICt2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ICt2b2lkIG10a19nYW1t YV9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gKwo+ICB2b2lkIG10a19vdmxfYmdjbHJfaW5f b24oc3RydWN0IGRldmljZSAqZGV2KTsKPiAgdm9pZCBtdGtfb3ZsX2JnY2xyX2luX29mZihzdHJ1 Y3QgZGV2aWNlICpkZXYpOwo+ICB2b2lkIG10a19vdmxfYnlwYXNzX3NoYWRvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rp c3BfZ2FtbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlzcF9nYW1tYS5jCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi42YjUyMDgwNzkyMWUz Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9nYW1tYS5jCj4gQEAgLTAsMCArMSwxOTEgQEAKPiArLyoKPiArICogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6Cj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMCBNZWRpYVRlayBJbmMuCj4g KyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvY29t cG9uZW50Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4 L29mX2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2ZfaXJxLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9t dGstY21kcS5oPgo+ICsKPiArI2luY2x1ZGUgIm10a19kaXNwX2Rydi5oIgo+ICsjaW5jbHVkZSAi bXRrX2RybV9jcnRjLmgiCj4gKyNpbmNsdWRlICJtdGtfZHJtX2RkcF9jb21wLmgiCj4gKwo+ICsj ZGVmaW5lIERJU1BfR0FNTUFfRU4gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMAo+ICsj ZGVmaW5lIEdBTU1BX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklU KDApCj4gKyNkZWZpbmUgRElTUF9HQU1NQV9DRkcgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDIwCj4gKyNkZWZpbmUgR0FNTUFfTFVUX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCSVQoMSkKPiArI2RlZmluZSBHQU1NQV9ESVRIRVJJTkcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQklUKDIpCj4gKyNkZWZpbmUgRElTUF9HQU1NQV9TSVpFICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKPiArI2RlZmluZSBESVNQX0dBTU1B X0xVVCAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAKPiArCj4gKyNkZWZpbmUgTFVUXzEw QklUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCj4gKwo+ICtzdHJ1Y3QgbXRr X2Rpc3BfZ2FtbWFfZGF0YSB7Cj4gKyAgICAgICB1MzIgcmVzZXJ2ZWQ7Cj4gK307Cj4gKwo+ICsv KioKPiArICogc3RydWN0IG10a19kaXNwX2dhbW1hIC0gRElTUF9HQU1NQSBkcml2ZXIgc3RydWN0 dXJlCj4gKyAqIEBkZHBfY29tcCAtIHN0cnVjdHVyZSBjb250YWluaW5nIHR5cGUgZW51bSBhbmQg aGFyZHdhcmUgcmVzb3VyY2VzCj4gKyAqIEBjcnRjIC0gYXNzb2NpYXRlZCBjcnRjIHRvIHJlcG9y dCBpcnEgZXZlbnRzIHRvCj4gKyAqLwo+ICtzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgewo+ICsgICAg ICAgc3RydWN0IGNsayAqY2xrOwo+ICsgICAgICAgdm9pZCBfX2lvbWVtICpyZWdzOwo+ICsgICAg ICAgc3RydWN0IGNtZHFfY2xpZW50X3JlZyBjbWRxX3JlZzsKPiArICAgICAgIGNvbnN0IHN0cnVj dCBtdGtfZGlzcF9nYW1tYV9kYXRhICpkYXRhOwo+ICt9Owo+ICsKPiAraW50IG10a19nYW1tYV9j bGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3RydWN0IG10a19k aXNwX2dhbW1hICpnYW1tYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAgICAgIHJl dHVybiBjbGtfcHJlcGFyZV9lbmFibGUoZ2FtbWEtPmNsayk7Cj4gK30KPiArCj4gK3ZvaWQgbXRr X2dhbW1hX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgICAgc3Ry dWN0IG10a19kaXNwX2dhbW1hICpnYW1tYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiAr ICAgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShnYW1tYS0+Y2xrKTsKPiArfQo+ICsKPiArdm9p ZCBtdGtfZ2FtbWFfc2V0X2NvbW1vbih2b2lkIF9faW9tZW0gKnJlZ3MsIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArICAgICAgIHVuc2lnbmVkIGludCBpLCByZWc7Cj4gKyAg ICAgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0Owo+ICsgICAgICAgdm9pZCBfX2lvbWVtICps dXRfYmFzZTsKPiArICAgICAgIHUzMiB3b3JkOwo+ICsKPiArICAgICAgIGlmIChzdGF0ZS0+Z2Ft bWFfbHV0KSB7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlYWRsKHJlZ3MgKyBESVNQX0dBTU1B X0NGRyk7Cj4gKyAgICAgICAgICAgICAgIHJlZyA9IHJlZyB8IEdBTU1BX0xVVF9FTjsKPiArICAg ICAgICAgICAgICAgd3JpdGVsKHJlZywgcmVncyArIERJU1BfR0FNTUFfQ0ZHKTsKPiArICAgICAg ICAgICAgICAgbHV0X2Jhc2UgPSByZWdzICsgRElTUF9HQU1NQV9MVVQ7Cj4gKyAgICAgICAgICAg ICAgIGx1dCA9IChzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqKXN0YXRlLT5nYW1tYV9sdXQtPmRhdGE7 Cj4gKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBNVEtfTFVUX1NJWkU7IGkrKykgewo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHdvcmQgPSAoKChsdXRbaV0ucmVkID4+IDYpICYgTFVU XzEwQklUX01BU0spIDw8IDIwKSArCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KChsdXRbaV0uZ3JlZW4gPj4gNikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMTApICsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgobHV0W2ldLmJsdWUgPj4gNikgJiBMVVRfMTBCSVRf TUFTSyk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVsKHdvcmQsIChsdXRfYmFzZSAr IGkgKiA0KSk7Cj4gKyAgICAgICAgICAgICAgIH0KPiArICAgICAgIH0KPiArfQo+ICsKPiArdm9p ZCBtdGtfZ2FtbWFfc2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpzdGF0ZSkKPiArewo+ICsgICAgICAgc3RydWN0IG10a19kaXNwX2dhbW1hICpnYW1tYSA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAgICAgIG10a19nYW1tYV9zZXRfY29tbW9uKGdh bW1hLT5yZWdzLCBzdGF0ZSk7Cj4gK30KPiArCj4gK3ZvaWQgbXRrX2dhbW1hX2NvbmZpZyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+ICsgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgaCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLAo+ICsgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgKmdhbW1hID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsgICAgICAgbXRrX2RkcF93cml0ZShjbWRxX3BrdCwgaCA8PCAxNiB8IHcsICZn YW1tYS0+Y21kcV9yZWcsIGdhbW1hLT5yZWdzLAo+ICsgICAgICAgICAgICAgICAgICAgICBESVNQ X0dBTU1BX1NJWkUpOwo+ICsgICAgICAgbXRrX2RpdGhlcl9zZXRfY29tbW9uKGdhbW1hLT5yZWdz LCAmZ2FtbWEtPmNtZHFfcmVnLCBicGMsIERJU1BfR0FNTUFfQ0ZHLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdBTU1BX0RJVEhFUklORywgY21kcV9wa3QpOwo+ICt9Cj4gKwo+ICt2 b2lkIG10a19nYW1tYV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArICAgICAgIHN0 cnVjdCBtdGtfZGlzcF9nYW1tYSAqZ2FtbWEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4g KyAgICAgICB3cml0ZWwoR0FNTUFfRU4sIGdhbW1hLT5yZWdzICsgRElTUF9HQU1NQV9FTik7Cj4g K30KPiArCj4gK3ZvaWQgbXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4g KyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEgKmdhbW1hID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4gKwo+ICsgICAgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCBnYW1tYS0+cmVncyArIERJU1Bf R0FNTUFfRU4pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX2dhbW1hX2JpbmQoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCj4gK3sKPiArICAgICAgIHJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBtdGtfZGlzcF9nYW1tYV91bmJpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQgKmRhdGEpCj4gK3sKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBj b21wb25lbnRfb3BzIG10a19kaXNwX2dhbW1hX2NvbXBvbmVudF9vcHMgPSB7Cj4gKyAgICAgICAu YmluZCAgID0gbXRrX2Rpc3BfZ2FtbWFfYmluZCwKPiArICAgICAgIC51bmJpbmQgPSBtdGtfZGlz cF9nYW1tYV91bmJpbmQsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IG10a19kaXNwX2dhbW1hX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3BfZ2FtbWEg KnByaXY7Cj4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiArICAgICAgIGludCByZXQ7 Cj4gKwo+ICsgICAgICAgcHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdG UF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFwcml2KQo+ICsgICAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKPiArCj4gKyAgICAgICBwcml2LT5jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCBOVUxM KTsKPiArICAgICAgIGlmIChJU19FUlIocHJpdi0+Y2xrKSkgewo+ICsgICAgICAgICAgICAgICBk ZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgZ2FtbWEgY2xrXG4iKTsKPiArICAgICAgICAgICAg ICAgcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBy ZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ICsg ICAgICAgcHJpdi0+cmVncyA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKyAg ICAgICBpZiAoSVNfRVJSKHByaXYtPnJlZ3MpKSB7Cj4gKyAgICAgICAgICAgICAgIGRldl9lcnIo ZGV2LCAiZmFpbGVkIHRvIGlvcmVtYXAgZ2FtbWFcbiIpOwo+ICsgICAgICAgICAgICAgICByZXR1 cm4gUFRSX0VSUihwcml2LT5yZWdzKTsKPiArICAgICAgIH0KPiArCj4gKyNpZiBJU19SRUFDSEFC TEUoQ09ORklHX01US19DTURRKQo+ICsgICAgICAgcmV0ID0gY21kcV9kZXZfZ2V0X2NsaWVudF9y ZWcoZGV2LCAmcHJpdi0+Y21kcV9yZWcsIDApOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAg ICAgICAgICAgZGV2X2RiZyhkZXYsICJnZXQgbWVkaWF0ZWssZ2NlLWNsaWVudC1yZWcgZmFpbCFc biIpOwo+ICsjZW5kaWYKPiArCj4gKyAgICAgICBwcml2LT5kYXRhID0gb2ZfZGV2aWNlX2dldF9t YXRjaF9kYXRhKGRldik7Cj4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwcml2 KTsKPiArCj4gKyAgICAgICByZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10a19kaXNwX2dhbW1h X2NvbXBvbmVudF9vcHMpOwo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAgICAgICAgICAgZGV2 X2VycihkZXYsICJGYWlsZWQgdG8gYWRkIGNvbXBvbmVudDogJWRcbiIsIHJldCk7Cj4gKwo+ICsg ICAgICAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdGtfZGlzcF9nYW1tYV9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsgICAgICAgY29tcG9u ZW50X2RlbCgmcGRldi0+ZGV2LCAmbXRrX2Rpc3BfZ2FtbWFfY29tcG9uZW50X29wcyk7Cj4gKwo+ ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2 aWNlX2lkIG10a19kaXNwX2dhbW1hX2RyaXZlcl9kdF9tYXRjaFtdID0gewo+ICsgICAgICAgeyAu Y29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC1nYW1tYSJ9LAo+ICsgICAgICAge30s Cj4gK307Cj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10a19kaXNwX2dhbW1hX2RyaXZlcl9k dF9tYXRjaCk7Cj4gKwo+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX2dhbW1hX2Ry aXZlciA9IHsKPiArICAgICAgIC5wcm9iZSAgICAgICAgICA9IG10a19kaXNwX2dhbW1hX3Byb2Jl LAo+ICsgICAgICAgLnJlbW92ZSAgICAgICAgID0gbXRrX2Rpc3BfZ2FtbWFfcmVtb3ZlLAo+ICsg ICAgICAgLmRyaXZlciAgICAgICAgID0gewo+ICsgICAgICAgICAgICAgICAubmFtZSAgID0gIm1l ZGlhdGVrLWRpc3AtZ2FtbWEiLAo+ICsgICAgICAgICAgICAgICAub3duZXIgID0gVEhJU19NT0RV TEUsCj4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG10a19kaXNwX2dhbW1hX2Ry aXZlcl9kdF9tYXRjaCwKPiArICAgICAgIH0sCj4gK307Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21wLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jCj4gaW5kZXggMDc4MDRhYjE2ZjQ0ZC4uYWMyY2IyNTYy MDM1NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBf Y29tcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAu Ywo+IEBAIC01NSwxMSArNTUsNiBAQAo+ICAjZGVmaW5lIERJVEhFUl9SRUxBWV9NT0RFICAgICAg ICAgICAgICAgICAgICAgIEJJVCgwKQo+ICAjZGVmaW5lIERJU1BfRElUSEVSX1NJWkUgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzMAo+Cj4gLSNkZWZpbmUgRElTUF9HQU1NQV9FTiAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAwCj4gLSNkZWZpbmUgRElTUF9HQU1NQV9DRkcgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDIwCj4gLSNkZWZpbmUgRElTUF9HQU1NQV9TSVpFICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAKPiAtI2RlZmluZSBESVNQX0dBTU1BX0xV VCAgICAgICAgICAgICAgICAgICAgICAgICAweDA3MDAKPiAtCj4gICNkZWZpbmUgTFVUXzEwQklU X01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgMHgwM2ZmCj4KPiAgI2RlZmluZSBPRF9SRUxB WU1PREUgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkKPiBAQCAtNjgsOSArNjMsNiBA QAo+Cj4gICNkZWZpbmUgQUFMX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklU KDApCj4KPiAtI2RlZmluZSBHQU1NQV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC SVQoMCkKPiAtI2RlZmluZSBHQU1NQV9MVVRfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICBC SVQoMSkKPiAtCj4gICNkZWZpbmUgRElTUF9ESVRIRVJJTkcgICAgICAgICAgICAgICAgICAgICAg ICAgQklUKDIpCj4gICNkZWZpbmUgRElUSEVSX0xTQl9FUlJfU0hJRlRfUih4KSAgICAgICAgICAg ICAgKCgoeCkgJiAweDcpIDw8IDI4KQo+ICAjZGVmaW5lIERJVEhFUl9PVkZMV19CSVRfUih4KSAg ICAgICAgICAgICAgICAgICgoKHgpICYgMHg3KSA8PCAyNCkKPiBAQCAtMTUxLDcgKzE0Myw2IEBA IHN0YXRpYyB2b2lkIG10a19kZHBfY2xrX2Rpc2FibGUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAg ICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByaXYtPmNsayk7Cj4gIH0KPgo+IC0KPiAgdm9p ZCBtdGtfZGl0aGVyX3NldF9jb21tb24odm9pZCBfX2lvbWVtICpyZWdzLCBzdHJ1Y3QgY21kcV9j bGllbnRfcmVnICpjbWRxX3JlZywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgYnBjLCB1bnNpZ25lZCBpbnQgY2ZnLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBkaXRoZXJfZW4sIHN0cnVjdCBjbWRxX3BrdCAqY21kcV9wa3QpCj4gQEAg LTIyMSw2ICsyMTIsMTMgQEAgc3RhdGljIHZvaWQgbXRrX2FhbF9jb25maWcoc3RydWN0IGRldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgdywKPiAgICAgICAgIG10a19kZHBfd3JpdGUoY21kcV9wa3Qs IHcgPDwgMTYgfCBoLCAmcHJpdi0+Y21kcV9yZWcsIHByaXYtPnJlZ3MsIERJU1BfQUFMX1NJWkUp Owo+ICB9Cj4KPiArc3RhdGljIHZvaWQgbXRrX2FhbF9nYW1tYV9zZXQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArICAg ICAgICBtdGtfZ2FtbWFfc2V0X2NvbW1vbihwcml2LT5yZWdzLCBzdGF0ZSk7Cj4gK30KPiArCj4g IHN0YXRpYyB2b2lkIG10a19hYWxfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gICAg ICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+IEBAIC0zMzUsNTggKzMzMywxMCBAQCBzdGF0aWMgdm9pZCBtdGtfZGl0aGVyX3N0b3Aoc3Ry dWN0IGRldmljZSAqZGV2KQo+ICAgICAgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCBwcml2LT5yZWdz ICsgRElTUF9ESVRIRVJfRU4pOwo+ICB9Cj4KPiAtc3RhdGljIHZvaWQgbXRrX2dhbW1hX2NvbmZp ZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCB3LAo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGgsIHVuc2lnbmVkIGludCB2cmVmcmVzaCwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3Br dCAqY21kcV9wa3QpCj4gLXsKPiAtICAgICAgIHN0cnVjdCBtdGtfZGRwX2NvbXBfZGV2ICpwcml2 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gLQo+IC0gICAgICAgbXRrX2RkcF93cml0ZShjbWRx X3BrdCwgaCA8PCAxNiB8IHcsICZwcml2LT5jbWRxX3JlZywgcHJpdi0+cmVncywgRElTUF9HQU1N QV9TSVpFKTsKPiAtICAgICAgIG10a19kaXRoZXJfc2V0KGRldiwgYnBjLCBESVNQX0dBTU1BX0NG RywgY21kcV9wa3QpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBtdGtfZ2FtbWFfc3RhcnQoc3Ry dWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLSAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAq cHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0KPiAtICAgICAgIHdyaXRlbChHQU1NQV9F TiwgcHJpdi0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQg bXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2KQo+IC17Cj4gLSAgICAgICBzdHJ1Y3Qg bXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+IC0KPiAtICAg ICAgIHdyaXRlbF9yZWxheGVkKDB4MCwgcHJpdi0+cmVncyAgKyBESVNQX0dBTU1BX0VOKTsKPiAt fQo+IC0KPiAtc3RhdGljIHZvaWQgbXRrX2dhbW1hX3NldChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQo+ IC17Cj4gLSAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wX2RldiAqcHJpdiA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwo+IC0gICAgICAgdW5zaWduZWQgaW50IGksIHJlZzsKPiAtICAgICAgIHN0cnVj dCBkcm1fY29sb3JfbHV0ICpsdXQ7Cj4gLSAgICAgICB2b2lkIF9faW9tZW0gKmx1dF9iYXNlOwo+ IC0gICAgICAgdTMyIHdvcmQ7Cj4gLQo+IC0gICAgICAgaWYgKHN0YXRlLT5nYW1tYV9sdXQpIHsK PiAtICAgICAgICAgICAgICAgcmVnID0gcmVhZGwocHJpdi0+cmVncyArIERJU1BfR0FNTUFfQ0ZH KTsKPiAtICAgICAgICAgICAgICAgcmVnID0gcmVnIHwgR0FNTUFfTFVUX0VOOwo+IC0gICAgICAg ICAgICAgICB3cml0ZWwocmVnLCBwcml2LT5yZWdzICsgRElTUF9HQU1NQV9DRkcpOwo+IC0gICAg ICAgICAgICAgICBsdXRfYmFzZSA9IHByaXYtPnJlZ3MgKyBESVNQX0dBTU1BX0xVVDsKPiAtICAg ICAgICAgICAgICAgbHV0ID0gKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopc3RhdGUtPmdhbW1hX2x1 dC0+ZGF0YTsKPiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IE1US19MVVRfU0laRTsg aSsrKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgd29yZCA9ICgoKGx1dFtpXS5yZWQgPj4g NikgJiBMVVRfMTBCSVRfTUFTSykgPDwgMjApICsKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoKGx1dFtpXS5ncmVlbiA+PiA2KSAmIExVVF8xMEJJVF9NQVNLKSA8PCAxMCkgKwo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsdXRbaV0uYmx1ZSA+PiA2KSAmIExV VF8xMEJJVF9NQVNLKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICB3cml0ZWwod29yZCwgKGx1 dF9iYXNlICsgaSAqIDQpKTsKPiAtICAgICAgICAgICAgICAgfQo+IC0gICAgICAgfQo+IC19Cj4g LQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfYWFsID0gewo+ ICAgICAgICAgLmNsa19lbmFibGUgPSBtdGtfZGRwX2Nsa19lbmFibGUsCj4gICAgICAgICAuY2xr X2Rpc2FibGUgPSBtdGtfZGRwX2Nsa19kaXNhYmxlLAo+IC0gICAgICAgLmdhbW1hX3NldCA9IG10 a19nYW1tYV9zZXQsCj4gKyAgICAgICAuZ2FtbWFfc2V0ID0gbXRrX2FhbF9nYW1tYV9zZXQsCj4g ICAgICAgICAuY29uZmlnID0gbXRrX2FhbF9jb25maWcsCj4gICAgICAgICAuc3RhcnQgPSBtdGtf YWFsX3N0YXJ0LAo+ICAgICAgICAgLnN0b3AgPSBtdGtfYWFsX3N0b3AsCj4gQEAgLTQyNyw4ICsz NzcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfZHNpID0g ewo+ICB9Owo+Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RkcF9jb21wX2Z1bmNzIGRkcF9n YW1tYSA9IHsKPiAtICAgICAgIC5jbGtfZW5hYmxlID0gbXRrX2RkcF9jbGtfZW5hYmxlLAo+IC0g ICAgICAgLmNsa19kaXNhYmxlID0gbXRrX2RkcF9jbGtfZGlzYWJsZSwKPiArICAgICAgIC5jbGtf ZW5hYmxlID0gbXRrX2dhbW1hX2Nsa19lbmFibGUsCj4gKyAgICAgICAuY2xrX2Rpc2FibGUgPSBt dGtfZ2FtbWFfY2xrX2Rpc2FibGUsCj4gICAgICAgICAuZ2FtbWFfc2V0ID0gbXRrX2dhbW1hX3Nl dCwKPiAgICAgICAgIC5jb25maWcgPSBtdGtfZ2FtbWFfY29uZmlnLAo+ICAgICAgICAgLnN0YXJ0 ID0gbXRrX2dhbW1hX3N0YXJ0LAo+IEBAIC02NDQsNiArNTk0LDcgQEAgaW50IG10a19kZHBfY29t cF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgc3RydWN0IG10a19kZHBfY29tcCAqY29t cCwKPgo+ICAgICAgICAgaWYgKHR5cGUgPT0gTVRLX0RJU1BfQkxTIHx8Cj4gICAgICAgICAgICAg dHlwZSA9PSBNVEtfRElTUF9DT0xPUiB8fAo+ICsgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1Bf R0FNTUEgfHwKPiAgICAgICAgICAgICB0eXBlID09IE1US19EUEkgfHwKPiAgICAgICAgICAgICB0 eXBlID09IE1US19EU0kgfHwKPiAgICAgICAgICAgICB0eXBlID09IE1US19ESVNQX09WTCB8fAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCj4gaW5kZXggNWQzOWRkNTQyNTVk MS4uMjc5ZDNlNmYxMTU2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RybV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Ry di5jCj4gQEAgLTQ4NiwxMSArNDg2LDEyIEBAIHN0YXRpYyBpbnQgbXRrX2RybV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAgICAgICAgICAgICAgICBwcml2YXRlLT5jb21w X25vZGVbY29tcF9pZF0gPSBvZl9ub2RlX2dldChub2RlKTsKPgo+ICAgICAgICAgICAgICAgICAv Kgo+IC0gICAgICAgICAgICAgICAgKiBDdXJyZW50bHkgb25seSB0aGUgQ09MT1IsIE9WTCwgUkRN QSwgRFNJLCBhbmQgRFBJIGJsb2NrcyBoYXZlCj4gKyAgICAgICAgICAgICAgICAqIEN1cnJlbnRs eSBvbmx5IHRoZSBDT0xPUiwgR0FNTUEsIE9WTCwgUkRNQSwgRFNJLCBhbmQgRFBJIGJsb2NrcyBo YXZlCj4gICAgICAgICAgICAgICAgICAqIHNlcGFyYXRlIGNvbXBvbmVudCBwbGF0Zm9ybSBkcml2 ZXJzIGFuZCBpbml0aWFsaXplIHRoZWlyIG93bgo+ICAgICAgICAgICAgICAgICAgKiBERFAgY29t cG9uZW50IHN0cnVjdHVyZS4gVGhlIG90aGVycyBhcmUgaW5pdGlhbGl6ZWQgaGVyZS4KPiAgICAg ICAgICAgICAgICAgICovCj4gICAgICAgICAgICAgICAgIGlmIChjb21wX3R5cGUgPT0gTVRLX0RJ U1BfQ09MT1IgfHwKPiArICAgICAgICAgICAgICAgICAgIGNvbXBfdHlwZSA9PSBNVEtfRElTUF9H QU1NQSB8fAo+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTCB8 fAo+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTF8yTCB8fAo+ ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX1JETUEgfHwKPiBAQCAt NTg5LDYgKzU5MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kcm1fcGxh dGZvcm1fZHJpdmVyID0gewo+Cj4gIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICogY29u c3QgbXRrX2RybV9kcml2ZXJzW10gPSB7Cj4gICAgICAgICAmbXRrX2Rpc3BfY29sb3JfZHJpdmVy LAo+ICsgICAgICAgJm10a19kaXNwX2dhbW1hX2RyaXZlciwKPiAgICAgICAgICZtdGtfZGlzcF9v dmxfZHJpdmVyLAo+ICAgICAgICAgJm10a19kaXNwX3JkbWFfZHJpdmVyLAo+ICAgICAgICAgJm10 a19kcGlfZHJpdmVyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCj4gaW5k ZXggZTgyMzhmYTRhYTJhYy4uMGU1NGUzZDUxMDE0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHJtX2Rydi5oCj4gQEAgLTQ3LDYgKzQ3LDcgQEAgc3RydWN0IG10a19kcm1fcHJp dmF0ZSB7Cj4gIH07Cj4KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3Bf Y29sb3JfZHJpdmVyOwo+ICtleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZGlzcF9n YW1tYV9kcml2ZXI7Cj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX292 bF9kcml2ZXI7Cj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX3JkbWFf ZHJpdmVyOwo+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZHBpX2RyaXZlcjsK PiAtLQo+IDIuMzAuMC4zNjUuZzAyYmM2OTM3ODktZ29vZwo+Cj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IExpbnV4LW1lZGlhdGVrIG1haWxpbmcg bGlzdAo+IExpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=