From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68AA0C433B4 for ; Tue, 11 May 2021 16:59:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3ACFD6134F for ; Tue, 11 May 2021 16:59:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231454AbhEKRA6 (ORCPT ); Tue, 11 May 2021 13:00:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:34766 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231230AbhEKRA5 (ORCPT ); Tue, 11 May 2021 13:00:57 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7A7C1617C9; Tue, 11 May 2021 16:59:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620752390; bh=fIaiKncbOhF42NMcvb4keKbwIafRTHDcsfrQf6pI4Zc=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=iSOZZjkLk1XC2l7Ax+Cejz3YlYEvxypiYQEMM1+doGiT2tjeA46AqiAH1no71ZxgU aXMplkqs+teBTIiQ7yV4cSjsEPNT7mJuMFqsvX2jG1n6qDgLAR0rDicrYsKJVFZ7ow eunzD+6ugHMcpFbv7t22K3drcWLFU05L6+C7L0qS/PBtHlfmbtHsBtmJ910yJmse60 n45dphqcT2+6qZ8D9VKeKoPOySfD5uZK6qjZ7NqvHs0s33ebXyBQO6hud9rZKCGHUz C0pmR7VGDAoLWT4zyo5RfVVn5rRJAlS0HlyLulgaVqJULDOBhCBI/fNBwxUvr+1QwZ XICr7CfLBDaJg== Received: by mail-ej1-f45.google.com with SMTP id b25so30763926eju.5; Tue, 11 May 2021 09:59:50 -0700 (PDT) X-Gm-Message-State: AOAM533+E9NQ+8c3t4NhfWOArIybY8Fcbnaysl23ciaPLUcfwpsKFg3s IfiTg+Pc6y4OfBs7bjn/dSBsdPqSuN6NAgpQsQ== X-Google-Smtp-Source: ABdhPJxp5uMHxFRYAjGBeRPy0112+HQl4dnKPgPi5HnV7AMeIGK9ib7Kgyb4Krz215eGf9u0Uv0O15l+sUz8XH7qDeI= X-Received: by 2002:a17:906:b0cb:: with SMTP id bk11mr33264259ejb.310.1620752388961; Tue, 11 May 2021 09:59:48 -0700 (PDT) MIME-Version: 1.0 References: <20210429041641.11077-1-rex-bc.chen@mediatek.com> <20210429041641.11077-4-rex-bc.chen@mediatek.com> In-Reply-To: <20210429041641.11077-4-rex-bc.chen@mediatek.com> From: Chun-Kuang Hu Date: Wed, 12 May 2021 00:59:37 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v3 RESEND,PATCH 3/3] drm/mediatek: dpi: add bus format negotiation To: Rex-BC Chen Cc: Chun-Kuang Hu , Matthias Brugger , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Project_Global_Chrome_Upstream_Group@mediatek.com, Jitao Shi 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, Rex: Rex-BC Chen =E6=96=BC 2021=E5=B9=B44=E6=9C=8829= =E6=97=A5 =E9=80=B1=E5=9B=9B =E4=B8=8B=E5=8D=8812:16=E5=AF=AB=E9=81=93=EF= =BC=9A > > Add the atomic_get_output_bus_fmts, atomic_get_input_bus_fmts to negotiat= e > the possible output and input formats for the current mode and monitor, > and use the negotiated formats in a basic atomic_check callback. > > Signed-off-by: Jitao Shi > Signed-off-by: Rex-BC Chen > --- > drivers/gpu/drm/mediatek/mtk_dpi.c | 92 ++++++++++++++++++++++++++++-- > 1 file changed, 87 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediate= k/mtk_dpi.c > index c548780dd3a5..8822d9448ae8 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > @@ -536,6 +536,87 @@ static int mtk_dpi_set_display_mode(struct mtk_dpi *= dpi, > return 0; > } > > +#define MAX_OUTPUT_SEL_FORMATS 2 > + > +static u32 *mtk_dpi_bridge_atomic_get_output_bus_fmts(struct drm_bridge = *bridge, > + struct drm_bridge_state *bridge_s= tate, > + struct drm_crtc_state *crtc_state= , > + struct drm_connector_state *conn_= state, > + unsigned int *num_output_fmts) > +{ > + u32 *output_fmts; > + struct mtk_dpi *dpi =3D bridge_to_dpi(bridge); > + > + *num_output_fmts =3D 0; > + > + output_fmts =3D kcalloc(MAX_OUTPUT_SEL_FORMATS, sizeof(*output_fm= ts), > + GFP_KERNEL); > + if (!output_fmts) > + return NULL; > + > + /* Default 8bit RGB fallback */ > + if (dpi->conf->dual_edge) { > + output_fmts[0] =3D MEDIA_BUS_FMT_RGB888_2X12_LE; > + output_fmts[1] =3D MEDIA_BUS_FMT_RGB888_2X12_BE; > + *num_output_fmts =3D 2; > + } else { > + output_fmts[0] =3D MEDIA_BUS_FMT_RGB888_1X24; > + *num_output_fmts =3D 1; > + } > + > + return output_fmts; > +} > + > +#define MAX_INPUT_SEL_FORMATS 1 > + > +static u32 *mtk_dpi_bridge_atomic_get_input_bus_fmts(struct drm_bridge *= bridge, > + struct drm_bridge_state *bridge_s= tate, > + struct drm_crtc_state *crtc_state= , > + struct drm_connector_state *conn_= state, > + u32 output_fmt, > + unsigned int *num_input_fmts) > +{ > + u32 *input_fmts; > + > + *num_input_fmts =3D 0; > + > + input_fmts =3D kcalloc(MAX_INPUT_SEL_FORMATS, sizeof(*input_fmts)= , > + GFP_KERNEL); > + if (!input_fmts) > + return NULL; > + > + *num_input_fmts =3D 1; > + input_fmts[0] =3D MEDIA_BUS_FMT_RGB888_1X24; > + > + return input_fmts; > +} > + > +static int mtk_dpi_bridge_atomic_check(struct drm_bridge *bridge, > + struct drm_bridge_state *bridge_st= ate, > + struct drm_crtc_state *crtc_state, > + struct drm_connector_state *conn_s= tate) > +{ > + struct mtk_dpi *dpi =3D bridge->driver_private; > + unsigned int out_bus_format; > + > + out_bus_format =3D bridge_state->output_bus_cfg.format; > + > + dev_dbg(dpi->dev, "input format 0x%04x, output format 0x%04x\n", > + bridge_state->input_bus_cfg.format, > + bridge_state->output_bus_cfg.format); > + > + dpi->ddr_edge_sel =3D (out_bus_format =3D=3D MEDIA_BUS_FMT_RGB888= _2X12_LE) ? > + true : false; I would like to keep the out_bus_format rather than keep ddr_edge_sel, and in mtk_dpi_dual_edge() use dpi->out_bus_format to decide edge selection. Regards, Chun-Kuang. > + > + dpi->bit_num =3D MTK_DPI_OUT_BIT_NUM_8BITS; > + dpi->channel_swap =3D MTK_DPI_OUT_CHANNEL_SWAP_RGB; > + dpi->yc_map =3D MTK_DPI_OUT_YC_MAP_RGB; > + dpi->color_format =3D MTK_DPI_COLOR_FORMAT_RGB; > + > + return 0; > +} > + > static int mtk_dpi_bridge_attach(struct drm_bridge *bridge, > enum drm_bridge_attach_flags flags) > { > > @@ -574,6 +655,12 @@ static const struct drm_bridge_funcs mtk_dpi_bridge_= funcs =3D { > .mode_set =3D mtk_dpi_bridge_mode_set, > .disable =3D mtk_dpi_bridge_disable, > .enable =3D mtk_dpi_bridge_enable, > + .atomic_check =3D mtk_dpi_bridge_atomic_check, > + .atomic_get_output_bus_fmts =3D mtk_dpi_bridge_atomic_get_output_= bus_fmts, > + .atomic_get_input_bus_fmts =3D mtk_dpi_bridge_atomic_get_input_bu= s_fmts, > + .atomic_duplicate_state =3D drm_atomic_helper_bridge_duplicate_st= ate, > + .atomic_destroy_state =3D drm_atomic_helper_bridge_destroy_state, > + .atomic_reset =3D drm_atomic_helper_bridge_reset, > }; > > void mtk_dpi_start(struct device *dev) > @@ -620,11 +707,6 @@ static int mtk_dpi_bind(struct device *dev, struct d= evice *master, void *data) > } > drm_connector_attach_encoder(dpi->connector, &dpi->encoder); > > - dpi->bit_num =3D MTK_DPI_OUT_BIT_NUM_8BITS; > - dpi->channel_swap =3D MTK_DPI_OUT_CHANNEL_SWAP_RGB; > - dpi->yc_map =3D MTK_DPI_OUT_YC_MAP_RGB; > - dpi->color_format =3D MTK_DPI_COLOR_FORMAT_RGB; > - > return 0; > > err_cleanup: > -- > 2.18.0 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74E58C433ED for ; Tue, 11 May 2021 17:01:33 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CF6C461005 for ; Tue, 11 May 2021 17:01:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CF6C461005 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=cE7oXg8WvMD72hE7WQG9CeWL3e1x/f9nHMrQ6CM7ykg=; b=OoeebVGdzRVuzDoGM3z6pIlQp 7E0bSVUVM7khUkc2FUalWCxwQrYE+8eZ4j51QmYGqS6ZssRUyQT72LubE/ImMSIoYrKwcqLPVO4q3 ZSC+8Sd4KbCrqXUaCB8k9WnFZLemJpUvkm7/3nktfl9sCkfGJppQc/Pnh3OPClf42fj/sLA+U7+ti v4t/5jRCTm98weqg32RWJ2zUk4lSwIdLNdOLiCrw0qi6hLwt/UeaEmJ91Z2zm0xMcQNBwI8h3d/z6 By2mLiHIoGKMEIK6qVFxwSfHBTdbGfbutdS0nQ4FKPLv+VJdM3etWj+FZu56QhX0O7FAIM1DAcTew jF6SwgAdQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgVkw-000r2J-3D; Tue, 11 May 2021 17:01:14 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgVje-000qh0-6a; Tue, 11 May 2021 16:59:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Sender:Reply-To:Content-ID:Content-Description; bh=EoXOETOub3kPi/wN4MAx9ZXv4cqzuQ5RDEtkoONf2lA=; b=reSxOtt6FYza/eqB2mYEcdKRr2 19eWOHljEg41RjS/J+wGEjjt8i94D1l0cRSTlCFrIwt0jd1sikHberuDlvuEHZYapNQY9oEgFemLQ 1jrZYN2NyQyvoe+r9NmrGvpZOwsONQRRWulmLxIPk51zC4ohyAQlzX47uhGUUUfHI/cKvE4d78dHu Wozb2Ua/xsay1z/jMTxBhBbVAnsnKXixscPtl1RVjJ/79XTmUU+mPgOgnkulc9zY00Y3NroGuLt6w irVq8PyvEZe3QzaGWEybGy8BoqLMF0URgbFUW+RKct3C+uJpKv32M4BYp/MnQXwiw9ACbUjdlPbEb xAzxmYpQ==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgVjb-009n3h-61; Tue, 11 May 2021 16:59:52 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 762E861482; Tue, 11 May 2021 16:59:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620752390; bh=fIaiKncbOhF42NMcvb4keKbwIafRTHDcsfrQf6pI4Zc=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=iSOZZjkLk1XC2l7Ax+Cejz3YlYEvxypiYQEMM1+doGiT2tjeA46AqiAH1no71ZxgU aXMplkqs+teBTIiQ7yV4cSjsEPNT7mJuMFqsvX2jG1n6qDgLAR0rDicrYsKJVFZ7ow eunzD+6ugHMcpFbv7t22K3drcWLFU05L6+C7L0qS/PBtHlfmbtHsBtmJ910yJmse60 n45dphqcT2+6qZ8D9VKeKoPOySfD5uZK6qjZ7NqvHs0s33ebXyBQO6hud9rZKCGHUz C0pmR7VGDAoLWT4zyo5RfVVn5rRJAlS0HlyLulgaVqJULDOBhCBI/fNBwxUvr+1QwZ XICr7CfLBDaJg== Received: by mail-ej1-f42.google.com with SMTP id l4so30802841ejc.10; Tue, 11 May 2021 09:59:50 -0700 (PDT) X-Gm-Message-State: AOAM531Y9KOI1wBbeVwesusJ/lxYo1VERPROu2KsLrNutPhcUgOuEMPz JvxEuisVWlGkEpCLJcIzGUaT8tvb9U0HuknNBw== X-Google-Smtp-Source: ABdhPJxp5uMHxFRYAjGBeRPy0112+HQl4dnKPgPi5HnV7AMeIGK9ib7Kgyb4Krz215eGf9u0Uv0O15l+sUz8XH7qDeI= X-Received: by 2002:a17:906:b0cb:: with SMTP id bk11mr33264259ejb.310.1620752388961; Tue, 11 May 2021 09:59:48 -0700 (PDT) MIME-Version: 1.0 References: <20210429041641.11077-1-rex-bc.chen@mediatek.com> <20210429041641.11077-4-rex-bc.chen@mediatek.com> In-Reply-To: <20210429041641.11077-4-rex-bc.chen@mediatek.com> From: Chun-Kuang Hu Date: Wed, 12 May 2021 00:59:37 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v3 RESEND, PATCH 3/3] drm/mediatek: dpi: add bus format negotiation To: Rex-BC Chen Cc: Chun-Kuang Hu , Matthias Brugger , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Project_Global_Chrome_Upstream_Group@mediatek.com, Jitao Shi X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210511_095951_326394_0DEABCC1 X-CRM114-Status: GOOD ( 19.47 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGksIFJleDoKClJleC1CQyBDaGVuIDxyZXgtYmMuY2hlbkBtZWRpYXRlay5jb20+IOaWvCAyMDIx 5bm0NOaciDI55pelIOmAseWbmyDkuIvljYgxMjoxNuWvq+mBk++8mgo+Cj4gQWRkIHRoZSBhdG9t aWNfZ2V0X291dHB1dF9idXNfZm10cywgYXRvbWljX2dldF9pbnB1dF9idXNfZm10cyB0byBuZWdv dGlhdGUKPiB0aGUgcG9zc2libGUgb3V0cHV0IGFuZCBpbnB1dCBmb3JtYXRzIGZvciB0aGUgY3Vy cmVudCBtb2RlIGFuZCBtb25pdG9yLAo+IGFuZCB1c2UgdGhlIG5lZ290aWF0ZWQgZm9ybWF0cyBp biBhIGJhc2ljIGF0b21pY19jaGVjayBjYWxsYmFjay4KPgo+IFNpZ25lZC1vZmYtYnk6IEppdGFv IFNoaSA8aml0YW8uc2hpQG1lZGlhdGVrLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSZXgtQkMgQ2hl biA8cmV4LWJjLmNoZW5AbWVkaWF0ZWsuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RwaS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gaW5kZXggYzU0ODc4MGRkM2E1Li44ODIyZDk0NDhhZTgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMKPiBAQCAtNTM2LDYgKzUzNiw4NyBA QCBzdGF0aWMgaW50IG10a19kcGlfc2V0X2Rpc3BsYXlfbW9kZShzdHJ1Y3QgbXRrX2RwaSAqZHBp LAo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIH0KPgo+ICsjZGVmaW5lIE1BWF9PVVRQVVRfU0VMX0ZP Uk1BVFMgMgo+ICsKPiArc3RhdGljIHUzMiAqbXRrX2RwaV9icmlkZ2VfYXRvbWljX2dldF9vdXRw dXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9z dGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpudW1fb3V0 cHV0X2ZtdHMpCj4gK3sKPiArICAgICAgIHUzMiAqb3V0cHV0X2ZtdHM7Cj4gKyAgICAgICBzdHJ1 Y3QgbXRrX2RwaSAqZHBpID0gYnJpZGdlX3RvX2RwaShicmlkZ2UpOwo+ICsKPiArICAgICAgICpu dW1fb3V0cHV0X2ZtdHMgPSAwOwo+ICsKPiArICAgICAgIG91dHB1dF9mbXRzID0ga2NhbGxvYyhN QVhfT1VUUFVUX1NFTF9GT1JNQVRTLCBzaXplb2YoKm91dHB1dF9mbXRzKSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlmICghb3V0cHV0X2Zt dHMpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ICsKPiArICAgICAgIC8qIERlZmF1 bHQgOGJpdCBSR0IgZmFsbGJhY2sgKi8KPiArICAgICAgIGlmIChkcGktPmNvbmYtPmR1YWxfZWRn ZSkgewo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1swXSA9ICBNRURJQV9CVVNfRk1UX1JH Qjg4OF8yWDEyX0xFOwo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1sxXSA9ICBNRURJQV9C VVNfRk1UX1JHQjg4OF8yWDEyX0JFOwo+ICsgICAgICAgICAgICAgICAqbnVtX291dHB1dF9mbXRz ID0gMjsKPiArICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgIG91dHB1dF9mbXRzWzBd ID0gIE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Cj4gKyAgICAgICAgICAgICAgICpudW1fb3V0 cHV0X2ZtdHMgPSAxOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHJldHVybiBvdXRwdXRfZm10 czsKPiArfQo+ICsKPiArI2RlZmluZSBNQVhfSU5QVVRfU0VMX0ZPUk1BVFMgIDEKPiArCj4gK3N0 YXRpYyB1MzIgKm10a19kcGlfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9zdGF0ZSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdTMyIG91dHB1dF9mbXQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnVtX2lucHV0X2ZtdHMpCj4gK3sKPiAr ICAgICAgIHUzMiAqaW5wdXRfZm10czsKPiArCj4gKyAgICAgICAqbnVtX2lucHV0X2ZtdHMgPSAw Owo+ICsKPiArICAgICAgIGlucHV0X2ZtdHMgPSBrY2FsbG9jKE1BWF9JTlBVVF9TRUxfRk9STUFU Uywgc2l6ZW9mKCppbnB1dF9mbXRzKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdG UF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFpbnB1dF9mbXRzKQo+ICsgICAgICAgICAgICAgICBy ZXR1cm4gTlVMTDsKPiArCj4gKyAgICAgICAqbnVtX2lucHV0X2ZtdHMgPSAxOwo+ICsgICAgICAg aW5wdXRfZm10c1swXSA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Cj4gKwo+ICsgICAgICAg cmV0dXJuIGlucHV0X2ZtdHM7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXRrX2RwaV9icmlkZ2Vf YXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9z dGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gK3sKPiAr ICAgICAgIHN0cnVjdCBtdGtfZHBpICpkcGkgPSBicmlkZ2UtPmRyaXZlcl9wcml2YXRlOwo+ICsg ICAgICAgdW5zaWduZWQgaW50IG91dF9idXNfZm9ybWF0Owo+ICsKPiArICAgICAgIG91dF9idXNf Zm9ybWF0ID0gYnJpZGdlX3N0YXRlLT5vdXRwdXRfYnVzX2NmZy5mb3JtYXQ7Cj4gKwo+ICsgICAg ICAgZGV2X2RiZyhkcGktPmRldiwgImlucHV0IGZvcm1hdCAweCUwNHgsIG91dHB1dCBmb3JtYXQg MHglMDR4XG4iLAo+ICsgICAgICAgICAgICAgICBicmlkZ2Vfc3RhdGUtPmlucHV0X2J1c19jZmcu Zm9ybWF0LAo+ICsgICAgICAgICAgICAgICBicmlkZ2Vfc3RhdGUtPm91dHB1dF9idXNfY2ZnLmZv cm1hdCk7Cj4gKwo+ICsgICAgICAgZHBpLT5kZHJfZWRnZV9zZWwgPSAob3V0X2J1c19mb3JtYXQg PT0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMlgxMl9MRSkgPwo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdHJ1ZSA6IGZhbHNlOwoKSSB3b3VsZCBsaWtlIHRvIGtlZXAgdGhlIG91dF9i dXNfZm9ybWF0IHJhdGhlciB0aGFuIGtlZXAgZGRyX2VkZ2Vfc2VsLAphbmQgaW4gbXRrX2RwaV9k dWFsX2VkZ2UoKSB1c2UgZHBpLT5vdXRfYnVzX2Zvcm1hdCB0byBkZWNpZGUgZWRnZQpzZWxlY3Rp b24uCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArCj4gKyAgICAgICBkcGktPmJpdF9udW0gPSBN VEtfRFBJX09VVF9CSVRfTlVNXzhCSVRTOwo+ICsgICAgICAgZHBpLT5jaGFubmVsX3N3YXAgPSBN VEtfRFBJX09VVF9DSEFOTkVMX1NXQVBfUkdCOwo+ICsgICAgICAgZHBpLT55Y19tYXAgPSBNVEtf RFBJX09VVF9ZQ19NQVBfUkdCOwo+ICsgICAgICAgZHBpLT5jb2xvcl9mb3JtYXQgPSBNVEtfRFBJ X0NPTE9SX0ZPUk1BVF9SR0I7Cj4gKwo+ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0 YXRpYyBpbnQgbXRrX2RwaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Us Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkcm1fYnJpZGdlX2F0dGFj aF9mbGFncyBmbGFncykKPiAgewo+Cj4gQEAgLTU3NCw2ICs2NTUsMTIgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIG10a19kcGlfYnJpZGdlX2Z1bmNzID0gewo+ICAgICAg ICAgLm1vZGVfc2V0ID0gbXRrX2RwaV9icmlkZ2VfbW9kZV9zZXQsCj4gICAgICAgICAuZGlzYWJs ZSA9IG10a19kcGlfYnJpZGdlX2Rpc2FibGUsCj4gICAgICAgICAuZW5hYmxlID0gbXRrX2RwaV9i cmlkZ2VfZW5hYmxlLAo+ICsgICAgICAgLmF0b21pY19jaGVjayA9IG10a19kcGlfYnJpZGdlX2F0 b21pY19jaGVjaywKPiArICAgICAgIC5hdG9taWNfZ2V0X291dHB1dF9idXNfZm10cyA9IG10a19k cGlfYnJpZGdlX2F0b21pY19nZXRfb3V0cHV0X2J1c19mbXRzLAo+ICsgICAgICAgLmF0b21pY19n ZXRfaW5wdXRfYnVzX2ZtdHMgPSBtdGtfZHBpX2JyaWRnZV9hdG9taWNfZ2V0X2lucHV0X2J1c19m bXRzLAo+ICsgICAgICAgLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBl cl9icmlkZ2VfZHVwbGljYXRlX3N0YXRlLAo+ICsgICAgICAgLmF0b21pY19kZXN0cm95X3N0YXRl ID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX2Rlc3Ryb3lfc3RhdGUsCj4gKyAgICAgICAuYXRv bWljX3Jlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX3Jlc2V0LAo+ICB9Owo+Cj4gIHZv aWQgbXRrX2RwaV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gQEAgLTYyMCwxMSArNzA3LDYg QEAgc3RhdGljIGludCBtdGtfZHBpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gICAgICAgICB9Cj4gICAgICAgICBkcm1fY29ubmVj dG9yX2F0dGFjaF9lbmNvZGVyKGRwaS0+Y29ubmVjdG9yLCAmZHBpLT5lbmNvZGVyKTsKPgo+IC0g ICAgICAgZHBpLT5iaXRfbnVtID0gTVRLX0RQSV9PVVRfQklUX05VTV84QklUUzsKPiAtICAgICAg IGRwaS0+Y2hhbm5lbF9zd2FwID0gTVRLX0RQSV9PVVRfQ0hBTk5FTF9TV0FQX1JHQjsKPiAtICAg ICAgIGRwaS0+eWNfbWFwID0gTVRLX0RQSV9PVVRfWUNfTUFQX1JHQjsKPiAtICAgICAgIGRwaS0+ Y29sb3JfZm9ybWF0ID0gTVRLX0RQSV9DT0xPUl9GT1JNQVRfUkdCOwo+IC0KPiAgICAgICAgIHJl dHVybiAwOwo+Cj4gIGVycl9jbGVhbnVwOgo+IC0tCj4gMi4xOC4wCj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW1lZGlhdGVrIG1haWxpbmcg bGlzdApMaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbWVkaWF0ZWsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CEDC7C433B4 for ; Tue, 11 May 2021 17:02:27 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 40FCA61159 for ; Tue, 11 May 2021 17:02:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 40FCA61159 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=AeB70WB2TUGzi5WbXGjsvu3OVJNIon8peEiXn2aQRmE=; b=jio4fTLWu7O5FJcGXGv49m/95 k9niwCVwbmUY2a8tSs4D/xnLYUUHIcCKhZYPWzDrD6yLnZ3g8/+49Uz6ffL4npH0AA6c8MRESit29 gnezwVzH21FhEwKoRiVG4WnXihzhEeIEXumUF6VPH7b020Qrcs7Acl8YWY+sBWuqDC6T77pJchWpV D3LBIy+oUWsd2HudAHRC4tW39q33ZB+Fexbu1cErP2cvagAvxq3xNybxjmTP5C4l/VTRhWB2qjW0q MwxpIYM0xNOtx9frl0NZfJ2MvBPlppJ8dIgQRgwakrv3bxtbQPU4ErB1wI6P4TfCZm3fDjhlb1o/N Nm96alH6A==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgVkb-000qyO-W9; Tue, 11 May 2021 17:00:54 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgVje-000qh0-6a; Tue, 11 May 2021 16:59:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Sender:Reply-To:Content-ID:Content-Description; bh=EoXOETOub3kPi/wN4MAx9ZXv4cqzuQ5RDEtkoONf2lA=; b=reSxOtt6FYza/eqB2mYEcdKRr2 19eWOHljEg41RjS/J+wGEjjt8i94D1l0cRSTlCFrIwt0jd1sikHberuDlvuEHZYapNQY9oEgFemLQ 1jrZYN2NyQyvoe+r9NmrGvpZOwsONQRRWulmLxIPk51zC4ohyAQlzX47uhGUUUfHI/cKvE4d78dHu Wozb2Ua/xsay1z/jMTxBhBbVAnsnKXixscPtl1RVjJ/79XTmUU+mPgOgnkulc9zY00Y3NroGuLt6w irVq8PyvEZe3QzaGWEybGy8BoqLMF0URgbFUW+RKct3C+uJpKv32M4BYp/MnQXwiw9ACbUjdlPbEb xAzxmYpQ==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgVjb-009n3h-61; Tue, 11 May 2021 16:59:52 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 762E861482; Tue, 11 May 2021 16:59:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620752390; bh=fIaiKncbOhF42NMcvb4keKbwIafRTHDcsfrQf6pI4Zc=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=iSOZZjkLk1XC2l7Ax+Cejz3YlYEvxypiYQEMM1+doGiT2tjeA46AqiAH1no71ZxgU aXMplkqs+teBTIiQ7yV4cSjsEPNT7mJuMFqsvX2jG1n6qDgLAR0rDicrYsKJVFZ7ow eunzD+6ugHMcpFbv7t22K3drcWLFU05L6+C7L0qS/PBtHlfmbtHsBtmJ910yJmse60 n45dphqcT2+6qZ8D9VKeKoPOySfD5uZK6qjZ7NqvHs0s33ebXyBQO6hud9rZKCGHUz C0pmR7VGDAoLWT4zyo5RfVVn5rRJAlS0HlyLulgaVqJULDOBhCBI/fNBwxUvr+1QwZ XICr7CfLBDaJg== Received: by mail-ej1-f42.google.com with SMTP id l4so30802841ejc.10; Tue, 11 May 2021 09:59:50 -0700 (PDT) X-Gm-Message-State: AOAM531Y9KOI1wBbeVwesusJ/lxYo1VERPROu2KsLrNutPhcUgOuEMPz JvxEuisVWlGkEpCLJcIzGUaT8tvb9U0HuknNBw== X-Google-Smtp-Source: ABdhPJxp5uMHxFRYAjGBeRPy0112+HQl4dnKPgPi5HnV7AMeIGK9ib7Kgyb4Krz215eGf9u0Uv0O15l+sUz8XH7qDeI= X-Received: by 2002:a17:906:b0cb:: with SMTP id bk11mr33264259ejb.310.1620752388961; Tue, 11 May 2021 09:59:48 -0700 (PDT) MIME-Version: 1.0 References: <20210429041641.11077-1-rex-bc.chen@mediatek.com> <20210429041641.11077-4-rex-bc.chen@mediatek.com> In-Reply-To: <20210429041641.11077-4-rex-bc.chen@mediatek.com> From: Chun-Kuang Hu Date: Wed, 12 May 2021 00:59:37 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [v3 RESEND, PATCH 3/3] drm/mediatek: dpi: add bus format negotiation To: Rex-BC Chen Cc: Chun-Kuang Hu , Matthias Brugger , DTML , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , Project_Global_Chrome_Upstream_Group@mediatek.com, Jitao Shi X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210511_095951_326394_0DEABCC1 X-CRM114-Status: GOOD ( 19.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGksIFJleDoKClJleC1CQyBDaGVuIDxyZXgtYmMuY2hlbkBtZWRpYXRlay5jb20+IOaWvCAyMDIx 5bm0NOaciDI55pelIOmAseWbmyDkuIvljYgxMjoxNuWvq+mBk++8mgo+Cj4gQWRkIHRoZSBhdG9t aWNfZ2V0X291dHB1dF9idXNfZm10cywgYXRvbWljX2dldF9pbnB1dF9idXNfZm10cyB0byBuZWdv dGlhdGUKPiB0aGUgcG9zc2libGUgb3V0cHV0IGFuZCBpbnB1dCBmb3JtYXRzIGZvciB0aGUgY3Vy cmVudCBtb2RlIGFuZCBtb25pdG9yLAo+IGFuZCB1c2UgdGhlIG5lZ290aWF0ZWQgZm9ybWF0cyBp biBhIGJhc2ljIGF0b21pY19jaGVjayBjYWxsYmFjay4KPgo+IFNpZ25lZC1vZmYtYnk6IEppdGFv IFNoaSA8aml0YW8uc2hpQG1lZGlhdGVrLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSZXgtQkMgQ2hl biA8cmV4LWJjLmNoZW5AbWVkaWF0ZWsuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RwaS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEg ZmlsZSBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMgYi9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gaW5kZXggYzU0ODc4MGRkM2E1Li44ODIyZDk0NDhhZTgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMKPiBAQCAtNTM2LDYgKzUzNiw4NyBA QCBzdGF0aWMgaW50IG10a19kcGlfc2V0X2Rpc3BsYXlfbW9kZShzdHJ1Y3QgbXRrX2RwaSAqZHBp LAo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIH0KPgo+ICsjZGVmaW5lIE1BWF9PVVRQVVRfU0VMX0ZP Uk1BVFMgMgo+ICsKPiArc3RhdGljIHUzMiAqbXRrX2RwaV9icmlkZ2VfYXRvbWljX2dldF9vdXRw dXRfYnVzX2ZtdHMoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9z dGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRy bV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpudW1fb3V0 cHV0X2ZtdHMpCj4gK3sKPiArICAgICAgIHUzMiAqb3V0cHV0X2ZtdHM7Cj4gKyAgICAgICBzdHJ1 Y3QgbXRrX2RwaSAqZHBpID0gYnJpZGdlX3RvX2RwaShicmlkZ2UpOwo+ICsKPiArICAgICAgICpu dW1fb3V0cHV0X2ZtdHMgPSAwOwo+ICsKPiArICAgICAgIG91dHB1dF9mbXRzID0ga2NhbGxvYyhN QVhfT1VUUFVUX1NFTF9GT1JNQVRTLCBzaXplb2YoKm91dHB1dF9mbXRzKSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlmICghb3V0cHV0X2Zt dHMpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+ICsKPiArICAgICAgIC8qIERlZmF1 bHQgOGJpdCBSR0IgZmFsbGJhY2sgKi8KPiArICAgICAgIGlmIChkcGktPmNvbmYtPmR1YWxfZWRn ZSkgewo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1swXSA9ICBNRURJQV9CVVNfRk1UX1JH Qjg4OF8yWDEyX0xFOwo+ICsgICAgICAgICAgICAgICBvdXRwdXRfZm10c1sxXSA9ICBNRURJQV9C VVNfRk1UX1JHQjg4OF8yWDEyX0JFOwo+ICsgICAgICAgICAgICAgICAqbnVtX291dHB1dF9mbXRz ID0gMjsKPiArICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgIG91dHB1dF9mbXRzWzBd ID0gIE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Cj4gKyAgICAgICAgICAgICAgICpudW1fb3V0 cHV0X2ZtdHMgPSAxOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHJldHVybiBvdXRwdXRfZm10 czsKPiArfQo+ICsKPiArI2RlZmluZSBNQVhfSU5QVVRfU0VMX0ZPUk1BVFMgIDEKPiArCj4gK3N0 YXRpYyB1MzIgKm10a19kcGlfYnJpZGdlX2F0b21pY19nZXRfaW5wdXRfYnVzX2ZtdHMoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9zdGF0ZSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdTMyIG91dHB1dF9mbXQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnVtX2lucHV0X2ZtdHMpCj4gK3sKPiAr ICAgICAgIHUzMiAqaW5wdXRfZm10czsKPiArCj4gKyAgICAgICAqbnVtX2lucHV0X2ZtdHMgPSAw Owo+ICsKPiArICAgICAgIGlucHV0X2ZtdHMgPSBrY2FsbG9jKE1BWF9JTlBVVF9TRUxfRk9STUFU Uywgc2l6ZW9mKCppbnB1dF9mbXRzKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdG UF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFpbnB1dF9mbXRzKQo+ICsgICAgICAgICAgICAgICBy ZXR1cm4gTlVMTDsKPiArCj4gKyAgICAgICAqbnVtX2lucHV0X2ZtdHMgPSAxOwo+ICsgICAgICAg aW5wdXRfZm10c1swXSA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjQ7Cj4gKwo+ICsgICAgICAg cmV0dXJuIGlucHV0X2ZtdHM7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbXRrX2RwaV9icmlkZ2Vf YXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9icmlkZ2Vfc3RhdGUgKmJyaWRnZV9z dGF0ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gK3sKPiAr ICAgICAgIHN0cnVjdCBtdGtfZHBpICpkcGkgPSBicmlkZ2UtPmRyaXZlcl9wcml2YXRlOwo+ICsg ICAgICAgdW5zaWduZWQgaW50IG91dF9idXNfZm9ybWF0Owo+ICsKPiArICAgICAgIG91dF9idXNf Zm9ybWF0ID0gYnJpZGdlX3N0YXRlLT5vdXRwdXRfYnVzX2NmZy5mb3JtYXQ7Cj4gKwo+ICsgICAg ICAgZGV2X2RiZyhkcGktPmRldiwgImlucHV0IGZvcm1hdCAweCUwNHgsIG91dHB1dCBmb3JtYXQg MHglMDR4XG4iLAo+ICsgICAgICAgICAgICAgICBicmlkZ2Vfc3RhdGUtPmlucHV0X2J1c19jZmcu Zm9ybWF0LAo+ICsgICAgICAgICAgICAgICBicmlkZ2Vfc3RhdGUtPm91dHB1dF9idXNfY2ZnLmZv cm1hdCk7Cj4gKwo+ICsgICAgICAgZHBpLT5kZHJfZWRnZV9zZWwgPSAob3V0X2J1c19mb3JtYXQg PT0gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMlgxMl9MRSkgPwo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdHJ1ZSA6IGZhbHNlOwoKSSB3b3VsZCBsaWtlIHRvIGtlZXAgdGhlIG91dF9i dXNfZm9ybWF0IHJhdGhlciB0aGFuIGtlZXAgZGRyX2VkZ2Vfc2VsLAphbmQgaW4gbXRrX2RwaV9k dWFsX2VkZ2UoKSB1c2UgZHBpLT5vdXRfYnVzX2Zvcm1hdCB0byBkZWNpZGUgZWRnZQpzZWxlY3Rp b24uCgpSZWdhcmRzLApDaHVuLUt1YW5nLgoKPiArCj4gKyAgICAgICBkcGktPmJpdF9udW0gPSBN VEtfRFBJX09VVF9CSVRfTlVNXzhCSVRTOwo+ICsgICAgICAgZHBpLT5jaGFubmVsX3N3YXAgPSBN VEtfRFBJX09VVF9DSEFOTkVMX1NXQVBfUkdCOwo+ICsgICAgICAgZHBpLT55Y19tYXAgPSBNVEtf RFBJX09VVF9ZQ19NQVBfUkdCOwo+ICsgICAgICAgZHBpLT5jb2xvcl9mb3JtYXQgPSBNVEtfRFBJ X0NPTE9SX0ZPUk1BVF9SR0I7Cj4gKwo+ICsgICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gIHN0 YXRpYyBpbnQgbXRrX2RwaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Us Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkcm1fYnJpZGdlX2F0dGFj aF9mbGFncyBmbGFncykKPiAgewo+Cj4gQEAgLTU3NCw2ICs2NTUsMTIgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIG10a19kcGlfYnJpZGdlX2Z1bmNzID0gewo+ICAgICAg ICAgLm1vZGVfc2V0ID0gbXRrX2RwaV9icmlkZ2VfbW9kZV9zZXQsCj4gICAgICAgICAuZGlzYWJs ZSA9IG10a19kcGlfYnJpZGdlX2Rpc2FibGUsCj4gICAgICAgICAuZW5hYmxlID0gbXRrX2RwaV9i cmlkZ2VfZW5hYmxlLAo+ICsgICAgICAgLmF0b21pY19jaGVjayA9IG10a19kcGlfYnJpZGdlX2F0 b21pY19jaGVjaywKPiArICAgICAgIC5hdG9taWNfZ2V0X291dHB1dF9idXNfZm10cyA9IG10a19k cGlfYnJpZGdlX2F0b21pY19nZXRfb3V0cHV0X2J1c19mbXRzLAo+ICsgICAgICAgLmF0b21pY19n ZXRfaW5wdXRfYnVzX2ZtdHMgPSBtdGtfZHBpX2JyaWRnZV9hdG9taWNfZ2V0X2lucHV0X2J1c19m bXRzLAo+ICsgICAgICAgLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBl cl9icmlkZ2VfZHVwbGljYXRlX3N0YXRlLAo+ICsgICAgICAgLmF0b21pY19kZXN0cm95X3N0YXRl ID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX2Rlc3Ryb3lfc3RhdGUsCj4gKyAgICAgICAuYXRv bWljX3Jlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX3Jlc2V0LAo+ICB9Owo+Cj4gIHZv aWQgbXRrX2RwaV9zdGFydChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gQEAgLTYyMCwxMSArNzA3LDYg QEAgc3RhdGljIGludCBtdGtfZHBpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gICAgICAgICB9Cj4gICAgICAgICBkcm1fY29ubmVj dG9yX2F0dGFjaF9lbmNvZGVyKGRwaS0+Y29ubmVjdG9yLCAmZHBpLT5lbmNvZGVyKTsKPgo+IC0g ICAgICAgZHBpLT5iaXRfbnVtID0gTVRLX0RQSV9PVVRfQklUX05VTV84QklUUzsKPiAtICAgICAg IGRwaS0+Y2hhbm5lbF9zd2FwID0gTVRLX0RQSV9PVVRfQ0hBTk5FTF9TV0FQX1JHQjsKPiAtICAg ICAgIGRwaS0+eWNfbWFwID0gTVRLX0RQSV9PVVRfWUNfTUFQX1JHQjsKPiAtICAgICAgIGRwaS0+ Y29sb3JfZm9ybWF0ID0gTVRLX0RQSV9DT0xPUl9GT1JNQVRfUkdCOwo+IC0KPiAgICAgICAgIHJl dHVybiAwOwo+Cj4gIGVycl9jbGVhbnVwOgo+IC0tCj4gMi4xOC4wCj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK