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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CA224C25B5F for ; Tue, 7 May 2024 14:07:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=p9mzz6Cb++6bvLqqBO4EXY8GElAqViGqGDjbSV4R+2U=; b=peSStTSnyARUcIlqGfqb9xqxji 32L1zVeUS+QDEsJFSz+bI5fVgL57S8WJoN0RYSzxKl6CBNJCQdv82eFiZJe4oIorr4EovCy5oL72Y OtQp9cRgWsh7EO3R3+GOX+RTRt/oOBp2CCwv/l+ZHyo9jBZjb+yhsWqdFOdRB6PHtIdzIPyyeGvXI K/SHFqVWZVI/P10zKw2/r/6WdDHExCqtJ+SRYrP8CpWar9I84+16povMHdxQd6C/7yXJTrBmSUoJN UHApSMsZ3hjQ1dx2JJk5+z1CfKPtnG+B+u9LJcSuA2K8LivTc7zVQ7aeQixAb/S80S5hH1O2ot7LM QsU0tVyA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4LTN-0000000BNwW-0o7Y; Tue, 07 May 2024 14:07:13 +0000 Received: from madrid.collaboradmins.com ([2a00:1098:ed:100::25]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4LTI-0000000BNu2-3Zvx; Tue, 07 May 2024 14:07:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1715090827; bh=RnSnnIBaIv8995gmimhjYrXTZEZ2sbsQAMLxEaMzgiY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=m8aoXmM6wOBYG811jg1mwfUO/i2Y7i0TydyPeFIzthOrO5pqNbZPW4VsJhjjxGdN6 R6DSYRgaPeSHmoiSYWipCr2mCYCV04oSpHFrOG+jbwRI9EqwVcbc36VTX1quI2QNuj XQtvZ/MVPCmVt49o+dCX32NSl/+FLF+/Wl+H+kWwnU78j/q3v9C4qWj/p0hSqrTgSn GEHFFmvGpCxlSsxFoc5UamzxRk1g2c/8lxgJFqQNETzuhK/IB+aGyVSeDzi53m4Wez B0dBiczAKmC73ixqerGRmlUIH68lzllvVG3Mt2wJpCRhdFg4MW+xPE4uZekRjb6mGN pBrD5tU8qkx9g== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id E91D337820FC; Tue, 7 May 2024 14:07:05 +0000 (UTC) Message-ID: <46347f5d-e09b-4e83-a5a2-e12407f442a4@collabora.com> Date: Tue, 7 May 2024 16:07:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path To: =?UTF-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "chunkuang.hu@kernel.org" Cc: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , "devicetree@vger.kernel.org" , "tzimmermann@suse.de" , =?UTF-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= , "mripard@kernel.org" , =?UTF-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "daniel@ffwll.ch" , "p.zabel@pengutronix.de" , "conor+dt@kernel.org" , "maarten.lankhorst@linux.intel.com" , "robh@kernel.org" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" , "krzysztof.kozlowski+dt@linaro.org" , "kernel@collabora.com" , "matthias.bgg@gmail.com" , =?UTF-8?B?WXUtY2hhbmcgTGVlICjmnY7nprnnkosp?= , "linux-arm-kernel@lists.infradead.org" References: <20240409120211.321153-1-angelogioacchino.delregno@collabora.com> <20240409120211.321153-3-angelogioacchino.delregno@collabora.com> <4dfb09b9c437ab2baa0898eca13a43fd7475047a.camel@mediatek.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: <4dfb09b9c437ab2baa0898eca13a43fd7475047a.camel@mediatek.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240507_070709_098060_32C4FBDA X-CRM114-Status: GOOD ( 35.55 ) 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: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Il 07/05/24 08:59, CK Hu (胡俊光) ha scritto: > On Thu, 2024-05-02 at 10:50 +0200, AngeloGioacchino Del Regno wrote: >> Il 25/04/24 04:23, CK Hu (胡俊光) ha scritto: >>> Hi, Angelo: >>> >>> On Tue, 2024-04-09 at 14:02 +0200, AngeloGioacchino Del Regno >>> wrote: >>>> Document OF graph on MMSYS/VDOSYS: this supports up to three DDP >>>> paths >>>> per HW instance (so potentially up to six displays for multi-vdo >>>> SoCs). >>>> >>>> The MMSYS or VDOSYS is always the first component in the DDP >>>> pipeline, >>>> so it only supports an output port with multiple endpoints - >>>> where >>>> each >>>> endpoint defines the starting point for one of the (currently >>>> three) >>>> possible hardware paths. >>>> >>>> Signed-off-by: AngeloGioacchino Del Regno < >>>> angelogioacchino.delregno@collabora.com> >>>> --- >>>> .../bindings/arm/mediatek/mediatek,mmsys.yaml | 23 >>>> +++++++++++++++++++ >>>> 1 file changed, 23 insertions(+) >>>> >>>> diff --git >>>> a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.y >>>> aml >>>> b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.y >>>> aml >>>> index b3c6888c1457..4e9acd966aa5 100644 >>>> --- >>>> a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.y >>>> aml >>>> +++ >>>> b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.y >>>> aml >>>> @@ -93,6 +93,29 @@ properties: >>>> '#reset-cells': >>>> const: 1 >>>> >>>> + port: >>>> + $ref: /schemas/graph.yaml#/properties/port >>>> + description: >>>> + Output port node. This port connects the MMSYS/VDOSYS >>>> output >>>> to >>>> + the first component of one display pipeline, for example >>>> one >>>> of >>>> + the available OVL or RDMA blocks. >>>> + Some MediaTek SoCs support up to three display outputs per >>>> MMSYS. >>>> + properties: >>>> + endpoint@0: >>>> + $ref: /schemas/graph.yaml#/properties/endpoint >>>> + description: Output to the primary display pipeline >>>> + >>>> + endpoint@1: >>>> + $ref: /schemas/graph.yaml#/properties/endpoint >>>> + description: Output to the secondary display pipeline >>>> + >>>> + endpoint@2: >>>> + $ref: /schemas/graph.yaml#/properties/endpoint >>>> + description: Output to the tertiary display pipeline >>>> + >>>> + required: >>>> + - endpoint@0 >>>> + >>> >>> mmsys/vdosys does not output data to the first component of display >>> pipeline, so this connection looks 'virtual'. Shall we add >>> something >>> virtual in device tree? You add this in order to decide which >>> pipeline >>> is 1st, 2nd, 3rd, but for device it don't care which one is first. >>> In >>> computer, software could change which display is the primary >>> display. >>> I'm not sure it's good to decide display order in device tree? >>> >> >> Devicetree describes hardware, so nothing virtual can be present - >> and in any case, >> the primary/secondary/tertiary pipeline is in relation to MM/VDO SYS, >> not referred >> to software. >> >> Better explaining, the primary pipeline is not necessarily the >> primary display in >> DRM terms: that's a concept that is completely detached from the >> scope of this >> series and this graph - and it's something that shall be managed >> solely by the >> driver (mediatek-drm in this case). >> >> Coming back to the connection looking, but *not* being virtual: the >> sense here is >> that the MM/VDOSYS blocks are used in the display pipeline to >> "stitch" together >> the various display pipeline hardware blocks, or, said differently, >> setting up the >> routing between all of those (P.S.: mmsys_mtxxxx_routing_table!) >> through the VDO >> Input Selection (VDOx_SEL_IN) or Output Selection (VDOx_SEL_OUT) and >> with the >> assistance of the VDO Multiple Output Mask (VDOx_MOUT) for the >> multiple outputs >> usecase, both of which, are described by this graph. > > I agree this part, but this is related to display device OF graph. > These display device would output video data from one device and input > to another video device. These video device would not input or output > video data to mmsys/vdosys. > >> >> This means that the VDOSYS is really the "master" of the display >> pipeline since >> everything gets enabled, mixed and matched from there - and that's in >> the sense >> of hardware operation, so we are *really* (and not virtually!) >> flipping switches. > > I agree mmsys/vdosys is master of video pipeline, so let's define what > the port in mmsys/vdosys is. If the port means the master relationship, > mmsys/vdosys should output port to every display device. Or use a > simply way to show the master relation ship > > mmsys-subdev = <&ovl0, &rdma0, &color0, ...>, <&ovl1, &rdma1, &color1, > ...>; > There's no need to list all of the VDO0/VDO1/mmsys devices in one big array property, because the actual possible devices can be defined: 1. In the bindings; and 2. In the actual OF graph that we write for each SoC+board combination. A graph cannot contain a connection to a device that cannot be connected to the previous, so, your "mmsys-subdev" list can be retrieved by looking at the graph: - Start from VDO0/1 or MMSYS - Walk through (visually, even) OUTPUT ports - VDO0 (read output ep) -> ovl0 (read output ep) -> rdma0 (read output ep) -> color0 (...) -> etc - Nothing more - it's all defined there. > > Another problem is how to group display device? If two pipeline could > be route to the same display interface, such as > > rdma0 -> dsi > rdma1 -> dsi > > Would this be single group? There are multiple ways of doing this, but one that comes to my mind right now and that looks clean as well is the following: ovl0@ef01 { ..... ports { port@0 { reg = <0>; ovl0_in: endpoint { remote-endpoint = <&vdosys0_out>; }; }; port@1 { reg = <1>; ovl0_out0: endpoint@0 { remote-endpoint = <&rdma0_in>; }; ovl0_out1: endpoint@1 { remote-endpoint = <&rdma1_in>; }; }; }; }; rdma0@1234 { ..... ports { port@0 { reg = <0>; rdma0_in: endpoint { remote-endpoint = <&ovl0_out0>; /* assuming ovl0 outputs to rdma0...*/ }; }; port@1 { reg = <1>; rdma0_out: endpoint@1 { remote-endpoint = <&dsi_dual_intf0_in>; }; }; }; }; rdma1@5678 { ..... ports { port@0 { reg = <0>; rdma1_in: endpoint { /* assuming ovl0 outputs to rdma1 as well... can be something else. */ remote-endpoint = <&ovl0_out1>; }; }; port@1 { reg = <1>; rdma1_out: endpoint { remote-endpoint = <&dsi_dual_intf1_in>; }; }; }; }; dsi@9abcd { ..... ports { port@0 { reg = <0>; /* Where endpoint@0 could be always DSI LEFT CTRL */ dsi_dual_intf0_in: endpoint@0 { remote-endpoint = <&rdma0_out>; }; /* ...and @1 could be always DSI RIGHT CTRL */ dsi_dual_intf1_in: endpoint@1 { remote-endpoint = <&rdma1_out>; }; }; port@1 { reg = <1>; dsi0_out: endpoint { remote-endpoint = <&dsi_panel_in>; }; }; }; }; ...for a dual-dsi panel, it'd be a similar graph. Cheers, Angelo > > mmsys-subdev = <&rdma0, &rdma1, &dsi>; > > Or two group? > > mmsys-subdev = <&rdma0, &dsi>, <&rdma1, &dsi>; > > I think we should clearly define this. > > Regards, > CK > >> >> >> Cheers, >> Angelo >> >>> Regards, >>> CK >>> >>> >>>> required: >>>> - compatible >>>> - reg >> >> 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E4724C10F1A for ; Tue, 7 May 2024 14:07:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pbPt8um3ewl64gZW1vEwxkdL0I9HRWwWLv7byKkD5oE=; b=qbhPEAxVoZVxNY 22ooR0HDQyRwKJc7RwLRlYUENYsfKKayve5hwDIvuMPptgEacfL6RioNIf79axcHd0iosooQYpPP5 BwDo8yckKQWw+iKTwjC6abC2Nk28vJRjDGCrpxhfazT+nhqBdso59rHTSoR00GVUMlcwFbF/yYH/f f9vlPAqn5wQ+QOYOTvZd3PyVYrep0LjFZVoS5j7T4Ceo4zm/6vKqi/RnMAzSwnQCZqg80zwPQrqnJ /1FlRKoBPKPCjMGNhFV8w2Jq1aQY6ELmK7GVsyIm5u3aQA09vNv3/y4zBzvLV0/zR5xvwBgq+qM+/ jOaNIIy8wUqUblax+o2g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4LTM-0000000BNvm-1chN; Tue, 07 May 2024 14:07:12 +0000 Received: from madrid.collaboradmins.com ([2a00:1098:ed:100::25]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s4LTI-0000000BNu2-3Zvx; Tue, 07 May 2024 14:07:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1715090827; bh=RnSnnIBaIv8995gmimhjYrXTZEZ2sbsQAMLxEaMzgiY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=m8aoXmM6wOBYG811jg1mwfUO/i2Y7i0TydyPeFIzthOrO5pqNbZPW4VsJhjjxGdN6 R6DSYRgaPeSHmoiSYWipCr2mCYCV04oSpHFrOG+jbwRI9EqwVcbc36VTX1quI2QNuj XQtvZ/MVPCmVt49o+dCX32NSl/+FLF+/Wl+H+kWwnU78j/q3v9C4qWj/p0hSqrTgSn GEHFFmvGpCxlSsxFoc5UamzxRk1g2c/8lxgJFqQNETzuhK/IB+aGyVSeDzi53m4Wez B0dBiczAKmC73ixqerGRmlUIH68lzllvVG3Mt2wJpCRhdFg4MW+xPE4uZekRjb6mGN pBrD5tU8qkx9g== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id E91D337820FC; Tue, 7 May 2024 14:07:05 +0000 (UTC) Message-ID: <46347f5d-e09b-4e83-a5a2-e12407f442a4@collabora.com> Date: Tue, 7 May 2024 16:07:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path To: =?UTF-8?B?Q0sgSHUgKOiDoeS/iuWFiSk=?= , "chunkuang.hu@kernel.org" Cc: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "wenst@chromium.org" , "devicetree@vger.kernel.org" , "tzimmermann@suse.de" , =?UTF-8?B?U2hhd24gU3VuZyAo5a6L5a2d6KyZKQ==?= , "mripard@kernel.org" , =?UTF-8?B?Sml0YW8gU2hpICjnn7PorrDmtpsp?= , "daniel@ffwll.ch" , "p.zabel@pengutronix.de" , "conor+dt@kernel.org" , "maarten.lankhorst@linux.intel.com" , "robh@kernel.org" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" , "krzysztof.kozlowski+dt@linaro.org" , "kernel@collabora.com" , "matthias.bgg@gmail.com" , =?UTF-8?B?WXUtY2hhbmcgTGVlICjmnY7nprnnkosp?= , "linux-arm-kernel@lists.infradead.org" References: <20240409120211.321153-1-angelogioacchino.delregno@collabora.com> <20240409120211.321153-3-angelogioacchino.delregno@collabora.com> <4dfb09b9c437ab2baa0898eca13a43fd7475047a.camel@mediatek.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: <4dfb09b9c437ab2baa0898eca13a43fd7475047a.camel@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240507_070709_098060_32C4FBDA X-CRM114-Status: GOOD ( 35.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SWwgMDcvMDUvMjQgMDg6NTksIENLIEh1ICjog6Hkv4rlhYkpIGhhIHNjcml0dG86Cj4gT24gVGh1 LCAyMDI0LTA1LTAyIGF0IDEwOjUwICswMjAwLCBBbmdlbG9HaW9hY2NoaW5vIERlbCBSZWdubyB3 cm90ZToKPj4gSWwgMjUvMDQvMjQgMDQ6MjMsIENLIEh1ICjog6Hkv4rlhYkpIGhhIHNjcml0dG86 Cj4+PiBIaSwgQW5nZWxvOgo+Pj4KPj4+IE9uIFR1ZSwgMjAyNC0wNC0wOSBhdCAxNDowMiArMDIw MCwgQW5nZWxvR2lvYWNjaGlubyBEZWwgUmVnbm8KPj4+IHdyb3RlOgo+Pj4+IERvY3VtZW50IE9G IGdyYXBoIG9uIE1NU1lTL1ZET1NZUzogdGhpcyBzdXBwb3J0cyB1cCB0byB0aHJlZSBERFAKPj4+ PiBwYXRocwo+Pj4+IHBlciBIVyBpbnN0YW5jZSAoc28gcG90ZW50aWFsbHkgdXAgdG8gc2l4IGRp c3BsYXlzIGZvciBtdWx0aS12ZG8KPj4+PiBTb0NzKS4KPj4+Pgo+Pj4+IFRoZSBNTVNZUyBvciBW RE9TWVMgaXMgYWx3YXlzIHRoZSBmaXJzdCBjb21wb25lbnQgaW4gdGhlIEREUAo+Pj4+IHBpcGVs aW5lLAo+Pj4+IHNvIGl0IG9ubHkgc3VwcG9ydHMgYW4gb3V0cHV0IHBvcnQgd2l0aCBtdWx0aXBs ZSBlbmRwb2ludHMgLQo+Pj4+IHdoZXJlCj4+Pj4gZWFjaAo+Pj4+IGVuZHBvaW50IGRlZmluZXMg dGhlIHN0YXJ0aW5nIHBvaW50IGZvciBvbmUgb2YgdGhlIChjdXJyZW50bHkKPj4+PiB0aHJlZSkK Pj4+PiBwb3NzaWJsZSBoYXJkd2FyZSBwYXRocy4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEFu Z2Vsb0dpb2FjY2hpbm8gRGVsIFJlZ25vIDwKPj4+PiBhbmdlbG9naW9hY2NoaW5vLmRlbHJlZ25v QGNvbGxhYm9yYS5jb20+Cj4+Pj4gLS0tCj4+Pj4gICAgLi4uL2JpbmRpbmdzL2FybS9tZWRpYXRl ay9tZWRpYXRlayxtbXN5cy55YW1sIHwgMjMKPj4+PiArKysrKysrKysrKysrKysrKysrCj4+Pj4g ICAgMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKykKPj4+Pgo+Pj4+IGRpZmYgLS1naXQK Pj4+PiBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vbWVkaWF0ZWsvbWVk aWF0ZWssbW1zeXMueQo+Pj4+IGFtbAo+Pj4+IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL2FybS9tZWRpYXRlay9tZWRpYXRlayxtbXN5cy55Cj4+Pj4gYW1sCj4+Pj4gaW5kZXgg YjNjNjg4OGMxNDU3Li40ZTlhY2Q5NjZhYTUgMTAwNjQ0Cj4+Pj4gLS0tCj4+Pj4gYS9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL21lZGlhdGVrL21lZGlhdGVrLG1tc3lzLnkK Pj4+PiBhbWwKPj4+PiArKysKPj4+PiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9hcm0vbWVkaWF0ZWsvbWVkaWF0ZWssbW1zeXMueQo+Pj4+IGFtbAo+Pj4+IEBAIC05Myw2ICs5 MywyOSBAQCBwcm9wZXJ0aWVzOgo+Pj4+ICAgICAgJyNyZXNldC1jZWxscyc6Cj4+Pj4gICAgICAg IGNvbnN0OiAxCj4+Pj4gICAgCj4+Pj4gKyAgcG9ydDoKPj4+PiArICAgICRyZWY6IC9zY2hlbWFz L2dyYXBoLnlhbWwjL3Byb3BlcnRpZXMvcG9ydAo+Pj4+ICsgICAgZGVzY3JpcHRpb246Cj4+Pj4g KyAgICAgIE91dHB1dCBwb3J0IG5vZGUuIFRoaXMgcG9ydCBjb25uZWN0cyB0aGUgTU1TWVMvVkRP U1lTCj4+Pj4gb3V0cHV0Cj4+Pj4gdG8KPj4+PiArICAgICAgdGhlIGZpcnN0IGNvbXBvbmVudCBv ZiBvbmUgZGlzcGxheSBwaXBlbGluZSwgZm9yIGV4YW1wbGUKPj4+PiBvbmUKPj4+PiBvZgo+Pj4+ ICsgICAgICB0aGUgYXZhaWxhYmxlIE9WTCBvciBSRE1BIGJsb2Nrcy4KPj4+PiArICAgICAgU29t ZSBNZWRpYVRlayBTb0NzIHN1cHBvcnQgdXAgdG8gdGhyZWUgZGlzcGxheSBvdXRwdXRzIHBlcgo+ Pj4+IE1NU1lTLgo+Pj4+ICsgICAgcHJvcGVydGllczoKPj4+PiArICAgICAgZW5kcG9pbnRAMDoK Pj4+PiArICAgICAgICAkcmVmOiAvc2NoZW1hcy9ncmFwaC55YW1sIy9wcm9wZXJ0aWVzL2VuZHBv aW50Cj4+Pj4gKyAgICAgICAgZGVzY3JpcHRpb246IE91dHB1dCB0byB0aGUgcHJpbWFyeSBkaXNw bGF5IHBpcGVsaW5lCj4+Pj4gKwo+Pj4+ICsgICAgICBlbmRwb2ludEAxOgo+Pj4+ICsgICAgICAg ICRyZWY6IC9zY2hlbWFzL2dyYXBoLnlhbWwjL3Byb3BlcnRpZXMvZW5kcG9pbnQKPj4+PiArICAg ICAgICBkZXNjcmlwdGlvbjogT3V0cHV0IHRvIHRoZSBzZWNvbmRhcnkgZGlzcGxheSBwaXBlbGlu ZQo+Pj4+ICsKPj4+PiArICAgICAgZW5kcG9pbnRAMjoKPj4+PiArICAgICAgICAkcmVmOiAvc2No ZW1hcy9ncmFwaC55YW1sIy9wcm9wZXJ0aWVzL2VuZHBvaW50Cj4+Pj4gKyAgICAgICAgZGVzY3Jp cHRpb246IE91dHB1dCB0byB0aGUgdGVydGlhcnkgZGlzcGxheSBwaXBlbGluZQo+Pj4+ICsKPj4+ PiArICAgIHJlcXVpcmVkOgo+Pj4+ICsgICAgICAtIGVuZHBvaW50QDAKPj4+PiArCj4+Pgo+Pj4g bW1zeXMvdmRvc3lzIGRvZXMgbm90IG91dHB1dCBkYXRhIHRvIHRoZSBmaXJzdCBjb21wb25lbnQg b2YgZGlzcGxheQo+Pj4gcGlwZWxpbmUsIHNvIHRoaXMgY29ubmVjdGlvbiBsb29rcyAndmlydHVh bCcuIFNoYWxsIHdlIGFkZAo+Pj4gc29tZXRoaW5nCj4+PiB2aXJ0dWFsIGluIGRldmljZSB0cmVl PyBZb3UgYWRkIHRoaXMgaW4gb3JkZXIgdG8gZGVjaWRlIHdoaWNoCj4+PiBwaXBlbGluZQo+Pj4g aXMgMXN0LCAybmQsIDNyZCwgYnV0IGZvciBkZXZpY2UgaXQgZG9uJ3QgY2FyZSB3aGljaCBvbmUg aXMgZmlyc3QuCj4+PiBJbgo+Pj4gY29tcHV0ZXIsIHNvZnR3YXJlIGNvdWxkIGNoYW5nZSB3aGlj aCBkaXNwbGF5IGlzIHRoZSBwcmltYXJ5Cj4+PiBkaXNwbGF5Lgo+Pj4gSSdtIG5vdCBzdXJlIGl0 J3MgZ29vZCB0byBkZWNpZGUgZGlzcGxheSBvcmRlciBpbiBkZXZpY2UgdHJlZT8KPj4+Cj4+Cj4+ IERldmljZXRyZWUgZGVzY3JpYmVzIGhhcmR3YXJlLCBzbyBub3RoaW5nIHZpcnR1YWwgY2FuIGJl IHByZXNlbnQgLQo+PiBhbmQgaW4gYW55IGNhc2UsCj4+IHRoZSBwcmltYXJ5L3NlY29uZGFyeS90 ZXJ0aWFyeSBwaXBlbGluZSBpcyBpbiByZWxhdGlvbiB0byBNTS9WRE8gU1lTLAo+PiBub3QgcmVm ZXJyZWQKPj4gdG8gc29mdHdhcmUuCj4+Cj4+IEJldHRlciBleHBsYWluaW5nLCB0aGUgcHJpbWFy eSBwaXBlbGluZSBpcyBub3QgbmVjZXNzYXJpbHkgdGhlCj4+IHByaW1hcnkgZGlzcGxheSBpbgo+ PiBEUk0gdGVybXM6IHRoYXQncyBhIGNvbmNlcHQgdGhhdCBpcyBjb21wbGV0ZWx5IGRldGFjaGVk IGZyb20gdGhlCj4+IHNjb3BlIG9mIHRoaXMKPj4gc2VyaWVzIGFuZCB0aGlzIGdyYXBoIC0gYW5k IGl0J3Mgc29tZXRoaW5nIHRoYXQgc2hhbGwgYmUgbWFuYWdlZAo+PiBzb2xlbHkgYnkgdGhlCj4+ IGRyaXZlciAobWVkaWF0ZWstZHJtIGluIHRoaXMgY2FzZSkuCj4+Cj4+IENvbWluZyBiYWNrIHRv IHRoZSBjb25uZWN0aW9uIGxvb2tpbmcsIGJ1dCAqbm90KiBiZWluZyB2aXJ0dWFsOiB0aGUKPj4g c2Vuc2UgaGVyZSBpcwo+PiB0aGF0IHRoZSBNTS9WRE9TWVMgYmxvY2tzIGFyZSB1c2VkIGluIHRo ZSBkaXNwbGF5IHBpcGVsaW5lIHRvCj4+ICJzdGl0Y2giIHRvZ2V0aGVyCj4+IHRoZSB2YXJpb3Vz IGRpc3BsYXkgcGlwZWxpbmUgaGFyZHdhcmUgYmxvY2tzLCBvciwgc2FpZCBkaWZmZXJlbnRseSwK Pj4gc2V0dGluZyB1cCB0aGUKPj4gcm91dGluZyBiZXR3ZWVuIGFsbCBvZiB0aG9zZSAoUC5TLjog bW1zeXNfbXR4eHh4X3JvdXRpbmdfdGFibGUhKQo+PiB0aHJvdWdoIHRoZSBWRE8KPj4gSW5wdXQg U2VsZWN0aW9uIChWRE94X1NFTF9JTikgb3IgT3V0cHV0IFNlbGVjdGlvbiAoVkRPeF9TRUxfT1VU KSBhbmQKPj4gd2l0aCB0aGUKPj4gYXNzaXN0YW5jZSBvZiB0aGUgVkRPIE11bHRpcGxlIE91dHB1 dCBNYXNrIChWRE94X01PVVQpIGZvciB0aGUKPj4gbXVsdGlwbGUgb3V0cHV0cwo+PiB1c2VjYXNl LCBib3RoIG9mIHdoaWNoLCBhcmUgZGVzY3JpYmVkIGJ5IHRoaXMgZ3JhcGguCj4gCj4gSSBhZ3Jl ZSB0aGlzIHBhcnQsIGJ1dCB0aGlzIGlzIHJlbGF0ZWQgdG8gZGlzcGxheSBkZXZpY2UgT0YgZ3Jh cGguCj4gVGhlc2UgZGlzcGxheSBkZXZpY2Ugd291bGQgb3V0cHV0IHZpZGVvIGRhdGEgZnJvbSBv bmUgZGV2aWNlIGFuZCBpbnB1dAo+IHRvIGFub3RoZXIgdmlkZW8gZGV2aWNlLiBUaGVzZSB2aWRl byBkZXZpY2Ugd291bGQgbm90IGlucHV0IG9yIG91dHB1dAo+IHZpZGVvIGRhdGEgdG8gbW1zeXMv dmRvc3lzLgo+IAo+Pgo+PiBUaGlzIG1lYW5zIHRoYXQgdGhlIFZET1NZUyBpcyByZWFsbHkgdGhl ICJtYXN0ZXIiIG9mIHRoZSBkaXNwbGF5Cj4+IHBpcGVsaW5lIHNpbmNlCj4+IGV2ZXJ5dGhpbmcg Z2V0cyBlbmFibGVkLCBtaXhlZCBhbmQgbWF0Y2hlZCBmcm9tIHRoZXJlIC0gYW5kIHRoYXQncyBp bgo+PiB0aGUgc2Vuc2UKPj4gb2YgaGFyZHdhcmUgb3BlcmF0aW9uLCBzbyB3ZSBhcmUgKnJlYWxs eSogKGFuZCBub3QgdmlydHVhbGx5ISkKPj4gZmxpcHBpbmcgc3dpdGNoZXMuCj4gCj4gSSBhZ3Jl ZSBtbXN5cy92ZG9zeXMgaXMgbWFzdGVyIG9mIHZpZGVvIHBpcGVsaW5lLCBzbyBsZXQncyBkZWZp bmUgd2hhdAo+IHRoZSBwb3J0IGluIG1tc3lzL3Zkb3N5cyBpcy4gSWYgdGhlIHBvcnQgbWVhbnMg dGhlIG1hc3RlciByZWxhdGlvbnNoaXAsCj4gbW1zeXMvdmRvc3lzIHNob3VsZCBvdXRwdXQgcG9y dCB0byBldmVyeSBkaXNwbGF5IGRldmljZS4gT3IgdXNlIGEKPiBzaW1wbHkgd2F5IHRvIHNob3cg dGhlIG1hc3RlciByZWxhdGlvbiBzaGlwCj4gCj4gbW1zeXMtc3ViZGV2ID0gPCZvdmwwLCAmcmRt YTAsICZjb2xvcjAsIC4uLj4sIDwmb3ZsMSwgJnJkbWExLCAmY29sb3IxLAo+IC4uLj47Cj4gCgpU aGVyZSdzIG5vIG5lZWQgdG8gbGlzdCBhbGwgb2YgdGhlIFZETzAvVkRPMS9tbXN5cyBkZXZpY2Vz IGluIG9uZSBiaWcgYXJyYXkKcHJvcGVydHksIGJlY2F1c2UgdGhlIGFjdHVhbCBwb3NzaWJsZSBk ZXZpY2VzIGNhbiBiZSBkZWZpbmVkOgogICAxLiBJbiB0aGUgYmluZGluZ3M7IGFuZAogICAyLiBJ biB0aGUgYWN0dWFsIE9GIGdyYXBoIHRoYXQgd2Ugd3JpdGUgZm9yIGVhY2ggU29DK2JvYXJkIGNv bWJpbmF0aW9uLgoKQSBncmFwaCBjYW5ub3QgY29udGFpbiBhIGNvbm5lY3Rpb24gdG8gYSBkZXZp Y2UgdGhhdCBjYW5ub3QgYmUgY29ubmVjdGVkIHRvCnRoZSBwcmV2aW91cywgc28sIHlvdXIgIm1t c3lzLXN1YmRldiIgbGlzdCBjYW4gYmUgcmV0cmlldmVkIGJ5IGxvb2tpbmcgYXQgdGhlCmdyYXBo OgogIC0gU3RhcnQgZnJvbSBWRE8wLzEgb3IgTU1TWVMKICAtIFdhbGsgdGhyb3VnaCAodmlzdWFs bHksIGV2ZW4pIE9VVFBVVCBwb3J0cwogICAgLSBWRE8wIChyZWFkIG91dHB1dCBlcCkgLT4gb3Zs MCAocmVhZCBvdXRwdXQgZXApIC0+IHJkbWEwIChyZWFkIG91dHB1dCBlcCkgLT4KICAgICAgY29s b3IwICguLi4pIC0+IGV0YwogIC0gTm90aGluZyBtb3JlIC0gaXQncyBhbGwgZGVmaW5lZCB0aGVy ZS4KCj4gCj4gQW5vdGhlciBwcm9ibGVtIGlzIGhvdyB0byBncm91cCBkaXNwbGF5IGRldmljZT8g SWYgdHdvIHBpcGVsaW5lIGNvdWxkCj4gYmUgcm91dGUgdG8gdGhlIHNhbWUgZGlzcGxheSBpbnRl cmZhY2UsIHN1Y2ggYXMKPiAKPiByZG1hMCAtPiBkc2kKPiByZG1hMSAtPiBkc2kKPiAKPiBXb3Vs ZCB0aGlzIGJlIHNpbmdsZSBncm91cD8KClRoZXJlIGFyZSBtdWx0aXBsZSB3YXlzIG9mIGRvaW5n IHRoaXMsIGJ1dCBvbmUgdGhhdCBjb21lcyB0byBteSBtaW5kIHJpZ2h0IG5vdyBhbmQKdGhhdCBs b29rcyBjbGVhbiBhcyB3ZWxsIGlzIHRoZSBmb2xsb3dpbmc6CgpvdmwwQGVmMDEgewogICAgLi4u Li4KICAgcG9ydHMgewogICAgIHBvcnRAMCB7CiAgICAgICByZWcgPSA8MD47CiAgICAgICBvdmww X2luOiBlbmRwb2ludCB7CiAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmdmRvc3lzMF9vdXQ+ OwogICAgICAgfTsKICAgICB9OwoKICAgICBwb3J0QDEgewogICAgICAgcmVnID0gPDE+OwogICAg ICAgb3ZsMF9vdXQwOiBlbmRwb2ludEAwIHsKICAgICAgICAgcmVtb3RlLWVuZHBvaW50ID0gPCZy ZG1hMF9pbj47CiAgICAgICB9OwogICAgICAgb3ZsMF9vdXQxOiBlbmRwb2ludEAxIHsKICAgICAg ICAgcmVtb3RlLWVuZHBvaW50ID0gPCZyZG1hMV9pbj47CiAgICAgICB9OwogICAgIH07CiAgIH07 Cn07CgpyZG1hMEAxMjM0IHsKICAgIC4uLi4uCiAgIHBvcnRzIHsKICAgICBwb3J0QDAgewogICAg ICAgcmVnID0gPDA+OwogICAgICAgcmRtYTBfaW46IGVuZHBvaW50IHsKICAgICAgICAgcmVtb3Rl LWVuZHBvaW50ID0gPCZvdmwwX291dDA+OyAvKiBhc3N1bWluZyBvdmwwIG91dHB1dHMgdG8gcmRt YTAuLi4qLwogICAgICAgfTsKICAgICB9OwogICAgIHBvcnRAMSB7CiAgICAgICByZWcgPSA8MT47 CiAgICAgICByZG1hMF9vdXQ6IGVuZHBvaW50QDEgewogICAgICAgICByZW1vdGUtZW5kcG9pbnQg PSA8JmRzaV9kdWFsX2ludGYwX2luPjsKICAgICAgIH07CiAgICAgfTsKICAgfTsKfTsKCgpyZG1h MUA1Njc4IHsKICAgIC4uLi4uCiAgIHBvcnRzIHsKICAgICBwb3J0QDAgewogICAgICAgcmVnID0g PDA+OwogICAgICAgcmRtYTFfaW46IGVuZHBvaW50IHsKICAgICAgICAgLyogYXNzdW1pbmcgb3Zs MCBvdXRwdXRzIHRvIHJkbWExIGFzIHdlbGwuLi4gY2FuIGJlIHNvbWV0aGluZyBlbHNlLiAqLwog ICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8Jm92bDBfb3V0MT47CiAgICAgICB9OwogICAgIH07 CiAgICAgcG9ydEAxIHsKICAgICAgIHJlZyA9IDwxPjsKICAgICAgIHJkbWExX291dDogZW5kcG9p bnQgewogICAgICAgICByZW1vdGUtZW5kcG9pbnQgPSA8JmRzaV9kdWFsX2ludGYxX2luPjsKICAg ICAgIH07CiAgICAgfTsKICAgfTsKfTsKCgpkc2lAOWFiY2QgewogICAgLi4uLi4KICAgcG9ydHMg ewogICAgIHBvcnRAMCB7CiAgICAgICByZWcgPSA8MD47CiAgICAgICAvKiBXaGVyZSBlbmRwb2lu dEAwIGNvdWxkIGJlIGFsd2F5cyBEU0kgTEVGVCBDVFJMICovCiAgICAgICBkc2lfZHVhbF9pbnRm MF9pbjogZW5kcG9pbnRAMCB7CiAgICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmcmRtYTBfb3V0 PjsKICAgICAgIH07CiAgICAgICAvKiAuLi5hbmQgQDEgY291bGQgYmUgYWx3YXlzIERTSSBSSUdI VCBDVFJMICovCiAgICAgICBkc2lfZHVhbF9pbnRmMV9pbjogZW5kcG9pbnRAMSB7CiAgICAgICAg IHJlbW90ZS1lbmRwb2ludCA9IDwmcmRtYTFfb3V0PjsKICAgICAgIH07CiAgICAgfTsKCiAgICAg cG9ydEAxIHsKICAgICAgIHJlZyA9IDwxPjsKICAgICAgIGRzaTBfb3V0OiBlbmRwb2ludCB7CiAg ICAgICAgIHJlbW90ZS1lbmRwb2ludCA9IDwmZHNpX3BhbmVsX2luPjsKICAgICAgIH07CiAgICAg fTsKICAgfTsKfTsKCi4uLmZvciBhIGR1YWwtZHNpIHBhbmVsLCBpdCdkIGJlIGEgc2ltaWxhciBn cmFwaC4KCkNoZWVycywKQW5nZWxvCgo+IAo+IG1tc3lzLXN1YmRldiA9IDwmcmRtYTAsICZyZG1h MSwgJmRzaT47Cj4gCj4gT3IgdHdvIGdyb3VwPwo+IAo+IG1tc3lzLXN1YmRldiA9IDwmcmRtYTAs ICZkc2k+LCA8JnJkbWExLCAmZHNpPjsKPiAKPiBJIHRoaW5rIHdlIHNob3VsZCBjbGVhcmx5IGRl ZmluZSB0aGlzLgo+IAo+IFJlZ2FyZHMsCj4gQ0sKPiAKPj4KPj4KPj4gQ2hlZXJzLAo+PiBBbmdl bG8KPj4KPj4+IFJlZ2FyZHMsCj4+PiBDSwo+Pj4KPj4+Cj4+Pj4gICAgcmVxdWlyZWQ6Cj4+Pj4g ICAgICAtIGNvbXBhdGlibGUKPj4+PiAgICAgIC0gcmVnCj4+Cj4+CgoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==