From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from perceval.ideasonboard.com ([213.167.242.64]:58106 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727691AbeIQOEy (ORCPT ); Mon, 17 Sep 2018 10:04:54 -0400 From: Laurent Pinchart To: Simon Horman Cc: Laurent Pinchart , dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Ulrich Hecht , Kieran Bingham Subject: Re: [PATCH v2 13/16] arm64: dts: renesas: r8a77990: Add display output support Date: Mon, 17 Sep 2018 11:38:43 +0300 Message-ID: <1591566.tkYZ6URfXP@avalon> In-Reply-To: <20180917075054.gnfepzxxaxzb46mg@verge.net.au> References: <20180914091046.483-1-laurent.pinchart+renesas@ideasonboard.com> <20180914091046.483-14-laurent.pinchart+renesas@ideasonboard.com> <20180917075054.gnfepzxxaxzb46mg@verge.net.au> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-renesas-soc-owner@vger.kernel.org List-ID: Hi Simon, On Monday, 17 September 2018 10:50:55 EEST Simon Horman wrote: > On Fri, Sep 14, 2018 at 12:10:43PM +0300, Laurent Pinchart wrote: > > The R8A77990 (E3) platform has one RGB output and two LVDS outputs > > connected to the DU. Add the DT nodes for the DU, LVDS encoders and > > supporting VSP and FCP. > > > > Signed-off-by: Laurent Pinchart > > > > Tested-by: Jacopo Mondi > > --- > > > > arch/arm64/boot/dts/renesas/r8a77990.dtsi | 167 +++++++++++++++++++++++++ > > 1 file changed, 167 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > b/arch/arm64/boot/dts/renesas/r8a77990.dtsi index > > abb14af76c0e..600074ca3ee5 100644 > > --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi > > @@ -537,6 +537,173 @@ > > resets = <&cpg 408>; > > }; > > These nodes should be placed after the gic to preserve the sorting > of nodes by bus address and then IP block. Aren't they already ? :-) > > + vspb0: vsp@fe960000 { > > + compatible = "renesas,vsp2"; > > + reg = <0 0xfe960000 0 0x8000>; > > + interrupts = ; > > + clocks = <&cpg CPG_MOD 626>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 626>; > > + renesas,fcp = <&fcpvb0>; > > + }; > > + > > + fcpvb0: fcp@fe96f000 { > > + compatible = "renesas,fcpv"; > > + reg = <0 0xfe96f000 0 0x200>; > > + clocks = <&cpg CPG_MOD 607>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 607>; > > + iommus = <&ipmmu_vp0 5>; > > + }; > > + > > + vspi0: vsp@fe9a0000 { > > + compatible = "renesas,vsp2"; > > + reg = <0 0xfe9a0000 0 0x8000>; > > + interrupts = ; > > + clocks = <&cpg CPG_MOD 622>; > > R-Car Series, 3rd Generation, v1.00, Table Table 8A.21 indicates > that this clock should be <&cpg CPG_MOD 631>. The clock above is > (according to my reading of the documentation) correctly > used for vspd1 below. Bad copy and paste, thank you for pointing it out, it will be fixed in v3. > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 631>; > > + renesas,fcp = <&fcpvi0>; > > + }; > > + > > + fcpvi0: fcp@fe9af000 { > > + compatible = "renesas,fcpv"; > > + reg = <0 0xfe9af000 0 0x200>; > > + clocks = <&cpg CPG_MOD 611>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 611>; > > + iommus = <&ipmmu_vp0 8>; > > + }; > > + > > + vspd0: vsp@fea20000 { > > + compatible = "renesas,vsp2"; > > + reg = <0 0xfea20000 0 0x7000>; > > + interrupts = ; > > + clocks = <&cpg CPG_MOD 623>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 623>; > > + renesas,fcp = <&fcpvd0>; > > + }; > > + > > + fcpvd0: fcp@fea27000 { > > + compatible = "renesas,fcpv"; > > + reg = <0 0xfea27000 0 0x200>; > > + clocks = <&cpg CPG_MOD 603>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 603>; > > + iommus = <&ipmmu_vi0 8>; > > + }; > > + > > + vspd1: vsp@fea28000 { > > + compatible = "renesas,vsp2"; > > + reg = <0 0xfea28000 0 0x7000>; > > + interrupts = ; > > + clocks = <&cpg CPG_MOD 622>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 622>; > > + renesas,fcp = <&fcpvd1>; > > + }; > > + > > + fcpvd1: fcp@fea2f000 { > > + compatible = "renesas,fcpv"; > > + reg = <0 0xfea2f000 0 0x200>; > > + clocks = <&cpg CPG_MOD 602>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 602>; > > + iommus = <&ipmmu_vi0 9>; > > + }; > > + > > + du: display@feb00000 { > > + compatible = "renesas,du-r8a77990"; > > + reg = <0 0xfeb00000 0 0x80000>; > > + interrupts = , > > + ; > > + clocks = <&cpg CPG_MOD 724>, > > + <&cpg CPG_MOD 723>; > > + clock-names = "du.0", "du.1"; > > + vsps = <&vspd0 0 &vspd1 0>; > > + status = "disabled"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + du_out_rgb: endpoint { > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + du_out_lvds0: endpoint { > > + remote-endpoint = <&lvds0_in>; > > + }; > > + }; > > + > > + port@2 { > > + reg = <2>; > > + du_out_lvds1: endpoint { > > + remote-endpoint = <&lvds1_in>; > > + }; > > + }; > > + }; > > + }; > > + > > + lvds0: lvds-encoder@feb90000 { > > + compatible = "renesas,r8a77990-lvds"; > > + reg = <0 0xfeb90000 0 0x20>; > > + clocks = <&cpg CPG_MOD 727>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 727>; > > + status = "disabled"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + lvds0_in: endpoint { > > + remote-endpoint = <&du_out_lvds0>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + lvds0_out: endpoint { > > + }; > > + }; > > + }; > > + }; > > + > > + lvds1: lvds-encoder@feb90100 { > > + compatible = "renesas,r8a77990-lvds"; > > + reg = <0 0xfeb90100 0 0x20>; > > + clocks = <&cpg CPG_MOD 727>; > > + power-domains = <&sysc R8A77990_PD_ALWAYS_ON>; > > + resets = <&cpg 726>; > > + status = "disabled"; > > + > > + ports { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + lvds1_in: endpoint { > > + remote-endpoint = <&du_out_lvds1>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + lvds1_out: endpoint { > > + }; > > + }; > > + }; > > + }; > > + > > prr: chipid@fff00044 { > > compatible = "renesas,prr"; > > reg = <0 0xfff00044 0 4>; -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v2 13/16] arm64: dts: renesas: r8a77990: Add display output support Date: Mon, 17 Sep 2018 11:38:43 +0300 Message-ID: <1591566.tkYZ6URfXP@avalon> References: <20180914091046.483-1-laurent.pinchart+renesas@ideasonboard.com> <20180914091046.483-14-laurent.pinchart+renesas@ideasonboard.com> <20180917075054.gnfepzxxaxzb46mg@verge.net.au> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C410891CB for ; Mon, 17 Sep 2018 08:38:30 +0000 (UTC) In-Reply-To: <20180917075054.gnfepzxxaxzb46mg@verge.net.au> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Simon Horman Cc: linux-renesas-soc@vger.kernel.org, Ulrich Hecht , Laurent Pinchart , Kieran Bingham , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgU2ltb24sCgpPbiBNb25kYXksIDE3IFNlcHRlbWJlciAyMDE4IDEwOjUwOjU1IEVFU1QgU2lt b24gSG9ybWFuIHdyb3RlOgo+IE9uIEZyaSwgU2VwIDE0LCAyMDE4IGF0IDEyOjEwOjQzUE0gKzAz MDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gPiBUaGUgUjhBNzc5OTAgKEUzKSBwbGF0Zm9y bSBoYXMgb25lIFJHQiBvdXRwdXQgYW5kIHR3byBMVkRTIG91dHB1dHMKPiA+IGNvbm5lY3RlZCB0 byB0aGUgRFUuIEFkZCB0aGUgRFQgbm9kZXMgZm9yIHRoZSBEVSwgTFZEUyBlbmNvZGVycyBhbmQK PiA+IHN1cHBvcnRpbmcgVlNQIGFuZCBGQ1AuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IExhdXJl bnQgUGluY2hhcnQKPiA+IDxsYXVyZW50LnBpbmNoYXJ0K3JlbmVzYXNAaWRlYXNvbmJvYXJkLmNv bT4KPiA+IFRlc3RlZC1ieTogSmFjb3BvIE1vbmRpIDxqYWNvcG8rcmVuZXNhc0BqbW9uZGkub3Jn Pgo+ID4gLS0tCj4gPiAKPiA+ICBhcmNoL2FybTY0L2Jvb3QvZHRzL3JlbmVzYXMvcjhhNzc5OTAu ZHRzaSB8IDE2NyArKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgMSBmaWxlIGNoYW5nZWQs IDE2NyBpbnNlcnRpb25zKCspCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3Qv ZHRzL3JlbmVzYXMvcjhhNzc5OTAuZHRzaQo+ID4gYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3JlbmVz YXMvcjhhNzc5OTAuZHRzaSBpbmRleAo+ID4gYWJiMTRhZjc2YzBlLi42MDAwNzRjYTNlZTUgMTAw NjQ0Cj4gPiAtLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3JlbmVzYXMvcjhhNzc5OTAuZHRzaQo+ ID4gKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9yZW5lc2FzL3I4YTc3OTkwLmR0c2kKPiA+IEBA IC01MzcsNiArNTM3LDE3MyBAQAo+ID4gIAkJCXJlc2V0cyA9IDwmY3BnIDQwOD47Cj4gPiAgCQl9 Owo+IAo+IFRoZXNlIG5vZGVzIHNob3VsZCBiZSBwbGFjZWQgYWZ0ZXIgdGhlIGdpYyB0byBwcmVz ZXJ2ZSB0aGUgc29ydGluZwo+IG9mIG5vZGVzIGJ5IGJ1cyBhZGRyZXNzIGFuZCB0aGVuIElQIGJs b2NrLgoKQXJlbid0IHRoZXkgYWxyZWFkeSA/IDotKQoKPiA+ICsJCXZzcGIwOiB2c3BAZmU5NjAw MDAgewo+ID4gKwkJCWNvbXBhdGlibGUgPSAicmVuZXNhcyx2c3AyIjsKPiA+ICsJCQlyZWcgPSA8 MCAweGZlOTYwMDAwIDAgMHg4MDAwPjsKPiA+ICsJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMjY2 IElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ID4gKwkJCWNsb2NrcyA9IDwmY3BnIENQR19NT0QgNjI2 PjsKPiA+ICsJCQlwb3dlci1kb21haW5zID0gPCZzeXNjIFI4QTc3OTkwX1BEX0FMV0FZU19PTj47 Cj4gPiArCQkJcmVzZXRzID0gPCZjcGcgNjI2PjsKPiA+ICsJCQlyZW5lc2FzLGZjcCA9IDwmZmNw dmIwPjsKPiA+ICsJCX07Cj4gPiArCj4gPiArCQlmY3B2YjA6IGZjcEBmZTk2ZjAwMCB7Cj4gPiAr CQkJY29tcGF0aWJsZSA9ICJyZW5lc2FzLGZjcHYiOwo+ID4gKwkJCXJlZyA9IDwwIDB4ZmU5NmYw MDAgMCAweDIwMD47Cj4gPiArCQkJY2xvY2tzID0gPCZjcGcgQ1BHX01PRCA2MDc+Owo+ID4gKwkJ CXBvd2VyLWRvbWFpbnMgPSA8JnN5c2MgUjhBNzc5OTBfUERfQUxXQVlTX09OPjsKPiA+ICsJCQly ZXNldHMgPSA8JmNwZyA2MDc+Owo+ID4gKwkJCWlvbW11cyA9IDwmaXBtbXVfdnAwIDU+Owo+ID4g KwkJfTsKPiA+ICsKPiA+ICsJCXZzcGkwOiB2c3BAZmU5YTAwMDAgewo+ID4gKwkJCWNvbXBhdGli bGUgPSAicmVuZXNhcyx2c3AyIjsKPiA+ICsJCQlyZWcgPSA8MCAweGZlOWEwMDAwIDAgMHg4MDAw PjsKPiA+ICsJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgNDQ0IElSUV9UWVBFX0xFVkVMX0hJR0g+ Owo+ID4gKwkJCWNsb2NrcyA9IDwmY3BnIENQR19NT0QgNjIyPjsKPiAKPiBSLUNhciBTZXJpZXMs IDNyZCBHZW5lcmF0aW9uLCB2MS4wMCwgVGFibGUgVGFibGUgOEEuMjEgaW5kaWNhdGVzCj4gdGhh dCB0aGlzIGNsb2NrIHNob3VsZCBiZSA8JmNwZyBDUEdfTU9EIDYzMT4uIFRoZSBjbG9jayBhYm92 ZSBpcwo+IChhY2NvcmRpbmcgdG8gbXkgcmVhZGluZyBvZiB0aGUgZG9jdW1lbnRhdGlvbikgY29y cmVjdGx5Cj4gdXNlZCBmb3IgdnNwZDEgYmVsb3cuCgpCYWQgY29weSBhbmQgcGFzdGUsIHRoYW5r IHlvdSBmb3IgcG9pbnRpbmcgaXQgb3V0LCBpdCB3aWxsIGJlIGZpeGVkIGluIHYzLgoKPiA+ICsJ CQlwb3dlci1kb21haW5zID0gPCZzeXNjIFI4QTc3OTkwX1BEX0FMV0FZU19PTj47Cj4gPiArCQkJ cmVzZXRzID0gPCZjcGcgNjMxPjsKPiA+ICsJCQlyZW5lc2FzLGZjcCA9IDwmZmNwdmkwPjsKPiA+ ICsJCX07Cj4gPiArCj4gPiArCQlmY3B2aTA6IGZjcEBmZTlhZjAwMCB7Cj4gPiArCQkJY29tcGF0 aWJsZSA9ICJyZW5lc2FzLGZjcHYiOwo+ID4gKwkJCXJlZyA9IDwwIDB4ZmU5YWYwMDAgMCAweDIw MD47Cj4gPiArCQkJY2xvY2tzID0gPCZjcGcgQ1BHX01PRCA2MTE+Owo+ID4gKwkJCXBvd2VyLWRv bWFpbnMgPSA8JnN5c2MgUjhBNzc5OTBfUERfQUxXQVlTX09OPjsKPiA+ICsJCQlyZXNldHMgPSA8 JmNwZyA2MTE+Owo+ID4gKwkJCWlvbW11cyA9IDwmaXBtbXVfdnAwIDg+Owo+ID4gKwkJfTsKPiA+ ICsKPiA+ICsJCXZzcGQwOiB2c3BAZmVhMjAwMDAgewo+ID4gKwkJCWNvbXBhdGlibGUgPSAicmVu ZXNhcyx2c3AyIjsKPiA+ICsJCQlyZWcgPSA8MCAweGZlYTIwMDAwIDAgMHg3MDAwPjsKPiA+ICsJ CQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgNDY2IElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ID4gKwkJ CWNsb2NrcyA9IDwmY3BnIENQR19NT0QgNjIzPjsKPiA+ICsJCQlwb3dlci1kb21haW5zID0gPCZz eXNjIFI4QTc3OTkwX1BEX0FMV0FZU19PTj47Cj4gPiArCQkJcmVzZXRzID0gPCZjcGcgNjIzPjsK PiA+ICsJCQlyZW5lc2FzLGZjcCA9IDwmZmNwdmQwPjsKPiA+ICsJCX07Cj4gPiArCj4gPiArCQlm Y3B2ZDA6IGZjcEBmZWEyNzAwMCB7Cj4gPiArCQkJY29tcGF0aWJsZSA9ICJyZW5lc2FzLGZjcHYi Owo+ID4gKwkJCXJlZyA9IDwwIDB4ZmVhMjcwMDAgMCAweDIwMD47Cj4gPiArCQkJY2xvY2tzID0g PCZjcGcgQ1BHX01PRCA2MDM+Owo+ID4gKwkJCXBvd2VyLWRvbWFpbnMgPSA8JnN5c2MgUjhBNzc5 OTBfUERfQUxXQVlTX09OPjsKPiA+ICsJCQlyZXNldHMgPSA8JmNwZyA2MDM+Owo+ID4gKwkJCWlv bW11cyA9IDwmaXBtbXVfdmkwIDg+Owo+ID4gKwkJfTsKPiA+ICsKPiA+ICsJCXZzcGQxOiB2c3BA ZmVhMjgwMDAgewo+ID4gKwkJCWNvbXBhdGlibGUgPSAicmVuZXNhcyx2c3AyIjsKPiA+ICsJCQly ZWcgPSA8MCAweGZlYTI4MDAwIDAgMHg3MDAwPjsKPiA+ICsJCQlpbnRlcnJ1cHRzID0gPEdJQ19T UEkgNDY3IElSUV9UWVBFX0xFVkVMX0hJR0g+Owo+ID4gKwkJCWNsb2NrcyA9IDwmY3BnIENQR19N T0QgNjIyPjsKPiA+ICsJCQlwb3dlci1kb21haW5zID0gPCZzeXNjIFI4QTc3OTkwX1BEX0FMV0FZ U19PTj47Cj4gPiArCQkJcmVzZXRzID0gPCZjcGcgNjIyPjsKPiA+ICsJCQlyZW5lc2FzLGZjcCA9 IDwmZmNwdmQxPjsKPiA+ICsJCX07Cj4gPiArCj4gPiArCQlmY3B2ZDE6IGZjcEBmZWEyZjAwMCB7 Cj4gPiArCQkJY29tcGF0aWJsZSA9ICJyZW5lc2FzLGZjcHYiOwo+ID4gKwkJCXJlZyA9IDwwIDB4 ZmVhMmYwMDAgMCAweDIwMD47Cj4gPiArCQkJY2xvY2tzID0gPCZjcGcgQ1BHX01PRCA2MDI+Owo+ ID4gKwkJCXBvd2VyLWRvbWFpbnMgPSA8JnN5c2MgUjhBNzc5OTBfUERfQUxXQVlTX09OPjsKPiA+ ICsJCQlyZXNldHMgPSA8JmNwZyA2MDI+Owo+ID4gKwkJCWlvbW11cyA9IDwmaXBtbXVfdmkwIDk+ Owo+ID4gKwkJfTsKPiA+ICsKPiA+ICsJCWR1OiBkaXNwbGF5QGZlYjAwMDAwIHsKPiA+ICsJCQlj b21wYXRpYmxlID0gInJlbmVzYXMsZHUtcjhhNzc5OTAiOwo+ID4gKwkJCXJlZyA9IDwwIDB4ZmVi MDAwMDAgMCAweDgwMDAwPjsKPiA+ICsJCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMjU2IElSUV9U WVBFX0xFVkVMX0hJR0g+LAo+ID4gKwkJCQkgICAgIDxHSUNfU1BJIDI2OCBJUlFfVFlQRV9MRVZF TF9ISUdIPjsKPiA+ICsJCQljbG9ja3MgPSA8JmNwZyBDUEdfTU9EIDcyND4sCj4gPiArCQkJCSA8 JmNwZyBDUEdfTU9EIDcyMz47Cj4gPiArCQkJY2xvY2stbmFtZXMgPSAiZHUuMCIsICJkdS4xIjsK PiA+ICsJCQl2c3BzID0gPCZ2c3BkMCAwICZ2c3BkMSAwPjsKPiA+ICsJCQlzdGF0dXMgPSAiZGlz YWJsZWQiOwo+ID4gKwo+ID4gKwkJCXBvcnRzIHsKPiA+ICsJCQkJI2FkZHJlc3MtY2VsbHMgPSA8 MT47Cj4gPiArCQkJCSNzaXplLWNlbGxzID0gPDA+Owo+ID4gKwo+ID4gKwkJCQlwb3J0QDAgewo+ ID4gKwkJCQkJcmVnID0gPDA+Owo+ID4gKwkJCQkJZHVfb3V0X3JnYjogZW5kcG9pbnQgewo+ID4g KwkJCQkJfTsKPiA+ICsJCQkJfTsKPiA+ICsKPiA+ICsJCQkJcG9ydEAxIHsKPiA+ICsJCQkJCXJl ZyA9IDwxPjsKPiA+ICsJCQkJCWR1X291dF9sdmRzMDogZW5kcG9pbnQgewo+ID4gKwkJCQkJCXJl bW90ZS1lbmRwb2ludCA9IDwmbHZkczBfaW4+Owo+ID4gKwkJCQkJfTsKPiA+ICsJCQkJfTsKPiA+ ICsKPiA+ICsJCQkJcG9ydEAyIHsKPiA+ICsJCQkJCXJlZyA9IDwyPjsKPiA+ICsJCQkJCWR1X291 dF9sdmRzMTogZW5kcG9pbnQgewo+ID4gKwkJCQkJCXJlbW90ZS1lbmRwb2ludCA9IDwmbHZkczFf aW4+Owo+ID4gKwkJCQkJfTsKPiA+ICsJCQkJfTsKPiA+ICsJCQl9Owo+ID4gKwkJfTsKPiA+ICsK PiA+ICsJCWx2ZHMwOiBsdmRzLWVuY29kZXJAZmViOTAwMDAgewo+ID4gKwkJCWNvbXBhdGlibGUg PSAicmVuZXNhcyxyOGE3Nzk5MC1sdmRzIjsKPiA+ICsJCQlyZWcgPSA8MCAweGZlYjkwMDAwIDAg MHgyMD47Cj4gPiArCQkJY2xvY2tzID0gPCZjcGcgQ1BHX01PRCA3Mjc+Owo+ID4gKwkJCXBvd2Vy LWRvbWFpbnMgPSA8JnN5c2MgUjhBNzc5OTBfUERfQUxXQVlTX09OPjsKPiA+ICsJCQlyZXNldHMg PSA8JmNwZyA3Mjc+Owo+ID4gKwkJCXN0YXR1cyA9ICJkaXNhYmxlZCI7Cj4gPiArCj4gPiArCQkJ cG9ydHMgewo+ID4gKwkJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKPiA+ICsJCQkJI3NpemUtY2Vs bHMgPSA8MD47Cj4gPiArCj4gPiArCQkJCXBvcnRAMCB7Cj4gPiArCQkJCQlyZWcgPSA8MD47Cj4g PiArCQkJCQlsdmRzMF9pbjogZW5kcG9pbnQgewo+ID4gKwkJCQkJCXJlbW90ZS1lbmRwb2ludCA9 IDwmZHVfb3V0X2x2ZHMwPjsKPiA+ICsJCQkJCX07Cj4gPiArCQkJCX07Cj4gPiArCj4gPiArCQkJ CXBvcnRAMSB7Cj4gPiArCQkJCQlyZWcgPSA8MT47Cj4gPiArCQkJCQlsdmRzMF9vdXQ6IGVuZHBv aW50IHsKPiA+ICsJCQkJCX07Cj4gPiArCQkJCX07Cj4gPiArCQkJfTsKPiA+ICsJCX07Cj4gPiAr Cj4gPiArCQlsdmRzMTogbHZkcy1lbmNvZGVyQGZlYjkwMTAwIHsKPiA+ICsJCQljb21wYXRpYmxl ID0gInJlbmVzYXMscjhhNzc5OTAtbHZkcyI7Cj4gPiArCQkJcmVnID0gPDAgMHhmZWI5MDEwMCAw IDB4MjA+Owo+ID4gKwkJCWNsb2NrcyA9IDwmY3BnIENQR19NT0QgNzI3PjsKPiA+ICsJCQlwb3dl ci1kb21haW5zID0gPCZzeXNjIFI4QTc3OTkwX1BEX0FMV0FZU19PTj47Cj4gPiArCQkJcmVzZXRz ID0gPCZjcGcgNzI2PjsKPiA+ICsJCQlzdGF0dXMgPSAiZGlzYWJsZWQiOwo+ID4gKwo+ID4gKwkJ CXBvcnRzIHsKPiA+ICsJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gPiArCQkJCSNzaXplLWNl bGxzID0gPDA+Owo+ID4gKwo+ID4gKwkJCQlwb3J0QDAgewo+ID4gKwkJCQkJcmVnID0gPDA+Owo+ ID4gKwkJCQkJbHZkczFfaW46IGVuZHBvaW50IHsKPiA+ICsJCQkJCQlyZW1vdGUtZW5kcG9pbnQg PSA8JmR1X291dF9sdmRzMT47Cj4gPiArCQkJCQl9Owo+ID4gKwkJCQl9Owo+ID4gKwo+ID4gKwkJ CQlwb3J0QDEgewo+ID4gKwkJCQkJcmVnID0gPDE+Owo+ID4gKwkJCQkJbHZkczFfb3V0OiBlbmRw b2ludCB7Cj4gPiArCQkJCQl9Owo+ID4gKwkJCQl9Owo+ID4gKwkJCX07Cj4gPiArCQl9Owo+ID4g Kwo+ID4gIAkJcHJyOiBjaGlwaWRAZmZmMDAwNDQgewo+ID4gIAkJCWNvbXBhdGlibGUgPSAicmVu ZXNhcyxwcnIiOwo+ID4gIAkJCXJlZyA9IDwwIDB4ZmZmMDAwNDQgMCA0PjsKCi0tIApSZWdhcmRz LAoKTGF1cmVudCBQaW5jaGFydAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK