[openwrt/openwrt] octeon: honor disabled sgmii device tree nodes

LEDE Commits lede-commits at lists.infradead.org
Thu Nov 5 14:58:37 EST 2020


dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/577ac8ce8464855cf26644197f57e32cb39c4ff9

commit 577ac8ce8464855cf26644197f57e32cb39c4ff9
Author: Roman Kuzmitskii <damex.pp at icloud.com>
AuthorDate: Sun Nov 1 20:46:05 2020 +0000

    octeon: honor disabled sgmii device tree nodes
    
    adds patch to octeon ethernet driver that lets sgmii interface
    device tree node to be disabled and that disabled interface
    won't be unnecessarily initialized.
    
    It solves the problem with octeon boards that have 8 sgmii or more ports
    initialized but have nothing connected to them.
    
    Tested-by: Johannes Kimmel <fff at bareminimum.eu>
    Signed-off-by: Roman Kuzmitskii <damex.pp at icloud.com>
---
 .../701-honor_sgmii_node_device_tree_status.patch  | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/target/linux/octeon/patches-5.4/701-honor_sgmii_node_device_tree_status.patch b/target/linux/octeon/patches-5.4/701-honor_sgmii_node_device_tree_status.patch
new file mode 100644
index 0000000000..af223dc314
--- /dev/null
+++ b/target/linux/octeon/patches-5.4/701-honor_sgmii_node_device_tree_status.patch
@@ -0,0 +1,27 @@
+From: Roman Kuzmitskii <damex.pp at icloud.com>
+Date: Sun, 01 Nov 2020 19:00:00 +0000
+Subject: [PATCH] staging: octeon: sgmii to honor disabled dt node status
+
+With this patch, sgmii interface device tree node could be disabled and
+that disabled interface will not be unnecessarily initialized.
+
+It solves the problem with Octeon boards that have 8 sgmii or more ports
+initialized but have nothing connected to them.
+
+Tested-by: Johannes Kimmel <fff at bareminimum.eu>
+Signed-off-by: Roman Kuzmitskii <damex.pp at icloud.com>
+--- a/drivers/staging/octeon/ethernet.c
++++ b/drivers/staging/octeon/ethernet.c
+@@ -884,8 +884,10 @@
+ 
+ 			case CVMX_HELPER_INTERFACE_MODE_SGMII:
+ 				priv->phy_mode = PHY_INTERFACE_MODE_SGMII;
+-				dev->netdev_ops = &cvm_oct_sgmii_netdev_ops;
+-				strscpy(dev->name, "eth%d", sizeof(dev->name));
++				if (of_device_is_available(priv->of_node)) {
++					dev->netdev_ops = &cvm_oct_sgmii_netdev_ops;
++					strscpy(dev->name, "eth%d", sizeof(dev->name));
++				}
+ 				break;
+ 
+ 			case CVMX_HELPER_INTERFACE_MODE_SPI:



More information about the lede-commits mailing list