Commit 79dfeb29 authored by Raju Lakkaraju's avatar Raju Lakkaraju Committed by David S. Miller
Browse files

net: lan743x: PCI11010 / PCI11414 fix



Fix the MDIO interface declarations to reflect what is currently supported by
the PCI11010 / PCI11414 devices (C22 for RGMII and C22_C45 for SGMII)

Signed-off-by: default avatarRaju Lakkaraju <Raju.Lakkaraju@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 55919b32
Loading
Loading
Loading
Loading
+22 −10
Original line number Diff line number Diff line
@@ -1164,6 +1164,11 @@ static int lan743x_phy_open(struct lan743x_adapter *adapter)
		if (!phydev)
			goto return_error;

		if (adapter->is_pci11x1x)
			ret = phy_connect_direct(netdev, phydev,
						 lan743x_phy_link_status_change,
						 PHY_INTERFACE_MODE_RGMII);
		else
			ret = phy_connect_direct(netdev, phydev,
						 lan743x_phy_link_status_change,
						 PHY_INTERFACE_MODE_GMII);
@@ -2936,20 +2941,27 @@ static int lan743x_mdiobus_init(struct lan743x_adapter *adapter)
			lan743x_csr_write(adapter, SGMII_CTL, sgmii_ctl);
			netif_dbg(adapter, drv, adapter->netdev,
				  "SGMII operation\n");
			adapter->mdiobus->probe_capabilities = MDIOBUS_C22_C45;
			adapter->mdiobus->read = lan743x_mdiobus_c45_read;
			adapter->mdiobus->write = lan743x_mdiobus_c45_write;
			adapter->mdiobus->name = "lan743x-mdiobus-c45";
			netif_dbg(adapter, drv, adapter->netdev,
				  "lan743x-mdiobus-c45\n");
		} else {
			sgmii_ctl = lan743x_csr_read(adapter, SGMII_CTL);
			sgmii_ctl &= ~SGMII_CTL_SGMII_ENABLE_;
			sgmii_ctl |= SGMII_CTL_SGMII_POWER_DN_;
			lan743x_csr_write(adapter, SGMII_CTL, sgmii_ctl);
			netif_dbg(adapter, drv, adapter->netdev,
					  "(R)GMII operation\n");
				  "RGMII operation\n");
			// Only C22 support when RGMII I/F
			adapter->mdiobus->probe_capabilities = MDIOBUS_C22;
			adapter->mdiobus->read = lan743x_mdiobus_read;
			adapter->mdiobus->write = lan743x_mdiobus_write;
			adapter->mdiobus->name = "lan743x-mdiobus";
			netif_dbg(adapter, drv, adapter->netdev,
				  "lan743x-mdiobus\n");
		}

		adapter->mdiobus->probe_capabilities = MDIOBUS_C22_C45;
		adapter->mdiobus->read = lan743x_mdiobus_c45_read;
		adapter->mdiobus->write = lan743x_mdiobus_c45_write;
		adapter->mdiobus->name = "lan743x-mdiobus-c45";
		netif_dbg(adapter, drv, adapter->netdev, "lan743x-mdiobus-c45\n");
	} else {
		adapter->mdiobus->read = lan743x_mdiobus_read;
		adapter->mdiobus->write = lan743x_mdiobus_write;