92 lines
2.8 KiB
Diff
92 lines
2.8 KiB
Diff
From: Ian Campbell <ijc@hellion.org.uk>
|
|
Subject: phy/marvell: disable 4-port phys
|
|
Date: Wed, 20 Nov 2013 08:30:14 +0000
|
|
Bug-Debian: https://bugs.debian.org/723177
|
|
Forwarded: http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/1107774/
|
|
|
|
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.
|
|
|
|
[bwh: Also #if-out the init functions for these PHYs to avoid
|
|
compiler warnings]
|
|
|
|
--- a/drivers/net/phy/marvell.c
|
|
+++ b/drivers/net/phy/marvell.c
|
|
@@ -956,6 +956,7 @@ static int m88e1118_config_init(struct p
|
|
return genphy_soft_reset(phydev);
|
|
}
|
|
|
|
+#if 0
|
|
static int m88e1149_config_init(struct phy_device *phydev)
|
|
{
|
|
int err;
|
|
@@ -981,7 +982,9 @@ static int m88e1149_config_init(struct p
|
|
|
|
return genphy_soft_reset(phydev);
|
|
}
|
|
+#endif
|
|
|
|
+#if 0
|
|
static int m88e1145_config_init_rgmii(struct phy_device *phydev)
|
|
{
|
|
int temp;
|
|
@@ -1063,6 +1066,7 @@ static int m88e1145_config_init(struct p
|
|
|
|
return 0;
|
|
}
|
|
+#endif
|
|
|
|
/**
|
|
* fiber_lpa_to_ethtool_lpa_t
|
|
@@ -2059,6 +2063,7 @@ static struct phy_driver marvell_drivers
|
|
.get_strings = marvell_get_strings,
|
|
.get_stats = marvell_get_stats,
|
|
},
|
|
+#if 0
|
|
{
|
|
.phy_id = MARVELL_PHY_ID_88E1145,
|
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
|
@@ -2077,6 +2082,8 @@ static struct phy_driver marvell_drivers
|
|
.get_strings = marvell_get_strings,
|
|
.get_stats = marvell_get_stats,
|
|
},
|
|
+#endif
|
|
+#if 0
|
|
{
|
|
.phy_id = MARVELL_PHY_ID_88E1149R,
|
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
|
@@ -2095,6 +2102,8 @@ static struct phy_driver marvell_drivers
|
|
.get_strings = marvell_get_strings,
|
|
.get_stats = marvell_get_stats,
|
|
},
|
|
+#endif
|
|
+#if 0
|
|
{
|
|
.phy_id = MARVELL_PHY_ID_88E1240,
|
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
|
@@ -2113,6 +2122,7 @@ static struct phy_driver marvell_drivers
|
|
.get_strings = marvell_get_strings,
|
|
.get_stats = marvell_get_stats,
|
|
},
|
|
+#endif
|
|
{
|
|
.phy_id = MARVELL_PHY_ID_88E1116R,
|
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
|
@@ -2240,9 +2250,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 },
|