From: Ian Campbell <ijc@hellion.org.uk>
Subject: phy/marvell: disable 4-port phys
Date: Wed, 20 Nov 2013 08:30:14 +0000
Forwarded: no

See 723177 for more details. Briefly:

The Marvell PHY was originally disabled because it can cause networking
failures on some systems. According to Lennert Buytenhek this is because some
of the variants added did not share the same register layout. Since the known
cases are all 4-ports disable those variants (indicated by a 4 in the
penultimate position of the model name) until they can be audited for
correctness.

--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -975,6 +975,7 @@ static struct phy_driver marvell_drivers
 		.suspend = &genphy_suspend,
 		.driver = { .owner = THIS_MODULE },
 	},
+#if 0
 	{
 		.phy_id = MARVELL_PHY_ID_88E1145,
 		.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -990,6 +991,8 @@ static struct phy_driver marvell_drivers
 		.suspend = &genphy_suspend,
 		.driver = { .owner = THIS_MODULE },
 	},
+#endif
+#if 0
 	{
 		.phy_id = MARVELL_PHY_ID_88E1149R,
 		.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -1005,6 +1008,8 @@ static struct phy_driver marvell_drivers
 		.suspend = &genphy_suspend,
 		.driver = { .owner = THIS_MODULE },
 	},
+#endif
+#if 0
 	{
 		.phy_id = MARVELL_PHY_ID_88E1240,
 		.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -1020,6 +1025,7 @@ static struct phy_driver marvell_drivers
 		.suspend = &genphy_suspend,
 		.driver = { .owner = THIS_MODULE },
 	},
+#endif
 	{
 		.phy_id = MARVELL_PHY_ID_88E1116R,
 		.phy_id_mask = MARVELL_PHY_ID_MASK,
@@ -1073,9 +1079,9 @@ static struct mdio_device_id __maybe_unu
 	{ MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },
-	{ MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK },
-	{ MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK },
-	{ MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK },
+/*	{ MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK }, */
+/*	{ MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK }, */
+/*	{ MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, */
 	{ MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK },
 	{ MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK },
