On Thu, Mar 25, 2021 at 02:12:49PM +0100, Marek Behún wrote:
quoted hunk ↗ jump to hunk
@@ -443,12 +446,24 @@ static int mv3310_probe(struct phy_device *phydev)
switch (phydev->drv->phy_id) {
case MARVELL_PHY_ID_88X3310:
+ ret = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MV_PMA_XGSTAT);
+ if (ret < 0)
+ return ret;
+
+ has_macsec = !(ret & MV_PMA_XGSTAT_NO_MACSEC);
+
if (nports == 4)
priv->model = MV_MODEL_88X3340;
else if (nports == 1)
priv->model = MV_MODEL_88X3310;
break;
The 88X3310 and 88X3340 can be differentiated by bit 3 in the revision.
In other words, 88X3310 is 0x09a0..0x09a7, and 88X3340 is
0x09a8..0x09af. We could add a separate driver structure, which would
then allow the kernel to print a more specific string via standard
methods, like we do for other PHYs. Not sure whether that would work
for the 88X21x0 family though.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!