diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0294-net-phy-add-unlocked-accessors.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.14/950-0294-net-phy-add-unlocked-accessors.patch | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0294-net-phy-add-unlocked-accessors.patch b/target/linux/brcm2708/patches-4.14/950-0294-net-phy-add-unlocked-accessors.patch deleted file mode 100644 index f0b916e86c..0000000000 --- a/target/linux/brcm2708/patches-4.14/950-0294-net-phy-add-unlocked-accessors.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 6709752e7233afd929a130ac4f3645348be94c1f Mon Sep 17 00:00:00 2001 -From: Russell King <rmk+kernel@armlinux.org.uk> -Date: Tue, 2 Jan 2018 10:58:37 +0000 -Subject: [PATCH 294/454] net: phy: add unlocked accessors - -commit 788f9933db6172801336d0ae2dec5bdc7525389f upstream. - -Add unlocked versions of the bus accessors, which allows access to the -bus with all the tracing. These accessors validate that the bus mutex -is held, which is a basic requirement for all mii bus accesses. - -Also added is a read-modify-write unlocked accessor with the same -locking requirements. - -Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> -Reviewed-by: Andrew Lunn <andrew@lunn.ch> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - drivers/net/phy/phy-core.c | 25 +++++++++++++++++++++++++ - include/linux/phy.h | 28 ++++++++++++++++++++++++++++ - 2 files changed, 53 insertions(+) - ---- a/drivers/net/phy/phy-core.c -+++ b/drivers/net/phy/phy-core.c -@@ -280,3 +280,28 @@ int phy_write_mmd(struct phy_device *phy - return ret; - } - EXPORT_SYMBOL(phy_write_mmd); -+ -+/** -+ * __phy_modify() - Convenience function for modifying a PHY register -+ * @phydev: a pointer to a &struct phy_device -+ * @regnum: register number -+ * @mask: bit mask of bits to clear -+ * @set: bit mask of bits to set -+ * -+ * Unlocked helper function which allows a PHY register to be modified as -+ * new register value = (old register value & mask) | set -+ */ -+int __phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set) -+{ -+ int ret, res; -+ -+ ret = __phy_read(phydev, regnum); -+ if (ret >= 0) { -+ res = __phy_write(phydev, regnum, (ret & ~mask) | set); -+ if (res < 0) -+ ret = res; -+ } -+ -+ return ret; -+} -+EXPORT_SYMBOL_GPL(__phy_modify); ---- a/include/linux/phy.h -+++ b/include/linux/phy.h -@@ -726,6 +726,18 @@ static inline int phy_read(struct phy_de - } - - /** -+ * __phy_read - convenience function for reading a given PHY register -+ * @phydev: the phy_device struct -+ * @regnum: register number to read -+ * -+ * The caller must have taken the MDIO bus lock. -+ */ -+static inline int __phy_read(struct phy_device *phydev, u32 regnum) -+{ -+ return __mdiobus_read(phydev->mdio.bus, phydev->mdio.addr, regnum); -+} -+ -+/** - * phy_write - Convenience function for writing a given PHY register - * @phydev: the phy_device struct - * @regnum: register number to write -@@ -741,6 +753,22 @@ static inline int phy_write(struct phy_d - } - - /** -+ * __phy_write - Convenience function for writing a given PHY register -+ * @phydev: the phy_device struct -+ * @regnum: register number to write -+ * @val: value to write to @regnum -+ * -+ * The caller must have taken the MDIO bus lock. -+ */ -+static inline int __phy_write(struct phy_device *phydev, u32 regnum, u16 val) -+{ -+ return __mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, regnum, -+ val); -+} -+ -+int __phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set); -+ -+/** - * phy_interrupt_is_valid - Convenience function for testing a given PHY irq - * @phydev: the phy_device struct - * |