summaryrefslogtreecommitdiff
path: root/drivers/net/phy/mxl-gpy.c
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2023-01-09 15:30:13 +0300
committerPaolo Abeni <pabeni@redhat.com>2023-01-10 15:38:37 +0300
commit97a89ed101bbb790e80b562f9cb95f0cfd05f430 (patch)
treea1f58aba00107836b94e29698c65988f2fa5af95 /drivers/net/phy/mxl-gpy.c
parent7d885863e716757553197687f304da1f538f61e1 (diff)
downloadlinux-97a89ed101bbb790e80b562f9cb95f0cfd05f430.tar.xz
net: phy: mxl-gpy: disable interrupts on GPY215 by default
The interrupts on the GPY215B and GPY215C are broken and the only viable fix is to disable them altogether. There is still the possibilty to opt-in via the device tree. Signed-off-by: Michael Walle <michael@walle.cc> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/net/phy/mxl-gpy.c')
-rw-r--r--drivers/net/phy/mxl-gpy.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/phy/mxl-gpy.c b/drivers/net/phy/mxl-gpy.c
index 147d7a5a9b35..e5972b4ef6e8 100644
--- a/drivers/net/phy/mxl-gpy.c
+++ b/drivers/net/phy/mxl-gpy.c
@@ -12,6 +12,7 @@
#include <linux/mutex.h>
#include <linux/phy.h>
#include <linux/polynomial.h>
+#include <linux/property.h>
#include <linux/netdevice.h>
/* PHY ID */
@@ -292,6 +293,10 @@ static int gpy_probe(struct phy_device *phydev)
phydev->priv = priv;
mutex_init(&priv->mbox_lock);
+ if (gpy_has_broken_mdint(phydev) &&
+ !device_property_present(dev, "maxlinear,use-broken-interrupts"))
+ phydev->dev_flags |= PHY_F_NO_IRQ;
+
fw_version = phy_read(phydev, PHY_FWV);
if (fw_version < 0)
return fw_version;