Browse Source

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 <[email protected]>
Signed-off-by: Roman Kuzmitskii <[email protected]>
Roman Kuzmitskii 5 years ago
parent
commit
577ac8ce84

+ 27 - 0
target/linux/octeon/patches-5.4/701-honor_sgmii_node_device_tree_status.patch

@@ -0,0 +1,27 @@
+From: Roman Kuzmitskii <[email protected]>
+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 <[email protected]>
+Signed-off-by: Roman Kuzmitskii <[email protected]>
+--- 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: