diff options
7 files changed, 507 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch new file mode 100644 index 0000000000..271257c669 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0002-ARM-dts-BCM5301X-Harmonize-EHCI-OHCI-DT-nodes-name.patch @@ -0,0 +1,60 @@ +From 74abbfe99f43eb7466d26d9e48fbeb46b8f3d804 Mon Sep 17 00:00:00 2001 +From: Serge Semin <Sergey.Semin@baikalelectronics.ru> +Date: Tue, 20 Oct 2020 14:59:37 +0300 +Subject: [PATCH] ARM: dts: BCM5301X: Harmonize EHCI/OHCI DT nodes name + +In accordance with the Generic EHCI/OHCI bindings the corresponding node +name is suppose to comply with the Generic USB HCD DT schema, which +requires the USB nodes to have the name acceptable by the regexp: +"^usb(@.*)?" . Make sure the "generic-ehci" and "generic-ohci"-compatible +nodes are correctly named. + +Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +Acked-by: Krzysztof Kozlowski <krzk@kernel.org> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm5301x.dtsi | 4 ++-- + arch/arm/boot/dts/bcm53573.dtsi | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +--- a/arch/arm/boot/dts/bcm5301x.dtsi ++++ b/arch/arm/boot/dts/bcm5301x.dtsi +@@ -265,7 +265,7 @@ + + interrupt-parent = <&gic>; + +- ehci: ehci@21000 { ++ ehci: usb@21000 { + #usb-cells = <0>; + + compatible = "generic-ehci"; +@@ -287,7 +287,7 @@ + }; + }; + +- ohci: ohci@22000 { ++ ohci: usb@22000 { + #usb-cells = <0>; + + compatible = "generic-ohci"; +--- a/arch/arm/boot/dts/bcm53573.dtsi ++++ b/arch/arm/boot/dts/bcm53573.dtsi +@@ -135,7 +135,7 @@ + #address-cells = <1>; + #size-cells = <1>; + +- ehci: ehci@4000 { ++ ehci: usb@4000 { + compatible = "generic-ehci"; + reg = <0x4000 0x1000>; + interrupt-parent = <&gic>; +@@ -155,7 +155,7 @@ + }; + }; + +- ohci: ohci@d000 { ++ ohci: usb@d000 { + #usb-cells = <0>; + + compatible = "generic-ohci"; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch new file mode 100644 index 0000000000..08380d735c --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0003-ARM-dts-BCM5310X-Harmonize-xHCI-DT-nodes-name.patch @@ -0,0 +1,29 @@ +From 4b650a20bdb5f9558007dd3055a17a1644a91c3e Mon Sep 17 00:00:00 2001 +From: Serge Semin <Sergey.Semin@baikalelectronics.ru> +Date: Tue, 20 Oct 2020 14:59:46 +0300 +Subject: [PATCH] ARM: dts: BCM5310X: Harmonize xHCI DT nodes name + +In accordance with the Generic xHCI bindings the corresponding node +name is suppose to comply with the Generic USB HCD DT schema, which +requires the USB nodes to have the name acceptable by the regexp: +"^usb(@.*)?" . Make sure the "generic-xhci"-compatible nodes are +correctly named. + +Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> +Acked-by: Krzysztof Kozlowski <krzk@kernel.org> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm5301x.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/bcm5301x.dtsi ++++ b/arch/arm/boot/dts/bcm5301x.dtsi +@@ -318,7 +318,7 @@ + + interrupt-parent = <&gic>; + +- xhci: xhci@23000 { ++ xhci: usb@23000 { + #usb-cells = <0>; + + compatible = "generic-xhci"; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0008-ARM-dts-BCM5301X-Disable-USB-3-PHY-on-devices-withou.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0008-ARM-dts-BCM5301X-Disable-USB-3-PHY-on-devices-withou.patch new file mode 100644 index 0000000000..64415c14db --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0008-ARM-dts-BCM5301X-Disable-USB-3-PHY-on-devices-withou.patch @@ -0,0 +1,94 @@ +From 632ddf978565378e7efb9ea77c0ba239ea66bfdc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Fri, 13 Nov 2020 11:09:19 +0100 +Subject: [PATCH] ARM: dts: BCM5301X: Disable USB 3 PHY on devices without USB + 3 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It seems pointless to have it enabled. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 4 ---- + arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 4 ---- + arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 ---- + arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 4 ---- + arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 4 ---- + arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | 4 ---- + 6 files changed, 24 deletions(-) + +--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts ++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts +@@ -57,10 +57,6 @@ + status = "okay"; + }; + +-&usb3_phy { +- status = "okay"; +-}; +- + &srab { + status = "okay"; + +--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts ++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts +@@ -64,10 +64,6 @@ + status = "okay"; + }; + +-&usb3_phy { +- status = "okay"; +-}; +- + &srab { + status = "okay"; + +--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts ++++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts +@@ -117,7 +117,3 @@ + }; + }; + }; +- +-&usb3_phy { +- status = "okay"; +-}; +--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts ++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts +@@ -57,10 +57,6 @@ + status = "okay"; + }; + +-&usb3_phy { +- status = "okay"; +-}; +- + &srab { + status = "okay"; + +--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts ++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts +@@ -105,10 +105,6 @@ + status = "okay"; + }; + +-&usb3_phy { +- status = "okay"; +-}; +- + &srab { + status = "okay"; + +--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts ++++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts +@@ -126,7 +126,3 @@ + &usb2 { + vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>; + }; +- +-&usb3_phy { +- status = "okay"; +-}; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0009-ARM-dts-BCM5301X-Enable-USB-3-PHY-on-Luxul-XWR-3150.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0009-ARM-dts-BCM5301X-Enable-USB-3-PHY-on-Luxul-XWR-3150.patch new file mode 100644 index 0000000000..5834e300f5 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0009-ARM-dts-BCM5301X-Enable-USB-3-PHY-on-Luxul-XWR-3150.patch @@ -0,0 +1,30 @@ +From b2ab5e8697ef6591aeeda23be49e096705dbbda3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl> +Date: Fri, 13 Nov 2020 10:50:12 +0100 +Subject: [PATCH] ARM: dts: BCM5301X: Enable USB 3 PHY on Luxul XWR-3150 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This device has a functional USB 3 port so PHY is required. + +Signed-off-by: Rafał Miłecki <rafal@milecki.pl> +Reported-by: kernel test robot <lkp@intel.com> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts +@@ -71,6 +71,10 @@ + vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>; + }; + ++&usb3_phy { ++ status = "okay"; ++}; ++ + &spi_nor { + status = "okay"; + }; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch new file mode 100644 index 0000000000..9165572b95 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0010-ARM-dts-BCM5301X-Update-Ethernet-switch-node-name.patch @@ -0,0 +1,32 @@ +From f527cb6f3345f7faa8e61dd9f3c437437327428c Mon Sep 17 00:00:00 2001 +From: Florian Fainelli <f.fainelli@gmail.com> +Date: Mon, 9 Nov 2020 11:41:01 -0800 +Subject: [PATCH] ARM: dts: BCM5301X: Update Ethernet switch node name + +Update the switch unit name from srab to ethernet-switch, allowing us to +fix warnings such as: + + CHECK arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dt.yaml +arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dt.yaml: +srab@18007000: $nodename:0: 'srab@18007000' does not match +'^(ethernet-)?switch(@.*)?$' + From schema: +Documentation/devicetree/bindings/net/dsa/b53.yaml + +Reviewed-by: Vladimir Oltean <olteanv@gmail.com> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm5301x.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/bcm5301x.dtsi ++++ b/arch/arm/boot/dts/bcm5301x.dtsi +@@ -482,7 +482,7 @@ + #thermal-sensor-cells = <0>; + }; + +- srab: srab@18007000 { ++ srab: ethernet-switch@18007000 { + compatible = "brcm,bcm5301x-srab"; + reg = <0x18007000 0x1000>; + diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch new file mode 100644 index 0000000000..6c1c39b30b --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0011-ARM-dts-BCM5301X-Add-a-default-compatible-for-switch.patch @@ -0,0 +1,82 @@ +From 953efcb0c0234f8c488ebd4090378e949d6ba78b Mon Sep 17 00:00:00 2001 +From: Florian Fainelli <f.fainelli@gmail.com> +Date: Mon, 9 Nov 2020 16:42:09 -0800 +Subject: [PATCH] ARM: dts: BCM5301X: Add a default compatible for switch node +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Provide a default compatible string which is based on the 53011 SRAB +compatible by default. The 4709 and 47094 default to the 53012 SRAB +compatible. + +This allows us to have sane defaults and silences the following +warnings: + +arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dt.yaml: +ethernet-switch@18007000: compatible: 'oneOf' conditional failed, one +must be fixed: + ['brcm,bcm5301x-srab'] is too short + 'brcm,bcm5325' was expected + 'brcm,bcm53115' was expected + 'brcm,bcm53125' was expected + 'brcm,bcm53128' was expected + 'brcm,bcm5365' was expected + 'brcm,bcm5395' was expected + 'brcm,bcm5389' was expected + 'brcm,bcm5397' was expected + 'brcm,bcm5398' was expected + 'brcm,bcm11360-srab' was expected + 'brcm,bcm5301x-srab' is not one of ['brcm,bcm53010-srab', +'brcm,bcm53011-srab', 'brcm,bcm53012-srab', 'brcm,bcm53018-srab', +'brcm,bcm53019-srab'] + 'brcm,bcm5301x-srab' is not one of ['brcm,bcm11404-srab', +'brcm,bcm11407-srab', 'brcm,bcm11409-srab', 'brcm,bcm58310-srab', +'brcm,bcm58311-srab', 'brcm,bcm58313-srab'] + 'brcm,bcm5301x-srab' is not one of ['brcm,bcm58522-srab', +'brcm,bcm58523-srab', 'brcm,bcm58525-srab', 'brcm,bcm58622-srab', +'brcm,bcm58623-srab', 'brcm,bcm58625-srab', 'brcm,bcm88312-srab'] + 'brcm,bcm5301x-srab' is not one of ['brcm,bcm3384-switch', +'brcm,bcm6328-switch', 'brcm,bcm6368-switch'] + From schema: +Documentation/devicetree/bindings/net/dsa/b53.yaml + +Acked-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm4709.dtsi | 4 ++++ + arch/arm/boot/dts/bcm47094.dtsi | 4 ++++ + arch/arm/boot/dts/bcm5301x.dtsi | 2 +- + 3 files changed, 9 insertions(+), 1 deletion(-) + +--- a/arch/arm/boot/dts/bcm4709.dtsi ++++ b/arch/arm/boot/dts/bcm4709.dtsi +@@ -9,3 +9,7 @@ + clock-frequency = <125000000>; + status = "okay"; + }; ++ ++&srab { ++ compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab"; ++}; +--- a/arch/arm/boot/dts/bcm47094.dtsi ++++ b/arch/arm/boot/dts/bcm47094.dtsi +@@ -16,3 +16,7 @@ + clock-frequency = <125000000>; + status = "okay"; + }; ++ ++&srab { ++ compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab"; ++}; +--- a/arch/arm/boot/dts/bcm5301x.dtsi ++++ b/arch/arm/boot/dts/bcm5301x.dtsi +@@ -483,7 +483,7 @@ + }; + + srab: ethernet-switch@18007000 { +- compatible = "brcm,bcm5301x-srab"; ++ compatible = "brcm,bcm53011-srab", "brcm,bcm5301x-srab"; + reg = <0x18007000 0x1000>; + + status = "disabled"; diff --git a/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch b/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch new file mode 100644 index 0000000000..9cdee333cb --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/034-v5.11-0012-ARM-dts-BCM5301X-Provide-defaults-ports-container-no.patch @@ -0,0 +1,180 @@ +From fd577b41421bc24e2d04cab96d387301b649eb14 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli <f.fainelli@gmail.com> +Date: Mon, 9 Nov 2020 17:20:17 -0800 +Subject: [PATCH] ARM: dts: BCM5301X: Provide defaults ports container node +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Provide an empty 'ports' container node with the correct #address-cells +and #size-cells properties. This silences the following warning: + +arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dt.yaml: +ethernet-switch@18007000: 'oneOf' conditional failed, one must be fixed: + 'ports' is a required property + 'ethernet-ports' is a required property + From schema: +Documentation/devicetree/bindings/net/dsa/b53.yaml + +Acked-by: Rafał Miłecki <rafal@milecki.pl> +Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 3 --- + arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 3 --- + arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 3 --- + arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 3 --- + arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 3 --- + arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 3 --- + arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 3 --- + arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 3 --- + arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 3 --- + arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 3 --- + arch/arm/boot/dts/bcm5301x.dtsi | 4 ++++ + arch/arm/boot/dts/bcm953012er.dts | 3 --- + 12 files changed, 4 insertions(+), 33 deletions(-) + +--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts ++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts +@@ -61,9 +61,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "poe"; +--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts ++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts +@@ -68,9 +68,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@4 { + reg = <4>; + label = "lan"; +--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts ++++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +@@ -122,9 +122,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "lan4"; +--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts ++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts +@@ -61,9 +61,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@4 { + reg = <4>; + label = "poe"; +--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts ++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts +@@ -109,9 +109,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "lan4"; +--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts ++++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts +@@ -219,9 +219,6 @@ + dsa,member = <0 0>; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@1 { + reg = <1>; + label = "lan7"; +--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts +@@ -59,9 +59,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "poe"; +--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts +@@ -57,9 +57,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "lan"; +--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +@@ -108,9 +108,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "lan4"; +--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts +@@ -83,9 +83,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "lan4"; +--- a/arch/arm/boot/dts/bcm5301x.dtsi ++++ b/arch/arm/boot/dts/bcm5301x.dtsi +@@ -489,6 +489,10 @@ + status = "disabled"; + + /* ports are defined in board DTS */ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ }; + }; + + rng: rng@18004000 { +--- a/arch/arm/boot/dts/bcm953012er.dts ++++ b/arch/arm/boot/dts/bcm953012er.dts +@@ -69,9 +69,6 @@ + status = "okay"; + + ports { +- #address-cells = <1>; +- #size-cells = <0>; +- + port@0 { + reg = <0>; + label = "port0"; |