path: root/include/linux/phy.h
diff options
authorLinus Walleij <linus.walleij@linaro.org>2019-02-24 01:11:15 +0100
committerDavid S. Miller <davem@davemloft.net>2019-02-23 18:45:28 -0800
commit4c8e0459b585e2a7b367545be3e102737f1e489f (patch)
treefd87c219b0556bf0eac5e2509896261dca11b0e2 /include/linux/phy.h
parenttcp: repaired skbs must init their tso_segs (diff)
net: phy: realtek: Dummy IRQ calls for RTL8366RB
This fixes a regression introduced by commit 0d2e778e38e0ddffab4bb2b0e9ed2ad5165c4bf7 "net: phy: replace PHY_HAS_INTERRUPT with a check for config_intr and ack_interrupt". This assumes that a PHY cannot trigger interrupt unless it has .config_intr() or .ack_interrupt() implemented. A later patch makes the code assume both need to be implemented for interrupts to be present. But this PHY (which is inside a DSA) will happily fire interrupts without either callback. Implement dummy callbacks for .config_intr() and .ack_interrupt() in the phy header to fix this. Tested on the RTL8366RB on D-Link DIR-685. Fixes: 0d2e778e38e0 ("net: phy: replace PHY_HAS_INTERRUPT with a check for config_intr and ack_interrupt") Cc: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/phy.h')
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 127fcc9c3778..333b56d8f746 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -992,6 +992,14 @@ static inline int genphy_no_soft_reset(struct phy_device *phydev)
return 0;
+static inline int genphy_no_ack_interrupt(struct phy_device *phydev)
+ return 0;
+static inline int genphy_no_config_intr(struct phy_device *phydev)
+ return 0;
int genphy_read_mmd_unsupported(struct phy_device *phdev, int devad,
u16 regnum);
int genphy_write_mmd_unsupported(struct phy_device *phdev, int devnum,