From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00A792D592C; Fri, 4 Sep 2026 14:03:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788530601; cv=none; b=Y1KhsWgvlspj5ghlhAE/AaVOmd38DOZluynMAbE/dC+GrSlL6vBJ4ViVxyGrFkWDyG6OQs6H7OEah6CszPQO0ljmmZ9KI4sw5FcdPG3bPubsURWmV7w8JHbXKKhdlcyU+8UbiTgvaxFKGzBeo+t3e+DzGhOKOZ+z3MhnBOcvbL0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788530601; c=relaxed/simple; bh=slKlh3kIn5/hNsnu4ihwuZLk/OIRSScMk+e9b8tv/3Y=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=kvRqRSq2h4k0cehQTLIMAEyitT9LGnSLcqpQNdKqy4yuH38r6nGAiAmW+OV/J08Q0yW/Luh1aMLIln+WYbazfT34CtibPooiW8uEdbGBwxlonunc3Mnyr6/8DADtak7q+N42ar36oF7zF/BPxzYHXfa2H4HuZWfhdQeC8ZASTBM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ufs6l3Sv; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ufs6l3Sv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 374F31F00A3D; Fri, 4 Sep 2026 14:03:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788530599; bh=L5ybqdL8dPYtT+lWuTUqYs52Xgyz3jjU5YZiKTCi0Io=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Ufs6l3SvOAB5bnN0We5SXjbHp0hLpvSzma6h9aXRfGFB0K4zvx6HVkJjC86aTSWEG na52ly1NkGVs0jTfk6YCkgRCQbAEdjcXmrkZhqblJt96c1QAS85GC6YGEaJcFzyU0b sdZAl+qVas2o4ZkBd04KBGIinap2g+JdRDTYdMbGSsWD7utPk/Q8jizVeL9VpYYk5J 9xtkWp9kLic/pwZ8Ovw/wGdflVsclCDdSD8a2/S5irc7akKx6jB8ca80D90TsO8lYH 5480TwUCuCz4WuXUT8lrK9LVVUKYd9e6bdsBsKg6CV5ICCgbVT6VovJPpXC4fpt5e4 pm4jYez9R2LpA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 18/19] riscv: dts: starfive: jh7110: Update DT for display subsystem Reply-To: sashiko-reviews@lists.linux.dev To: "Michal Wilczynski" Cc: neil.armstrong@linaro.org, vkoul@kernel.org, linux-clk@vger.kernel.org, robh@kernel.org, devicetree@vger.kernel.org, lee@kernel.org, conor+dt@kernel.org, olteanv@gmail.com, linux-phy@lists.infradead.org, dri-devel@lists.freedesktop.org, mfd@lists.linux.dev In-Reply-To: <20260904-jh7110-clean-send-v3-18-484f9ae72715@samsung.com> References: <20260904-jh7110-clean-send-v3-0-484f9ae72715@samsung.com> <20260904-jh7110-clean-send-v3-18-484f9ae72715@samsung.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 04 Sep 2026 14:03:18 +0000 Message-Id: <20260904140319.374F31F00A3D@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 3 potential issue(= s) to consider: - [High] The HDMI HPD (Hot Plug Detect) pin is incorrectly configured to dr= ive a logic HIGH output, causing electrical contention and breaking hotplug= detection. - [Medium] Hardware peripheral nodes in the SoC dtsi lack 'status =3D "disa= bled"', which will break DT validation for custom boards. - [Low] The device tree introduces a redundant `xin24m` fixed-clock which d= uplicates the existing `osc` clock. -- commit ca7f9b150e9f3d43ce6202c42577591e3273c2a4 Author: Michal Wilczynski riscv: dts: starfive: jh7110: Update DT for display subsystem Activate the display subsystem by describing the video output subsystem, which the documentation calls dom_vout_top, as a bus node covering the whole 0x29400000 region. > diff --git a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi b/arch/riscv= /boot/dts/starfive/jh7110-common.dtsi > --- a/arch/riscv/boot/dts/starfive/jh7110-common.dtsi > +++ b/arch/riscv/boot/dts/starfive/jh7110-common.dtsi [ ... ] > @@ -351,6 +430,40 @@ &syscrg { > }; > =20 > &sysgpio { > + hdmi_pins: hdmi-0 { > + hdmi-cec-pins { > + pinmux =3D + GPOEN_SYS_HDMI_CEC_SDA, > + GPI_SYS_HDMI_CEC_SDA)>; > + input-enable; > + bias-pull-up; > + }; > + > + hdmi-hpd-pins { > + pinmux =3D + GPOEN_ENABLE, > + GPI_SYS_HDMI_HPD)>; [Severity: High] Does this configuration incorrectly drive a logic HIGH output on the HPD pi= n? The HDMI HPD (Hot Plug Detect) pin is structurally an input driven by the external HDMI sink. By statically driving the output driver HIGH from the S= oC side (using GPOEN_ENABLE and GPOUT_HIGH), the physical line is held high regardless of what the monitor tries to drive. Can this break hotplug detection logic and cause electrical contention if t= he monitor pulls it low? Standard input pins usually use GPOEN_DISABLE to prev= ent driving the line. > + input-enable; > + bias-disable; /* external pull-up */ > + }; [ ... ] > diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/d= ts/starfive/jh7110.dtsi > --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi > +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi [ ... ] > @@ -352,6 +346,13 @@ tdm_ext: tdm-ext-clock { > #clock-cells =3D <0>; > }; > =20 > + xin24m: xin24m { > + compatible =3D "fixed-clock"; > + #clock-cells =3D <0>; > + clock-frequency =3D <24000000>; > + clock-output-names =3D "xin24m"; > + }; > + [Severity: Low] Is this xin24m fixed-clock redundant? The board's 24MHz oscillator is typically already modeled via an existing o= sc node which receives its frequency from board-specific common files.=20 Does adding xin24m here unnecessarily duplicate the existing oscillator node rather than reusing it? > soc { > compatible =3D "simple-bus"; > interrupt-parent =3D <&plic>; [ ... ] > @@ -1199,22 +1200,81 @@ csi_phy: phy@19820000 { > #phy-cells =3D <0>; > }; > =20 > + vout_subsystem: display-subsystem@29400000 { > + compatible =3D "starfive,jh7110-vout-subsystem"; > + reg =3D <0x0 0x29400000 0x0 0x200000>; > + ranges; > + #address-cells =3D <2>; > + #size-cells =3D <2>; > + clocks =3D <&syscrg JH7110_SYSCLK_NOC_BUS_DISP_AXI>; > + dma-noncoherent; > power-domains =3D <&pwrc JH7110_PD_VOUT>; > + resets =3D <&syscrg JH7110_SYSRST_NOC_BUS_DISP_AXI>; > + > + dc8200: display@29400000 { > + compatible =3D "starfive,jh7110-dc8200", "verisilicon,dc"; > + reg =3D <0x0 0x29400000 0x0 0x2800>; [Severity: Medium] Should this hardware peripheral node include status =3D "disabled";? Hardware peripheral nodes in the SoC dtsi are generally disabled by default. Because the dc8200 node requires board-specific properties (like ports) that are only provided in jh7110-common.dtsi, leaving it active by default here can cause DT schema validation failures. Can this break dtbs_check or cause driver probe crashes on custom boards th= at include jh7110.dtsi but do not wire up the display components? > + clocks =3D <&voutcrg JH7110_VOUTCLK_DC8200_CORE>, [ ... ] > + reset-names =3D "core", "axi", "ahb"; > + }; > + > + hdmi_subsystem: hdmi@29590000 { > + compatible =3D "starfive,jh7110-hdmi-subsystem"; > + reg =3D <0x0 0x29590000 0x0 0x4000>; [Severity: Medium] Should the hdmi_subsystem node also include status =3D "disabled";? Similar to the dc8200 node, leaving this active by default can lead to validation errors if it is left unconfigured by board files. > + > + hdmi_controller: controller { [ ... ] > + hdmi_phy: phy { > + compatible =3D "starfive,jh7110-inno-hdmi-phy"; > + clocks =3D <&xin24m>; [Severity: Low] Should this consume the standard <&osc> clock instead of <&xin24m>? If the xin24m node is redundant as mentioned above, this would likely need to be updated to point to the main oscillator node. > + #clock-cells =3D <0>; > + #phy-cells =3D <0>; > + }; > + }; --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260904-jh7110-cle= an-send-v3-0-484f9ae72715@samsung.com?part=3D18 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 5BB4EC61DD6 for ; Fri, 4 Sep 2026 14:03:22 +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-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2iI7T3+g/lO8P710DSza11old5HNC+4tmoMh8QWJbXQ=; b=KTAWSCCGPECEHi smw71HGrBycfpwS+fVcCa+SXixkQTQzfu///RfhQ4IlM8VnOEH/ZL5HlrHwc1ZWilTWOYGvW2uWEy cxLUMk/7AOICKm8qIBtX+ofr6spLm9ZeKC4NK83QQ8L81p0f0gWPbi3o6QBxZrDXLiY3jpGoP/ODZ nZuyaLNkWBkGrvkP456VVz1wmbnY6Vi1MJ2gjYG9lOQMUTUsvFKz1hIQv3mKMvWhcCPvDToqPBfu/ J1eZF7C1ItE0gm9V4TFaWb8swA0JT6Ob21A69hjfZKr6D+nY8yT76nvVqiPpxfmGk9tFK0r+YHByo J/O2gQd6QK5rDmqhC7SQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x2UVl-00000002K5P-3n2o; Fri, 04 Sep 2026 14:03:21 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x2UVk-00000002K5B-3SdD for linux-phy@lists.infradead.org; Fri, 04 Sep 2026 14:03:20 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 30EED600C8; Fri, 4 Sep 2026 14:03:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 374F31F00A3D; Fri, 4 Sep 2026 14:03:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788530599; bh=L5ybqdL8dPYtT+lWuTUqYs52Xgyz3jjU5YZiKTCi0Io=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Ufs6l3SvOAB5bnN0We5SXjbHp0hLpvSzma6h9aXRfGFB0K4zvx6HVkJjC86aTSWEG na52ly1NkGVs0jTfk6YCkgRCQbAEdjcXmrkZhqblJt96c1QAS85GC6YGEaJcFzyU0b sdZAl+qVas2o4ZkBd04KBGIinap2g+JdRDTYdMbGSsWD7utPk/Q8jizVeL9VpYYk5J 9xtkWp9kLic/pwZ8Ovw/wGdflVsclCDdSD8a2/S5irc7akKx6jB8ca80D90TsO8lYH 5480TwUCuCz4WuXUT8lrK9LVVUKYd9e6bdsBsKg6CV5ICCgbVT6VovJPpXC4fpt5e4 pm4jYez9R2LpA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 18/19] riscv: dts: starfive: jh7110: Update DT for display subsystem To: "Michal Wilczynski" Cc: neil.armstrong@linaro.org, vkoul@kernel.org, linux-clk@vger.kernel.org, robh@kernel.org, devicetree@vger.kernel.org, lee@kernel.org, conor+dt@kernel.org, olteanv@gmail.com, linux-phy@lists.infradead.org, dri-devel@lists.freedesktop.org, mfd@lists.linux.dev In-Reply-To: <20260904-jh7110-clean-send-v3-18-484f9ae72715@samsung.com> References: <20260904-jh7110-clean-send-v3-0-484f9ae72715@samsung.com> <20260904-jh7110-clean-send-v3-18-484f9ae72715@samsung.com> Date: Fri, 04 Sep 2026 14:03:18 +0000 Message-Id: <20260904140319.374F31F00A3D@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFRoZSBIRE1JIEhQRCAo SG90IFBsdWcgRGV0ZWN0KSBwaW4gaXMgaW5jb3JyZWN0bHkgY29uZmlndXJlZCB0byBkcml2ZSBh IGxvZ2ljIEhJR0ggb3V0cHV0LCBjYXVzaW5nIGVsZWN0cmljYWwgY29udGVudGlvbiBhbmQgYnJl YWtpbmcgaG90cGx1ZyBkZXRlY3Rpb24uCi0gW01lZGl1bV0gSGFyZHdhcmUgcGVyaXBoZXJhbCBu b2RlcyBpbiB0aGUgU29DIGR0c2kgbGFjayAnc3RhdHVzID0gImRpc2FibGVkIicsIHdoaWNoIHdp bGwgYnJlYWsgRFQgdmFsaWRhdGlvbiBmb3IgY3VzdG9tIGJvYXJkcy4KLSBbTG93XSBUaGUgZGV2 aWNlIHRyZWUgaW50cm9kdWNlcyBhIHJlZHVuZGFudCBgeGluMjRtYCBmaXhlZC1jbG9jayB3aGlj aCBkdXBsaWNhdGVzIHRoZSBleGlzdGluZyBgb3NjYCBjbG9jay4KLS0KCmNvbW1pdCBjYTdmOWIx NTBlOWYzZDQzY2U2MjAyYzQyNTc3NTkxZTMyNzNjMmE0CkF1dGhvcjogTWljaGFsIFdpbGN6eW5z a2kgPG0ud2lsY3p5bnNraUBzYW1zdW5nLmNvbT4KCnJpc2N2OiBkdHM6IHN0YXJmaXZlOiBqaDcx MTA6IFVwZGF0ZSBEVCBmb3IgZGlzcGxheSBzdWJzeXN0ZW0KCkFjdGl2YXRlIHRoZSBkaXNwbGF5 IHN1YnN5c3RlbSBieSBkZXNjcmliaW5nIHRoZSB2aWRlbyBvdXRwdXQgc3Vic3lzdGVtLAp3aGlj aCB0aGUgZG9jdW1lbnRhdGlvbiBjYWxscyBkb21fdm91dF90b3AsIGFzIGEgYnVzIG5vZGUgY292 ZXJpbmcgdGhlCndob2xlIDB4Mjk0MDAwMDAgcmVnaW9uLgoKPiBkaWZmIC0tZ2l0IGEvYXJjaC9y aXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAtY29tbW9uLmR0c2kgYi9hcmNoL3Jpc2N2L2Jv b3QvZHRzL3N0YXJmaXZlL2poNzExMC1jb21tb24uZHRzaQo+IC0tLSBhL2FyY2gvcmlzY3YvYm9v dC9kdHMvc3RhcmZpdmUvamg3MTEwLWNvbW1vbi5kdHNpCj4gKysrIGIvYXJjaC9yaXNjdi9ib290 L2R0cy9zdGFyZml2ZS9qaDcxMTAtY29tbW9uLmR0c2kKWyAuLi4gXQo+IEBAIC0zNTEsNiArNDMw LDQwIEBAICZzeXNjcmcgewo+ICB9Owo+ICAKPiAgJnN5c2dwaW8gewo+ICsJaGRtaV9waW5zOiBo ZG1pLTAgewo+ICsJCWhkbWktY2VjLXBpbnMgewo+ICsJCQlwaW5tdXggPSA8R1BJT01VWCgxNCwg R1BPVVRfU1lTX0hETUlfQ0VDX1NEQSwKPiArCQkJCQkgICAgICBHUE9FTl9TWVNfSERNSV9DRUNf U0RBLAo+ICsJCQkJCSAgICAgIEdQSV9TWVNfSERNSV9DRUNfU0RBKT47Cj4gKwkJCWlucHV0LWVu YWJsZTsKPiArCQkJYmlhcy1wdWxsLXVwOwo+ICsJCX07Cj4gKwo+ICsJCWhkbWktaHBkLXBpbnMg ewo+ICsJCQlwaW5tdXggPSA8R1BJT01VWCgxNSwgR1BPVVRfSElHSCwKPiArCQkJCQkgICAgICBH UE9FTl9FTkFCTEUsCj4gKwkJCQkJICAgICAgR1BJX1NZU19IRE1JX0hQRCk+OwoKW1NldmVyaXR5 OiBIaWdoXQpEb2VzIHRoaXMgY29uZmlndXJhdGlvbiBpbmNvcnJlY3RseSBkcml2ZSBhIGxvZ2lj IEhJR0ggb3V0cHV0IG9uIHRoZSBIUEQgcGluPwoKVGhlIEhETUkgSFBEIChIb3QgUGx1ZyBEZXRl Y3QpIHBpbiBpcyBzdHJ1Y3R1cmFsbHkgYW4gaW5wdXQgZHJpdmVuIGJ5IHRoZQpleHRlcm5hbCBI RE1JIHNpbmsuIEJ5IHN0YXRpY2FsbHkgZHJpdmluZyB0aGUgb3V0cHV0IGRyaXZlciBISUdIIGZy b20gdGhlIFNvQwpzaWRlICh1c2luZyBHUE9FTl9FTkFCTEUgYW5kIEdQT1VUX0hJR0gpLCB0aGUg cGh5c2ljYWwgbGluZSBpcyBoZWxkIGhpZ2gKcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBtb25pdG9y IHRyaWVzIHRvIGRyaXZlLgoKQ2FuIHRoaXMgYnJlYWsgaG90cGx1ZyBkZXRlY3Rpb24gbG9naWMg YW5kIGNhdXNlIGVsZWN0cmljYWwgY29udGVudGlvbiBpZiB0aGUKbW9uaXRvciBwdWxscyBpdCBs b3c/IFN0YW5kYXJkIGlucHV0IHBpbnMgdXN1YWxseSB1c2UgR1BPRU5fRElTQUJMRSB0byBwcmV2 ZW50CmRyaXZpbmcgdGhlIGxpbmUuCgo+ICsJCQlpbnB1dC1lbmFibGU7Cj4gKwkJCWJpYXMtZGlz YWJsZTsgLyogZXh0ZXJuYWwgcHVsbC11cCAqLwo+ICsJCX07ClsgLi4uIF0KPiBkaWZmIC0tZ2l0 IGEvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2ZS9qaDcxMTAuZHRzaSBiL2FyY2gvcmlzY3Yv Ym9vdC9kdHMvc3RhcmZpdmUvamg3MTEwLmR0c2kKPiAtLS0gYS9hcmNoL3Jpc2N2L2Jvb3QvZHRz L3N0YXJmaXZlL2poNzExMC5kdHNpCj4gKysrIGIvYXJjaC9yaXNjdi9ib290L2R0cy9zdGFyZml2 ZS9qaDcxMTAuZHRzaQpbIC4uLiBdCj4gQEAgLTM1Miw2ICszNDYsMTMgQEAgdGRtX2V4dDogdGRt LWV4dC1jbG9jayB7Cj4gIAkJI2Nsb2NrLWNlbGxzID0gPDA+Owo+ICAJfTsKPiAgCj4gKwl4aW4y NG06IHhpbjI0bSB7Cj4gKwkJY29tcGF0aWJsZSA9ICJmaXhlZC1jbG9jayI7Cj4gKwkJI2Nsb2Nr LWNlbGxzID0gPDA+Owo+ICsJCWNsb2NrLWZyZXF1ZW5jeSA9IDwyNDAwMDAwMD47Cj4gKwkJY2xv Y2stb3V0cHV0LW5hbWVzID0gInhpbjI0bSI7Cj4gKwl9Owo+ICsKCltTZXZlcml0eTogTG93XQpJ cyB0aGlzIHhpbjI0bSBmaXhlZC1jbG9jayByZWR1bmRhbnQ/CgpUaGUgYm9hcmQncyAyNE1IeiBv c2NpbGxhdG9yIGlzIHR5cGljYWxseSBhbHJlYWR5IG1vZGVsZWQgdmlhIGFuIGV4aXN0aW5nIG9z Ywpub2RlIHdoaWNoIHJlY2VpdmVzIGl0cyBmcmVxdWVuY3kgZnJvbSBib2FyZC1zcGVjaWZpYyBj b21tb24gZmlsZXMuIAoKRG9lcyBhZGRpbmcgeGluMjRtIGhlcmUgdW5uZWNlc3NhcmlseSBkdXBs aWNhdGUgdGhlIGV4aXN0aW5nIG9zY2lsbGF0b3IKbm9kZSByYXRoZXIgdGhhbiByZXVzaW5nIGl0 PwoKPiAgCXNvYyB7Cj4gIAkJY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIjsKPiAgCQlpbnRlcnJ1 cHQtcGFyZW50ID0gPCZwbGljPjsKWyAuLi4gXQo+IEBAIC0xMTk5LDIyICsxMjAwLDgxIEBAIGNz aV9waHk6IHBoeUAxOTgyMDAwMCB7Cj4gIAkJCSNwaHktY2VsbHMgPSA8MD47Cj4gIAkJfTsKPiAg Cj4gKwkJdm91dF9zdWJzeXN0ZW06IGRpc3BsYXktc3Vic3lzdGVtQDI5NDAwMDAwIHsKPiArCQkJ Y29tcGF0aWJsZSA9ICJzdGFyZml2ZSxqaDcxMTAtdm91dC1zdWJzeXN0ZW0iOwo+ICsJCQlyZWcg PSA8MHgwIDB4Mjk0MDAwMDAgMHgwIDB4MjAwMDAwPjsKPiArCQkJcmFuZ2VzOwo+ICsJCQkjYWRk cmVzcy1jZWxscyA9IDwyPjsKPiArCQkJI3NpemUtY2VsbHMgPSA8Mj47Cj4gKwkJCWNsb2NrcyA9 IDwmc3lzY3JnIEpINzExMF9TWVNDTEtfTk9DX0JVU19ESVNQX0FYST47Cj4gKwkJCWRtYS1ub25j b2hlcmVudDsKPiAgCQkJcG93ZXItZG9tYWlucyA9IDwmcHdyYyBKSDcxMTBfUERfVk9VVD47Cj4g KwkJCXJlc2V0cyA9IDwmc3lzY3JnIEpINzExMF9TWVNSU1RfTk9DX0JVU19ESVNQX0FYST47Cj4g Kwo+ICsJCQlkYzgyMDA6IGRpc3BsYXlAMjk0MDAwMDAgewo+ICsJCQkJY29tcGF0aWJsZSA9ICJz dGFyZml2ZSxqaDcxMTAtZGM4MjAwIiwgInZlcmlzaWxpY29uLGRjIjsKPiArCQkJCXJlZyA9IDww eDAgMHgyOTQwMDAwMCAweDAgMHgyODAwPjsKCltTZXZlcml0eTogTWVkaXVtXQpTaG91bGQgdGhp cyBoYXJkd2FyZSBwZXJpcGhlcmFsIG5vZGUgaW5jbHVkZSBzdGF0dXMgPSAiZGlzYWJsZWQiOz8K CkhhcmR3YXJlIHBlcmlwaGVyYWwgbm9kZXMgaW4gdGhlIFNvQyBkdHNpIGFyZSBnZW5lcmFsbHkg ZGlzYWJsZWQgYnkgZGVmYXVsdC4KQmVjYXVzZSB0aGUgZGM4MjAwIG5vZGUgcmVxdWlyZXMgYm9h cmQtc3BlY2lmaWMgcHJvcGVydGllcyAobGlrZSBwb3J0cykgdGhhdAphcmUgb25seSBwcm92aWRl ZCBpbiBqaDcxMTAtY29tbW9uLmR0c2ksIGxlYXZpbmcgaXQgYWN0aXZlIGJ5IGRlZmF1bHQgaGVy ZQpjYW4gY2F1c2UgRFQgc2NoZW1hIHZhbGlkYXRpb24gZmFpbHVyZXMuCgpDYW4gdGhpcyBicmVh ayBkdGJzX2NoZWNrIG9yIGNhdXNlIGRyaXZlciBwcm9iZSBjcmFzaGVzIG9uIGN1c3RvbSBib2Fy ZHMgdGhhdAppbmNsdWRlIGpoNzExMC5kdHNpIGJ1dCBkbyBub3Qgd2lyZSB1cCB0aGUgZGlzcGxh eSBjb21wb25lbnRzPwoKPiArCQkJCWNsb2NrcyA9IDwmdm91dGNyZyBKSDcxMTBfVk9VVENMS19E QzgyMDBfQ09SRT4sClsgLi4uIF0KPiArCQkJCXJlc2V0LW5hbWVzID0gImNvcmUiLCAiYXhpIiwg ImFoYiI7Cj4gKwkJCX07Cj4gKwo+ICsJCQloZG1pX3N1YnN5c3RlbTogaGRtaUAyOTU5MDAwMCB7 Cj4gKwkJCQljb21wYXRpYmxlID0gInN0YXJmaXZlLGpoNzExMC1oZG1pLXN1YnN5c3RlbSI7Cj4g KwkJCQlyZWcgPSA8MHgwIDB4Mjk1OTAwMDAgMHgwIDB4NDAwMD47CgpbU2V2ZXJpdHk6IE1lZGl1 bV0KU2hvdWxkIHRoZSBoZG1pX3N1YnN5c3RlbSBub2RlIGFsc28gaW5jbHVkZSBzdGF0dXMgPSAi ZGlzYWJsZWQiOz8KClNpbWlsYXIgdG8gdGhlIGRjODIwMCBub2RlLCBsZWF2aW5nIHRoaXMgYWN0 aXZlIGJ5IGRlZmF1bHQgY2FuIGxlYWQgdG8KdmFsaWRhdGlvbiBlcnJvcnMgaWYgaXQgaXMgbGVm dCB1bmNvbmZpZ3VyZWQgYnkgYm9hcmQgZmlsZXMuCgo+ICsKPiArCQkJCWhkbWlfY29udHJvbGxl cjogY29udHJvbGxlciB7ClsgLi4uIF0KPiArCQkJCWhkbWlfcGh5OiBwaHkgewo+ICsJCQkJCWNv bXBhdGlibGUgPSAic3RhcmZpdmUsamg3MTEwLWlubm8taGRtaS1waHkiOwo+ICsJCQkJCWNsb2Nr cyA9IDwmeGluMjRtPjsKCltTZXZlcml0eTogTG93XQpTaG91bGQgdGhpcyBjb25zdW1lIHRoZSBz dGFuZGFyZCA8Jm9zYz4gY2xvY2sgaW5zdGVhZCBvZiA8JnhpbjI0bT4/CgpJZiB0aGUgeGluMjRt IG5vZGUgaXMgcmVkdW5kYW50IGFzIG1lbnRpb25lZCBhYm92ZSwgdGhpcyB3b3VsZCBsaWtlbHkg bmVlZAp0byBiZSB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBtYWluIG9zY2lsbGF0b3Igbm9kZS4K Cj4gKwkJCQkJI2Nsb2NrLWNlbGxzID0gPDA+Owo+ICsJCQkJCSNwaHktY2VsbHMgPSA8MD47Cj4g KwkJCQl9Owo+ICsJCQl9OwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlr by5kZXYvIy9wYXRjaHNldC8yMDI2MDkwNC1qaDcxMTAtY2xlYW4tc2VuZC12My0wLTQ4NGY5YWU3 MjcxNUBzYW1zdW5nLmNvbT9wYXJ0PTE4CgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51 eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1waHkK